Eduardo Santana de Almeida, Silvio Lemos Meira - PowerPoint PPT Presentation

About This Presentation
Title:

Eduardo Santana de Almeida, Silvio Lemos Meira

Description:

Towards an Effective Software Reuse Process Eduardo Santana de Almeida, Silvio Lemos Meira {esa2, srlm}_at_cin.ufpe.br, www.cin.ufpe.br/~esa2 Research s approach ... – PowerPoint PPT presentation

Number of Views:295
Avg rating:3.0/5.0
Slides: 55
Provided by: EduardoA154
Category:

less

Transcript and Presenter's Notes

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

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
Software Reuse Putting the pieces together
Overview
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
8
Essential Activities
Core Asset Development
Product Development
Management
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
Software Reuse Processes
State-of-the-art
11
Software Reuse Processes
  • Two Directions
  • The beginning
  • Domain Engineering
  • End of 99s
  • Software Product Lines

12
Software 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

13
Dracos approach to software
development
Neighbors, 1980
14
Dracos 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 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...

18
Analyze and Model domain activity
Stars, 1993
19
Analyze and Model domain activity
The same in other activities (Develop Software
Architecture, Develop Applications Generators,
Develop software componentes)
Stars, 1993
20
Organization 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

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
  • RSEBs 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 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)
30
The 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

32
Komponentenbasierte 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

35
A 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
36
Product
Product
Product
Product Family
Family Engineering Method
America, 2000
37
Product
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
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

Requirements Elicitation
Interface Specification
  • Application Development

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

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 RiSEs 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. 
Write a Comment
User Comments (0)
About PowerShow.com