Upload
clarence-arnold
View
218
Download
3
Tags:
Embed Size (px)
Citation preview
Introducing Software Product
Lines (SPL)Silvio Romero de Lemos Meira Eduardo Santana de Almeida
Previous Classes
Software Reuse
Domain Engineering
Component-Based Development
Product Lines
Overview
Success and Failure Factors
Myths
Inibitors
Overview
Steps
Scoping
Elements
Overview
Origins
Concepts
Elements
Overview
Concepts
Steps
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
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
Small-Grained Reuse
• Reuse of pieces of code– Algorithms, modules, objects, components
• Company Libraries– Poor documentation– Ineficient search mechanisms
• Opportunistic reuse• Software Product Line
– Reuse is planned, comprehensive, and enabled
• Asset base– Requirements, domain models, architecture, test
cases.....
Single-System Development with
Reuse
• Software Product Line– Assets designed for reuse– Product line is treated as a whole
Just Component-Based Development
• Products in product lines are composed of components, however:– Product-Line Architecture– Production Plan– Technical and Organizational Management
Others
• Reconfigurable Architecture– Variability Points
• Release and versions of Single Products– Previous versions
Organizational Benefits
• To achieve large-scale productivity gains• To improve time-to-market• To maintain market presence• To improve product quality• To increase customer satisfaction• To achieve reuse goals• To enable mass customization
Product Line asset repository Benefits
• Requirements
• Architecture
• Components
• Modeling and Analysis
• Testing
• Planning
Essential Activities
Management
Core Asset Development
Product Development
Domain Engineering Application Engineering
Product Line Scope
• Product Line scope is a description of the products, that will constitute the product line or that the product line is capable of including
• Fundamental activity {Scoping}
• Commonality and Variability
• Iterative process
Core assets
• Core assets are the basis for production of products in the product line
• Core assets– Architecture {scope, styles, patterns, and
frameworks}– Components– Test plans, Test cases– Documentation– Domain models– Requirements– Commercial off-the-shelf (COTS) components
Production Plan
• A production plan describes how the products are produced from the core assets {reuser’s guide}
• A Set of attached process {with the glue}
• Production Plan describes:– Tools– Metrics, Metric Plan
Management
• Critical role in the successful fielding of a product line
• Technical – Core asset development– Product development
• Organizational– Training– Funding– Risks
References
• [Clements, 2002] P. Clements., L. Northrop., Software Product Lines: Practices and Patterns, Addison-Wesley, 2002.
• [SEI, 2000] L. Northrop., SEI’s Software Product Line Tenets, IEEE Software, July/August, Vol. 19, No 04, 2002.