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 / mayobre.ascii < prev    next >
Text File  |  1993-10-19  |  22KB  |  435 lines

  1.  
  2.  
  3.  
  4.  
  5. Maximizing  Reuse  with  an  Evolution  Oriented  Domain  Engineering
  6.  
  7.  
  8.  
  9.                                                   Guillermo Mayobre
  10.  
  11.  
  12.  
  13.                                                     Hewlett Packard
  14.  
  15.                                             Grenoble Networks Division
  16.  
  17.                                               5, Ave Raymond Chanas
  18.  
  19.                                              38053 Grenoble CEDEX 9
  20.  
  21.                                                           France
  22.  
  23.                                      Email: gm@hpgntol1.grenoble.hp.com
  24.  
  25.  
  26.  
  27.                                                          Abstract
  28.  
  29.  
  30.            Software development on the context of domain of application (domain fo cussed software
  31.        development) may be seen as evolutionary development weresoftware representing core domain
  32.        concepts are extended/adapted to meet new product requirements.  On such a context, man-
  33.        aging the evolution of existing software is key to keep development costs under control.  An
  34.        evolution oriented domain engineering including a domain analysis phase with special focus on
  35.        the identification/prediction and characterization of the variability,  provides a framework to
  36.        successfully master the evolution of software.
  37.            This  paper  summarizes  some  of  the  results  carried  out  on  the  context  of  the  European
  38.        Research project PROTEUS (ESPRIT project 6086), together with some practical results from
  39.        the software reuse program at the Hewlett Packard GrenobleNetworks Division.
  40.  
  41.  
  42.        Keywords:  Domain, variant, invariant, impact analysis, evolutiveness, adaptive, cohesiveness
  43.        with respect to variability, model predictability, mo del coverage, taxonomy of variability, spe-
  44.        cialization attribute, factors of variability.
  45.  
  46.  
  47.  
  48.                                                         Mayobre- 1
  49.  
  50.  
  51. 1      Background
  52.  
  53.  
  54.  
  55. Domain oriented product development is today one of the prevalent ways of developing products.
  56. Corporations, companies, must of the organizations are almost organizedaround product lines or
  57. domains of applications. Simply because this is the most natural way of centralizing, capitalizing
  58. and maximizing the reuse of knowledge. Naturally the solution space corresponding to this domain
  59. oriented organization of the problem space is also domain oriented.
  60.  
  61.  
  62. Applications of the domain represents specific solutions to the problemspace.  They are usually built
  63. on an incremental manner, evolving from the existing software. A part of their software represents
  64. core  functionality  of  the  domain, usually  shared  between  several  applications,  and  another  part
  65. represents specific functionality.
  66.  
  67.  
  68. What is important, is to abstract, from those specific solutions, generic specifications to derivate
  69. reusable, generic, highly evolutive,solutions to be able to implement new requirements/functionality
  70. within the domain at the lowest possible cost.
  71.  
  72.  
  73. Up to now, most of the existing domain analysis approaches aim at preparing reuse by focussing
  74. on the identification of the common, invariant parts of the systems in the domain.  The approach
  75. presented in this paper puts a strong emphasis on the identification/prediction and characterization
  76. of the variability, essential to master evolution. (Mechanisms dedicated to the identification of the
  77. invariant part are not describ ed here, they are based on the common metho dological framework
  78. that underlies current methods).
  79.  
  80.  
  81.  
  82. 2      Position
  83.  
  84.  
  85.  
  86. 2.1     Classifying Functionality
  87.  
  88.  
  89.  
  90. Functionality involved in the development of new systems may be classified in two categories.:  In-
  91. variant and Variant. [1 ] Invariant functionality is the set of components or components fragments
  92. that are used without changes. It provides the kernel of functionality around which new systems
  93. are built.  By definition invariant functionality cannot create new systems since it lacks the cus-
  94. tomization needed to meet new requirements.  Variant functionality is the set new functionality
  95. that must be added/changed to customize invariant components.  It provides novel functionality
  96. to address new needs.  On domain focussed software development, invariant functionality usually
  97. represents domain commonalities, core functionality of the domain, that are reproduced from one
  98. application to another. Variant functionality is usually added or replaced in an incremental manner
  99. and represents a small percentage of the total implemented functionality of the system.  This way
  100. of development is usually called an incremental evolutionary software development process.
  101.  
  102.  
  103. An adaptive software development strategy is extremely well adapted to be used in this context.
  104. Such a strategy uses large frame structures as invariants (supporting the invariant functionality)
  105. and restricts variability to low level isolated locations within the overall structure. As it attempts
  106. to keep most of the overall structure invariant, adaptive strategy helps to keep development costs
  107. under control when reusing or leveraging invariant functionality from one existing system to the
  108. new one.  However, because it also tend to be application specific and relatively inflexible, it may
  109. burden the cost of addition of variantfunctionality, increasing the overall costs of development of
  110. new systems.
  111.  
  112.  
  113.  
  114.                                                         Mayobre- 2
  115.  
  116.  
  117. To  avoid  this  situation  and  minimize  the  costs  of  addition  of  variant  functionality  we  need  to
  118. add flexibility to those selected locations within the overall structure where variant functionality
  119. is to be plugged.  In other words, the key point to master evolutionary software development is
  120. the  creation  of  an  evolution  infrastructure  (set  of  metho ds, tools  and  operating  practices)  that
  121. minimizes both, the cost of reusing/leveraging invariant functionality and the cost of addition of
  122. variant functionality.  Methods and tools are those involved in the domain engineering activity. By
  123. operating practices we understood the set of well known rules and mechanisms that allow to obtain
  124. results on a systematic and repeatable way.
  125.  
  126.  
  127.  
  128. 2.2     The Evolution Oriented Domain Engineering
  129.  
  130.  
  131.  
  132. It consist basically on three main activities:
  133.  
  134.  
  135.  
  136.     1. Evolution specification,
  137.  
  138.     2. Evolution control,
  139.  
  140.     3. Instance implementation.
  141.  
  142.  
  143.  
  144. The  evolution  specification  activity  consists  on  the  domain  analysis,  the  domain  modeling  and
  145. the domain architectural design processes. We made the distinction between the domain analysis
  146. process  referring  to  the  activities  of  collecting  and  classifying  data, and  the  domain  modelling
  147. process as referring to the design of a formal structure for the descriptions. The combined results
  148. of those activities are the domain specifications model, and the taxonomy of domain variability.
  149. By domain specifications model we understood the definition of entities, operations, relationships
  150. and events that abstracts domain commonalities andvariances across the systems, together with a
  151. classification of them. [2].
  152.  
  153.  
  154. The result of the architectural design activity isthe domain architectural model that represents
  155. the generic architecture (or set of architectures)of the domain from where specific instances are
  156. derived.  The contribution of our approach is that a particular emphasis is put on the identifica-
  157. tion/prediction and characterization of variability, as we consider it is crucial to specify evolution.
  158. The taxonomy of domain variability is used to encode variance on the model through the special-
  159. ization attributes.  Each variance is represented by a set of different values of the specialization
  160. attributes. An instance (specific application of the domain) may be obtained by assigning a vector
  161. of values to the specialization attributes.
  162.  
  163.  
  164. The evolution control activity characterizes the evolution induced by a new requirement according
  165. to a taxonomy of variability.  In that activity, the new requirement is first translated into a set of
  166. specialization attributes.  (i.e.  on the network management domain of application, extending the
  167. management to support a new type of device, may impact specialization attributeslike:  manage-
  168. ment protocol, buffer management subsystem, line throughput performance,...) Then, a vector of
  169. values is assigned to the identified specialization attributes characterizing the instance to be im-
  170. plemented.  (i.e.  associates values to the already identified specialization attributes:  management
  171. protocol = CMIP, buffer management subsystem = class 4,  line throughput performance =800
  172. Mbit/sec,  ...  )  Finally,  if  needed,  mo dels (domain  specification  and  domain  architectural)  and
  173. taxonomy of variability areup dated toinclude un-predicted, partially predicted or predicted and
  174. partially  implemented  variances.  Note  that  this  last op eration is  done  only  if  the  evaluation  of
  175. benefits induced by the modifications appears to be greater than the costs of updating.
  176.  
  177.  
  178.  
  179.                                                         Mayobre- 3
  180.  
  181.  
  182. The instance implementation activity, is resp onsible for the implementation of the specific appli-
  183. cation to meet the new requirement. It extracts from the domain architectural model the specific
  184. architecture  of  the  application  to  be  implemented, identified  in  the  previous  step  by  the  set  of
  185. values assigned to the specialization attributes, and gets the corresponding specific design. This
  186. specific design is generally incomplete.  It is composed of an implemented part representing the
  187. already implemented core functionality of the domain,  and a not implemented part representing
  188. the  not  yet  implemented  core  functionality  of  the  domain  and  the  not  yet  implemented  variant
  189. functionality corresponding to the variability induced by the new requirement.
  190.  
  191.  
  192. According  to  this  situation, an  implementation  strategy  is  defined  that  may  be  summarized  as
  193. follows:
  194.  
  195.  
  196.  
  197.     fflreuse already implemented large frames of software, corresponding to the invariant function-
  198.        ality, involved in the implementation of this specific instance,
  199.  
  200.     ffldevelop reusable software corresponding to the not yet implemented core functionality (typ-
  201.        ically by using a classical engineering for reuse approach, supported by the existing domain
  202.        models), and
  203.  
  204.     fflimplement specific variability maximizing the external reuse level. At this stage, a classical
  205.        Design With Reuse approach should be used.  Components to be reused may come for the
  206.        software associated to the domain of application, from others domains or from general purpose
  207.        libraries.
  208.  
  209.  
  210.  
  211. 2.3     Identifying/Predicting and Characterizing Variability
  212.  
  213.  
  214.  
  215. The identification/prediction and characterizationof variability are key mechanisms of the evolution
  216. oriented domain engineering process.
  217.  
  218.  
  219. Identification/Prediction deals with evaluating factors of variability that influences variations in
  220. requirements within the domain of application. Among the most important are:
  221.  
  222.  
  223.  
  224. Market characterization              :  evolution  and  potential  for  expansion.   Variations  in  functionality
  225.        are  mainly  induced  by  market  trends  and  market  opportunities  on  mature  domains, and
  226.        by customer requirements on immature or new domains.  Market expansion may also be a
  227.        factor inducing changes in requirements: a growing market may result on a more competitive
  228.        environment  were  the  reduction  of  implementation  costs  of  already existing  functionality
  229.        may conduct to changes on requirements (changes in hardware platforms, p erformances ...).
  230.        Market  analysis  and  customer  characterization  (of  representative  customers)  are  valuable
  231.        mechanisms to predict changes/evolutions in functionality.
  232.  
  233. Technology evolution             : Provides information on the number of instances that may be reused
  234.        without any technology change and/or the level of abstraction required by the descriptions
  235.        on the domain models to be technology independent.
  236.  
  237. Level of standardization             :  Is  at  the  inverse  of  the  two  precedent  a  factor  of  stability.  The
  238.        highest the level the lower the variability.  It may b e used to isolate areas of the domain were
  239.        the evolution will be none, a few or at least easily predicted. Those areas represents kernels
  240.        of stable functionality around which variability mayb e articulated.
  241.  
  242.  
  243.  
  244. The taxonomy of variabilityresults from the classification of variations identified during the evalu-
  245. ation of factors of variability.  To each of the elements of the taxonomy,a factor of risk is associated,
  246.  
  247.  
  248.                                                         Mayobre- 4
  249.  
  250.  
  251. that evaluates its probability of occurrence. During the characterization, each of the elements of
  252. the taxonomy of variabilityis mapp ed to the set of corresponding specification attributes in the
  253. domain models.  As a result, an internal variability map associating a level of variability to each
  254. specialization  attribute  and  risk  of  occurrence  to  each  of  the  instances of  the  specialization  at-
  255. tribute is obtained. The level of variability of a specialization attribute is the numb erof different
  256. instances (represented by different values) associated to it.  The risk of occurrence of an instance
  257. of the specialization attribute is the level of confidence associated to the prediction of occurrence
  258. of that instance.
  259.  
  260.  
  261. What  is  extremely  important  is  to  build/modify  the  models, according  to  the  internal  variabil-
  262. ity  map, to  isolate  specialization  attributes  with  a  high  level  of  variability, group  specialization
  263. attributes with low level of variability and define a strategy of implementation. The level of vari-
  264. ability provides useful information to:
  265.  
  266.  
  267.  
  268.     fflIsolate  specialization  attributes  with  high  level  of  variability  into  separate  locations,  what
  269.        tends to minimize the cost of implementation of variability.  The property of restricting high
  270.        level of variability to isolated locations within the overall structure is what we call the model
  271.        cohesiveness against variability.
  272.  
  273.     fflGroup specialization attributes with low level of variability,  what tendsto increase the in-
  274.        variants areas of the model, defined when identifying common/stables parts of the systems
  275.        in the domain,  and by the way, contributes to maximize the reuse of large frames of soft-
  276.        ware between applications. The risk of occurrence of an instance of a specialization attribute
  277.        provides information to establish a strategy of implementation:
  278.  
  279.  
  280.            -  the higher the level of confidenceasso ciatedto a prediction of variability, the lower the
  281.               level of abstraction in the specification ofthe corresponding software.
  282.            -  the lower the level of confidence associated to a prediction of variability, the higher the
  283.               level of abstraction in the specification ofthe corresponding software.
  284.  
  285.     fflPrediction of occurence of variability in the time provides complementaryinformation for the
  286.        implementation schedule.
  287.  
  288.  
  289.  
  290. 3      Comparison
  291.  
  292.  
  293.  
  294. 3.1     Modeling and Representing Domain Concepts
  295.  
  296.  
  297.  
  298. It is extremely recommended to adopt an object oriented approach to build domain models.  Essen-
  299. tially because the concepts of abstraction/specialization (to capture commonalities and encapsulate
  300. variances), aggregation/decomposition (to master the complexity) and differentiation,  critical to
  301. represent domain knowledge, are inherent to the OO representation. [3 ]
  302.  
  303.  
  304.  
  305. 3.2     Qualifying Domain Models
  306.  
  307.  
  308.  
  309. The  rules  of  construction  of  the  models  described  above, leads  naturally  to  define  the  following
  310. metrics, to qualify domain models:
  311.  
  312.  
  313.  
  314.                                                         Mayobre- 5
  315.  
  316.  
  317. Model coverage           : Is the ability to provide reusable software measured by the amount of core
  318.        functionality to be implemented by new applications that may be reused from the invariant
  319.        part of the model.
  320.  
  321. Model predictability            : Is the capability to predict/anticipate variance, measured by the cohe-
  322.        siveness (ability to locate variability on isolated areas of the model) and the costs of devel-
  323.        opment anticipated by the strategy of implementation.
  324.  
  325.  
  326.  
  327. The already defined metrics involves lower level metrics such as software development pro ductivity
  328. and component and system costs of reusable software  [4 , 5 , 6 ]. Note that the model coverage and
  329. model predictability, inderectly measures , the cost benefits of reusing invariants and the cost of
  330. implementing variant, both key costs of the evolutionary software development.
  331.  
  332.  
  333. A natural question rises here: what if for a new un-predicted variant, models show a poor coverage
  334. and a bad predictability?  The first point to verify,  is if the variant is outside of the predefined
  335. domain boundaries.  If it is not the case and the variant is not an isolated example,  but rather
  336. than that, it predicts a set of variabilities of the same type to arrive, domain models should be
  337. re-considered and a new step of domain engineering will probably be necessary. [7 ]
  338.  
  339.  
  340.  
  341. 3.3     Conclusion and Further Investigation Directions
  342.  
  343.  
  344.  
  345. Up to now at Hewlett Packard Grenoble Networks Division we mostly experienced two approaches
  346. of  reuse, the  a-posteriori  (or  reverse  engineering)  and  the  a-priori  (or  domain  reuse).  They  are
  347. essentially different on the process and results.
  348.  
  349.  
  350. The a-posteriori approach is simpler, provides immediate return on investment and requires a lower
  351. level of reuse culture on the organization. As a drawback,the return on investment is burden by the
  352. adaptation costs induced by the re-engineering of componentsnot initially designed to be reusable.
  353. The a-priori approach is more difficult and risky and requires a higher level of reuse culture of the
  354. organization. But it presents the advantage of providing high return on investment.
  355.  
  356.  
  357. A natural  way  to  introduce  reuse  in  an  organization  is  to  start  with  the  a-posteriori  approach
  358. to build confidence and create success stories and to migrate incrementally to the a-priori as the
  359. culture  on  reuse  increase  and  the  change  is  accepted.  We  are  now  using  both  approaches  and
  360. by  comparison  the  a-priori  approach  is  about  three  times  b etter  in  terms  of  ROI  than  the  a-
  361. posteriori.  However, even in the best cases using an a-priori approach we were able to establish
  362. that the most limitative factor of the ROI are theun-predicted domain variances, that invalidates
  363. domain models by inducing important costs of addition of variant functionality.  And obviously,
  364. the  longer  the  domain  life  cycle  the  higher  the  risk.  We  believe, as  confirmed  by  several  first
  365. results, that an evolutionary software development approach, supported by an evolution oriented
  366. domain engineering, with a special focus on the identification/prediction and characterization of
  367. variability,  really contributes to maximize reuse return on investments on the context of domain
  368. focussed software development.
  369.  
  370.  
  371. Among the further directions of the research are:
  372.  
  373.  
  374.  
  375.     fflenhance  the  mechanisms  of  identification/prediction  and  characterization  of variability  to-
  376.        gether with their formalization,
  377.  
  378.     fflenhance the traceability of variability to increase the accuracy of impact analysis and record
  379.        the evolution knowledge,
  380.  
  381.  
  382.                                                         Mayobre- 6
  383.  
  384.  
  385.     fflprovide appropriate tools to support the traceability of variability (research on the area of
  386.        hypertext based tools),
  387.  
  388.     fflextension/tuning of the reuse economical costs models, used as decisions tools by the intensive
  389.        computation of object oriented productivity metrics involved on them.
  390.  
  391.  
  392.  
  393. Further research activitieswill b e done on the context of the European Research ESPRIT project
  394. PROTEUS, and in close collaboration with Hewlett Packard Corporate Engineering and Hewlett
  395. Packard  Laboratories.  The  areas  of  technology  transfer  are  essentially  Hewlett  Packard  opera-
  396. tional divisions and some European companies member of the PROTEUS consortium.  Domain of
  397. applications were this evolutionary approach is being applied today are Telecommunication and
  398. Datatcommunication Networks, and Aerospace applications.
  399.  
  400.  
  401.  
  402. References
  403.  
  404.  
  405.  
  406. [1]  Barness and Bollinger, "Making Reuse Cost Effective," IEEE Software, January 1991.
  407.  
  408.  
  409. [2]  R.  P.  Diaz  and  G.  Arango,  "Domain  Analysis  and  Software  Modelling,"  in  IEEE Computer
  410.      Society Press Tutorial, IEEE Computer Society Press, 1991.
  411.  
  412.  
  413. [3]  J. Ramb ough and All, Object Oriented Modelling and Design. Prentice-Hall, 1991.
  414.  
  415.  
  416. [4]  D. Balda and D. A. Gustafson, "Cost Estimation Models for the Reuse and Prototype Software
  417.      Development Life Cycle," ACM Sigsoft Software Engineering Notes, vol. 15, p. 42, July 1990.
  418.  
  419.  
  420. [5]  G.  Mayobre,  "Using  Code  Reusability  Analysis  to Identify  Reusable  Components  from  SW
  421.      Related  to  an  Application  Domain,"  in  WISR  1991 Proceedings,  Department  of  Computer
  422.      Science, University of Maine, 1991.
  423.  
  424.  
  425. [6]  Caldeira and Basili, "Identifying and Qualifying Reusable Software Components," IEEE Com-
  426.      puter, February 1991.
  427.  
  428.  
  429. [7]  B.  Boehm, "A  Spiral  Model  of  Software  Development  and  Improvment," IEEE  Computer,
  430.      vol.21, May 1988.
  431.  
  432.  
  433.  
  434.                                                         Mayobre- 7
  435.