Title: Eduardo Santana de Almeida, Silvio Lemos Meira
1 Towards an Effective Software Reuse Process
Eduardo Santana de Almeida, Silvio Lemos
Meira esa2, srlm_at_cin.ufpe.br,
www.cin.ufpe.br/esa2
2 Researchs 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
3Related 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 Software Reuse Putting the pieces together
Overview
5Evolution
1960 subroutines
1970 modules
1980 objects
1990 components
2000 SPL
6Domain 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
7Software Product Line
8Essential Activities
Core Asset Development
Product Development
Management
Domain Engineering
Application Engineering
9Is 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 Software Reuse Processes
State-of-the-art
11Software Reuse Processes
- Two Directions
- The beginning
- Domain Engineering
- End of 99s
- Software Product Lines
12Software Construction Using Components
Neighbors, 1980
- Motived by software crisis
- First approach for Domain Engineering
- Generative programming
- Dracos 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
13Dracos approach to software
development
Neighbors, 1980
14Dracos 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 ....
15Reuse-Oriented Software Evolution (ROSE) Stars,
1993
- Developed by Software Technology for Adaptable,
Reliable Systems (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...
18Analyze and Model domain activity
Stars, 1993
19Analyze and Model domain activity
The same in other activities (Develop Software
Architecture, Develop Applications Generators,
Develop software componentes)
Stars, 1993
20Organization Domain Modeling(ODM) Simos, 1996
- Developed by Software Technology for Adaptable,
Reliable Systems (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
21Summary Until 1997
Processes do not define concrete techniques to
modeling and implementation of architecture and
components!!
22Reuse-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
- RSEBs extension
- Integration between FODA and RSEB
24Feature-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...
25The Process
26- Key aspects
- Development for and with reuse
- Domain analysis well explored
- Drawbacks
- Specification, Design, Implementation, Packing of
components - Application development few explored
27Summary Until 1998
Processes related to Domain Engineering
28Product 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 interpretatio
n 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)
30The Process Bayer, 1999
Customizing
PuLSE Initialization
PL Infr. Evol. Mang.
Scoping
PL Infrastructure Construction
Modeling
Architecting
PL Infrastructure Usage
Instantiating
Evolving Mgmt.
Maturity Scale
Organization Issues
Project Entry Points
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
32Komponentenbasierte Anwendungsentwicklung
(KobrA)Atkinson, 2000
- Several software engineering techniques
- Frameworks, architecture, cbd, spl
- PuLSEs 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
- UMLs use activity, object, statechart...diagram
s - Komponent
- Specification external properties what
- Realization internal properties how
34- Gaps
- Domain analysis in large scale
- Domain architecture
- Variability decision model
35A Component-Oriented Platform Architecting Method
Family for Product Family
Engineering (CoPAM) America, 2000
Product
Product
Product
Product Engineering Method
Product Engineering Method
Product Engineering Method
Product Engineering Method Family
America, 2000
36Product
Product
Product
Product Family
Family Engineering Method
America, 2000
37Product
Product
Product
Product Family
Product Family
Product Family
Family Engineering Method
Family Engineering Method
Family Engineering Method
Family Engineering Method Family
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
- Authors experience
- Development for and with reuse
- Platform engineering and Product engineering
- Very general
Step Result
Defining the process Detailed process definition
Informal Domain analysis Business context and scope
Requirements specification Use cases
Analysis Analysis object model
Conceptual architecting Reference architecture
Defining the product family Precise family definitions
Family architecting Products family architecture
Support and supervision Integrated and targeted products
America, 2000
40The 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
Requirements Elicitation
Interface Specification
Implementation
Test Profiling
Identify Components
Compose Components
Documentation Release
Query Components
Select
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
43Summary
44The framework Almeida, 2004
45Questions
- 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
48Requirements initial version
- Development for reuse
- Domain analysis
- Planing
- Scoping
- Modeling
- Domain design
- Design architecture
- Identification, Specification, Design
components - Architecture evaluation, quality attributes,
documentation
49Requirements initial version
- Domain implementation
- Implementation, Packing, Variablity
- Development with reuse
- Traceability
- Cost Models
- Metrics
- Reengineering
- Support Environment
50Future Work RiSEs Process
- Write a paper
- Towards an efficient software reuse process
- History
- Questions
- Requirements
51References
- 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.