A Visual Support for Decomposing Complex Feature Models

27
A Visual Support for Decomposing Complex Feature Models Simon Urli Alexandre Bergel Mireille Blay-Fornarino Philippe Collet Sébastien Mosser [email protected] I3S Laboratory - University Nice-Sophia Antipolis - France Pleiad Lab - University of Chile - Chile

Transcript of A Visual Support for Decomposing Complex Feature Models

A Visual Support for Decomposing Complex

Feature ModelsSimon Urli

Alexandre Bergel Mireille Blay-Fornarino

Philippe ColletSébastien Mosser

[email protected]

I3S Laboratory - University Nice-Sophia Antipolis - France Pleiad Lab - University of Chile - Chile

Urli et al - Vissoft 2015 - Bremen

Software Product Lines

2

Urli et al - Vissoft 2015 - Bremen

Feature Models (FM)

3

Urli et al - Vissoft 2015 - Bremen

Feature Models

4

Urli et al - Vissoft 2015 - Bremen

Feature Models

• Huge Feature Models: thousands of features and constraints

4

Urli et al - Vissoft 2015 - Bremen

Feature Models

• Huge Feature Models: thousands of features and constraints

• Tedious to understand

4

Urli et al - Vissoft 2015 - Bremen

Feature Models

• Huge Feature Models: thousands of features and constraints

• Tedious to understand

• Difficult to maintain

4

Urli et al - Vissoft 2015 - Bremen

Feature Models

• Huge Feature Models: thousands of features and constraints

• Tedious to understand

• Difficult to maintain

➡Towards decomposition

4

Urli et al - Vissoft 2015 - Bremen

Handling complex FM

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

5

Urli et al - Vissoft 2015 - Bremen

Handling complex FMHouse

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

6

Urli et al - Vissoft 2015 - Bremen

Handling complex FM in real lifeConcept # Features # Internal

constraints # Configurations

Source

Renderer

Behaviour

Zone

Layout

81 154 68

76 347 74

33 45 15

49 160 27

51 59 13

Total 290 765 197

7

Urli et al - Vissoft 2015 - Bremen

Handling complex FM in real lifeConcept # Features # Internal

constraints # Configurations

Source

Renderer

Behaviour

Zone

Layout

Total

81 154 68

76 347 74

33 45 15

49 160 27

51 59 13

290 765 197

And 144 external constraints !8

Urli et al - Vissoft 2015 - Bremen

Variability Blueprint

• Roassal: a parametric visualization tool developed in SmallTalk

• Several usages, mostly for visualizing large-scale programs and analyzing code repositories

• Idea behind: to quickly create an interactive visualization

9

Urli et al - Vissoft 2015 - Bremen

Visualizing feature models

7/25/13 12:16 PM

Page 1 of 1file:///Users/alexandrebergel/Desktop/FamiliarOnRoassal/fooZork.svg

source

renderer

zonebehaviourlayout

# external constraints

# internal constraints

optionalmutex

BA

xor

10

Urli et al - Vissoft 2015 - Bremen

Visualizing multiple interrelated feature models

11

Urli et al - Vissoft 2015 - Bremen

Using interactive visualization to handle interrelated feature models

12

Urli et al - Vissoft 2015 - Bremen

Using interactive visualization to handle interrelated feature models

12

Urli et al - Vissoft 2015 - Bremen

Using Roassal during decomposition

• Frascati: a SCA platform

• A feature model containing:

- 63 features

- 46 constraints

• Goal: decomposing the FM in keeping some good metrics in average

• CTC: # features involved in internal constraints / # internal constraints

• exCTC: same idea on external constraints

13

Urli et al - Vissoft 2015 - Bremen

Frascati Scenario

14

V0

7/31/13 10:40 AM

Page 1 of 1file:///Users/alexandrebergel/Desktop/FamiliarOnRoassal/frascati.svg

frascati

Urli et al - Vissoft 2015 - Bremen

Frascati Scenario

14

V0

7/31/13 10:40 AM

Page 1 of 1file:///Users/alexandrebergel/Desktop/FamiliarOnRoassal/frascati.svg

frascati

7/31/13 10:53 AM

Page 1 of 1file:///Users/alexandrebergel/Desktop/FamiliarOnRoassal/frascati_v1.svg

AssemblyFactoryImplementation ComponentFactory

Frascati ScaParser

V1

CTC: 57%exCTC: 0%

CTC: 16%exCTC: 47%

Urli et al - Vissoft 2015 - Bremen

Frascati Scenario

14

V0

7/31/13 10:40 AM

Page 1 of 1file:///Users/alexandrebergel/Desktop/FamiliarOnRoassal/frascati.svg

frascati

7/31/13 10:53 AM

Page 1 of 1file:///Users/alexandrebergel/Desktop/FamiliarOnRoassal/frascati_v1.svg

AssemblyFactoryImplementation ComponentFactory

Frascati ScaParser

V1

CTC: 57%exCTC: 0%

CTC: 16%exCTC: 47%

SCAParser: 71% exCTC

Urli et al - Vissoft 2015 - Bremen

Frascati Scenario

15

Urli et al - Vissoft 2015 - Bremen

7/31/13 10:53 AM

Page 1 of 1file:///Users/alexandrebergel/Desktop/FamiliarOnRoassal/frascati_v1.svg

AssemblyFactoryImplementation ComponentFactory

Frascati ScaParser

V1

V2

CTC: 16%exCTC: 47%

CTC: 17%exCTC: 47%

Frascati Scenario

16

Urli et al - Vissoft 2015 - Bremen

7/31/13 11:00 AM

Page 1 of 1file:///Users/alexandrebergel/Desktop/FamiliarOnRoassal/frascati_v5.svg

AssemblyFactoryImplementationComponentFactory

Frascati

V5

7/31/13 10:59 AM

Page 1 of 1file:///Users/alexandrebergel/Desktop/FamiliarOnRoassal/frascati_v3.svg

AssemblyFactoryImplementationComponentFactory

Frascati ScaParser

V4

CTC: 34%exCTC: 33%

CTC: 45%exCTC: 19%

Frascati Scenario

17

Urli et al - Vissoft 2015 - Bremen

Decomposition metrics in Frascati scenario

#FM # features / FM CTC exCTC

V0V1

V2

V3

V4

V5

1 63 57 % 0 %4 16 16 % 47 %

4 16 17 % 47 %

4 17 28 % 41 %

4 19 34 % 33 %

3 24 45 % 19 %

18

Urli et al - Vissoft 2015 - Bremen

Future works

• Integration with modeling tools

• Towards automation to find patterns

• Finding the right trade-off between cohesion and decoupling

19

Urli et al - Vissoft 2015 - Bremen

Thank you!

20