dengzhangminiproject

advertisement
On the design and development
of program families
Presented by:
M. Deng and J. Zhang
4/15/2002
CSE870 Advanced Software Engineering, Spring 2002
Overview
• Objective
– Definition of program families
• A set of programs
– First common features of these programs
– Then variation of each program
• Example: Microsoft Office Family
– Three techniques
• Traditional method: Sequential development method
• Two new methods:
– Stepwise refinement method
– Specification of information hiding modules method
[Parnas76] David Parnas, “On the design and development of program families,”
IEEE Transactions on Software Engineering, SE-2(1), 1-9, 1976.
Overview (cont’d)
• Technique Overview
– Sequential Method
• Features
• Disadvantages
4
6
5
start
0
start point
1
an incomplete program
2
a complete program
3
7
8
Overview (cont’d)
– Stepwise Method Vs. Specification Method
• Features
• Combination
start
0
1
start point
2
3
an incomplete program
6
a complete program
4
5
7
Impact
• Product line
– Definition: a group of products that share a set of
commonalities that meet the requirements of the
market
– CMU/SEI: a Framework of Software Product Line
Practice
– CMU/SEI: 1st Software Product Line Conference
(SPLC1) in 2000
• Information hiding design principle in ObjectOriented programming languages
• And so on
Related 1:
Commonality Analysis
• Objective
– To identify the common features and variations
among family members
• Technique Overview
– FAST (Family-oriented Abstraction, Specification and
Translation) process
– An early step of the FAST process
– Participants:
• Moderator, recorder, family analysis experts
[Weiss98] David Weiss, “Commonality Analysis: A Systematic Process for Defining Families,” in
2nd International Workshop on Development and Evolution of Software Architectures for Product
Families, February 1998.
Related 1 (cont’d)
– Result: Commonality Analysis Document
– Form: to hold a series of meetings
• Five stages:
–
–
–
–
–
Prepare
Plan
Analyze: central part
Quantify
Review
– Applicability:
• Has been practiced in Lucent Technologies
• How it extends Parnas’ work?
– Provide a process
Related 2:
Adaptable Components
• Objective
– One component represents a family of
components
• Technique Overview
– An adaptable component has a group of
parameters of adaptability
[Campbell99] Grady Campbell, “Adaptable Components,” in Proceeding of 21st International
Conference on Software Engineering (ICSE99), ACM, 685-686, 1999.
Related 2 (cont’d)
– Two models of reuse:
• Usual reuse model
– Select from a library of components
– Customize and then construct a new component
– Time-consuming, error-prone
• Adaptable component based reuse model
– Select from the name of adaptable component
– Make the decisions of parameters
• How it extends Parnas’ work?
– A component family
Related 3:
Combining Product Line Engineering with
Options Thinking
• Objective
– To introduce an appropriate economic model to justify the
use of product line approach
• Technique Overview
– Product line approach needs more initial investment
– The DCF Model can be used to justify the use of product line
in cell phone companies
– The DCF is not suitable to justify product line approach in an
evolutionary product
– The BSOP Model is a Model used in stock market to value
the option. It is more suitable to justify an evolutionary
product
[Geppert01] Birgit Geppert and Frank Roessler, “Combining Product Line Engineering with Options
Thinking,” in Proceedings of Product Line Engineering: The Early Steps (PLEES’01), September 2001.
Related 3 (cont’d)
• How it extends Parnas’ work
– Product line is an extension of program
family
– This work introduces an economic model
to justify the use of the product line
Uncited: Multi-Staged Scoping for
Software Product Lines
• Objective
– To propose a scoping method for the product line
approach
• Technique Overview
– Why we need scoping?
– What requirements a sound scoping method
should meet?
– Three components of the proposed scoping
method
• Product line mapping, domain based scoping, feature
based scoping
[Schmid00] Klaus Schmid, “Multi-Staged Scoping for Software Product Lines,” in Proceedings
of Software Product Lines: Economics, Architecture, and Implications, June 2000.
Why it should have cited the
paper
• This paper should have cited Parnas’
paper for the same reason as the
previous paper
– Product line is a industrial interpretation of
program family
– This paper proposes a scoping method in
product line
References
• D. Parnas, “On the design and development of program
families,” IEEE Transactions on Software Engineering, SE-2(1),
1-9, 1976.
• http://www.sei.cmu.edu/plp/product_line_overview.html.
• http://www.sei.cmu.edu/plp/conf/SPLC.html.
• http://www.sei.cmu.edu/plp/framework.html.
• D. Weiss, “Commonality Analysis: A Systematic Process for Defining
Families,” in 2nd International Workshop on Development and
Evolution of Software Architectures for Product Families, February
1998.
• G. Campbell, “Adaptable Components,” in Proceeding of 21st
International Conference on Software Engineering (ICSE99), ACM,
685-686, 1999.
References
• B. Geppert and F. Roessler, “Combining Product
Line Engineering with Options Thinking,” in
Proceedings of Product Line Engineering: The
Early Steps (PLEES’01), September 2001.
• K. Schmid, “Multi-Staged Scoping for Software
Product Lines,” in Proceedings of Software
Product Lines: Economics, Architecture, and
Implications, June 2000.
Download