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

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

Jan 03, 2016

Download

Documents

Clarence Arnold
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.

Introducing Software Product

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

[email protected]

[email protected]

Page 2: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.

Recent area

2002

Page 3: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.

Evolution

1960subroutines

1970modules

1980objects

1990components

2000SPL

Page 4: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.
Page 5: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.
Page 6: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.
Page 7: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.
Page 8: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.
Page 9: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.

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

Page 10: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.

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

Page 11: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.

Essential Factors

• Investment

• Planning

• Direction

• Business Strategy

Management

Page 12: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.

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

Page 13: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.

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.....

Page 14: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.

Single-System Development with

Reuse

• Software Product Line– Assets designed for reuse– Product line is treated as a whole

Page 15: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.

Just Component-Based Development

• Products in product lines are composed of components, however:– Product-Line Architecture– Production Plan– Technical and Organizational Management

Page 16: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.

Others

• Reconfigurable Architecture– Variability Points

• Release and versions of Single Products– Previous versions

Page 17: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.

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

Page 18: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.

Product Line asset repository Benefits

• Requirements

• Architecture

• Components

• Modeling and Analysis

• Testing

• Planning

Page 19: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.

Essential Activities

Management

Core Asset Development

Product Development

Domain Engineering Application Engineering

Page 20: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.

Core Asset Development

Management

Core Asset Development

Page 21: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.

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

Page 22: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.

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

Page 23: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.

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

Page 24: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.

Product Development

ProductDevelopment

Management

Page 25: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.

Management

• Critical role in the successful fielding of a product line

• Technical – Core asset development– Product development

• Organizational– Training– Funding– Risks

Page 26: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.

CBD

Rules

DE

Costs

Cultural

SPL

Page 27: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.

Questions ?

Page 28: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.

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.

Page 29: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.

Software Reuse Environment: Discussion

Page 30: Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br.