home *** CD-ROM | disk | FTP | other *** search
/ ftp.umcs.maine.edu / 2015-02-07.ftp.umcs.maine.edu.tar / ftp.umcs.maine.edu / pub / WISR / wisr6 / proceedings / ascii / wartik.ascii < prev    next >
Text File  |  1993-10-19  |  23KB  |  464 lines

  1.  
  2.  
  3.  
  4.  
  5.            The  Role  of  Process  Families  in  Reuse  Adoption
  6.  
  7.  
  8.  
  9.                                               Steven Wartik
  10.  
  11.                                 Software Productivity Consortium
  12.  
  13.                                           2214 Rock Hill Road
  14.  
  15.                                       Herndon, Virginia   22070
  16.  
  17.                                             Tel:  703/742-7176
  18.  
  19.                                     E-mail:  wartik@software.org
  20.  
  21.  
  22.  
  23.                                                   Abstract
  24.  
  25.  
  26.     Organizations often overreach when trying to adopt reuse. They try to institute reuse visions
  27. that are too complex, in whole or in part, for the knowledge and skills they possess. This paper
  28. proposes that reuse processes be defined as families, with precisely-defined commonalities and
  29. variations, and that the variations be chosen such that some family members are suited to orga-
  30. nizations just learning reuse, whereas others are for organizations with much reuse experience.
  31. This is illustrated using the Synthesis process family.  Thepap er presents some of Synthesis'
  32. commonalities and variabilities, then delineates how two members_one for advanced organiza-
  33. tions, another for those new to reuse_resolve the variabilities.  Comparing the two leads to some
  34. insights on how one's ultimate reuse goals might be relaxed to accommodate current practice.
  35.  
  36.  
  37. Keywords:  Software reuse, software development process, family, process family, domain en-
  38. gineering.
  39.  
  40.  
  41. Workshop Goals:  Validate problem and solution based on experiences of other researchers;
  42. understand domain analysis/engineering in family-oriented terms.
  43.  
  44.  
  45. Working Groups: Domain analysis/engineering,reuse process models, reuse maturity models.
  46.  
  47.  
  48.  
  49.                                                   Wartik- 1
  50.  
  51.  
  52. 1      Background
  53.  
  54.  
  55.  
  56. For  the  past  four  years, I have  been  working  at  the  Software  Productivity  Consortium,  a  con-
  57. sortium  of  aerospace  companies.  In  these  companies, pro jects  develop  software  under  contract
  58. to an external customer.  These projects are generally grouped into business-area organizations.
  59. These organizations tend to amass expertise in particular areas, and try to win contracts in those
  60. areas.  Such organizations lend themselves to reuse approaches that incorporate domain analysis
  61. techniques.
  62.  
  63.  
  64.  
  65. 2      Position
  66.  
  67.  
  68.  
  69. 2.1     Problem Statement
  70.  
  71.  
  72.  
  73. Reuse  presents  many  challenging  technical  problems.   However, a  clear  theme  from  last  year's
  74. workshop on software reuse was that some of the major imp ediments to its adoption are glaringly
  75. non-technical [1, 2 , 3 , 4 ].  Companies often lack a comprehensive reuse program because project
  76. managers are unwilling to gamble on anything new and unproven. Those willing to take the chance
  77. often find their hands tied: contractual obligations and organizational requirements prevent them
  78. from  acquiring  new  tools, or  using  non-traditional  software  methods, or  altering  their  software
  79. development process_in brief, from making changesthat would facilitate reuse.
  80.  
  81.  
  82. Management  at  organization-wide  levels  (above  pro ject management)  faces  similar  hurdles.  An
  83. organization might establish a reuse library,  but be unable top opulate it with components from
  84. previous projects_the contractors who paid for developing those components claim software owner-
  85. ship rights, not being eager to see the components used todevelop a competitor's software cheaply.
  86. Moreover, the cost of establishing a suitable environment for reuse can be high, and is difficult to
  87. predict. An organization should not expect to recoup its investment immediately, which can make
  88. management uncomfortable.
  89.  
  90.  
  91. This situation is not universal, but it exists in manyorganizations that the Consortium supports.
  92. This poses a problem. The Consortium has been tasked to develop advanced technologies that sup-
  93. port reuse. It has done so, and the technology has been well-received by some organizations. Others
  94. find the technology interesting, but do not feel able to risk trying anadvanced reuse technology.
  95. Yet they are under pressure to reuse software.  How should the Consortium support them?
  96.  
  97.  
  98. The Consortium has devised a reuse adoption process that addresses this question [4]. This paper
  99. concentrates on one aspect of reuse adoption: the software development process an organization
  100. uses. Specifically, what problems does an organization face as it changes its software development
  101. process to accommodate reuse, and what is an appropriate strategy to address those problems?
  102.  
  103.  
  104. When an organization adopts a new software development process, it must expect to invest resources
  105. in retraining, acquiring appropriate CASE tools, etc. This in itself can frighten away anyone con-
  106. sidering making such a change. External factors pose even greater difficulties.  The Consortium's
  107. member companies are usually contractually obligated to use asp ecific software development pro-
  108. cess. Projects cannot expect to use any process that is particularly radical.
  109.  
  110.  
  111. Even those organizations wanting to tryan advanced reuse process often find that doing so is not
  112. quite as easy as they thought. The Consortium has an abstract description of what a reuse-driven
  113. software  development  process  should b e, but  its  exact  realization  depends  on  both  the  software
  114. domain and the organization using it. Tailoring the process takes both time and experience.
  115.  
  116.  
  117.                                                          Wartik- 2
  118.  
  119.  
  120. The Consortium must therefore support organizations that wish to adopt reuse slowly as well as
  121. those willing to adopt it aggressively.
  122.  
  123.  
  124.  
  125. 2.2     Proposed  Solution
  126.  
  127.  
  128.  
  129. This paper proposes that an organization seeking to institute a reuse-driven software development
  130. process should consider not a single process, but a family of processes. The term "family" is used
  131. with a meaning analogous to how it is used to describe software components:  a family of pro cesses
  132. is a set of processes that are sufficiently similar that it is worthwhile to understand their common
  133. properties before considering the special properties of individual instances.1  They differ in ways
  134. that  suit  particular  family  members  to  projects  and  organizations  at  particular  stages  of  reuse
  135. capability.
  136.  
  137.  
  138. The common properties ("commonalities") are what an organization expects to remain constant
  139. about its process, independent of its reuse objectives. Examples of such properties include splitting
  140. software  development  into  domain  engineering  and  application  engineering, or  use  of  particular
  141. methods,  tools,  and  technology  (whether  because  of  recognition  of  investment  or  belief  in  their
  142. efficacy).
  143.  
  144.  
  145. The family's variabilities are expectations of howsoftware development will change as the organiza-
  146. tion improves its ability to reuse software.  For example, an organization might want eventually to
  147. reuse entire software subsystems or complete chapters of requirements documents; such a capabil-
  148. ity would obviate, or at least substantially alter, many process activities concerned with creation,
  149. integration, and validation of the work products a project produces. However, if an organization
  150. does not yet possess the ability to do such large-scale reuse, it might be content to start by reusing
  151. smaller entities (individual functions and paragraphs) which would not affect the process nearly so
  152. much. Other examples of how reuse influences process are the effect on customer interaction activ-
  153. ities (customers do not need as much formal involvement if they are confident that the contractor
  154. is using previously-certified work products) and the activities associated with domain engineering.
  155. (Domain engineering's importance in an organization correlates to how effectively it assists projects
  156. in that organization. As an organization achieves its reuse goals, the process followed by domain
  157. engineers encompasses more activities that directly relate to helping all pro jects in an organization
  158. fulfill their contracts.)
  159.  
  160.  
  161. The  Consortium  is  developing  a  process  family  called  Synthesis  [6 ,  7].   The rest  of  Section  2
  162. is  an  illustration  of  our  proposed  solution  using  Synthesis.  Section  2.2.1  presents  some  of  the
  163. commonalities and variabilities of the Synthesis process family. Sections 2.2.2 and 2.2.3 show how
  164. the  variabilities  are  resolved  in two  of  the  family  members_one  member  being  an  "advanced"
  165. process  incorporating  reuse,  the  other  a  more  traditional  process.   Section  2.3  states  what  we
  166. believe are the benefits of the family-oriented approach.
  167.  
  168.  
  169.  
  170. 2.2.1     Characteristics of Synthesis Family Members
  171.  
  172.  
  173.  
  174. The  following  are  some  of  the  characteristics  common  to  all  members  of  the  Synthesis  process
  175. family:
  176.  
  177.  
  178.  
  179.     fflA Synthesis process involves an interaction of a domain engineering group with one or more
  180.        application engineering projects.  Each application engineering project has a customer and an
  181. ___________________________________________________1
  182.      This is an adaptation of the definition for a program family given by Dijkstra [5].
  183.  
  184.  
  185.                                                          Wartik- 3
  186.  
  187.  
  188.        obligation to build software satisfying that customer's requirements. The domain engineering
  189.        group  is  responsible  for  assuring  that  the  application  engineering  project(s)  with  which  it
  190.        interacts are able (through reuse) to deliver software to their customersin the most effective
  191.        manner practical.
  192.  
  193.  
  194.     fflDomain engineers formalize a domain as a family of products.  A product is composed of a
  195.        set of work products (requirements, designs, implementations, etc.). Here, "formalize" means
  196.        that the ways in which the products vary are explicitly and precisely defined.
  197.  
  198.  
  199.     fflApplication engineers build work products by resolving the variations identified during domain
  200.        analysis.  These variations are presented to the application engineers as engineering decisions
  201.        whose resolution requires their knowledge and experience of the problem at hand. The result
  202.        of this decision-resolution is an "application model."
  203.  
  204.  
  205.     fflApplication  engineers  build  work  products  through  mechanical  adaptation  of  components
  206.        based on information obtained from the application model.
  207.  
  208.  
  209.  
  210. Now consider three variations among family members:
  211.  
  212.  
  213.  
  214.     1. The degree to which the work products form an integrated product family. They might be
  215.        fully integrated, or they might be very loosely integrated.
  216.  
  217.  
  218.     2. Whether the application engineering process is based on the expectations and requirements
  219.        of the customer, or on considerations as to how software can most effectively be developed
  220.        within the domain and within the organization.
  221.  
  222.  
  223.     3. Whether domain engineering sees its objective as supporting the long-term needs of an entire
  224.        business-area organization or supporting a particular set of current or planned projects.
  225.  
  226.  
  227.  
  228. 2.2.2     "Leveraged" Synthesis
  229.  
  230.  
  231.  
  232. In leveraged Synthesis, the variations are resolved as follows:
  233.  
  234.  
  235.  
  236.     ffl(Variation  1)  The  product  family  is  highly  integrated.  Domain  engineers  understand  the
  237.        relationships between the variations among requirements documents in thedomain and the
  238.        variations among reusable code components.  If they can describe their customer's needs in
  239.        terms of variations at the requirements level, they can also describe variations among reusable
  240.        code components.  A single applicationmo del thendescrib esall the work products a project
  241.        needs to fulfill its contractual obligations.
  242.  
  243.  
  244.     ffl(Variation 2) The application engineering process is optimized for the domain. The process
  245.        might  call  for  the  use  of  specific  analytical  techniques, for  instance.   Reuse  helps  achieve
  246.        more radical innovation: if enough reusable components are present, then entire pro cess steps
  247.        can be skipped.  Recall that Synthesis processes rely on mechanical adaptation of reusable
  248.        components.  If  develop ers can assemble a design document by selecting and mechanically
  249.        adapting fragments of existing designs, they do not need to perform the design step.
  250.  
  251.  
  252.     ffl(Variation 3) Domain engineering is a strategic component of a business-area organization's
  253.        ability to develop software within a domain. It determines and defines the optimal application
  254.        engineering process.
  255.  
  256.  
  257.                                                          Wartik- 4
  258.  
  259.  
  260. Leveraged Synthesis is an example of an advanced reuse process.  It is the vision of a reuse process
  261. the Consortium presents to its member companies,many of whom are eager to try it. Unfortunately,
  262. most  organizations  today  have  trouble  institutionalizing  leveraged  Synthesis.  The  following  are
  263. some reasons why:
  264.  
  265.  
  266.  
  267.     fflDomain engineers must possess a thorough understanding of a domain to integrate the work
  268.        product families that comprise it. Most organizations do not have such expertise unless they
  269.        have developed many systems in a domain.  Actually,  organizationsdo tend to possess the
  270.        requisite knowledge, but are not willing to take the time to do a systematic domain analysis (a
  271.        lengthy task) and therefore cannot formalize a domain in terms of variabilities among family
  272.        members.
  273.  
  274.  
  275.     fflCustomers generally have their own ideas about what makes a software process acceptable.
  276.        These ideas will be based on processes that have been shown to be historically acceptable
  277.        (i.e., waterfall models) rather than optimal. The customer may mandate use of such a process
  278.        as a condition for signing any contracts.
  279.  
  280.  
  281.     fflDomain engineers need time to provide a useful domain implementation. Ongoing pro jects
  282.        do  not  have  much  opportunity  to  benefit  from  reuse.  Management,  however,  often  wants
  283.        immediate results.
  284.  
  285.  
  286.  
  287. This description is somewhat simplified, but it illustrates why an organizationmight not be able
  288. to perform leveraged Synthesis.
  289.  
  290.  
  291.  
  292. 2.2.3     "Opportunistic" Synthesis
  293.  
  294.  
  295.  
  296. Leveraged Synthesis was the original Synthesis process.  As we b eganto appreciate the difficulties in
  297. introducing it, we conceived of Synthesis as a process family, with the commonalities and variations
  298. mentioned above. We defined a new family member, called opp ortunistic Synthesis (because reuse
  299. is  based  on  whatever  opportunities  arise; domain  engineers  do  not  attempt  to  gain  leverage  for
  300. future projects). In this model, the variations are resolved as follows:
  301.  
  302.  
  303.  
  304.     ffl(Variation 1) Domain engineers formalize variations among members of work product families,
  305.        rather than complete product families.  Work product families are not integrated. A domain
  306.        is a collection of whatever work product families are necessary.
  307.  
  308.  
  309.     ffl(Variation 2) The application engineering process is based on whatever process application
  310.        engineering uses.
  311.  
  312.  
  313.     ffl(Variation  3)  Domain  engineering  is  responsible  for  assuring  that  a  particular  application
  314.        engineering project can benefit from reuse.  Domain engineering's goal is always to support
  315.        upcoming phases of application engineering. Suppose application engineering uses a waterfall
  316.        process.  During system design,  domain engineers would be analyzing existing software re-
  317.        quirements documents that application engineers might be able to reuse during the software
  318.        requirements phase. During software requirements, domain engineers would analyze software
  319.        designs.  During software design, they would be analyzing existing code.
  320.  
  321.  
  322.  
  323. Opportunistic Synthesis offers less long-term gain than leveraged Synthesis.  It does not encourage
  324. rewriting code to make it reusable, or devoting resources to create new reusable components.  It
  325.  
  326.  
  327.                                                          Wartik- 5
  328.  
  329.  
  330. does not encourage innovative new software processes.  Instead, it allows projects to maintain, more
  331. or less, their current software development status quo.  This, of course, is an advantage for many
  332. projects today. Opportunistic Synthesis gives immediate, tangible results, with minimal investment
  333. and low risk. We believe that opportunistic Synthesis would b e acceptable to many managers who
  334. might find leveraged Synthesis (or mostother reuse technologies) interesting but too risky.
  335.  
  336.  
  337.  
  338. 2.3     Benefits
  339.  
  340.  
  341.  
  342. The  advantage  of  the  family-oriented  approach  lies  in  how  it  facilitates  transition  from  current
  343. practice  to  one's  ultimate  reuse  goals.  The  family's  commonalities  help  people  understand how
  344. reuse  fits  into  the  software  process.  Because  these  properties  are  invariant,  people  can  expect
  345. certain investments in reuse to have long-term rewards. In Synthesis, for example, where performing
  346. domain engineering is a commonality, the process and goals of domain engineering may vary between
  347. family members, but the domain knowledge that engineers accumulate is always of benefit to current
  348. and future projects.
  349.  
  350.  
  351. The family's variabilities make reuse amenable to situations from current practice to ultimate reuse
  352. goals. This is important for several reasons. First, variabilities help people transition between family
  353. members: they describe exactly what is being changed, thus highlighting the only new principles
  354. that must be mastered. Second, variabilities help organizations plan a long-term strategy to improve
  355. reuse capability: they help organizations evaluate and compare the difficulty, relative to their own
  356. environment, of  using  any  two  family  members.  Third, variabilities  help  organizations  manage
  357. the  differences  that  individual  projects  may  encounter.  Differences  in  personnel  experience, or
  358. in  customer  requirements, may  force  two  projects  within  the  same  organization  to  use different
  359. processes. An understanding of the variabilities will help each project choose the process that best
  360. fits its needs.
  361.  
  362.  
  363.  
  364. 3      Comparison
  365.  
  366.  
  367.  
  368. Synthesis is a reuse-driven software development process. The software development process is only
  369. one  dimension  of  the  Consortium's  process  for  reuse  adoption  [8].  Others  include  management,
  370. application development, and asset development.  Each of these dimensions has its own variations.
  371. An organization adopting reuse must be prepared to resolve many more variations than have been
  372. discussed here, many of which are not concerned with software development processes.  In other
  373. words, the family-oriented approach can be used beyond software development process. However,we
  374. still have much work to do in determining the most appropriate variations among family members.
  375.  
  376.  
  377. At  the  1992  workshop  on  software  reuse,  Mark  Simos  presented  work  towards  an  industry-wide
  378. consensus  reuse  process  model  [9].  The  work  presented  here  has  been  more  specific  than  his  in
  379. certain aspects.  This isb ecause itreflects the concerns of our member companies.  He envisioned
  380. a domain-independent reuse process model that would be applicable in government,  commercial,
  381. and public-domain organizations. Our needs are not quite so general; thus we are able to define a
  382. reuse process tailored to the commercial and government worlds, and incorporating domain-specific
  383. enhancements where helpful.
  384.  
  385.  
  386. Our model is also broader than Simos' in some areas. For instance, he proposed that the process
  387. should only address aspects of process that relate to reuse. This is true of opportunistic Synthesis,
  388. where the application engineers dictate the process; it is the responsibility of domainengineers to
  389.  
  390.  
  391.  
  392.                                                          Wartik- 6
  393.  
  394.  
  395. determine those parts of application engineering that can benefit from reuse, and to influence no
  396. others. In leveraged Synthesis, however, reuse drives what application engineering may do, rather
  397. than the other way around. It is therefore hard to see what aspects of the process are not addressed
  398. by reuse.
  399.  
  400.  
  401. This  should  not  be  taken  to  mean  that  Synthesis  is incompatible  with  Simos'  work.  Quite  the
  402. contrary, a process family is a way of organizing elements of a model such that the right process
  403. can be defined for any given situation. Whether families are sufficiently expressiveto allow this is
  404. a topic we are actively pursuing.
  405.  
  406.  
  407.  
  408. References
  409.  
  410.  
  411.  
  412. [1]  B. Joos, "So Much for Motherhood,  Apple Pie and Reuse,"  in Proceedings  of  the  WISR 5th
  413.      Annual Workshop on Software Reuse, (Palo Alto, California), 1992.
  414.  
  415.  
  416. [2]  R. Erickson,  "Software Reuse Adoption:  Some Practical Issues," in Proceedings of the WISR
  417.      5th Annual Workshop on Software Reuse, (Palo Alto, California), 1992.
  418.  
  419.  
  420. [3]  P. Collins, "Considering Corporate Culture in Institutionalizing Reuse," in Proceedings of the
  421.      WISR 5th Annual Workshop on Software Reuse, (Palo Alto, California), 1992.
  422.  
  423.  
  424. [4]  T. Davis, "Toward a Reuse Maturity Model,"in Proceedings of the WISR5th Annual Workshop
  425.      on Software Reuse, (Palo Alto, California), 1992.
  426.  
  427.  
  428. [5]  E. Dijkstra, "Notes on Structured Programming," in Structured Programming (O. Dahl, E. Di-
  429.      jkstra, and C.Hoare, eds.), pp. 1-82, Academic Press, 1972.
  430.  
  431.  
  432. [6]  "Domain Engineering Guidebo ok," Tech. Rep. SPC-92019-CMC, Software Productivity Con-
  433.      sortium, Herndon, Virginia, 1992.
  434.  
  435.  
  436. [7]  S. Wartik and R. Prieto-Diaz, "Criteria for Comparing Reuse-Oriented Domain Analysis Ap-
  437.      proaches,"  InternationalJournal of Software Engineering and Knowledge Engineering, vol. 2,
  438.      no. 3, pp. 403-431, 1992.
  439.  
  440.  
  441. [8]  "Reuse Adoption Guideb ook,"Tech. Rep. SPC-92051-CMC, Software Productivity Consortium,
  442.      Herndon, Virginia, 1992.
  443.  
  444.  
  445. [9]  M. Simos, "Towards and Industry-Wide Consensus Reuse Process Model," in Proceedings of
  446.      the WISR 5th Annual Workshop on Software Reuse, (Palo Alto, California), 1992.
  447.  
  448.  
  449.  
  450. 4      Biography
  451.  
  452.  
  453.  
  454. Steven Wartik is a Senior Member of Technical Staff at the Software Productivity Consortium.
  455. His research interests are in domain analysis,software processes, and the relationship between the
  456. two.  He received his B.S. in 1977 in Computer Science from the Pennsylvania State University,
  457. and his Ph.D. in 1984 from the University of California at Santa Barbara.  From 1981 to 1984,
  458. he worked on the Software Pro ductivity Pro ject at TRW. From 1984 to 1988, he was an assistant
  459. professor of Computer Science at the University ofVirginia.
  460.  
  461.  
  462.  
  463.                                                          Wartik- 7
  464.