handling complex configurations in software product lines: a tooled approach
DESCRIPTION
We propose a new approach called SpineFM to handle complex configurations in software product lines. This presentation shows how SpineFM allows to design a SPL and to use it through a flexible derivation process ensuring consistency of user choices.TRANSCRIPT
![Page 1: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/1.jpg)
SPLC’14 - Florence September 2014
Handling Complex Configurations in Software Product Lines:
a Tooled ApproachSimon Urli
Mireille Blay-Fornarino Philippe Collet
I3S Laboratory - University Nice-Sophia Antipolis
1
![Page 2: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/2.jpg)
SPLC’14 - Florence September 2014
SPL for information systems?
2
![Page 3: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/3.jpg)
SPLC’14 - Florence September 2014
Running Example: SmartHome
3
![Page 4: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/4.jpg)
SPLC’14 - Florence September 2014
Running Example: SmartHome
4
![Page 5: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/5.jpg)
SPLC’14 - Florence September 2014
Running Example: SmartHome
5
![Page 6: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/6.jpg)
SPLC’14 - Florence September 2014
Running Example: SmartHome
6
![Page 7: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/7.jpg)
SPLC’14 - Florence September 2014
Running Example: SmartHome
7
Main Room
![Page 8: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/8.jpg)
SPLC’14 - Florence September 2014
Running Example: SmartHome
8
Main Room
![Page 9: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/9.jpg)
SPLC’14 - Florence September 2014
Running Example: SmartHome
9
Main Room
![Page 10: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/10.jpg)
SPLC’14 - Florence September 2014
Running Example: SmartHome
10
Main Room Entrance
![Page 11: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/11.jpg)
SPLC’14 - Florence September 2014
Scenario 1: SimpleFlat
11
home:House
{House}
Keyname:Concept{features}
![Page 12: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/12.jpg)
SPLC’14 - Florence September 2014
Scenario 1: SimpleFlat
12
home:House
{House}
frontDoor:Opening{Opening, Kind, Door, Lock,
Sensors, OpenedState}
Keyname:Concept{features}
![Page 13: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/13.jpg)
SPLC’14 - Florence September 2014
Scenario 1: SimpleFlat
13
home:House
{House}
frontDoor:Opening{Opening, Kind, Door, Lock,
Sensors, OpenedState}
mainRoom:Room
{Room,Sensors,Lightning}
Keyname:Concept{features}
![Page 14: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/14.jpg)
SPLC’14 - Florence September 2014
Scenario 1: SimpleFlat
14
home:House
{House}
frontDoor:Opening{Opening, Kind, Door, Lock,
Sensors, OpenedState}
mainRoom:Room
{Room,Sensors,Lightning}mainRoomWindow:Opening
{Opening, Kind, Window, TintedGlass}
Keyname:Concept{features}
![Page 15: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/15.jpg)
SPLC’14 - Florence September 2014
Scenario 1: SimpleFlat
15
home:House
{House}
frontDoor:Opening{Opening, Kind, Door, Lock,
Sensors, OpenedState}
mainRoom:Room
{Room,Sensors,Lightning}
mainRoomDoor:Opening
{Opening, Kind, Door, Lock}
mainRoomWindow:Opening{Opening, Kind, Window,
TintedGlass}
Keyname:Concept{features}
![Page 16: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/16.jpg)
SPLC’14 - Florence September 2014
Scenario 1: SimpleFlat
16
home:House
{House}
entrance:Room{Room,Sensors,
Presence,Actuators, Locking}
frontDoor:Opening{Opening, Kind, Door, Lock,
Sensors, OpenedState}
mainRoom:Room
{Room,Sensors,Lightning}
mainRoomDoor:Opening
{Opening, Kind, Door, Lock}
mainRoomWindow:Opening{Opening, Kind, Window,
TintedGlass}
Keyname:Concept{features}
![Page 17: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/17.jpg)
SPLC’14 - Florence September 2014
Different configurations...
17
home:House
{House}
entrance:Room
{Room}
frontDoor:Opening
{Opening, Kind, Door}
![Page 18: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/18.jpg)
SPLC’14 - Florence September 2014
Different configurations...
18
home:House
{House}
entrance:Room
{Room}
frontDoor:Opening
{Opening, Kind, Door}
![Page 19: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/19.jpg)
SPLC’14 - Florence September 2014
Different configurations...
19
home:House
{House}
entrance:Room
{Room}
frontDoor:Opening
{Opening, Kind, Door}
![Page 20: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/20.jpg)
SPLC’14 - Florence September 2014
Different configurations...
20
home:House
{House}
entrance:Room
{Room}
frontDoor:Opening
{Opening, Kind, Door}
SecuredHome:House{House, CentralComputer,
SecurityManager}
entrance:Room{Room,Sensors,
Presence,Actuators, Locking, RollerStore}
frontDoor:Opening
{Opening, Kind, Door, Lock, Digital, Sensors, OpenedState}
mainRoom:Room
{Room,Sensors,Lightning,Locking,Actuators,RollerStore, Presence}
mainRoomDoor:Opening
{Opening, Kind, Door, Lock, Sensors, OpenedState}
mainRoomWindow:Opening
{Opening, Kind, Window, TintedGlass, Lock, Sensors,
OpenedState}
![Page 21: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/21.jpg)
SPLC’14 - Florence September 2014
Different configurations...
21
home:House
{House}
entrance:Room
{Room}
frontDoor:Opening
{Opening, Kind, Door}
SecuredHome:House{House, CentralComputer,
SecurityManager}
entrance:Room{Room,Sensors,
Presence,Actuators, Locking, RollerStore}
frontDoor:Opening
{Opening, Kind, Door, Lock, Digital, Sensors, OpenedState}
mainRoom:Room
{Room,Sensors,Lightning,Locking,Actuators,RollerStore, Presence}
mainRoomDoor:Opening
{Opening, Kind, Door, Lock, Sensors, OpenedState}
mainRoomWindow:Opening
{Opening, Kind, Window, TintedGlass, Lock, Sensors,
OpenedState}
![Page 22: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/22.jpg)
SPLC’14 - Florence September 2014
Different configurations...
22
home:House
{House}
entrance:Room
{Room}
frontDoor:Opening
{Opening, Kind, Door}
SecuredHome:House{House, CentralComputer,
SecurityManager}
entrance:Room{Room,Sensors,
Presence,Actuators, Locking, RollerStore}
frontDoor:Opening
{Opening, Kind, Door, Lock, Digital, Sensors, OpenedState}
mainRoom:Room
{Room,Sensors,Lightning,Locking,Actuators,RollerStore, Presence}
mainRoomDoor:Opening
{Opening, Kind, Door, Lock, Sensors, OpenedState}
mainRoomWindow:Opening
{Opening, Kind, Window, TintedGlass, Lock, Sensors,
OpenedState}
![Page 23: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/23.jpg)
SPLC’14 - Florence September 2014
Handling complex configurations?
‣ Considering variability by concerns
‣ Managing constraints between variability models
‣ Allowing the user to dynamically create sub-configurations
‣ Allowing to create links between sub-configurations
‣ Ensuring consistency in user’s choices
‣ Supporting a flexible configuration process
23
![Page 24: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/24.jpg)
SPLC’14 - Florence September 2014
Handling complex configurations?
‣ Considering variability by concerns
‣ Managing constraints between variability models
‣ Allowing the user to dynamically create sub-configurations
‣ Allowing to create links between sub-configurations
‣ Ensuring consistency in user’s choices
‣ Supporting a flexible configuration process
24
![Page 25: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/25.jpg)
SPLC’14 - Florence September 201425
SpineFM OverviewOpeningHouse Room
Feature Models
Domain Model
MetamodelSpineFM
House Room Opening1 1..* 1..* 1..*
1..*0..1contains contains
hasGateways
API + Propagation algorithm
Generation
![Page 26: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/26.jpg)
SPLC’14 - Florence September 2014
Designing the SPL
26
House Room Opening1 1..* 1..* 1..*
1..*0..1
contains contains
hasGateways
SPLassets
SPLfor
House
SPLassets
SPLfor
Room
SPLassets
SPLfor
Opening
SharedSPL
assets
Gen
erat
ion
Tool
sD
omai
n M
odel
Asse
tsPr
oduc
tsFM
s
![Page 27: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/27.jpg)
SPLC’14 - Florence September 2014
Running example: FM by concerns
27
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
Opening
Sensors Lock
OpenedState
Kind
Door Window
RollerStore TintedGlass
House
Temperature Manager
Luminosity Manager
SecurityManager
CentralComputer
Digital
![Page 28: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/28.jpg)
SPLC’14 - Florence September 2014
Designing the SPL
28
House Room Opening1 1..* 1..* 1..*
1..*0..1
contains contains
hasGateways
SPLassets
SPLfor
House
SPLassets
SPLfor
Room
SPLassets
SPLfor
Opening
SharedSPL
assets
Gen
erat
ion
Tool
sD
omai
n M
odel
Asse
tsPr
oduc
tsFM
s
+ inter-FM constraints
![Page 29: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/29.jpg)
SPLC’14 - Florence September 2014
Inter-FM constraint
• Association contains oriented functions
• Function contains rules
• Rule:
• from a source FM to a target FM
• state implies action
• state: selected and excluded features
• action: select, exclude, add new CT constraint
29
![Page 30: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/30.jpg)
SPLC’14 - Florence September 2014
Running example: FM by concerns... with constraints
30
House
Temperature Manager
Luminosity Manager
SecurityManager
Opening
Sensors Lock
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
OpenedState
Kind
Door Window
RollerStore TintedGlass
KeyMandatory
featureOptional feature
XOR
OR
interFM implication
CentralComputer
Digital
![Page 31: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/31.jpg)
SPLC’14 - Florence September 2014
Running Example: Constraints
31
source:Roomtarget:Opening
Rule :Selected Locking ⇒ SELECT Lock
House
Temperature Manager
Luminosity Manager
SecurityManager
Opening
Sensors Lock
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
OpenedState
Kind
Door Window
RollerStore TintedGlass
KeyMandatory
featureOptional feature
XOR
OR
interFM implication
CentralComputer
Digital
![Page 32: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/32.jpg)
SPLC’14 - Florence September 2014
Running Example: Constraints
32
source:Openingtarget:Room
Rule :Excluded Lock ⇒ DESELECT Locking
House
Temperature Manager
Luminosity Manager
SecurityManager
Opening
Sensors Lock
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
OpenedState
Kind
Door Window
RollerStore TintedGlass
KeyMandatory
featureOptional feature
XOR
OR
interFM implication
CentralComputer
Digital
![Page 33: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/33.jpg)
SPLC’14 - Florence September 2014
Constraints in real life
33
source:Roomtarget:Opening
Rule :Selected RollerStore and Excluded Presence
⇒ Add Constraint Door or RollerStore
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
Opening
Sensors Lock
OpenedState
Kind
Door Window
RollerStore TintedGlass
House
Temperature Manager
Luminosity Manager
SecurityManager
CentralComputer
Digital
![Page 34: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/34.jpg)
SPLC’14 - Florence September 2014
Derive a complex configuration
34
Keyname:Concept{features}
SecuredHome:House{House, CentralComputer,
SecurityManager}
entrance:Room{Room,Sensors,
Presence,Actuators, Locking, RollerStore}
frontDoor:Opening
{Opening, Kind, Door, Lock, Digital, Sensors, OpenedState}
mainRoom:Room
{Room,Sensors,Lightning,Locking,Actuators,RollerStore, Presence}
mainRoomDoor:Opening
{Opening, Kind, Door, Lock, Sensors, OpenedState}
mainRoomWindow:Opening
{Opening, Kind, Window, TintedGlass, Lock, Sensors,
OpenedState}
![Page 35: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/35.jpg)
SPLC’14 - Florence September 2014
Providing flexibility and consistency
35Logo from conTeXt tool.
![Page 36: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/36.jpg)
SPLC’14 - Florence September 2014
Providing flexibility and consistency
36
Opening
Sensors Lock
OpenedState
Kind
Door Window
RollerStore TintedGlass
Digital
House
Temperature Manager
Luminosity Manager
SecurityManager
CentralComputer✗
✗✔ ︎
Opening
Sensors Lock
OpenedState
Kind
Door Window
RollerStore TintedGlass
Digital✔ ︎ ✔ ︎
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
✔ ︎
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
✔ ︎ ✗
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
![Page 37: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/37.jpg)
SPLC’14 - Florence September 2014
Global context
37
House Room Opening1 1..* 1..* 1..*
1..*0..1
contains contains
hasGateways
SecuredHome:House{House, CentralComputer,
SecurityManager}
entrance:Room{Room,Sensors,
Presence,Actuators, Locking, RollerStore}
frontDoor:Opening
{Opening, Kind, Door, Lock, Digital, Sensors, OpenedState}
mainRoom:Room
{Room,Sensors,Lightning,Locking,Actuators,RollerStore, Presence}
mainRoomDoor:Opening
{Opening, Kind, Door, Lock, Sensors, OpenedState}
mainRoomWindow:Opening
{Opening, Kind, Window, TintedGlass, Lock, Sensors,
OpenedState}
![Page 38: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/38.jpg)
SPLC’14 - Florence September 2014
Global context
38
House
Temperature Manager
Luminosity Manager
SecurityManager
Opening
Sensors Lock
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
OpenedState
Kind
Door Window
RollerStore TintedGlass
KeyMandatory
featureOptional feature
XOR
OR
interFM implication
CentralComputer
Digital
SecuredHome:House{House, CentralComputer,
SecurityManager}
entrance:Room{Room,Sensors,
Presence,Actuators, Locking, RollerStore}
frontDoor:Opening
{Opening, Kind, Door, Lock, Digital, Sensors, OpenedState}
mainRoom:Room
{Room,Sensors,Lightning,Locking,Actuators,RollerStore, Presence}
mainRoomDoor:Opening
{Opening, Kind, Door, Lock, Sensors, OpenedState}
mainRoomWindow:Opening
{Opening, Kind, Window, TintedGlass, Lock, Sensors,
OpenedState}
![Page 39: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/39.jpg)
SPLC’14 - Florence September 2014
Local context
39
House Room Opening1 1..* 1..* 1..*
1..*0..1
contains contains
hasGateways
entrance:Room{Room,Sensors,
Presence,Actuators, Locking, RollerStore}
frontDoor:Opening
{Opening, Kind, Door, Lock, Digital, Sensors, OpenedState}
![Page 40: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/40.jpg)
SPLC’14 - Florence September 2014
Local context
40
House
Temperature Manager
Luminosity Manager
SecurityManager
Opening
Sensors Lock
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
OpenedState
Kind
Door Window
RollerStore TintedGlass
KeyMandatory
featureOptional feature
XOR
OR
interFM implication
CentralComputer
Digital
entrance:Room{Room,Sensors,
Presence,Actuators, Locking, RollerStore}
frontDoor:Opening
{Opening, Kind, Door, Lock, Digital, Sensors, OpenedState}
![Page 41: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/41.jpg)
SPLC’14 - Florence September 2014
Propagation: ensuring consistency through all contexts
41
global contextcontext 2
context 1
SecuredHome:House{House, CentralComputer,
SecurityManager}
entrance:Room{Room,Sensors,
Presence,Actuators, Locking, RollerStore}
frontDoor:Opening
{Opening, Kind, Door, Lock, Digital, Sensors, OpenedState}
mainRoom:Room
{Room,Sensors,Lightning,Locking,Actuators,RollerStore, Presence}
mainRoomDoor:Opening
{Opening, Kind, Door, Lock, Sensors, OpenedState}
mainRoomWindow:Opening
{Opening, Kind, Window, TintedGlass, Lock, Sensors,
OpenedState}
![Page 42: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/42.jpg)
SPLC’14 - Florence September 2014
Propagation
42
global contextHouse
Temperature Manager
Luminosity Manager
SecurityManager
CentralComputer
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
Opening
Sensors Lock
OpenedState
Kind
Door Window
RollerStore TintedGlass
Digital
![Page 43: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/43.jpg)
SPLC’14 - Florence September 2014
Propagation
43
global contextHouse
Temperature Manager
Luminosity Manager
SecurityManager
CentralComputer
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
context 1
Opening
Sensors Lock
OpenedState
Kind
Door Window
RollerStore TintedGlass
Digital
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
![Page 44: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/44.jpg)
SPLC’14 - Florence September 2014
Propagation
44
global contextHouse
Temperature Manager
Luminosity Manager
SecurityManager
CentralComputer
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
context 1
Opening
Sensors Lock
OpenedState
Kind
Door Window
RollerStore TintedGlass
Digital
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
Opening
Sensors Lock
OpenedState
Kind
Door Window
RollerStore TintedGlass
Digital
![Page 45: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/45.jpg)
SPLC’14 - Florence September 2014
Propagation
45
global contextHouse
Temperature Manager
Luminosity Manager
SecurityManager
CentralComputer
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
context 1
Opening
Sensors Lock
OpenedState
Kind
Door Window
RollerStore TintedGlass
Digital
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
Opening
Sensors Lock
OpenedState
Kind
Door Window
RollerStore TintedGlass
Digital
✔ ︎
![Page 46: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/46.jpg)
SPLC’14 - Florence September 2014
Constraints reminder
46
House
Temperature Manager
Luminosity Manager
SecurityManager
Opening
Sensors Lock
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
OpenedState
Kind
Door Window
RollerStore TintedGlass
KeyMandatory
featureOptional feature
XOR
OR
interFM implication
CentralComputer
Digital
![Page 47: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/47.jpg)
SPLC’14 - Florence September 2014
Propagation
47
global contextHouse
Temperature Manager
Luminosity Manager
SecurityManager
CentralComputer
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
context 1
Opening
Sensors Lock
OpenedState
Kind
Door Window
RollerStore TintedGlass
Digital
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
Opening
Sensors Lock
OpenedState
Kind
Door Window
RollerStore TintedGlass
Digital
✔ ︎
✔ ︎
![Page 48: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/48.jpg)
SPLC’14 - Florence September 2014
Propagation
48
global contextHouse
Temperature Manager
Luminosity Manager
SecurityManager
CentralComputer
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
context 1
Opening
Sensors Lock
OpenedState
Kind
Door Window
RollerStore TintedGlass
Digital
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
Opening
Sensors Lock
OpenedState
Kind
Door Window
RollerStore TintedGlass
Digital
✔ ︎
✔ ︎
Opening
Sensors Lock
OpenedState
Kind
Door Window
RollerStore TintedGlass
Digital
context 2Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
✔ ︎
![Page 49: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/49.jpg)
SPLC’14 - Florence September 2014
Constraints reminder
49
House
Temperature Manager
Luminosity Manager
SecurityManager
Opening
Sensors Lock
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
OpenedState
Kind
Door Window
RollerStore TintedGlass
KeyMandatory
featureOptional feature
XOR
OR
interFM implication
CentralComputer
Digital
![Page 50: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/50.jpg)
SPLC’14 - Florence September 2014
Propagation
50
global contextHouse
Temperature Manager
Luminosity Manager
SecurityManager
CentralComputer
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
context 1
Opening
Sensors Lock
OpenedState
Kind
Door Window
RollerStore TintedGlass
Digital
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
Opening
Sensors Lock
OpenedState
Kind
Door Window
RollerStore TintedGlass
Digital
✔ ︎
✔ ︎
Opening
Sensors Lock
OpenedState
Kind
Door Window
RollerStore TintedGlass
Digital
context 2Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
✔ ︎
✔ ︎
![Page 51: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/51.jpg)
SPLC’14 - Florence September 2014
Constraints reminder
51
House
Temperature Manager
Luminosity Manager
SecurityManager
Opening
Sensors Lock
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
OpenedState
Kind
Door Window
RollerStore TintedGlass
KeyMandatory
featureOptional feature
XOR
OR
interFM implication
CentralComputer
Digital
![Page 52: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/52.jpg)
SPLC’14 - Florence September 2014
Propagation
52
global contextHouse
Temperature Manager
Luminosity Manager
SecurityManager
CentralComputer
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
context 1
Opening
Sensors Lock
OpenedState
Kind
Door Window
RollerStore TintedGlass
Digital
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
Opening
Sensors Lock
OpenedState
Kind
Door Window
RollerStore TintedGlass
Digital
✔ ︎
✔ ︎
Opening
Sensors Lock
OpenedState
Kind
Door Window
RollerStore TintedGlass
Digital
context 2Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
✔ ︎
✔ ︎
✔ ︎✔ ︎
✔ ︎✔ ︎
✔ ︎
![Page 53: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/53.jpg)
SPLC’14 - Florence September 2014
Propagation
53
global contextHouse
Temperature Manager
Luminosity Manager
SecurityManager
CentralComputer
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
context 1
Opening
Sensors Lock
OpenedState
Kind
Door Window
RollerStore TintedGlass
Digital
Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
Opening
Sensors Lock
OpenedState
Kind
Door Window
RollerStore TintedGlass
Digital
✔ ︎
✔ ︎
Opening
Sensors Lock
OpenedState
Kind
Door Window
RollerStore TintedGlass
Digital
context 2Room
Sensors Actuators
Temperature
Lightning
Presence RollerStore
Thermostat
Locking
Temperature implies ThermostatPresence implies Locking
✔ ︎
✔ ︎
✔ ︎✔ ︎
✔ ︎✔ ︎
✔ ︎
✔ ︎ ✔ ︎✔ ︎
✔ ︎✔ ︎
✔ ︎ ✔ ︎ ✔ ︎
![Page 54: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/54.jpg)
SPLC’14 - Florence September 2014
Propagation Algorithm
• Hypothesis: the SPL is consistent
‣ Incremental algorithm based on biconnected components
• Always terminate
• Always reduce the solution scope
54
![Page 55: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/55.jpg)
SPLC’14 - Florence September 2014
Application on SPL for digital signage systems
55
Urli, S., Blay-Fornarino, M., Collet, P., Mosser, S., & Riveill, M. (2014). Managing a Software Ecosystem Using a Multiple Software Product Line: a Case Study on Digital Signage Systems. (SEAA'14)
![Page 56: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/56.jpg)
SPLC’14 - Florence September 2014
Application on YourCast
56
Urli, S., Blay-Fornarino, M., Collet, P., Mosser, S., & Riveill, M. (2014). Managing a Software Ecosystem Using a Multiple Software Product Line: a Case Study on Digital Signage Systems. (SEAA'14)
![Page 57: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/57.jpg)
SPLC’14 - Florence September 201457
![Page 58: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/58.jpg)
SPLC’14 - Florence September 2014
Results on YourCastBased on 5 different complex configurations.
58
Min. Max. Average
# Configurations 9 61 31
# Contexts 5 32 16
Propagation time 1 ms 3622 ms 260 ms
# User actions 68 348 208
# FM actions 709 5726 2918
![Page 59: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/59.jpg)
SPLC’14 - Florence September 2014
SpineFM: application on YourCast
59
6 %94 %
Manual actionsAutomatic actions
![Page 60: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/60.jpg)
SPLC’14 - Florence September 2014
Future Work
• Formalize the whole approach (ongoing)
• Improve the expressiveness of domain model
• Allow constraints on the model
• Support undoing actions
• Industrialize our case study:
60
![Page 61: Handling Complex Configurations in Software Product Lines: a Tooled Approach](https://reader034.vdocuments.site/reader034/viewer/2022042607/5564b14fd8b42a366c8b5794/html5/thumbnails/61.jpg)
SPLC’14 - Florence September 2014
Thanks for your attention!
‣ Tooled approach
‣ Design a SPL with several FMs
‣ High level abstraction of the domain
‣ Flexible derivation process
‣ Ensure consistency of the configuration
‣ Validated on a real system
61
[email protected] http://github.com/surli/spinefm