handling complex configurations in software product lines: a tooled approach

61
SPLC’14 - Florence September 2014 Handling Complex Configurations in Software Product Lines: a Tooled Approach Simon Urli Mireille Blay-Fornarino Philippe Collet [email protected] I3S Laboratory - University Nice-Sophia Antipolis 1

Upload: simon-urli

Post on 27-May-2015

277 views

Category:

Science


1 download

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

SPLC’14 - Florence September 2014

Handling Complex Configurations in Software Product Lines:

a Tooled ApproachSimon Urli

Mireille Blay-Fornarino Philippe Collet

[email protected]

I3S Laboratory - University Nice-Sophia Antipolis

1

Page 2: Handling Complex Configurations in Software Product Lines: a Tooled Approach

SPLC’14 - Florence September 2014

SPL for information systems?

2

Page 3: Handling Complex Configurations in Software Product Lines: a Tooled Approach

SPLC’14 - Florence September 2014

Running Example: SmartHome

3

Page 4: Handling Complex Configurations in Software Product Lines: a Tooled Approach

SPLC’14 - Florence September 2014

Running Example: SmartHome

4

Page 5: Handling Complex Configurations in Software Product Lines: a Tooled Approach

SPLC’14 - Florence September 2014

Running Example: SmartHome

5

Page 6: Handling Complex Configurations in Software Product Lines: a Tooled Approach

SPLC’14 - Florence September 2014

Running Example: SmartHome

6

Page 7: Handling Complex Configurations in Software Product Lines: a Tooled Approach

SPLC’14 - Florence September 2014

Running Example: SmartHome

7

Main Room

Page 8: Handling Complex Configurations in Software Product Lines: a Tooled Approach

SPLC’14 - Florence September 2014

Running Example: SmartHome

8

Main Room

Page 9: Handling Complex Configurations in Software Product Lines: a Tooled Approach

SPLC’14 - Florence September 2014

Running Example: SmartHome

9

Main Room

Page 10: Handling Complex Configurations in Software Product Lines: a Tooled Approach

SPLC’14 - Florence September 2014

Running Example: SmartHome

10

Main Room Entrance

Page 11: Handling Complex Configurations in Software Product Lines: a Tooled Approach

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SPLC’14 - Florence September 201457

Page 58: Handling Complex Configurations in Software Product Lines: a Tooled Approach

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

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

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

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