software product line engineering (sple) / family ...€¦ · slide 1 software product line...
TRANSCRIPT
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
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
Slide 3
Living Room
Bedroom (Children)
Office Room
Bedroom (Parents)
Bathroom
Lobby
Control Software for a Single Family Home
Slide 5
Control SW
Control Software for a Single Family Home
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
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
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
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
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"
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
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"
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
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.