Title: Introducing%20%20%20Software%20Product%20Lines%20(SPL)
1 Introducing Software Product Lines (SPL)
- Silvio Romero de Lemos Meira Eduardo Santana de
Almeida - silvio_at_cesar.org.br
- esa2_at_cin.ufpe.br
2Recent area
2002
3Evolution
1960 subroutines
1970 modules
1980 objects
1990 components
2000 SPL
4(No Transcript)
5(No Transcript)
6(No Transcript)
7(No Transcript)
8(No Transcript)
9Previous Classes
Overview Concepts Steps
Product Lines
Overview Origins Concepts Elements
Component-Based Development
Overview Steps Scoping Elements
Domain Engineering
Overview Success and Failure Factors Myths Inibito
rs
Software Reuse
10Software 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
11Essential Factors
- Investment
- Planning
- Direction
- Business Strategy
Management
12Is Product Lines a new approach?
- Small-Grained Reuse
- Single-System Development
with Reuse - Component-Based
Development - Reconfigurable Architecture
- Release and versions of
Single Products
13Small-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.....
14Single-System Development
with Reuse
- Software Product Line
- Assets designed for reuse
- Product line is treated as a whole
15Just Component-Based Development
- Products in product lines are composed of
components, however - Product-Line Architecture
- Production Plan
- Technical and Organizational Management
16Others
- Reconfigurable Architecture
- Variability Points
- Release and versions of
Single Products - Previous versions
17Organizational 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
18Product Line asset repository Benefits
- Requirements
- Architecture
- Components
- Modeling and Analysis
- Testing
- Planning
19Essential Activities
Core Asset Development
Product Development
Management
Domain Engineering
Application Engineering
20Core Asset Development
Core Asset Development
Management
21Product 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
22Core 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
23Production Plan
- A production plan describes how the products are
produced from the core assets reusers guide - A Set of attached process with the glue
- Production Plan describes
- Tools
- Metrics, Metric Plan
24Product Development
Product Development
Management
25Management
- Critical role in the successful fielding of a
product line - Technical
- Core asset development
- Product development
- Organizational
- Training
- Funding
- Risks
26SPL
Cultural
Costs
DE
Rules
CBD
27Questions ?
28References
- Clements, 2002 P. Clements., L. Northrop.,
Software Product Lines Practices and Patterns,
Addison-Wesley, 2002. - SEI, 2000 L. Northrop., SEIs Software Product
Line Tenets, IEEE Software, July/August, Vol. 19,
No 04, 2002.
29Software Reuse Environment Discussion
30(No Transcript)