ec2013 tutorial-mb variability-final

205
Mathieu Acher, Benoit Combemale, Olivier Barais ModelBased Variability Management

Upload: acher

Post on 21-Jan-2015

718 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Ec2013 tutorial-mb variability-final

Mathieu  Acher,  Benoit  Combemale,  Olivier  Barais  

Model-­‐Based    Variability  Management  

 

Page 2: Ec2013 tutorial-mb variability-final

2  

Research  in  so6ware  engineering.  -­‐  8  faculty  members  -­‐  35  researchers  and  

engineers  on  projects  

Page 3: Ec2013 tutorial-mb variability-final

We’re  hiring!    engineers,  PhD  students,  post-­‐docs  

Variability  /  Product  lines    

Model-­‐driven  Engineering  

Language  Engineering  (e.g.,  DSLs)  

Scala  

3  3  

European  Projects      Industrial  CollaboraCons    Academics  partners  

Page 4: Ec2013 tutorial-mb variability-final

Acknowledgments  (la  famille)  Marianela  Ciolfi  Felice    Joao  Bosco  Ferreira  Filho  Guillaume  Bécan  Suresh  Pilay    Sana  Ben  Nasr  (MSc/PhD  students,    University  of  Rennes  1)    Prof.  Philippe  Collet  Prof.  Philippe  Lahire    (University  of  Nice  Sophia  AnWpolis)    Prof.  Robert  B.  France    (Colorado  State  University)    Prof.  Patrick  Heymans    (University  of  Namur)  

Page 5: Ec2013 tutorial-mb variability-final

Audience  

•  No  pre-­‐requisite  background!  •  Targeted  Audience  

•  Academics  or  pracWWoners    •  Curious  guys:  e.g.,  PhD  students  or  modellers  unaware  of…    

–  Variability  and  so6ware  product  lines  (SPLs)  –  Variability  modelling    –  ConfiguraWon  

•  MDE  guys:  people  involved  or  interested  in  the  development  of  model  management  tools  –  e.g.,  model  composiWon/decomposiWon  

•  SPL  guys:  advances  that  want  to  learn  new  techniques  5  

Page 6: Ec2013 tutorial-mb variability-final

At  the  end  of  the  tutorial…  •  You  will  have  an  overview  of  what’s  going  on  in  the  field  of    

variability  and  model-­‐based  so6ware  product  line  engineering  •  You  will  be  able  to  go  further  with  the  languages  and  modelling  

techniques  •  so  to  reuse  them  in  pracWcal  or  academic  contexts    

•  SupporWng  material:  hbps://github.com/FAMILIAR-­‐project/familiar-­‐documentaWon/blob/master/presentaWons/EC2013/README.md    •  slides  of  the  tutorial  •  related  arWcles,    •  FAMILIAR  scripts,  •  CVL  models,  •  and  packaged  tools  to  interacWvely  play  with  the  models  during  the  

tutorial  

6  

Page 7: Ec2013 tutorial-mb variability-final

Differences  with  previous  tutorials  at  SPLC’12  /  MODELS’12  

•  Larger  perspecWve/moWvaWon  •  Including  modelling/language/architectural  examples  

 •  Not  only  about  feature  models  

•  not  only  about  FAMILIAR  •  but  new  techniques  for  reverse  engineering  (VaMoS’13)  and  composing  

(MODELS’13)  feature  models  will  be  presented    

•  Model-­‐based  product  line  engineering  •  Common  Variability  Language  (CVL)  

FAMILIAR  is  now  a  project    not  only  a  language  for  managing  feature  models!  

7  

Page 8: Ec2013 tutorial-mb variability-final

[MOTIVATION/PROBLEM]  Why  modeling  and  managing  Variability  does  and  will  maber  (30’)  

[SOLUTION  FOR  MANAGING  FEATURE  MODELS]  Managing  Variability  Models  with  FAMILIAR  (1h45’)      [SOLUTION  FOR  MODEL-­‐BASED  DERIVATION  OF  PRODUCT]  Model-­‐based  variability  engineering:  examples,  support  and  open  issues  (45’)  

 

8  

Plan  

Page 9: Ec2013 tutorial-mb variability-final

[MOTIVATION/PROBLEM]  Why  modeling  and  managing  Variability  does  and  will  maber  (30’)  

[SOLUTION  FOR  MANAGING  FEATURE  MODELS]  Managing  Variability  Models  with  FAMILIAR  (1h45’)      [SOLUTION  FOR  MODEL-­‐BASED  DERIVATION  OF  PRODUCT]  Model-­‐based  variability  engineering:  examples,  support  and  open  issues  (45’)  

 

9  

Plan  

Page 10: Ec2013 tutorial-mb variability-final

10  

So6ware-­‐intensive  systems  

come  in  many  variants    

Page 11: Ec2013 tutorial-mb variability-final

11  

Page 12: Ec2013 tutorial-mb variability-final

Linux  Kernel  

Page 13: Ec2013 tutorial-mb variability-final

Database  Engine  

Page 14: Ec2013 tutorial-mb variability-final

Printer  Firmware  

Page 15: Ec2013 tutorial-mb variability-final

Features  in  MicrosoS  Office  

15  

Page 16: Ec2013 tutorial-mb variability-final
Page 17: Ec2013 tutorial-mb variability-final

17  

Page 18: Ec2013 tutorial-mb variability-final

Variability    “the  ability  of  a  system  to  be  efficiently  extended,  changed,  customized  or  configured  for  use  in  a  parCcular  context”    

Mikael  Svahnberg,  Jilles  van  Gurp,  and  Jan  Bosch  (2005)  

Page 19: Ec2013 tutorial-mb variability-final

«  A  set  of  programs  is  considered  to  consWtute  a  family,  whenever  it  is  worthwhile  to  study  programs  from  the  set  by  first  studying  the  common  properCes  of  the  set  and  then  determining  the  special  properCes  of  the  individual  family  members  »            David  L.  Parnas  —  ‘‘On  the  design  and  development  of  program  families’’  in  TransacCons  on  SoSware  Engineering,  SE-­‐2(1):1–9,  1976    19  

aka  Variability  

Page 20: Ec2013 tutorial-mb variability-final

Variability    “the  ability  of  a  system  to  be  efficiently  extended,  changed,  customized  or  configured  for  use  in  a  parCcular  context”    

Mikael  Svahnberg,  Jilles  van  Gurp,  and  Jan  Bosch  (2005)  

   

20  

Page 21: Ec2013 tutorial-mb variability-final

21  21  

Extensible  architect

ures  

(eg  plugins-­‐based)  

ConfiguraCon  

files  

System  

Preferences  

Configurators  

Source  code  Build  

systems  

Comparison  of  *  

Structural  or  behav

orial    

models  

External  Variability  Internal  Variability  Variability  @  run.Cme  

Page 22: Ec2013 tutorial-mb variability-final

22  

«  Feature  Model  ExtracWon  from  Large  CollecWons  of  Informal  Product  DescripWons  »    Jean-­‐Marc  Davril,  Edouard  Delfosse,  Negar  Hariri,  Mathieu  Acher,  Jane  Cleland-­‐Huang,  Patrick  Heymans  (ESEC/FSE’13)  

Page 23: Ec2013 tutorial-mb variability-final

23  «  The  Anatomy  of  a  Sales  Configurator:  An  Empirical  Study  of  111  Cases  »  Ebrahim  Khalil  Abbasi,  Arnaud  Hubaux,  Mathieu  Acher,  QuenWn  Boucher,  and  Patrick  Heymans  (CAiSE’13)  

Page 24: Ec2013 tutorial-mb variability-final

24  

«  ExtracWon  and  EvoluWon  of  Architectural  Variability  Models  in  Plugin-­‐based  Systems  »      Mathieu  Acher,  Anthony  Cleve,  Philippe  Collet,  Philippe  Merle,  Laurence  Duchien,  Philippe  Lahire  ECSA/SoSyM’13  

Page 25: Ec2013 tutorial-mb variability-final

If  you’re  able  to  master  variability…  

•  Reduce  development  costs    •  Reduce  cerWficaWon  costs    •  Shorten  Wme-­‐to-­‐market    

•  But,  are  you  able?    – developing,  verifying,  cerWfying  billions  of  variants  is  challenging!  

 25  

Page 26: Ec2013 tutorial-mb variability-final

Variability = Complexity

ChrisWan  Kästner  slide  

Page 27: Ec2013 tutorial-mb variability-final

a  unique  variant  for  every  

person  on  this  planet  

33  features  opWonal,  independent  

ChrisWan  Kästner  slide  

Page 28: Ec2013 tutorial-mb variability-final

320  features    

more  variants  than  esWmated  

   atoms  in  the  universe  

opWonal,  independent  

Page 29: Ec2013 tutorial-mb variability-final

2000  features   10000  features  

ChrisWan  Kästner  slide  

Page 30: Ec2013 tutorial-mb variability-final

30  

   

Avoid  solving  the  same  problem!      

 2,  3…n  Cmes    

AutomaCon?  

Page 31: Ec2013 tutorial-mb variability-final

31  

Unused  flexibility  

Page 32: Ec2013 tutorial-mb variability-final

32  

Illegal  variant  

Page 33: Ec2013 tutorial-mb variability-final

   Goal:  So6ware  mass  customizaWon    /  AdapWve  and  configurable  systems    Problem:  Variability  =  Complexity    Approach:  Model-­‐based  variability  management  

33  

Why  managing  Variability    does  (and  will)  maier  

Page 34: Ec2013 tutorial-mb variability-final

34  

So6ware-­‐intensive  systems  come  in  many  variants    

Model-­‐based    Variability  Management  

Page 35: Ec2013 tutorial-mb variability-final

 

Modeling  Variability    CommunicaCve    AnalyCc    GeneraCve     35  

Page 36: Ec2013 tutorial-mb variability-final

36  

Page 37: Ec2013 tutorial-mb variability-final
Page 38: Ec2013 tutorial-mb variability-final

38  

Factoring  out  commonaliCes    for  Reuse  [Krueger  et  al.,  1992]  [Jacobson  et  al.,  1997]  

           Managing  variabiliCes    

 for  So6ware  Mass  CustomizaCon  [Bass  et  al.,  1998]  [Krueger  et  al.,  2001],  [Pohl  et  al.,  2005]      

Page 39: Ec2013 tutorial-mb variability-final

Mobile

3G+ 3G GPS

Maps

Camera

ü  ü  ü  

Mobile

3G+ 3G GPS

Maps

Camera

Domain/Variability  Model  

ConfiguraCon   SoSware  Generator  

Domain  Artefacts      

Domain    Engineering  

ApplicaCon    Engineering  

«  the  investments  required  to  develop  the  reusable  arBfacts  during  domain  engineering,  are  outweighed  by  the  benefits  of  deriving  the  individual  products  during  applica.on  engineering  »  

Jan  Bosch  et  al.  (2004)      

Page 40: Ec2013 tutorial-mb variability-final

40  

99%  domain  engineering,    1%  applicaCon  engineering?  

–  specifies  what  you  want  (click,  click,  click)  a  customized  product  is  automaWcally  built  for  you  

–  Iterate  the  process  for  n  products  

Amount of

effort

Application Engineering

More Sophisticated Technology

Domain Engineering

Page 41: Ec2013 tutorial-mb variability-final

Variability  AbstracCon  Model  (VAM)  

ConfiguraCon  (resoluCon  model)  

Domain  Artefacts  (e.g.,  models)  

SoSware  Generator  (derivaCon  engine)  

ü   ü  

Variability  RealizaCon  Model  (VRM)  

Page 42: Ec2013 tutorial-mb variability-final

42  

Page 43: Ec2013 tutorial-mb variability-final

Configurations Derivation Process

Models of the “system”

Feature Model

How to realize the variability

Page 44: Ec2013 tutorial-mb variability-final

(another  research  area/applicaWon:  adapWve  systems  aka  dynamic  so6ware  product  lines  [email protected])  

hip://www.kevoree.org  

from  Cloud  stack  to  embedded  devices  

Page 45: Ec2013 tutorial-mb variability-final
Page 46: Ec2013 tutorial-mb variability-final

Variability  Handling  in  AUTOSAR  

Body  control  

Low-­‐end  light-­‐control  

AdapWve-­‐curve  light-­‐control  

Feature  Modeling  (Variability  abstracWon)  

Generic  Template  (Variability  RealizaWon)  

LightType  …   System  

constant  

Low  End   High  End  

Car  

1..1

Feature  

v.  4.04  (upcoming)  

v.  4.03  

Low  End  ==  1  

High  End  ==  1   VariaWon  point  

Adapted  from  the  CVL  tutorial  at  SPLC’12  by  Oystein  Haugen,  Andrezj  Wasowski,  Krzysztof  Czarnecki    

Page 47: Ec2013 tutorial-mb variability-final

Variability  Handling  in  AUTOSAR  (2)  

Feature  Modeling  (Variability  abstracWon)  

Generic  Template  (Variability  RealizaWon)  

Low  End   High  End  

Car  

1..1

Body  control  

Low-­‐end  light-­‐control  

Page 48: Ec2013 tutorial-mb variability-final

VariaCon  Point  Types  

•  Variability  is  applied  to  different  parts  of  the  metamodel  – AggregaWon,  associaWon,  abribute  value,  property  set  

•  ResulWng  variability  – OpWonal  component  – OpWonal  port  – OpWonal  connector  – Parameter  variability  

Component  

Port  

Adapted  from  the  CVL  tutorial  at  SPLC’12  by  Oystein  Haugen,  Andrezj  Wasowski,  Krzysztof  Czarnecki    

Page 49: Ec2013 tutorial-mb variability-final

49  «  Mapping  Features  to  Models:  A  Template  Approach  Based  on  Superimposed  Variants»  Krzysztof  Czarnecki  and  Michal  Antkiewicz  GPCE’05  

Page 50: Ec2013 tutorial-mb variability-final

50  «  Mapping  Features  to  Models:  A  Template  Approach  Based  on  Superimposed  Variants»  Krzysztof  Czarnecki  and  Michal  Antkiewicz  GPCE’05  

Page 51: Ec2013 tutorial-mb variability-final

51  «  Mapping  Features  to  Models:  A  Template  Approach  Based  on  Superimposed  Variants»  Krzysztof  Czarnecki  and  Michal  Antkiewicz  GPCE’05  

Page 52: Ec2013 tutorial-mb variability-final

52  «  Mapping  Features  to  Models:  A  Template  Approach  Based  on  Superimposed  Variants»  Krzysztof  Czarnecki  and  Michal  Antkiewicz  GPCE’05  

Page 53: Ec2013 tutorial-mb variability-final

Safe  composiWon?  No!  

53  «Verifying  Feature-­‐Based  Model  Templates  Against  Well-­‐Formedness  OCL  Constraints  »  Krzysztof  Czarnecki  Krzysztof  Pietroszek  GPCE’06  

Page 54: Ec2013 tutorial-mb variability-final

Ooops  

54  «Verifying  Feature-­‐Based  Model  Templates  Against  Well-­‐Formedness  OCL  Constraints  »  Krzysztof  Czarnecki  Krzysztof  Pietroszek  GPCE’06  

Page 55: Ec2013 tutorial-mb variability-final

Another  approach  

55  «  Reconciling  AutomaWon  and  Flexibility  in  Product  DerivaWon  »  Gilles  Perrouin,  Jacques  Klein,  Nicolas  Guelfi,  Jean-­‐Marc  Jézéquel  SPLC’08  

Page 56: Ec2013 tutorial-mb variability-final

56  «  Reconciling  AutomaWon  and  Flexibility  in  Product  DerivaWon  »  Gilles  Perrouin,  Jacques  Klein,  Nicolas  Guelfi,  Jean-­‐Marc  Jézéquel  SPLC’08  

Merging-­‐based  DerivaCon  of  Product  

Page 57: Ec2013 tutorial-mb variability-final
Page 58: Ec2013 tutorial-mb variability-final

Variability  at  the  language  level    

58

Variability  in  Metamodeling  •  SemanWc  variaWon  point  •  DSML  Families  •  Knowledge  capitalizaWon  •  Language  Engineering  

 

Variability  in  Modeling  

Variability

Variability

Page 59: Ec2013 tutorial-mb variability-final

 Engineering  SemanCcs  in  Modeling  Languages  

59

Abstract

Syntax(AS)

Concrete

Syntax(CS)

Semantics

Domain(SD)

Mac

Mas

•  Variability  in  metamodeling  (DSML  families,  variaWon  point...):  –  Abstract  syntax:  staWc  introducWon  (AOM),  inheritance  (OOP)  –  Concrete  syntax:  view  point  (OBEO  Designer)  –  SemanWcs:  sWll  a  problem!  how  to  define  and  manage  semanBc  variability  (in  the  DSML  and  the  associated  tools)?  

Page 60: Ec2013 tutorial-mb variability-final

DSL4  

DSL3  DSL2  

DSL1  Language  Family  

(expresiveness,  semanWc  variaWon  point,    implementaWon  variaWon  point,  viewpoints,  tooling,  etc.)  

RM  dsl1  

RM  dsl2  

RM  dsl3  RM  

dsl4  Challenge1:  Modular  Language  Design  

Challenge3:  Language  

ComposiWon  

Challenge2:  Variability  Modeling  

«  Variability  Management  in  Modeling  Languages  »  Suresh  Pilay  PhD  thesis  (ongoing)  

Page 61: Ec2013 tutorial-mb variability-final

DSL  

Variability  model  

CVL  

Base    model  

Generic  &    Standardized  

resoluCon  models  

Focused  on    a  domain  

Execute  CVL      

Resolved    models  

DescripWon  of  possible  

variaWons  in  the  system  

Domain  model  of  a  parWcular  family  of  system  

SelecWon  of  a  set  of  opWons  in  the  variaWon  model  

Family  of  systems  fully  described  in  the  domain  specific  language.  All  regular  DSL  tools  can  be  applied  to  these  models  

61  

RealizaCon  model  

Language Units

Language Features

how to realize the features

Configuration of languages

Derivation Process

Languages

«  Variability  Management  Modeling  Languages  »  Suresh  Pilay  PhD  thesis  (ongoing)  

Page 62: Ec2013 tutorial-mb variability-final
Page 63: Ec2013 tutorial-mb variability-final

63  

«  ExtracWon  and  EvoluWon  of  Architectural  Variability  Models  in  Plugin-­‐based  Systems  »      Mathieu  Acher,  Anthony  Cleve,  Philippe  Collet,  Philippe  Merle,  Laurence  Duchien,  Philippe  Lahire  ECSA/SoSyM’13  

Page 64: Ec2013 tutorial-mb variability-final

64  

«  ExtracWon  and  EvoluWon  of  Architectural  Variability  Models  in  Plugin-­‐based  Systems  »      Mathieu  Acher,  Anthony  Cleve,  Philippe  Collet,  Philippe  Merle,  Laurence  Duchien,  Philippe  Lahire  ECSA/SoSyM’13  

FraSCAti

SCAParser

Java Compiler

JDK6 JDT

Optional

Mandatory

Alternative-Group

Or-Group

Assembly Factory

resthttp

Binding

MMFrascati

Component Factory

Metamodel

MMTuscany

constraints

rest requires MMFrascatihttp requires MMTuscany

FM1

Variability  Model  

Page 65: Ec2013 tutorial-mb variability-final

65  

Variability  Model  FraSCAti

SCAParser

Java Compiler

JDK6 JDT

Optional

Mandatory

Alternative-Group

Or-Group

Assembly Factory

resthttp

Binding

MMFrascati

Component Factory

Metamodel

MMTuscany

constraints

rest requires MMFrascatihttp requires MMTuscany

FM1

FraSCAC  Architecture  

Set  of    Safe  Variants  

authorized  by  FraSCAC  

Scope  is  too  large  

Page 66: Ec2013 tutorial-mb variability-final

Illegal    Variant    

66  

Page 67: Ec2013 tutorial-mb variability-final

67  

FraSCAC  Architecture  

FraSCAti

SCAParser

Java Compiler

JDK6 JDT

Optional

Mandatory

Alternative-Group

Or-Group

Assembly Factory

resthttp

Binding

MMFrascati

Component Factory

Metamodel

MMTuscany

constraints

rest requires MMFrascatihttp requires MMTuscany

FM1

Feature  Model  

FraSCAti

SCAParser

Java Compiler

JDK6 JDT

Optional

Mandatory

Alternative-Group

Or-Group

Assembly Factory

resthttp

Binding

MMFrascati

Component Factory

Metamodel

MMTuscany

constraints

rest requires MMFrascatihttp requires MMTuscany

FM1

ConfiguraCon   Derived  FraSCAC  Architecture  

Page 68: Ec2013 tutorial-mb variability-final

[MOTIVATION/PROBLEM]  Why  modeling  and  managing  Variability  does  and  will  maber  (30’)  

[SOLUTION  FOR  MANAGING  FEATURE  MODELS]  Managing  Variability  Models  with  FAMILIAR  (1h45’)      [SOLUTION  FOR  MODEL-­‐BASED  DERIVATION  OF  PRODUCT]  Model-­‐based  variability  engineering:  examples,  support  and  open  issues  (45’)  

 

68  

Plan  

Page 69: Ec2013 tutorial-mb variability-final

Variability  Model  

ConfiguraCon  

Domain  Artefacts  (e.g.,  source  code)  

SoSware  Generator  

Modeling  variability    is  crucial  ü   ü  

Page 70: Ec2013 tutorial-mb variability-final

70  

Unused  flexibility  

Page 71: Ec2013 tutorial-mb variability-final

71  

Illegal  variant  

Page 72: Ec2013 tutorial-mb variability-final

72  72  

Extensible  architect

ures  

(plugins-­‐based)  

ConfiguraCon  

files  

System  

Preferences  

Configurators  

Source  code  

Build  systems  

Comparison  of  Product

 

Page 73: Ec2013 tutorial-mb variability-final

 Variability  AbstracCon  Model  (VAM)    CommunicaCve    AnalyCc    GeneraCve     73  

not, and, or, implies

Page 74: Ec2013 tutorial-mb variability-final

Variability  Model  Feature  Model:  de  facto  standard  

•  Research    –  2500+  citaWons  of  [Kang  et  al.,  1990]  on  Google  Scholar    –  Central  to  many  generaWve  approaches  

•  at  requirements  or  code  level  –  Tools  &  Languages  (GUIDSL/FeatureIDE,  SPLOT,  FaMa,  etc.)  

•  Industry    –  Tools  (Gears,  pure::variants),    

•  Common  Variability  Language  (CVL)  74  

Page 75: Ec2013 tutorial-mb variability-final
Page 76: Ec2013 tutorial-mb variability-final

Feature  Models  

76  

Page 77: Ec2013 tutorial-mb variability-final

Feature  Models  (Background)  

77  

Hierarchy:  rooted  tree    Variability:    •  mandatory,    •  opWonal,    •  Groups:  exclusive  or  inclusive  features  •  Cross-­‐tree  constraints  

Optional

Mandatory

Xor-Group

Or-Group

Page 78: Ec2013 tutorial-mb variability-final

78  

Hierarchy  +  Variability    =    

set  of  valid  configuraCons  

ü

{CarEquipment,  Comfort,  DrivingAndSafety,  Healthing,  AirCondiWoning,  FrontFogLights}  

configuraCon  =  set  of  features  selected  

Optional

Mandatory

Xor-Group

Or-Group

Page 79: Ec2013 tutorial-mb variability-final

79  

Hierarchy  +  Variability    =    

set  of  valid  configuraCons  

ü

{CarEquipment,  Comfort,  DrivingAndSafety,  Healthing,  AirCondiWoning}  

configuraCon  =  set  of  features  selected  

Optional

Mandatory

Xor-Group

Or-Group

Page 80: Ec2013 tutorial-mb variability-final

80  

Hierarchy  +  Variability    =    

set  of  valid  configuraCons  

ü

Optional

Mandatory

Xor-Group

Or-Group

{CarEquipment,  Comfort,  DrivingAndSafety,  Healthing,  AirCondiWoning,  AutomaWcHeadLights}  

configuraCon  =  set  of  features  selected  

ü  ü  

ü  

ü  

ü  

ü  

Page 81: Ec2013 tutorial-mb variability-final

81  

Hierarchy  +  Variability    =    

set  of  valid  configuraCons  

ü

ü

Optional

Mandatory

Xor-Group

Or-Group

{AirCondiWoning,  FrontFogLights}  {AutomaWcHeadLights,  AirCondiWoning,  FrontFogLights}  {AutomaWcHeadLights,  FrontFogLights,  AirCondiWoningFrontAndRear}  {AirCondiWoningFrontAndRear}  {AirCondiWoning}  {AirCondiWoningFrontAndRear,  FrontFogLights}  

{CarEquipment,  Comfort,  DrivingAndSafety,  Healthing}   X

Page 82: Ec2013 tutorial-mb variability-final

Feature  Models  

82  

Page 83: Ec2013 tutorial-mb variability-final
Page 84: Ec2013 tutorial-mb variability-final

 (FeAture  Model  scrIpt  Language  for  manIpulaWon  and  AutomaWc  Reasoning)    

not, and, or, impliesφ TVL

DIMACS

hip://familiar-­‐project.github.com/  

Mathieu  Acher,  Philippe  Collet,  Philippe  Lahire,  Robert  B.  France  «  A  Domain-­‐Specific  Language  for  Large-­‐Scale  Management  of  Feature  Models  »  Science  of  Computer  Programming  (SCP),  2013  

Page 85: Ec2013 tutorial-mb variability-final

85  

Optional

Mandatory

Xor-Group

Or-Group

Page 86: Ec2013 tutorial-mb variability-final

86  

Optional

Mandatory

Xor-Group

Or-Group

Page 87: Ec2013 tutorial-mb variability-final

87  

Optional

Mandatory

Xor-Group

Or-Group

{AirCondiWoning,  FrontFogLights}  {AutomaWcHeadLights,  AirCondiWoning,  FrontFogLights}  {AutomaWcHeadLights,  FrontFogLights,  AirCondiWoningFrontAndRear}  {AirCondiWoningFrontAndRear}  {AirCondiWoning}  {AirCondiWoningFrontAndRear,  FrontFogLights}  

{CarEquipment,  Comfort,  DrivingAndSafety,  Healthing}  

X

Page 88: Ec2013 tutorial-mb variability-final

88  

Page 89: Ec2013 tutorial-mb variability-final
Page 90: Ec2013 tutorial-mb variability-final

 (FeAture  Model  scrIpt  Language  for  manIpulaWon  and  AutomaWc  Reasoning)    

imporCng,  exporCng,  composing,  decomposing,  ediCng,  configuring,  reverse  engineering,  compuCng  "diffs",  refactoring,  tesCng,    and  reasoning  about  (mulCple)  variability  models  

not, and, or, impliesφ TVL

DIMACS

hip://familiar-­‐project.github.com/  

Mathieu  Acher,  Philippe  Collet,  Philippe  Lahire,  Robert  B.  France  «  A  Domain-­‐Specific  Language  for  Large-­‐Scale  Management  of  Feature  Models  »  Science  of  Computer  Programming  (SCP),  2013  

Page 91: Ec2013 tutorial-mb variability-final

#1  Automated  Analysis  

91  

Page 92: Ec2013 tutorial-mb variability-final

#2  MulCple  Feature  Models  

92  

Page 93: Ec2013 tutorial-mb variability-final

93  93  

MulC-­‐*  variability          *systems,  perspecCves,  or  stakeholders  

Page 94: Ec2013 tutorial-mb variability-final

•  #1  Automated  analysis    –  Aka  support  to  beber  understand  and  play  with  your  feature  model  (TVL  model)  

•  #2  Managing  mulCple  feature  models  –  Composing  /  Decomposing  /  Diff  and  Reasoning  about  their  relaWonships  

–  Combining  these  operators  94  

Two  Key  Requirements  

Page 95: Ec2013 tutorial-mb variability-final

language  and  environment  

             

And-Group

Optional

Mandatory

Xor-Group

Or-Group

constraints

……..

DirectX

V10 V10.1 v11

Outputs

VIVO DVI HDMI

S-Video Composite

VGA

GraphicCard And-Group

Optional

Mandatory

Xor-Group

Or-Group

TV output

constraints

VGA excludes TV outputHDMI implies v10.1 or v11

constraints

……..

constraints

……..

constraints

……..

//  foo.fml  fm1  =  FM  (“foo1.tvl”)  fm2  =  FM  (“foo2.m”)  fm3  =  merge  intersecCon  {  fm1  fm2  }  c3  =  counCng  fm3  renameFeature  fm3.TV  as  “OutputTV”  fm5  =  aggregate  {  fm3  FM  (“foo4.xml”)  }  assert  (isValid  fm5)      fm6  =  slice  fm5  including  fm5.TV.*    export  fm6    

True/False  8759  “OutputTV”,  “TV”    

Interoperability   Language  faciliCes   Environment  

Page 96: Ec2013 tutorial-mb variability-final

96  

Interoperability  fm1  =  FM(“foo.tvl”)  fm2  =  FM  (“foo.m”)    

serialize  fm4  into  SPLOT  serialize  fm1  into  featureide  fm3  =  FM  (“foo.xmi”)  

fm4  =  FM  (A  :  B  ….)    

   De/ComposiCon  merge                        diff                        intersecWon                        sunion  

   

aggregate    map    unmap  

extract                                                      slicing  

EdiCng  renameFeature  

 removeFeature  accessors    

 copy  

             Reasoning    counWng   configs  

isValid  deads  cores  falseOpWonals  

cleanup  

configuraWon      select    deselect    asFM  compare  

setOpWonal                          setMandatory  

setAlternaWves      setOr  

 

 Language  FaciliCes  fm1.*   fm1.B  

modular  mechanisms      

restricted  set  of  types  iterator/condiWonal  

asserWon  

insert  

features  

Page 97: Ec2013 tutorial-mb variability-final

Hello  World  

97  

helloworld.fml  Optional

Mandatory

Xor-Group

Or-Group

Page 98: Ec2013 tutorial-mb variability-final

Typed  language    •  Domain-­‐specific  types  

–  Feature  Model,    –  ConfiguraWon,    –  Feature,    –  Constraint    

•  Other  types  include    –  Set  –  String    –  Boolean,    –  Enum,    –  Integer  and  Real.    

•  A  set  of  operaWons,  called  operators,  are  defined  for  a  given  type.    98  

basics2.fml  

Page 99: Ec2013 tutorial-mb variability-final

Typed  language    

99  

basics2.fml  

Page 100: Ec2013 tutorial-mb variability-final

Typed  language    

100  

basics2.fml  

Optional

Mandatory

Xor-Group

Or-Group

Page 101: Ec2013 tutorial-mb variability-final

ImporCng/ExporCng  feature  models  

101  

FAMILIAR

S2T2TVL

feature-model-synthesis

(visual configurator)

(language)

(language)FaMa

Internal  notaWon  or  by  “filename  extensions”    

basics3.fml  

Page 102: Ec2013 tutorial-mb variability-final

Feature  Accessors  (1)  

102  

6Accessors.fml  

Optional

Mandatory

Xor-Group

Or-Group

Page 103: Ec2013 tutorial-mb variability-final

Other  constructs  

103  

6Accessors2.fml  

Optional

Mandatory

Xor-Group

Or-Group

Page 104: Ec2013 tutorial-mb variability-final

ConfiguraCon  

104  

conf.fml   Optional

Mandatory

Xor-Group

Or-Group

Page 105: Ec2013 tutorial-mb variability-final

105  

φ FM

A  ^  A  ó  B  ^    C  =>  A  ^  D  =>  A    

Optional

Mandatory

Xor-Group

Or-Group

Page 106: Ec2013 tutorial-mb variability-final

OperaCons  for  Feature  Models  (1)  

106  φ

operatorsFM.fml  

Optional

Mandatory

Xor-Group

Or-Group

Page 107: Ec2013 tutorial-mb variability-final

OperaCons  for  Feature  Models  (2)  

107  

φ

operatorsFM2.fml  

Optional

Mandatory

Xor-Group

Or-Group

Page 108: Ec2013 tutorial-mb variability-final

OperaCons  for  Feature  Models  (3)  

108  

operatorsFM3.fml  

Optional

Mandatory

Xor-Group

Or-Group

Page 109: Ec2013 tutorial-mb variability-final

   

   

       

       

   

       

   

   

   

       

       

   

       

   

SoC  support  =  ComposiCon/DecomposiCon  for  managing  large,  complex  and  mulCple  feature  models  FORM  1998,  Tun  et  al.  2009  (SPLC),  Hartmann  2008  (SPLC),  Lee  et  al.  2010,  Czarnecki  2005,  Reiser  et  al.  2007  (RE  journal),  Hartmann  et  al.  2009  (SPLC),  Thuem  et  al.  2009  (ICSE),  Classen  et  al.  2009  (SPLC),  Mendonca  et  al.  2010  (SCP),  Dunghana  et  al.  2010,  Hubaux  et  al.  2011  (SoSyM),  Zaid  et  al.  2010  (ER),  She  et  al.,  2011  (ICSE),  etc.    

Page 110: Ec2013 tutorial-mb variability-final

Composing  Feature  Models  (1)  

110  

aggregateBasics.fml  

Optional

Mandatory

Xor-Group

Or-Group

Page 111: Ec2013 tutorial-mb variability-final

Composing  Feature  Models  (2)  

111  

aggregate1.fml  

Previous  version  

Optional

Mandatory

Xor-Group

Or-Group

Page 112: Ec2013 tutorial-mb variability-final

Composing  Feature  Models  (3)  

112  

mergeMI.fml  

Mathieu  Acher,  Philippe  Collet,  Philippe  Lahire,  Robert  B.  France  «  Comparing  Approaches  for  ImplemenWng  Feature  Model  ComposiWon  »  ECMFA’10  

Page 113: Ec2013 tutorial-mb variability-final

see  also  Thuem,  Kastner  and  Batory,  ICSE’09  

Comparing  Feature  Models  

113  

compare.fml  

Optional

Mandatory

Xor-Group

Or-Group

Page 114: Ec2013 tutorial-mb variability-final
Page 115: Ec2013 tutorial-mb variability-final

Merge  IntersecCon:  Available  Suppliers  

115  

∩   ∩  

A  customer  has  some  

requirements  

Suppliers?  Products?  

Page 116: Ec2013 tutorial-mb variability-final

In  FAMILIAR  

116  

suppliersExample0.fml  

Page 117: Ec2013 tutorial-mb variability-final

Merge  Union:  Availability  Checking  

117  

Can  suppliers  provide  all  products?  Yes!  

“compare”      

 

∩  

Optional

Mandatory

Xor-Group

Or-Group

Page 118: Ec2013 tutorial-mb variability-final

In  FAMILIAR  

118  

suppliersExample.fml  

Page 119: Ec2013 tutorial-mb variability-final

Merging  operaCon:    implementaCon  issues  

119  

How  to  synthesise  a  feature  model  that  represents  the  union  of  input  sets  of  configuraCons?  

Optional

Mandatory

Xor-Group

Or-Group

T2

MRI

Medical Image

HeaderAnonymized

T1

DICOMHeader excludes DICOMHeader implies AnonymizedAnonymized v Header v ~DICOM v ~T1 v ~T2Anonymized v Header v DICOM v ~T1 v ~T2

Page 120: Ec2013 tutorial-mb variability-final

120  

Merging  operaCon:  semanCc  issues  (2)  

φ Union  IntersecWon    Diff     How  to  synthesise  a  feature  model  that  represents  

the  union  of  input  sets  of  configuraCons?  

Page 121: Ec2013 tutorial-mb variability-final

Merging  operaCon:  algorithm  

121  

φ1

φ2

φ3

φ 123

merged  proposiWonal  formula  T2

MRI

Medical Image

HeaderAnonymized

T1

DICOM

merged  hierarchy  +  

Set  mandatory  features  Detect  Xor  and  Or-­‐groups  Compute  “implies/excludes”  constraints  

How  to  synthesise  a  feature  model  that  represents  the  union  of  input  sets  of  configuraCons?  

see  also  [Czarnecki  SPLC’07  or  SPLC’12]  

Optional

Mandatory

Xor-Group

Or-Group

Page 122: Ec2013 tutorial-mb variability-final

Merging  operaCon:  back  to  hierarchy  

122  

mergeNonPC.fml  

>  configs  fm4  res12:  (SET)  {{C;A};{A;B};{A};{A;B;C}}   ?  

Mathieu  Acher,  Benoit  Combemale,  Philippe  Collet,  Olivier  Barais,  Philippe  Lahire,  Robert  B.  France  «  Composing  your  ComposiWons  of  Variability  Models  »  MODELS’13  

Optional

Mandatory

Xor-Group

Or-Group

Page 123: Ec2013 tutorial-mb variability-final

see  also  [Acher  et  al.,  ECMFA’10  /  MODELS’13]  

– Well-­‐defined  semanWcs  – Guarantee  semanWcs  properWes  by  construcWon  – More  compact  feature  models  than  reference-­‐based  techniques  [Schobbens  et  al.,  2007],  [Hartmann  et  al.,  2007]  

•  Easier  to  understand  •  Easier  to  analyze  (e.g.,  compare  with  another)  

– Applicable  to  any  proposiWonal  feature  models    •  Full  support  of  proposiWonal  constraints    •  Different  hierarchies  [Van  Den  Broek  et  al.,  SPLC’2010/2012]  

– SyntacWcal  strategies  fail  [Alves  et  al.,  2006],  [Segura  et  al.,  2007]  123  

Related  Works  

Page 124: Ec2013 tutorial-mb variability-final
Page 125: Ec2013 tutorial-mb variability-final

125  

Problem:  mulCple  „car  models“    

Page 126: Ec2013 tutorial-mb variability-final

126  

Problem:  mulCple  „car  models“    

Page 127: Ec2013 tutorial-mb variability-final

127  

Problem:  mulCple  „car  models“    

Page 128: Ec2013 tutorial-mb variability-final

128  

Problem:  mulCple  „car  models“    

 #2  –  boiom-­‐up:  elaborate  a  feature  model  for  each  model  line  and  merge  them  

Two  modeling  approaches  #1  –  top-­‐down:  specify  constraints  (e.g.,  excludes)  of  all  model  lines  upfront    

Page 129: Ec2013 tutorial-mb variability-final

129  

#1  top-­‐down  

Page 130: Ec2013 tutorial-mb variability-final

130  

#1  boiom-­‐up  FM_1  

FM_2  

FM_3  

FM_r  merge  

Page 131: Ec2013 tutorial-mb variability-final

131  

#1  boiom-­‐up  (FAMILIAR)  FM_1  

FM_2  

FM_3  

FM_r  merge  

audiMerge.fml  

Page 132: Ec2013 tutorial-mb variability-final
Page 133: Ec2013 tutorial-mb variability-final

133  

Building  “views”  of  a  feature  model  

Page 134: Ec2013 tutorial-mb variability-final

•  Problem:  given  a  feature  model,  how  to  decompose  it  into  smaller  feature  models?  

•  SemanWcs?  – What’s  the  hierarchy  – What’s  the  set  of  configuraWons?  

134  

Building  “views”  of  a  feature  model  

Page 135: Ec2013 tutorial-mb variability-final

A  first  try  

A3 => P1P2 => A5

R

A2

A5 A6

A1

A3 A4

A

fm0

P3P2P1

P

P1 => P2

A2

A5 A6

A1

A3 A4

AfmExtraction1

A2

A5 A6

A1

A3 A4

AfmExtraction2

A3 => A5A4 => A6

Problem:  You  can  select  A3  without  A5  

Hierarchy  and  ConfiguraCon  maier!   135  

Page 136: Ec2013 tutorial-mb variability-final

Slicing  Operator  

W

constraintsE implies DR implies E D excludes FS implies (F and not E)

P

R S

fm1

AV

T U

B C D

E F

Optional

Mandatory

Xor-Group

Or-Group

T

S E D

constraintsE implies DD implies E

slicing  criterion  :  an  arbitrary  set  of  features,  relevant  for  a  feature  model  user  

slice  :  a  new  feature  model,  represenWng  a  projected  set  of  configuraWons    

136  

Page 137: Ec2013 tutorial-mb variability-final

Slicing  operator:  going  into  details  projected  set  of  configuraCons  

137  

fm1  =  {    {A,B,C,D,E,P,R,T,U,W},    {A,B,C,F,P,S,T,U,W},    {A,B,C,D,E,P,R,T,W},    {A,B,C,F,P,S,T,V,W},    {A,B,C,F,P,S,T,U,V,W},    {A,B,C,F,P,S,T,W},    {A,B,C,D,E,P,R,T,V,W},    }  

fm1  =  {    {A,B,C,D,E,P,R,T,U,W},    {A,B,C,F,P,S,T,U,W},    {A,B,C,D,E,P,R,T,W},    {A,B,C,F,P,S,T,V,W},    {A,B,C,F,P,S,T,U,V,W},    {A,B,C,F,P,S,T,W},    {A,B,C,D,E,P,R,T,V,W},    }  

fm1p  =  {    {D,E,T},    {S,T},    {D,E,T},    {S,T},    {S,T},    {S,T},    {D,E,T}  }  

fm1p  =  {    {D,E,T},    {S,T},    }  

W

constraintsE implies DR implies E D excludes FS implies (F andnot E)

P

R S

fm1

AV

T U

B C D

E F

Optional

Mandatory

Xor-Group

Or-Group

Page 138: Ec2013 tutorial-mb variability-final

+  T

S E D

constraintsE implies DD implies E

φs1

existenBal  quanBficaBon  of  features  not  included  in  the  slicing  criterion  

138  

fm1p  =  {    {D,E,T},    {S,T}  }  

Slicing  operator:  going  into  details  synthesizing  the  corresponding  feature  model  

S   E   D  

T  

W

constraintsE implies DR implies E D excludes FS implies (F andnot E)

P

R S

fm1

AV

T U

B C D

E F

φ1

Mathieu  Acher,  Philippe  Collet,  Philippe  Lahire,  Robert  B.  France  «  SeparaWon  of  Concerns  in  Feature  Modeling:  Support  and  ApplicaWons  »  AOSD’12  

Optional

Mandatory

Xor-Group

Or-Group

Page 139: Ec2013 tutorial-mb variability-final

T

S E D

constraintsE implies DD implies E

139  

Slicing  operator  with  FAMILIAR  (1)  

W

constraintsE implies DR implies E D excludes FS implies (F andnot E)

P

R S

fm1

AV

T U

B C D

E F

slicingOp2.fml  

Optional

Mandatory

Xor-Group

Or-Group

Page 140: Ec2013 tutorial-mb variability-final

140  

Slicing  with  FAMILIAR  (2)  slicingOp.fml  

Page 141: Ec2013 tutorial-mb variability-final

From  marke.ng,  customers,  product  management    

From  exis.ng  so@ware  assets    (technical  variability)  

Metzger,  Heymans  et  al.  “DisambiguaBng  the  DocumentaBon  of  Variability  in  Sofware  Product  Lines:  A  SeparaBon  of  Concerns,  FormalizaBon  and  Automated  Analysis“  (RE’07)  

Page 142: Ec2013 tutorial-mb variability-final

V1 ⬄ f1V2 ⬄ f2V3 ⬄ f3

From  marke.ng,  customers,  product  management    

From  exis.ng  so@ware  assets    

realizability  

usefulness  

Optional

Mandatory

Xor-Group

Or-Group

Page 143: Ec2013 tutorial-mb variability-final

Realizability  checking  aggregate  

{{V1,V3,V2,VP1},  {V1,VP1},  {V3,VP1},    {VP1}}    

merge  diff  (“unrealizable  products”)  

 

φ

1

slice  (“realizable  part”)  2

3 compare  4  

Mathieu  Acher,  Philippe  Collet,  Philippe  Lahire,  Robert  B.  France  «  SeparaWon  of  Concerns  in  Feature  Modeling:  Support  and  ApplicaWons  »  AOSD’12    

Optional

Mandatory

Xor-Group

Or-Group

Page 144: Ec2013 tutorial-mb variability-final

With  FAMILIAR  

144  

realizibility.fml  

Page 145: Ec2013 tutorial-mb variability-final
Page 146: Ec2013 tutorial-mb variability-final

146  

RevisiCng  Merge:    Aggregate  +  Slice  

Optional

Mandatory

Xor-Group

Or-Group

Page 147: Ec2013 tutorial-mb variability-final

147  

RevisiCng  Aggregate,    Merge  and  Slice:    

 

mergeWithAggregateMI.fml  

Mathieu  Acher,  Benoit  Combemale,  Philippe  Collet,  Olivier  Barais,  Philippe  Lahire,  Robert  B.  France  «  Composing  your  ComposiWons  of  Variability  Models  »  MODELS’13  

Optional

Mandatory

Xor-Group

Or-Group

Page 148: Ec2013 tutorial-mb variability-final

148  Mathieu  Acher,  Benoit  Combemale,  Philippe  Collet,  Olivier  Barais,  Philippe  Lahire,  Robert  B.  France  «  Composing  your  ComposiWons  of  Variability  Models  »  MODELS’13  

Page 149: Ec2013 tutorial-mb variability-final

149  

φ FM

           

Feature  Model  Synthesis  Problem  [Czarnecki  et  al.,  SPLC’07]  

[She  et  al.,  ICSE’11]  [Andersen  et  al.,  SPLC’12]  

A  ^  A  ó  B  ^    C  =>  A  ^  D  =>  A    

Page 150: Ec2013 tutorial-mb variability-final

φ            

 

« How to synthesise an accurate (w.r.t. the set of constraints/configurations) meaningful (maintainable by a user), and

unique feature model? » 

hip://familiar-­‐project.github.com/  

Page 151: Ec2013 tutorial-mb variability-final

φ(SAT solvers or

Binary Decision Diagrams)

The  knowledge  can  be:      inconsistent  (e.g.,  root  feature  specified  is  not  possible)  consistent  and  incomplete  (i.e.,  synthesis  algorithm  needs  addiWonal  informaWon)  consistent,  «  parCal  »  (e.g.,  not  all  the  hierarchy  is  specified)  and  actually  complete    

Mathieu  Acher,  Patrick  Heymans,  Anthony  Cleve,  Jean-­‐Luc  Hainaut,  Benoit  Baudry  «  Support  for  Reverse  Engineering  and  Maintaining  Feature  Models  »  VaMoS’13  

Page 152: Ec2013 tutorial-mb variability-final

#1  Reverse  Engineering  Scenarios  •  [Haslinger  et  al.,  WCRE’11],  [Acher  et  al.,  VaMoS’12]  

φ

V

DAd OT M KAe CP R S

C requires TAe requires TS equals M

V

DAd OT KAe SP R M

C requires TS equals M

C

0..1

Page 153: Ec2013 tutorial-mb variability-final

#2  Refactoring  •  [Alves  et  al.,  GPCE’06],  [Thuem  et  al.,  ICSE’09]  

φ V

DAd OT M KAe CP R S

C requires TAe requires TS equals M

Page 154: Ec2013 tutorial-mb variability-final

#3  Re-­‐Engineering  Feature  Models  of                            repository  

•  For  each  FM  we  execute  the  following  FAMILIAR  script…  

 

•  …  And  we  «compare»  syntacWcally  fm1  and  fm2  •  semanWcal  comparison  is  not  needed:  we  know  that  they  are  refactoring  by  construcWon  (good  test  case  though  ;-­‐))  

•  Results:  –  147  synthesised  FMs  (69  %)  were  exactly  the  same  as  input  FMs  ;    –  40  synthesised  FMs  (19%)  were  correcWons  of  input  FMs  ;    –  24  synthesised  FMs  (12%)  were  different  (knowledge  needed)  

•  another  set  of  cross-­‐tree  constraints  was  synthesised.    •  feature  group  conflicts  in  six  cases  

SpecificaCon  of  the  hierarchy  is  the  main  issue  

φ

Page 155: Ec2013 tutorial-mb variability-final

φ            

FAMILIAR  

« Give me a formula and some knowledge,

I will synthesise an accurate, meaningful,

unique feature model » 

#1  Breathing  knowledge  into  feature  model  synthesis    formal  specificaWon  (consistency  and  completeness)    concrete  syntax  and  tooling  suport  

#2  PracCcal  applicaCons    reverse  engineering,  refactoring/re-­‐engineering  of  feature  models      

hip://familiar-­‐project.github.com/  

Automated  support  is  highly  needed  (ongoing  work)  

Page 156: Ec2013 tutorial-mb variability-final

[MOTIVATION/PROBLEM]  Why  modeling  and  managing  Variability  does  and  will  maber  (30’)  

[SOLUTION  FOR  MANAGING  FEATURE  MODELS]  Managing  Variability  Models  with  FAMILIAR  (1h45’)      [SOLUTION  FOR  MODEL-­‐BASED  DERIVATION  OF  PRODUCT]  Model-­‐based  variability  engineering:  examples,  support  and  open  issues  (45’)  

 

156  

Plan  

Page 157: Ec2013 tutorial-mb variability-final

Variability  AbstracCon  Model  (VAM)  

ConfiguraCon  (resoluCon  model)  

Domain  Artefacts  (e.g.,  models)  

SoSware  Generator  (derivaCon  engine)  

ü   ü  

Variability  RealizaCon  Model  (VRM)  

Page 158: Ec2013 tutorial-mb variability-final

Configurations Derivation Process

Models of the “system”

Feature Model

How to realize the variability

Page 159: Ec2013 tutorial-mb variability-final

Printer´Blockª

mainSupply:MainPower1

Attributes

Operations

powerCtrl

emgSupply:EmgPower1

Attributes

threshold:int

Operations

powerCtrl

inputSection1

highSpeedConnector1

Attributes

Operations

MainPowerCtrl EmgPowerCtrl

MainPower´Blockª

Values

Operations

powerCtrlEmgPower´Blockª

Values

threshold:int

powerCtrl

VariaCon  Points  over  base  model  

:ObjectExistence   :SlotValueAssignment  

CVL variation points

SYSML (base model) elements

:ObjectExistence   :ObjectExistence  

§  Variability  in  this  example:  

  Part  EmergencySupply  is  opWonal  

  Part  HighSpeedConnector  is  opWonal  

  Port  EmgPowerCtrl  on  block  Printer  is  opWonal  

  Value  of  abribute  threshold  in  block  EmergencyPower  is  variable  

Adapted  from  the  CVL  tutorial  at  SPLC’12  by  Oystein  Haugen,  Andrezj  Wasowski,  Krzysztof  Czarnecki    

Page 160: Ec2013 tutorial-mb variability-final

Printer´Blockª

mainSupply:MainPower1

Attributes

Operations

powerCtrl

emgSupply:EmgPower1

Attributes

threshold:int

Operations

powerCtrl

inputSection1

highSpeedConnector1

Attributes

Operations

MainPowerCtrl EmgPowerCtrl

MainPower´Blockª

Values

Operations

powerCtrlEmgPower´Blockª

Values

threshold:int

powerCtrl

(Aiributed)  Feature  Model    

Printer  

EmergencyPower  

threshold:Int  

Variation points

HighSpeed  &    threshold>100      EmergencyPower  

HighSpeed  

:ObjectExistence   :SlotValueAssignment  :ObjectExistence   :ObjectExistence  

Based  Model    

Adapted  from  the  CVL  tutorial  at  SPLC’12  by  Oystein  Haugen,  Andrezj  Wasowski,  Krzysztof  Czarnecki    

Page 161: Ec2013 tutorial-mb variability-final

Variability  RealizaCon  Layer  VariaCon  points  in  CVL  

•  VariaWon  Points  refer  to  Base  objects  •  VariaWon  Points  define  the  base  model  modificaWons  precisely  

•  There  are  different  kinds  of  VariaWon  Points  – Existence  (object  or  link)  – Value  assignment  – SubsWtuWon  – Opaque  variaWon  point  – Configurable  Unit  

Adapted  from  the  CVL  tutorial  at  SPLC’12  by  Oystein  Haugen,  Andrezj  Wasowski,  Krzysztof  Czarnecki    

Page 162: Ec2013 tutorial-mb variability-final

Derivation of Traffic Lights Models

Joao  Bosco  Ferreira  Filho  (PhD  student)  

Page 163: Ec2013 tutorial-mb variability-final

Traffic Lights

Page 164: Ec2013 tutorial-mb variability-final

. Traffic Lights' behaviour can be modelled using Finite State Machines

Traffic Lights FSM

Page 165: Ec2013 tutorial-mb variability-final

Traffic Lights FSM

OBJECTIVE:

Produce the finite state machine associated with each traffic light configuration

. Simplification:

- Green Light - Red Light - Yellow Light

Page 166: Ec2013 tutorial-mb variability-final

Base model

. Define the DSL:

1. Create an Ecore modelling project

2. Define the metamodel

3. Generate the model, the edit and the editor code

4. Export them as plugins

Page 167: Ec2013 tutorial-mb variability-final

DSL metamodel

Page 168: Ec2013 tutorial-mb variability-final

Base model

. Create the base model:

1. Create a Modelling project

2. Create a new model in the DSL

Page 169: Ec2013 tutorial-mb variability-final

Base model

. Create the base model:

1. Create a Modelling project

2. Create a new model in the DSL

Page 170: Ec2013 tutorial-mb variability-final

CVL model

. Create the CVL model:

1. Create a new CVL model in the modelling project. Select VPackage as the Model object

2. Right click on the project, select Viewpoints selection. Check the three of them

3. Define the VAM, Resolution model and VRM

Page 171: Ec2013 tutorial-mb variability-final

VAM

Page 172: Ec2013 tutorial-mb variability-final

Resolution model

Page 173: Ec2013 tutorial-mb variability-final

Resolution model

Page 174: Ec2013 tutorial-mb variability-final

VRM

Page 175: Ec2013 tutorial-mb variability-final

VRM

Page 176: Ec2013 tutorial-mb variability-final

Product derivation

Page 177: Ec2013 tutorial-mb variability-final

Derived FSM

Page 178: Ec2013 tutorial-mb variability-final

Visualisation of products in a web configurator

Marianela Ciolfi Felice (MSc student)  

Page 179: Ec2013 tutorial-mb variability-final
Page 180: Ec2013 tutorial-mb variability-final

Marks  &  Spencer  web  configurator  

Page 181: Ec2013 tutorial-mb variability-final

§  High visual quality

§  Coherence and stability

§  Interactiveness

§  Performance

§  Automatic and comprehensive

update method

Marianela Ciolfi Felice and Joao Bosco Ferreira Filho and Mathieu Acher and Arnaud Blouin and Olivier Barais « Interactive Visualisation of Products in Online Configurators: A Case Study for Variability Modelling Technologies » MAPLESCALE’13 (to appear)

Page 182: Ec2013 tutorial-mb variability-final

Anticipating all possible combinations

§  10 configuration options §  10 possible values for each of

them

10.000.000.000 combinations!

Composing the visualisation

Page 183: Ec2013 tutorial-mb variability-final

PRODUCT CONFIGURATION VISUAL REPRESENTATION

Models  

HTML  

jpg,  png,  ...,  files  SVG  files  

Javascript  

3D  models  

Feature  

models  

Page 184: Ec2013 tutorial-mb variability-final

Configurations Derivation Process

Visual representation of a product

Feature Model

How to realize the variability

Visual elements

Page 185: Ec2013 tutorial-mb variability-final

. Simplification:

- Fabric - Collar - Pocket (optional) - Handkerchief (optional)    

Shirts web configurator

Page 186: Ec2013 tutorial-mb variability-final

Shirts web configurator

OBJECTIVE:

Produce the visual representation associated with each shirt configuration

. Simplification:

- Fabric - Collar - Pocket (optional) - Handkerchief (optional)    

Page 187: Ec2013 tutorial-mb variability-final

Feature model

- Implicit boolean attribute existence - No constraints

Page 188: Ec2013 tutorial-mb variability-final

Base model

. Define the DSL:

1. Create an Ecore modelling project

2. Define the metamodel

3. Generate the model, the edit and the editor code

4. Export them as a plugin

Page 189: Ec2013 tutorial-mb variability-final

DSL metamodel

Page 190: Ec2013 tutorial-mb variability-final

Base model

. Create the base model:

1. Create a Modelling project

2. Create a new model in the DSL

Page 191: Ec2013 tutorial-mb variability-final

Base model

. Create the base model:

1. Create a Modelling project

2. Create a new model in the DSL

Page 192: Ec2013 tutorial-mb variability-final

CVL model

. Create the CVL model:

1. Create a new CVL model in the modelling project. Select VPackage as the Model object

2. Right click on the project. Select Viewpoints selection. Check the three of them

3. Define the VAM, Resolution model and VRM

Page 193: Ec2013 tutorial-mb variability-final

VAM

Page 194: Ec2013 tutorial-mb variability-final

VAM

Page 195: Ec2013 tutorial-mb variability-final

VAM

Suggestion: Set the choices' default resolution to: - True for mandatory features - False for optional features

Page 196: Ec2013 tutorial-mb variability-final

Resolution model

Page 197: Ec2013 tutorial-mb variability-final

Resolution model

Page 198: Ec2013 tutorial-mb variability-final

VRM

Page 199: Ec2013 tutorial-mb variability-final

VRM

Page 200: Ec2013 tutorial-mb variability-final

Product derivation

Page 201: Ec2013 tutorial-mb variability-final

Product derivation

Page 202: Ec2013 tutorial-mb variability-final

Summary:  Variability  Model  Management  

202  202  202  

Page 203: Ec2013 tutorial-mb variability-final

[MOTIVATION/PROBLEM]  Why  modeling  and  managing  Variability  does  and  will  maber  (30’)  

[SOLUTION  FOR  MANAGING  FEATURE  MODELS]  Managing  Variability  Models  with  FAMILIAR  (1h45’)      [SOLUTION  FOR  MODEL-­‐BASED  DERIVATION  OF  PRODUCT]  Model-­‐based  variability  engineering:  examples,  support  and  open  issues  (45’)  

 

203  

Key  Insights  

Page 204: Ec2013 tutorial-mb variability-final

(ongoing)  Comprehensive  model-­‐based  product  line  support    Reverse  engineering  Automated  Analysis  Languages,  API/DSLs  EvaluaCon  (European  projects,  long-­‐term  collaboraCon  with  Thales,  open  source  systems)  

  204  

204  

Page 205: Ec2013 tutorial-mb variability-final

   

   

       

   ?  205