Presentation is loading. Please wait.

Presentation is loading. Please wait.

Eduardo Santana de Almeida, Silvio Lemos Meira {esa2, Towards an Effective Software Reuse Process.

Similar presentations


Presentation on theme: "Eduardo Santana de Almeida, Silvio Lemos Meira {esa2, Towards an Effective Software Reuse Process."— Presentation transcript:

1 Eduardo Santana de Almeida, Silvio Lemos Meira {esa2, srlm}@cin.ufpe.br, www.cin.ufpe.br/~esa2 Towards an Effective Software Reuse Process

2 Research’s approach Hypothesis –Software reuse processes present gaps Development for and with reuse Different emphasis …. –Domain analysis… Domain Design….Domain Implementation –Development for –Development with Different trends –Domain Engineering (the begin) –Software Product-Line (currently) Object of study –11 reuse processes – State-of-the-Art Research approach –Analysis of the state-of-the art –Key questions –Requirements for an effective process {draft}

3 Related Works Previous studies –Arango [1994] Domain Analysis Methods –Boertin [2001] Evaluation of Component-Based Development Methods –Stojanovic [2001] A Methodology Framework for Component-Based System Development Support –Matinlassi [2004] Comparison of Software Product Line Architecture Design Methods: COPA, FAST, FORM, KobrA, QUADA Our case: software reuse processes

4 Overview Software Reuse: Putting the pieces together

5 Evolution 1960 subroutines 1970 modules 1980 objects 1990 components 2000 SPL

6 Domain Engineering Domain Engineering (DE) is the activity of collecting, organizing, and storing past experience in building systems or parts of systems in a particular domain in the form of reusable assets, as well as providing an adequate means for reusing these assets when building (i.e., retrieval, qualification, dissemination, adaptation, assembly, and so on) new systems. Steps: –Domain Analysis –Domain Design –Domain Implementation

7 Software Product Line “A software product line is a set of software-intensive systems sharing a common, managed set of features that satisfy the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way. Paul Clements and Linda Northrop, 2002 “A software product line is a set of software-intensive systems sharing a common, managed set of features that satisfy the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way. Paul Clements and Linda Northrop, 2002

8 Essential Activities Management Core Asset Development Product Development Domain Engineering Application Engineering

9 Is Product Lines a new approach? Small-Grained Reuse Single-System Development with Reuse Component-Based Development Reconfigurable Architecture Release and versions of Single Products

10 State-of-the-art Software Reuse Processes

11 Two Directions –The beginning Domain Engineering –End of 99’s Software Product Lines

12 Software Construction Using Components [Neighbors, 1980] Motived by software crisis First approach for Domain Engineering Generative programming Draco’s approach: –Domain Analysis –Domain Language {Domain design} –Software Components Associated to each object Reliable after several uses –Source-to-Source Program Transformation Valid for all implementations of objects

13 Draco’s approach to software development [Neighbors, 1980]

14 Draco’s approach Key aspects –First Domain Engineering approach –Use of Generative Programming –Use of components Drawbacks –Hard approach To design domains To use transformations To use the Draco machine –Dificult to apply in the practice currently Domain analysis, scope, architecture....

15 Reuse-Oriented Software Evolution (ROSE) [Stars, 1993] Developed by S oftware T echnology for A daptable, R eliable S ystems (STARS) program –Evolution of a previous work - Conceptual Framework for Reuse Processes (CFRP) –Two processes: Reuse Management and Reuse Engineering –Problem: general framework Motivation –To resolve the gap between the high-level, general framework and the detailed, prescriptive methods

16 Submodels –Organization Management –Domain Engineering –Asset Management –Application Engineering [Stars, 1993]

17 Key aspects –Organizational issues –Maintenance and evolution {reengineering} –Development for and with reuse –Feedback Drawbacks –Also very general....for example...

18 Analyze and Model domain activity [Stars, 1993]

19 Analyze and Model domain activity [Stars, 1993] The same in other activities (Develop Software Architecture, Develop Applications Generators, Develop software componentes)

20 Organization Domain Modeling (ODM) [Simos, 1996] Developed by S oftware T echnology for A daptable, R eliable S ystems (STARS) program –Process Model to Domain Engineering {development with reuse is not considered!!} –General Process (509 pp.) –Cases: HP, Lockheed Martin, Rolls-Royce, Logicon –Three phases Plan Domain Model Domain Engineer Asset Base

21 Summary – Until 1997 Processes do not define concrete techniques to modeling and implementation of architecture and components!!

22 Reuse-driven Software Engineering Business (RSEB) [Jacobson, 1997] Developed by software development experts {Jacobson, Griss, Jonsson} OO method based on: –UML notation –OO Software Engineering Goal –To facilitate the development of reusable object- oriented software Development for and with reuse –Iterative –Use-case centric

23 Key aspects –Variability –Traceability Drawbacks –Lack of Domain Analysis Domain scoping Feature Modeling FeatuRSEB [Griss, 1998] –RSEB’s extension –Integration between FODA and RSEB

24 Feature-Oriented Reuse Method (FORM) [Kang, 1998] FODA extension Thesis there are many attempts to support software reuse (two directions) exploratory research theoretical research... there are few efforts to develop systematic methods for discovering commonality and using this information to engineer software for reuse...

25 The Process

26 Key aspects –Development for and with reuse –Domain analysis well explored Drawbacks –Specification, Design, Implementation, Packing of components –Application development few explored

27 Summary – Until 1998 Processes related to Domain Engineering

28 Product Line Software Engineering (PuLSE) [Bayer, 1999] Motivation –Domain engineering problems Are methods effective in the practice? Domain x Products {domain litle economic basis} Lack of operational guidance –Lack of methodologies to develop and deploy software product line

29 ...existing methods have been either not flexible enough to meet the needs of various industrial situations, or they have been too vague, not applicable without strong additional interpretation and support. A flexible method that can be customized to support various enterprise situations with enough guidance and support is needed....(Bayer, pp. 122)... a lot of work in the literature has focused on the organizational aspect and context for setting up a reusable infrastructure. This body of work often takes for granted that the technological problems of how to scope, model and architect the infrastructure have been solved. We do not think this is the case and hence feel strongly that this is the wrong approach.....(Bayer, pp. 122)

30 The Process [Bayer, 1999] PuLSE Initialization PL Infrastructure Construction PL Infrastructure Usage Project Entry Points Maturity ScaleOrganization Issues Customizing Scoping Modeling Architecting Instantiating Evolving & Mgmt. PL Infr. Evol. Mang.

31 Key aspects –Initial direction for software product line development –Development for and with reuse –PuLSE is the result of a bottom-up effort Lessons learned from technology transfer Drawbacks –How to perform the specification, design, implementation of the components? {details about it}

32 Komponentenbasierte Anwendungsentwicklung (KobrA) [Atkinson, 2000] Several software engineering techniques Frameworks, architecture, cbd, spl PuLSE’s extension Difficult to use in small organizations Very general {a lot of artifacts} KobrA Development for and with reuse Ready-to-use customization of PuLSE

33 Two activities Framework engineering Application engineering UML’s use – activity, object, statechart...diagrams Komponent Specification – external properties {what} Realization – internal properties {how}

34 Gaps Domain analysis in large scale Domain architecture Variability {decision model}

35 A Component-Oriented Platform Architecting Method Family for Product Family Engineering (CoPAM) [America, 2000] Product Engineering Method Family Product Engineering Method Product Engineering Method Product Engineering Method [America, 2000]

36 Family Engineering Method Product Family Product [America, 2000]

37 Family Engineering Method Family Family Engineering Method Family Engineering Method Family Engineering Method Product Family Product Family Product Family Product [America, 2000]

38 Common uses: Product families: Consumer electronics professional systems America said:...the reason for this is that such a large population only makes sense if the products have enough in common...and the organization is able to coordinate the marketing, development and related to aspects [America, 2000]

39 Based on RUP, RSEB, PuLSE Author’s experience Development for and with reuse Platform engineering and Product engineering Very general StepResult Defining the processDetailed process definition Informal Domain analysisBusiness context and scope Requirements specificationUse cases AnalysisAnalysis object model Conceptual architectingReference architecture Defining the product familyPrecise family definitions Family architectingProducts family architecture Support and supervisionIntegrated and targeted products [America, 2000]

40 The PECOS Software Process [Winter, 2002] Project between industry and university To enable cbd for embedded systems Motivation Embedded systems Monolithic Platform-dependent Goal To develop families of PECOS devices To reuse them in application development

41 Component-Based Development During application composition Profiling Non-functional informations CPU usage, memory Application Development Identify Components Compose Components Select Query Components Test & Profiling Documentation & Release Requirements Elicitation Interface Specification Implementation

42 Gaps How to perform requirements analysis? How are the contracts specified? How are the components identified? Drawback Lack of development for reuse Component development {analysis, architecture}

43 Summary

44 The framework [Almeida, 2004]

45 Questions Development for reuse How to achieve efficient domain analysis? Planning Scoping Modeling {commonalities, variability} Features x use case Decision model x feature model

46 How to perform domain design? Architecture Specific to a domain {styles, ADL} MDA Service Identification, Specification {OCL, JML}, Design {components} Architecture {quality attributes, documentation, evaluation}

47 How to perform domain implementation? Incremental x Generative Implementation, documentation and packing {components} Variability {implementation}

48 Requirements {initial version} Development for reuse Domain analysis Planing Scoping Modeling Domain design Design architecture Identification, Specification, Design {components} Architecture: evaluation, quality attributes, documentation

49 Requirements {initial version} Domain implementation Implementation, Packing, Variablity Development with reuse Traceability Cost Models Metrics Reengineering Support Environment

50 Future Work – RiSE’s Process Write a paper: -Towards an efficient software reuse process -History -Questions -Requirements

51 References [Neighbors, 1980] J. M. Neighbors, Software Construction Using Components, PhD Thesis, University of California, Irvine, Department of Information and Computer Science, USA, 1980, pp. 75. [STARS, 1993] Software Technology for Adaptable, Reliable Systems (STARS), The Reuse-Oriented Software Evolution (ROSE) Process Model, Technical Report, July, 1993, pp. 143. [Arango, 1994] G. Arango, Domain Analysis Methods, in Software Reusability, W. Schaefer, R. Prieto-Diaz, and M. Matsumoto, Editor. 1994, Ellis Horwood: New York. [Simos, 1996] M. Simos, D. Creps, C. Klingler, L. Levine, D. Allemang, Organization Domain Modeling (ODM) Guidebook Version 2.0, Technical Report, June, 1996, pp. 509. [Jacobson, 1997] I. Jacobson, M. L. Griss, P. Jonsson, Reuse- driven Software Engineering Business (RSEB), Addison-Wesley, 1997, pp. 497.

52 [Griss, 1998] M. L. Griss, J. Favaro, M. d' Alessandro, Integrating Feature Modeling with the RSEB, The Fifty International Conference on Software Reuse (ICSR), IEEE Computer Society, Victoria, Canada, June, 1998, pp. 76-85. [Kang, 1998] K. C. Kang, S. Kim, J. Lee, K. Kim, E. Shin, M. Huh, FORM: A Feature-Oriented Reuse Method with domain-specific reference architectures, Annals of Software Engineering, Vol. 05, 1998, pp. 143-168. [Bayer, 1999] J. Bayer, O. Flege, P. Knauber, R. Laqua, D. Muthig, K. Schmid, T. Widen, J. DeBaud, PuLSE: A Methodology to Develop Software Product Lines, Symposium on Software Reusability (SSR), ACM Press, Los Angeles, USA, May, 1999, pp. 122-131. [America, 2000] P. America, H. Obbink, R. V. Ommering, F. V. D. Linden, CoPAM: A Component-Oriented Platform Architecting Method Family for Product Family Engineering, The First Software Product Line Conference (SPLC), Kluwer International Series in Software Engineering and Computer Science, Denver, Colorado, USA, 2000, pp.15.

53 [Atkinson, 2000] C. Atkinson, J. Bayer, D. Muthig, Component- Based Product Line Development: The KobrA Approach, The First Software Product Line Conference (SPLC), Kluwer International Series in Software Engineering and Computer Science, Denver, Colorado, USA, 2000, pp.19. [Boertin, 2001] N. Boertin, M. Steen, H. Jonkers, Evaluation of Component-Based Development Methods, 6th International Workshop on Evaluation of Modeling Methods in Systems Analysis and Design, in The 13th Conference on Advanced Information Systems Engineering (CAiSE), Interlaken, Switzerland, June,2001. [Stojanovic, 2001] Z. Stojanovic, A. Dahanayake, H. Sol, A Methodology Framework for Component-Based System Development Support, 6th International Workshop on Evaluation of Modeling Methods in Systems Analysis and Design, in The 13th Conference on Advanced Information Systems Engineering (CAiSE), Interlaken, Switzerland, June,2001.

54 [Winter, 2002] M. Winter, C. Zeidler, C. Stich, The PECOS Software Process, Workshop on Component-based Software Development, in the 7th International Conference on Software Reuse (ICSR), Austin, Texas, USA, 2002, pp.07. [Kang, 2002] K. C. Kang, J. Lee, P. Donohoe, Feature- Oriented Product Line Engineering, IEEE Software, Vol. 19, No. 04, July/August, 2002, pp.58-65. Almeida, E, S.; Alvaro, A.; Lucrédio, D.; Garcia, V. C.; Meira, S, R, L. RiSE Project: Towards a Robust Framework for Software Reuse, In the IEEE International Conference on Information Reuse and Integration (IRI), Las Vegas, Nevada, USA. 2004.


Download ppt "Eduardo Santana de Almeida, Silvio Lemos Meira {esa2, Towards an Effective Software Reuse Process."

Similar presentations


Ads by Google