introducing software product lines (spl) silvio romero de lemos meira eduardo santana de almeida...

30
Introducing oftware Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida [email protected] [email protected]

Upload: clarence-arnold

Post on 03-Jan-2016

216 views

Category:

Documents


3 download

TRANSCRIPT

Introducing Software Product

Lines (SPL)Silvio Romero de Lemos Meira Eduardo Santana de Almeida

[email protected]

[email protected]

Recent area

2002

Evolution

1960subroutines

1970modules

1980objects

1990components

2000SPL

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

Essential Factors

• Investment

• Planning

• Direction

• Business Strategy

Management

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

Core Asset Development

Management

Core Asset Development

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

Product Development

ProductDevelopment

Management

Management

• Critical role in the successful fielding of a product line

• Technical – Core asset development– Product development

• Organizational– Training– Funding– Risks

CBD

Rules

DE

Costs

Cultural

SPL

Questions ?

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.

Software Reuse Environment: Discussion