SlideShare une entreprise Scribd logo
1  sur  49
Télécharger pour lire hors ligne
Composing Feature Models

Mathieu Acher1, Philippe Collet1, Philippe Lahire1, Robert France2

              1 University
                         of Nice Sophia Antipolis (France),
                  Modalis Team (CNRS, I3S Laboratory)
                    2 Computer Science Department,
                        Colorado State University
                                                              1
Why feature models?
 • Software Product Lines (SPL)
     – From common assets, different programs of a domain
       can be assembled
     – Promote systematic reuse
 • Feature modeling
     – Widely used technique in SPL engineering
          • domain analysis, requirements, code representation, etc.
          • academic and industrial tool support
 • Key idea: express variability of a family in terms
   of features

Mathieu Acher   « Composing Feature Models »                           2
What is feature model?
 • Hierarchy of features plus variability
   information




Mathieu Acher   « Composing Feature Models »   3
What is feature model?
 • Hierarchy of features plus variability
   information
mandatory




Mathieu Acher   « Composing Feature Models »   4
What is feature model?
 • Hierarchy of features plus variability
   information




                                               optional
Mathieu Acher   « Composing Feature Models »              5
What is feature model?
 • Hierarchy of features plus variability
   information




                                               alternative
Mathieu Acher   « Composing Feature Models »            6
What is feature model?
 • Hierarchy of features plus variability
   information




 alternative (not mutually exclusive)
Mathieu Acher   « Composing Feature Models »   7
Feature models and Configuration
 • Represent a set of valid configurations
     – Configuration: set of features selected
     – Valid configuration: defined by the semantics




Mathieu Acher   « Composing Feature Models »           8
Feature models and Configuration
 • Represent a set of valid configurations




Mathieu Acher   « Composing Feature Models »   9
Feature models and Configuration
 • Represent a set of valid configurations




          Person, housing, streetName, telephone, areaCode, transport, car

Mathieu Acher   « Composing Feature Models »                                 10
Agenda
 • Issues in Feature Modeling

 • Requirements and Rationale for the
   Composition Language

 • Composition Operators

 • Conclusion and Future Work

Mathieu Acher   « Composing Feature Models »   11
Feature Models




Mathieu Acher   « Composing Feature Models »   12
Feature Models




Mathieu Acher   « Composing Feature Models »   13
Feature Models




Scalability issues in terms of
   - construction
   - evolution
   - reasoning

 Mathieu Acher   « Composing Feature Models »   14
Separating and Composing
                     Feature Models




Mathieu Acher   « Composing Feature Models »   15
Composing Feature Models




                                               16
Mathieu Acher   « Composing Feature Models »
Design of a Language for
                  Composing Feature Models




with predictable properties
                                                  17
  Mathieu Acher    « Composing Feature Models »
Requirements



    insert                                     merge




Mathieu Acher   « Composing Feature Models »      20
Rationale
 • Characterizing the result of a Compositional
   Operator in terms of sets of configurations




     FM1                   FM2




Mathieu Acher   « Composing Feature Models »
Rationale
    • Characterizing the result of a Compositional
      Operator in terms of sets of configurations
Classification [Thüm, Batory and Kästner (ICSE’09)]




        FM1                   FM2




   Mathieu Acher   « Composing Feature Models »       22
Rationale
 • Characterizing the result of a Compositional
   Operator in terms of sets of configurations

     Base                Aspect


To predict which configurations will
be removed, added, or/and kept…

We choose to distinguish Aspect
from Base models
Mathieu Acher   « Composing Feature Models »      23
Rationale (cont’d)
 • Insert and Merge operators
 • Ensure predictable properties between input
   feature models and composed feature models
     – In terms of sets of configurations
     – We choose to distinguish Aspect from Base models
 • Describe operators in terms of
     – What?
     – Where?
     – How?

Mathieu Acher   « Composing Feature Models »              25
Insert Operator: Syntax




                                                    Aspect
           Base
 insert (aspectFeature: Feature, joinpointFeature: Feature, operator: Operator)

     What?                             Where?                 How?
Mathieu Acher   « Composing Feature Models »                                 26
Insert Operator: Syntax



                                               =
                             Aspect
   Base

                                                   Result

 insert (urbanTransport, transport, Xor)


Mathieu Acher   « Composing Feature Models »                27
Insert Operator: Syntax



                                               =
                             Aspect
   Base

                                                   Result

insert (urbanTransport, transport, And-mandatory)


Mathieu Acher   « Composing Feature Models »                28
Insert Operator: Syntax



                                               =
                             Aspect
   Base

                                                   Result

 insert (urbanTransport, transport, And-optional)


Mathieu Acher   « Composing Feature Models »                29
Insert Operator: Syntax



                                               =
                             Aspect
   Base

                                                   Result

 insert (urbanTransport, transport, And-optional)


Mathieu Acher   « Composing Feature Models »                30
Reasoning on the Result (1)


                                                  =
        Base                          Aspect                      Result

The set of configurations of the FM after insertion (Result) is at least the
set of configurations of Base FM.

Base : {{B, B2}, {B, B1, B2 }}


   Mathieu Acher   « Composing Feature Models »                            31
Reasoning on the Result (1)


                                                  =
        Base                          Aspect                            Result

The set of configurations of the FM after insertion (Result) is at least the
set of configurations of Base FM.

Base : {{B, B2}, {B, B1, B2 }}
Result :
{{B, B2}, {B, B1, B2 }, {B, A, B1, B2 }, {B, A, A1, B1, B2 }, {B, A, A1, B, B2 }}
   Mathieu Acher   « Composing Feature Models »                                  32
Reasoning on the Result (1)


                                                  =
        Base                          Aspect                           Result

The set of configurations of the FM after insertion (Result) is at least the
set of configurations of Base FM.

Base : {{B, B2}, {B, B1, B2 }}
Result :
{{B, B2}, {B, B1, B2 }, {B, A, B1, B2 }, {B, A, A1, B1, B2 }, {B, A, A1, B, B2 }}
   Mathieu Acher   « Composing Feature Models »                                 33
Reasoning on the Result (1)


                                                  =
        Base                          Aspect                           Result

The set of configurations of the FM after insertion (Result) is at least the
set of configurations of Base FM.
{{B, B2}, {B, B1, B2 }}
{{B, B2}, {B, B1, B2 }, {B, A, B1, B2 }, {B, A, A1, B1, B2 }, {B, A, A1, B, B2 }}

Result FM is a generalization of Base FM.
   Mathieu Acher   « Composing Feature Models »                                 34
Reasoning on the Result (2)


                                                =
      Base                          Aspect                            Result
Base : {{B, B2}, {B, B1, B2 }}
Aspect : {{A}, {A, A1}}

Result : {{B, A, B2}, {B, A, B1, B2 }, {B, A, A1, B1, B2 }, {B, A, A1, B, B2 }}


 Mathieu Acher   « Composing Feature Models »                                  35
Reasoning on the Result (2)


                                                =
      Base                          Aspect                    Result
The set of configurations of Result is at least the set of configurations
of the “cross product” of Base and Aspect.

Base : {{B, B2}, {B, B1, B2 }}
Aspect : {{A}, {A, A1}}
Base * Aspect = Result
 Mathieu Acher   « Composing Feature Models »                          36
Reasoning on the Result (2)


                                                =
      Base                          Aspect                           Result

Base : {{B, B2}, {B, B1, B2 }}
Aspect : {{A}, {A, A1}}
Base * Aspect = Result
Result : {{B, A, B2}, {B, A, B1, B2 }, {B, A, A1, B1, B2 }, {B, A, A1, B, B2 }}


 Mathieu Acher   « Composing Feature Models »                                 37
Reasoning on the Result (2)


                                                =
      Base                          Aspect                           Result
Base : {{B, B2}, {B, B1, B2 }}
Aspect : {{A}, {A, A1}}
Base * Aspect = Result
Result : {{B, A, B2}, {B, A, B1, B2 }, {B, A, A1, B1, B2 }, {B, A, A1, B, B2 }}


 Mathieu Acher   « Composing Feature Models »                                 38
Reasoning on the Result (2)


                                               =
     Base                          Aspect          Result




Mathieu Acher   « Composing Feature Models »                39
Merge Operator: Principles




          merge (aspectFeature: Feature, baseFeature: Feature, mode: Mode)
                         What?                 Where?          How?




Mathieu Acher   « Composing Feature Models »                                 40
Merge Operator: Principles




          merge (aspectFeature: Feature, baseFeature: Feature, mode: Mode)
                         What?                 Where?          How?


                Renaming mechanism
Mathieu Acher   « Composing Feature Models »                                 41
Merge Operator: Principles




                merge (aspectFeature: Feature, baseFeature: Feature, mode: Mode)

                           What?                 Where?             How?
 • Two “modes”
    – Union
    – Intersection


Mathieu Acher     « Composing Feature Models »                                     42
Merge Operator: Intersection Mode




The intersection of two FMs, Base and Aspect, is a new FM where each
configuration that is valid both in Base and Aspect, is also valid.


 Mathieu Acher   « Composing Feature Models »                          43
Merge Operator: Intersection Mode




The intersection of two FMs, Base and Aspect, is a new FM where each
configuration that is valid both in Base and Aspect, is also valid.

{{Person, transport, car}, {Person, transport, other}}
 Mathieu Acher   « Composing Feature Models »                          44
Merge Operator: Intersection Mode




Mathieu Acher   « Composing Feature Models »   45
Merge Operator: Intersection Mode




                 No merged model
The intersection of two FMs, Base and Aspect, is a new FM where each
configuration that is valid both in Base and Aspect, is also valid.

Have a look at   housing      feature
 Mathieu Acher   « Composing Feature Models »                          46
Merge Operator: Union Mode




Mathieu Acher   « Composing Feature Models »   47
Merge Operator: Union Mode




The union of two FMs, Base and Aspect, is a new FM where each
configuration that is valid either in Base or Aspect, is also valid.
Mathieu Acher   « Composing Feature Models »                           49
Merge Operator: Union Mode




Mathieu Acher   « Composing Feature Models »   50
Conclusion
 • A set of composition operators dedicated to feature models
    – syntactic definition
    – documented properties (based on the semantics of feature
      models)
    – rules and algorithm

 •   Related work
      – Schobbens et al.
          + intersection, union, and reduced product
          - no implementation, more properties to cover
      – Alves et al.
          + catalogue rules to refactoring feature models
          - merge is not fully considered
      – Segura et al.
          + catalogue rules to merging feature models
          - semantics of the merge not defined (corresponds to union mode)

Mathieu Acher    « Composing Feature Models »                                51
Future Work
 • Several cross-validity implementations
     – Kompose, ATL, AGG, etc.
 • Feature Models extension
     – internal-constraints
     – inter-constraints (btw aspect and base models)
     – cardinality-based feature model
 • Large scale validation
     – two case studies and SPLs:
          • Medical Imaging Grid Services
          • Video Surveillance Systems
     – “usage”, modular reasoning, etc.

Mathieu Acher   « Composing Feature Models »            52
?
                    http://www.i3s.unice.fr/~acher/

Mathieu Acher   « Composing Feature Models »          53

Contenu connexe

Similaire à Composing Feature Models

A Model Based Concurrent Engineering Framework using ISO-19450 Standard
A Model Based Concurrent Engineering Framework using ISO-19450 StandardA Model Based Concurrent Engineering Framework using ISO-19450 Standard
A Model Based Concurrent Engineering Framework using ISO-19450 StandardChristopher Cerqueira
 
Univ of va intentional introduction 2013 01-31
Univ of va intentional introduction 2013 01-31Univ of va intentional introduction 2013 01-31
Univ of va intentional introduction 2013 01-31Magnus Christerson
 
4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-danielleroux4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-daniellerouxIBM
 
Agile Model Developement- Daniel Leroux
Agile Model Developement-  Daniel LerouxAgile Model Developement-  Daniel Leroux
Agile Model Developement- Daniel LerouxRoopa Nadkarni
 
Optimization_model_of the propsed kiiraEV assembly lineprstn
Optimization_model_of the propsed kiiraEV assembly lineprstnOptimization_model_of the propsed kiiraEV assembly lineprstn
Optimization_model_of the propsed kiiraEV assembly lineprstnRonald Kayiwa
 
Ehsan parallel accelerator-dec2015
Ehsan parallel accelerator-dec2015Ehsan parallel accelerator-dec2015
Ehsan parallel accelerator-dec2015Christian Peel
 
SysML for Modeling Co-Simulation Orchestration over FMI, INTO-CPS Approach
SysML for Modeling Co-Simulation Orchestration over FMI, INTO-CPS ApproachSysML for Modeling Co-Simulation Orchestration over FMI, INTO-CPS Approach
SysML for Modeling Co-Simulation Orchestration over FMI, INTO-CPS ApproachAlessandra Bagnato
 
Cst training core module - antenna - (2)
Cst training core module - antenna - (2)Cst training core module - antenna - (2)
Cst training core module - antenna - (2)Marina Natsir
 
SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!melbats
 
OpenSees: Future Directions
OpenSees: Future DirectionsOpenSees: Future Directions
OpenSees: Future Directionsopenseesdays
 
AutoDesk Inventor Professional-2018
AutoDesk Inventor Professional-2018AutoDesk Inventor Professional-2018
AutoDesk Inventor Professional-2018Umair Ahmad
 
Ports-and-Adapters Architecture for Embedded HMI
Ports-and-Adapters Architecture for Embedded HMIPorts-and-Adapters Architecture for Embedded HMI
Ports-and-Adapters Architecture for Embedded HMIBurkhard Stubert
 
Python image processing_Python image processing.pptx
Python image processing_Python image processing.pptxPython image processing_Python image processing.pptx
Python image processing_Python image processing.pptxshashikant484397
 
Python_for_Visual_Effects_and_Animation_Pipelines
Python_for_Visual_Effects_and_Animation_PipelinesPython_for_Visual_Effects_and_Animation_Pipelines
Python_for_Visual_Effects_and_Animation_PipelinesRussell Darling
 
Extracting archimate views from custom ontological ea models
Extracting archimate views from custom ontological ea modelsExtracting archimate views from custom ontological ea models
Extracting archimate views from custom ontological ea modelsMatteo Busanelli
 
[Harvard CS264] 02 - Parallel Thinking, Architecture, Theory & Patterns
[Harvard CS264] 02 - Parallel Thinking, Architecture, Theory & Patterns[Harvard CS264] 02 - Parallel Thinking, Architecture, Theory & Patterns
[Harvard CS264] 02 - Parallel Thinking, Architecture, Theory & Patternsnpinto
 

Similaire à Composing Feature Models (20)

A Model Based Concurrent Engineering Framework using ISO-19450 Standard
A Model Based Concurrent Engineering Framework using ISO-19450 StandardA Model Based Concurrent Engineering Framework using ISO-19450 Standard
A Model Based Concurrent Engineering Framework using ISO-19450 Standard
 
Univ of va intentional introduction 2013 01-31
Univ of va intentional introduction 2013 01-31Univ of va intentional introduction 2013 01-31
Univ of va intentional introduction 2013 01-31
 
4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-danielleroux4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-danielleroux
 
Agile Model Developement- Daniel Leroux
Agile Model Developement-  Daniel LerouxAgile Model Developement-  Daniel Leroux
Agile Model Developement- Daniel Leroux
 
Optimization_model_of the propsed kiiraEV assembly lineprstn
Optimization_model_of the propsed kiiraEV assembly lineprstnOptimization_model_of the propsed kiiraEV assembly lineprstn
Optimization_model_of the propsed kiiraEV assembly lineprstn
 
Ehsan parallel accelerator-dec2015
Ehsan parallel accelerator-dec2015Ehsan parallel accelerator-dec2015
Ehsan parallel accelerator-dec2015
 
Ix2515851588
Ix2515851588Ix2515851588
Ix2515851588
 
Ix2515851588
Ix2515851588Ix2515851588
Ix2515851588
 
CSMR06a.ppt
CSMR06a.pptCSMR06a.ppt
CSMR06a.ppt
 
SysML for Modeling Co-Simulation Orchestration over FMI, INTO-CPS Approach
SysML for Modeling Co-Simulation Orchestration over FMI, INTO-CPS ApproachSysML for Modeling Co-Simulation Orchestration over FMI, INTO-CPS Approach
SysML for Modeling Co-Simulation Orchestration over FMI, INTO-CPS Approach
 
Cst training core module - antenna - (2)
Cst training core module - antenna - (2)Cst training core module - antenna - (2)
Cst training core module - antenna - (2)
 
SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!
 
OpenSees: Future Directions
OpenSees: Future DirectionsOpenSees: Future Directions
OpenSees: Future Directions
 
cv_chandrashetty
cv_chandrashettycv_chandrashetty
cv_chandrashetty
 
AutoDesk Inventor Professional-2018
AutoDesk Inventor Professional-2018AutoDesk Inventor Professional-2018
AutoDesk Inventor Professional-2018
 
Ports-and-Adapters Architecture for Embedded HMI
Ports-and-Adapters Architecture for Embedded HMIPorts-and-Adapters Architecture for Embedded HMI
Ports-and-Adapters Architecture for Embedded HMI
 
Python image processing_Python image processing.pptx
Python image processing_Python image processing.pptxPython image processing_Python image processing.pptx
Python image processing_Python image processing.pptx
 
Python_for_Visual_Effects_and_Animation_Pipelines
Python_for_Visual_Effects_and_Animation_PipelinesPython_for_Visual_Effects_and_Animation_Pipelines
Python_for_Visual_Effects_and_Animation_Pipelines
 
Extracting archimate views from custom ontological ea models
Extracting archimate views from custom ontological ea modelsExtracting archimate views from custom ontological ea models
Extracting archimate views from custom ontological ea models
 
[Harvard CS264] 02 - Parallel Thinking, Architecture, Theory & Patterns
[Harvard CS264] 02 - Parallel Thinking, Architecture, Theory & Patterns[Harvard CS264] 02 - Parallel Thinking, Architecture, Theory & Patterns
[Harvard CS264] 02 - Parallel Thinking, Architecture, Theory & Patterns
 

Plus de University of Rennes, INSA Rennes, Inria/IRISA, CNRS

Plus de University of Rennes, INSA Rennes, Inria/IRISA, CNRS (20)

A Demonstration of End-User Code Customization Using Generative AI
A Demonstration of End-User Code Customization Using Generative AIA Demonstration of End-User Code Customization Using Generative AI
A Demonstration of End-User Code Customization Using Generative AI
 
24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)
24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)
24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)
 
On Programming Variability with Large Language Model-based Assistant
On Programming Variability with Large Language Model-based AssistantOn Programming Variability with Large Language Model-based Assistant
On Programming Variability with Large Language Model-based Assistant
 
Generative AI for Reengineering Variants into Software Product Lines: An Expe...
Generative AI for Reengineering Variants into Software Product Lines: An Expe...Generative AI for Reengineering Variants into Software Product Lines: An Expe...
Generative AI for Reengineering Variants into Software Product Lines: An Expe...
 
Tackling Deep Software Variability Together
Tackling Deep Software Variability TogetherTackling Deep Software Variability Together
Tackling Deep Software Variability Together
 
On anti-cheating in chess, science, reproducibility, and variability
On anti-cheating in chess, science, reproducibility, and variabilityOn anti-cheating in chess, science, reproducibility, and variability
On anti-cheating in chess, science, reproducibility, and variability
 
Feature Subset Selection for Learning Huge Configuration Spaces: The case of ...
Feature Subset Selection for Learning Huge Configuration Spaces: The case of ...Feature Subset Selection for Learning Huge Configuration Spaces: The case of ...
Feature Subset Selection for Learning Huge Configuration Spaces: The case of ...
 
Machine Learning and Deep Software Variability
Machine Learning and Deep Software VariabilityMachine Learning and Deep Software Variability
Machine Learning and Deep Software Variability
 
Mastering Software Variability for Innovation and Science
Mastering Software Variability for Innovation and ScienceMastering Software Variability for Innovation and Science
Mastering Software Variability for Innovation and Science
 
Transfer Learning Across Variants and Versions: The Case of Linux Kernel Size
Transfer Learning Across Variants and Versions: The Case of Linux Kernel SizeTransfer Learning Across Variants and Versions: The Case of Linux Kernel Size
Transfer Learning Across Variants and Versions: The Case of Linux Kernel Size
 
Reproducible Science and Deep Software Variability
Reproducible Science and Deep Software VariabilityReproducible Science and Deep Software Variability
Reproducible Science and Deep Software Variability
 
Software Variability and Artificial Intelligence
Software Variability and Artificial IntelligenceSoftware Variability and Artificial Intelligence
Software Variability and Artificial Intelligence
 
Teaching Software Product Lines: A Snapshot of Current Practices and Challenges
Teaching Software Product Lines: A Snapshot of Current Practices and ChallengesTeaching Software Product Lines: A Snapshot of Current Practices and Challenges
Teaching Software Product Lines: A Snapshot of Current Practices and Challenges
 
Exploiting the Enumeration of All Feature Model Configurations: A New Perspec...
Exploiting the Enumeration of All Feature Model Configurations: A New Perspec...Exploiting the Enumeration of All Feature Model Configurations: A New Perspec...
Exploiting the Enumeration of All Feature Model Configurations: A New Perspec...
 
Assessing Product Line Derivation Operators Applied to Java Source Code: An E...
Assessing Product Line Derivation Operators Applied to Java Source Code: An E...Assessing Product Line Derivation Operators Applied to Java Source Code: An E...
Assessing Product Line Derivation Operators Applied to Java Source Code: An E...
 
From Basic Variability Models to OpenCompare.org
From Basic Variability Models to OpenCompare.orgFrom Basic Variability Models to OpenCompare.org
From Basic Variability Models to OpenCompare.org
 
Pandoc: a universal document converter
Pandoc: a universal document converterPandoc: a universal document converter
Pandoc: a universal document converter
 
Metamorphic Domain-Specific Languages
Metamorphic Domain-Specific LanguagesMetamorphic Domain-Specific Languages
Metamorphic Domain-Specific Languages
 
3D Printing, Customization, and Product Lines
3D Printing, Customization, and Product Lines3D Printing, Customization, and Product Lines
3D Printing, Customization, and Product Lines
 
WebFML: Synthesizing Feature Models Everywhere (@ SPLC 2014)
WebFML: Synthesizing Feature Models Everywhere (@ SPLC 2014)WebFML: Synthesizing Feature Models Everywhere (@ SPLC 2014)
WebFML: Synthesizing Feature Models Everywhere (@ SPLC 2014)
 

Dernier

How to Manage Engineering to Order in Odoo 17
How to Manage Engineering to Order in Odoo 17How to Manage Engineering to Order in Odoo 17
How to Manage Engineering to Order in Odoo 17Celine George
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptxmary850239
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Seán Kennedy
 
MECHANISMS OF DIFFERENT TYPES OF HYPERSENITIVITY REACTIONS.pptx
MECHANISMS OF DIFFERENT TYPES OF HYPERSENITIVITY REACTIONS.pptxMECHANISMS OF DIFFERENT TYPES OF HYPERSENITIVITY REACTIONS.pptx
MECHANISMS OF DIFFERENT TYPES OF HYPERSENITIVITY REACTIONS.pptxAnupkumar Sharma
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parentsnavabharathschool99
 
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxQ4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxlancelewisportillo
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4MiaBumagat1
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designMIPLM
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptxiammrhaywood
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxVanesaIglesias10
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 
4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptxmary850239
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfJemuel Francisco
 
Textual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSTextual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSMae Pangan
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfPatidar M
 
ClimART Action | eTwinning Project
ClimART Action    |    eTwinning ProjectClimART Action    |    eTwinning Project
ClimART Action | eTwinning Projectjordimapav
 

Dernier (20)

How to Manage Engineering to Order in Odoo 17
How to Manage Engineering to Order in Odoo 17How to Manage Engineering to Order in Odoo 17
How to Manage Engineering to Order in Odoo 17
 
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptxYOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...
 
MECHANISMS OF DIFFERENT TYPES OF HYPERSENITIVITY REACTIONS.pptx
MECHANISMS OF DIFFERENT TYPES OF HYPERSENITIVITY REACTIONS.pptxMECHANISMS OF DIFFERENT TYPES OF HYPERSENITIVITY REACTIONS.pptx
MECHANISMS OF DIFFERENT TYPES OF HYPERSENITIVITY REACTIONS.pptx
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parents
 
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxQ4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-design
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptx
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptxINCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
 
4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
 
Textual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSTextual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHS
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdf
 
ClimART Action | eTwinning Project
ClimART Action    |    eTwinning ProjectClimART Action    |    eTwinning Project
ClimART Action | eTwinning Project
 

Composing Feature Models

  • 1. Composing Feature Models Mathieu Acher1, Philippe Collet1, Philippe Lahire1, Robert France2 1 University of Nice Sophia Antipolis (France), Modalis Team (CNRS, I3S Laboratory) 2 Computer Science Department, Colorado State University 1
  • 2. Why feature models? • Software Product Lines (SPL) – From common assets, different programs of a domain can be assembled – Promote systematic reuse • Feature modeling – Widely used technique in SPL engineering • domain analysis, requirements, code representation, etc. • academic and industrial tool support • Key idea: express variability of a family in terms of features Mathieu Acher « Composing Feature Models » 2
  • 3. What is feature model? • Hierarchy of features plus variability information Mathieu Acher « Composing Feature Models » 3
  • 4. What is feature model? • Hierarchy of features plus variability information mandatory Mathieu Acher « Composing Feature Models » 4
  • 5. What is feature model? • Hierarchy of features plus variability information optional Mathieu Acher « Composing Feature Models » 5
  • 6. What is feature model? • Hierarchy of features plus variability information alternative Mathieu Acher « Composing Feature Models » 6
  • 7. What is feature model? • Hierarchy of features plus variability information alternative (not mutually exclusive) Mathieu Acher « Composing Feature Models » 7
  • 8. Feature models and Configuration • Represent a set of valid configurations – Configuration: set of features selected – Valid configuration: defined by the semantics Mathieu Acher « Composing Feature Models » 8
  • 9. Feature models and Configuration • Represent a set of valid configurations Mathieu Acher « Composing Feature Models » 9
  • 10. Feature models and Configuration • Represent a set of valid configurations Person, housing, streetName, telephone, areaCode, transport, car Mathieu Acher « Composing Feature Models » 10
  • 11. Agenda • Issues in Feature Modeling • Requirements and Rationale for the Composition Language • Composition Operators • Conclusion and Future Work Mathieu Acher « Composing Feature Models » 11
  • 12. Feature Models Mathieu Acher « Composing Feature Models » 12
  • 13. Feature Models Mathieu Acher « Composing Feature Models » 13
  • 14. Feature Models Scalability issues in terms of - construction - evolution - reasoning Mathieu Acher « Composing Feature Models » 14
  • 15. Separating and Composing Feature Models Mathieu Acher « Composing Feature Models » 15
  • 16. Composing Feature Models 16 Mathieu Acher « Composing Feature Models »
  • 17. Design of a Language for Composing Feature Models with predictable properties 17 Mathieu Acher « Composing Feature Models »
  • 18. Requirements insert merge Mathieu Acher « Composing Feature Models » 20
  • 19. Rationale • Characterizing the result of a Compositional Operator in terms of sets of configurations FM1 FM2 Mathieu Acher « Composing Feature Models »
  • 20. Rationale • Characterizing the result of a Compositional Operator in terms of sets of configurations Classification [Thüm, Batory and Kästner (ICSE’09)] FM1 FM2 Mathieu Acher « Composing Feature Models » 22
  • 21. Rationale • Characterizing the result of a Compositional Operator in terms of sets of configurations Base Aspect To predict which configurations will be removed, added, or/and kept… We choose to distinguish Aspect from Base models Mathieu Acher « Composing Feature Models » 23
  • 22. Rationale (cont’d) • Insert and Merge operators • Ensure predictable properties between input feature models and composed feature models – In terms of sets of configurations – We choose to distinguish Aspect from Base models • Describe operators in terms of – What? – Where? – How? Mathieu Acher « Composing Feature Models » 25
  • 23. Insert Operator: Syntax Aspect Base insert (aspectFeature: Feature, joinpointFeature: Feature, operator: Operator) What? Where? How? Mathieu Acher « Composing Feature Models » 26
  • 24. Insert Operator: Syntax = Aspect Base Result insert (urbanTransport, transport, Xor) Mathieu Acher « Composing Feature Models » 27
  • 25. Insert Operator: Syntax = Aspect Base Result insert (urbanTransport, transport, And-mandatory) Mathieu Acher « Composing Feature Models » 28
  • 26. Insert Operator: Syntax = Aspect Base Result insert (urbanTransport, transport, And-optional) Mathieu Acher « Composing Feature Models » 29
  • 27. Insert Operator: Syntax = Aspect Base Result insert (urbanTransport, transport, And-optional) Mathieu Acher « Composing Feature Models » 30
  • 28. Reasoning on the Result (1) = Base Aspect Result The set of configurations of the FM after insertion (Result) is at least the set of configurations of Base FM. Base : {{B, B2}, {B, B1, B2 }} Mathieu Acher « Composing Feature Models » 31
  • 29. Reasoning on the Result (1) = Base Aspect Result The set of configurations of the FM after insertion (Result) is at least the set of configurations of Base FM. Base : {{B, B2}, {B, B1, B2 }} Result : {{B, B2}, {B, B1, B2 }, {B, A, B1, B2 }, {B, A, A1, B1, B2 }, {B, A, A1, B, B2 }} Mathieu Acher « Composing Feature Models » 32
  • 30. Reasoning on the Result (1) = Base Aspect Result The set of configurations of the FM after insertion (Result) is at least the set of configurations of Base FM. Base : {{B, B2}, {B, B1, B2 }} Result : {{B, B2}, {B, B1, B2 }, {B, A, B1, B2 }, {B, A, A1, B1, B2 }, {B, A, A1, B, B2 }} Mathieu Acher « Composing Feature Models » 33
  • 31. Reasoning on the Result (1) = Base Aspect Result The set of configurations of the FM after insertion (Result) is at least the set of configurations of Base FM. {{B, B2}, {B, B1, B2 }} {{B, B2}, {B, B1, B2 }, {B, A, B1, B2 }, {B, A, A1, B1, B2 }, {B, A, A1, B, B2 }} Result FM is a generalization of Base FM. Mathieu Acher « Composing Feature Models » 34
  • 32. Reasoning on the Result (2) = Base Aspect Result Base : {{B, B2}, {B, B1, B2 }} Aspect : {{A}, {A, A1}} Result : {{B, A, B2}, {B, A, B1, B2 }, {B, A, A1, B1, B2 }, {B, A, A1, B, B2 }} Mathieu Acher « Composing Feature Models » 35
  • 33. Reasoning on the Result (2) = Base Aspect Result The set of configurations of Result is at least the set of configurations of the “cross product” of Base and Aspect. Base : {{B, B2}, {B, B1, B2 }} Aspect : {{A}, {A, A1}} Base * Aspect = Result Mathieu Acher « Composing Feature Models » 36
  • 34. Reasoning on the Result (2) = Base Aspect Result Base : {{B, B2}, {B, B1, B2 }} Aspect : {{A}, {A, A1}} Base * Aspect = Result Result : {{B, A, B2}, {B, A, B1, B2 }, {B, A, A1, B1, B2 }, {B, A, A1, B, B2 }} Mathieu Acher « Composing Feature Models » 37
  • 35. Reasoning on the Result (2) = Base Aspect Result Base : {{B, B2}, {B, B1, B2 }} Aspect : {{A}, {A, A1}} Base * Aspect = Result Result : {{B, A, B2}, {B, A, B1, B2 }, {B, A, A1, B1, B2 }, {B, A, A1, B, B2 }} Mathieu Acher « Composing Feature Models » 38
  • 36. Reasoning on the Result (2) = Base Aspect Result Mathieu Acher « Composing Feature Models » 39
  • 37. Merge Operator: Principles merge (aspectFeature: Feature, baseFeature: Feature, mode: Mode) What? Where? How? Mathieu Acher « Composing Feature Models » 40
  • 38. Merge Operator: Principles merge (aspectFeature: Feature, baseFeature: Feature, mode: Mode) What? Where? How? Renaming mechanism Mathieu Acher « Composing Feature Models » 41
  • 39. Merge Operator: Principles merge (aspectFeature: Feature, baseFeature: Feature, mode: Mode) What? Where? How? • Two “modes” – Union – Intersection Mathieu Acher « Composing Feature Models » 42
  • 40. Merge Operator: Intersection Mode The intersection of two FMs, Base and Aspect, is a new FM where each configuration that is valid both in Base and Aspect, is also valid. Mathieu Acher « Composing Feature Models » 43
  • 41. Merge Operator: Intersection Mode The intersection of two FMs, Base and Aspect, is a new FM where each configuration that is valid both in Base and Aspect, is also valid. {{Person, transport, car}, {Person, transport, other}} Mathieu Acher « Composing Feature Models » 44
  • 42. Merge Operator: Intersection Mode Mathieu Acher « Composing Feature Models » 45
  • 43. Merge Operator: Intersection Mode No merged model The intersection of two FMs, Base and Aspect, is a new FM where each configuration that is valid both in Base and Aspect, is also valid. Have a look at housing feature Mathieu Acher « Composing Feature Models » 46
  • 44. Merge Operator: Union Mode Mathieu Acher « Composing Feature Models » 47
  • 45. Merge Operator: Union Mode The union of two FMs, Base and Aspect, is a new FM where each configuration that is valid either in Base or Aspect, is also valid. Mathieu Acher « Composing Feature Models » 49
  • 46. Merge Operator: Union Mode Mathieu Acher « Composing Feature Models » 50
  • 47. Conclusion • A set of composition operators dedicated to feature models – syntactic definition – documented properties (based on the semantics of feature models) – rules and algorithm • Related work – Schobbens et al. + intersection, union, and reduced product - no implementation, more properties to cover – Alves et al. + catalogue rules to refactoring feature models - merge is not fully considered – Segura et al. + catalogue rules to merging feature models - semantics of the merge not defined (corresponds to union mode) Mathieu Acher « Composing Feature Models » 51
  • 48. Future Work • Several cross-validity implementations – Kompose, ATL, AGG, etc. • Feature Models extension – internal-constraints – inter-constraints (btw aspect and base models) – cardinality-based feature model • Large scale validation – two case studies and SPLs: • Medical Imaging Grid Services • Video Surveillance Systems – “usage”, modular reasoning, etc. Mathieu Acher « Composing Feature Models » 52
  • 49. ? http://www.i3s.unice.fr/~acher/ Mathieu Acher « Composing Feature Models » 53