SlideShare ist ein Scribd-Unternehmen logo
1 von 49
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von University of Rennes, INSA Rennes, Inria/IRISA, CNRS

Mehr von 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)
 

Kürzlich hochgeladen

Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSCeline George
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseAnaAcapella
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxRamakrishna Reddy Bijjam
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibitjbellavia9
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.MaryamAhmad92
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxJisc
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17Celine George
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfPoh-Sun Goh
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxAmanpreet Kaur
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Association for Project Management
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxVishalSingh1417
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...christianmathematics
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...pradhanghanshyam7136
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxDenish Jangid
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...ZurliaSoop
 

Kürzlich hochgeladen (20)

Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 

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