software product line engineering (sple) / family ...€¦ · slide 1 software product line...

13
Slide 1 Software Product Line Engineering /Family Development Software Product Line Engineering (SPLE) / Family development separates between Commonalities & variations Maintains stable architecture across a family SPLE / Family development requires Notations for variation (e.g., parameterization) Two (2) development life-cycles (generation of parameterized artifacts; instantiation according to concrete product parameters) Parameterized product line / family development is Mathematically based: parameterization Engineering style: Reuse of common parts, stable architecture Empirical validation: ROI after 2-3 instantiations

Upload: others

Post on 28-Jul-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Product Line Engineering (SPLE) / Family ...€¦ · Slide 1 Software Product Line Engineering /Family Development • Software Product Line Engineering (SPLE) / Family development

Slide 1

Software Product Line Engineering /Family Development

• Software Product Line Engineering (SPLE) / Family development separates between – Commonalities & variations – Maintains stable architecture across a family

• SPLE / Family development requires – Notations for variation (e.g., parameterization) – Two (2) development life-cycles (generation of

parameterized artifacts; instantiation according to concrete product parameters)

• Parameterized product line / family development is – Mathematically based: parameterization – Engineering style: Reuse of common parts, stable

architecture – Empirical validation: ROI after 2-3 instantiations

Page 2: Software Product Line Engineering (SPLE) / Family ...€¦ · Slide 1 Software Product Line Engineering /Family Development • Software Product Line Engineering (SPLE) / Family development

Slide 2

Example: House Automation

House

Control

Software

Requirements: • Control (per room) of

• Temperature

• Air Ventilation

• Light

• Rooms vary wrt. • # Heating elements

• # Windows

• # Lights

• # Rooms is not limited

Page 3: Software Product Line Engineering (SPLE) / Family ...€¦ · Slide 1 Software Product Line Engineering /Family Development • Software Product Line Engineering (SPLE) / Family development

Slide 3

Living Room

Bedroom (Children)

Office Room

Bedroom (Parents)

Bathroom

Lobby

Control Software for a Single Family Home

Page 4: Software Product Line Engineering (SPLE) / Family ...€¦ · Slide 1 Software Product Line Engineering /Family Development • Software Product Line Engineering (SPLE) / Family development

Slide 5

Control SW

Control Software for a Single Family Home

Page 5: Software Product Line Engineering (SPLE) / Family ...€¦ · Slide 1 Software Product Line Engineering /Family Development • Software Product Line Engineering (SPLE) / Family development

Slide 6

Control SW

A

A

A A A A A

A A A A

S

S

S

S S

S S

S

A

A

A A A

A

Control Software for a Single Family Home

Page 6: Software Product Line Engineering (SPLE) / Family ...€¦ · Slide 1 Software Product Line Engineering /Family Development • Software Product Line Engineering (SPLE) / Family development

Slide 7

House

Control

Bedroom (P)

Control

Office Room

Control

Living Room

Control

Bedroom (CH)

Control

Bathroom

Control

Lobby

Control

Tem

per

atu

re-

Co

ntr

ol

Air

Ven

til.

-

Co

ntr

ol

Tem

per

atu

re-

Co

ntr

ol

Air

Ven

til.

-

Co

ntr

ol

Tem

per

atu

re-

Co

ntr

ol

Tem

per

atu

re-

Co

ntr

ol

Tem

per

atu

re-

Co

ntr

ol

Tem

per

atu

re-

Co

ntr

ol

Air

Ven

til.

-

Co

ntr

ol

Air

Ven

til.

-

Co

ntr

ol

Sen

sor

Act

uat

or

Sen

sor

Act

uat

or

Sen

sor

Act

uat

or

1 Heating El.

Act

uat

or

Act

uat

or

Act

uat

or

1 Window

Architecture of the Control SW

Page 7: Software Product Line Engineering (SPLE) / Family ...€¦ · Slide 1 Software Product Line Engineering /Family Development • Software Product Line Engineering (SPLE) / Family development

Slide 8

House Control

Room Control

Tem

per

atu

re-

Co

ntr

ol

Air

Ven

tila

tio

n-

Co

ntr

ol

Lig

ht-

con

tro

l

Sen

sor

Act

uat

or

Act

ura

tor

Sen

sor

Act

uat

or

1 1..*

1 0..1

1 0..1

1 0..1

1

1..*

Generic Parameters: • HouseControl(N)

• RoomControl(T, AV, LI)

• TemperatureControl(S, A)

• AirVentilationControl(A)

• LightControl(S, A)

• Sensor(F)

• Actuator(F)

1 1..*

1 1..*

1 1..*

1 1..*

Generic Software Architecture

for House Control Software

Page 8: Software Product Line Engineering (SPLE) / Family ...€¦ · Slide 1 Software Product Line Engineering /Family Development • Software Product Line Engineering (SPLE) / Family development

Slide 9

House: N=6 LivingRoom: T = 1, AV = 1, LI = 0 TemperatureControl: S = 3, A = 3 AirVentilationControl: A = 3 Bedroom(CH): T = 1, AV = 1, LI = 0 TemperatureControl: S = 1, A = 2 AirVentilationControl: A = 1 OfficeRoom: T = 1, AV = 1, LI = 0 TemperatureControl: S = 1, A = 2 AirVentilationControl: A = 1 Bedroom(P): T = 1, AV = 1, LI = 0 TemperatureControl: S = 1, A = 2 AirVentilationControl: A = 1

Bathroom: T = 1, AV = 0, LI = 0

TemperatureControl: S = 1, A = 1

Lobby: T = 1, AV = 0, LI = 0

TemperatureControl: S = 1, A = 1

Instantiation of the generic Architecture

Page 9: Software Product Line Engineering (SPLE) / Family ...€¦ · Slide 1 Software Product Line Engineering /Family Development • Software Product Line Engineering (SPLE) / Family development

Slide 10

• Requirements: – Collect measurements ti from all temperature

sensors within one room

– Compute average value

t1+t2+t3+ ·········tn

n

The generic Function „CollectTemperature"

Page 10: Software Product Line Engineering (SPLE) / Family ...€¦ · Slide 1 Software Product Line Engineering /Family Development • Software Product Line Engineering (SPLE) / Family development

Slide 11

CollectTemperature(int, String, String,..) { float CollectTemperature () { String[$1] S; int i; for i=1 to $1 { S[i]=$(i+1); }; int k; float t=0; for k=1 to $1 { t=t+Measure(S[k]) }; t=t/$1; return t; } }

The generic Function „CollectTemperature

Page 11: Software Product Line Engineering (SPLE) / Family ...€¦ · Slide 1 Software Product Line Engineering /Family Development • Software Product Line Engineering (SPLE) / Family development

Slide 12

CollectTemperature

(3,"Sensor1","Sensor2","Sensor3");

Float CollectTemperature () {

String[3] S;

S[1]="Sensor1";

S[2]="Sensor2";

S[3]="Sensor3";

int k;

float t=0;

for k=1 to 3 { t=t+Measure(S[k]) };

t=t/3;

return t; }

Instantiation of the generic Function

„CollectTemperature"

Page 12: Software Product Line Engineering (SPLE) / Family ...€¦ · Slide 1 Software Product Line Engineering /Family Development • Software Product Line Engineering (SPLE) / Family development

Slide 13

Domain

Product Line Engineering (2 development processes)

Family/Domain Engineering

Product Line Artifact Base

Feed

back

Documentation

Identification

Classification Evolution

Coordination

Evaluation

Integration

Adaptation

Application Engineering

Product Product Requirements

Requirements C

Requirements B

Product

Requirements A

Domain

Product Line Infrastructure

Page 13: Software Product Line Engineering (SPLE) / Family ...€¦ · Slide 1 Software Product Line Engineering /Family Development • Software Product Line Engineering (SPLE) / Family development

Slide 14

Development Efforts (ROI)

# Delivered

System 1 2 3 4 5 6

Effort

Single

System

Investment

PL Instance

Single System

Development

Product Line

Approach

Rule of thumb: Savings begin between 2nd and 3rd product.

Rule of thumb: Investment ranges between development efforts for 1 and 2 systems.