Composing Feature Models

Mathieu Acher1, Philippe Collet1, Philippe Lahire1, Robert France2

              1 University
 ...
Why feature models?
 • Software Product Lines (SPL)
     – From common assets, different programs of a domain
       can b...
What is feature model?
 • Hierarchy of features plus variability
   information




Mathieu Acher   « Composing Feature Mo...
What is feature model?
 • Hierarchy of features plus variability
   information
mandatory




Mathieu Acher   « Composing ...
What is feature model?
 • Hierarchy of features plus variability
   information




                                      ...
What is feature model?
 • Hierarchy of features plus variability
   information




                                      ...
What is feature model?
 • Hierarchy of features plus variability
   information




 alternative (not mutually exclusive)
...
Feature models and Configuration
 • Represent a set of valid configurations
     – Configuration: set of features selected...
Feature models and Configuration
 • Represent a set of valid configurations




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




          Person, housing, streetName, tel...
Agenda
 • Issues in Feature Modeling

 • Requirements and Rationale for the
   Composition Language

 • Composition Operat...
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   « Comp...
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
                      ...
Requirements



    insert                                     merge




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




     FM1     ...
Rationale
    • Characterizing the result of a Compositional
      Operator in terms of sets of configurations
Classificat...
Rationale
 • Characterizing the result of a Compositional
   Operator in terms of sets of configurations

     Base       ...
Rationale (cont’d)
 • Insert and Merge operators
 • Ensure predictable properties between input
   feature models and comp...
Insert Operator: Syntax




                                                    Aspect
           Base
 insert (aspectFeat...
Insert Operator: Syntax



                                               =
                             Aspect
   Base

 ...
Insert Operator: Syntax



                                               =
                             Aspect
   Base

 ...
Insert Operator: Syntax



                                               =
                             Aspect
   Base

 ...
Insert Operator: Syntax



                                               =
                             Aspect
   Base

 ...
Reasoning on the Result (1)


                                                  =
        Base                          As...
Reasoning on the Result (1)


                                                  =
        Base                          As...
Reasoning on the Result (1)


                                                  =
        Base                          As...
Reasoning on the Result (1)


                                                  =
        Base                          As...
Reasoning on the Result (2)


                                                =
      Base                          Aspect...
Reasoning on the Result (2)


                                                =
      Base                          Aspect...
Reasoning on the Result (2)


                                                =
      Base                          Aspect...
Reasoning on the Result (2)


                                                =
      Base                          Aspect...
Reasoning on the Result (2)


                                               =
     Base                          Aspect  ...
Merge Operator: Principles




          merge (aspectFeature: Feature, baseFeature: Feature, mode: Mode)
                ...
Merge Operator: Principles




          merge (aspectFeature: Feature, baseFeature: Feature, mode: Mode)
                ...
Merge Operator: Principles




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

         ...
Merge Operator: Intersection Mode




The intersection of two FMs, Base and Aspect, is a new FM where each
configuration th...
Merge Operator: Intersection Mode




The intersection of two FMs, Base and Aspect, is a new FM where each
configuration th...
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 ...
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 e...
Merge Operator: Union Mode




Mathieu Acher   « Composing Feature Models »   50
Conclusion
 • A set of composition operators dedicated to feature models
    – syntactic definition
    – documented prope...
Future Work
 • Several cross-validity implementations
     – Kompose, ATL, AGG, etc.
 • Feature Models extension
     – in...
?
                    http://www.i3s.unice.fr/~acher/

Mathieu Acher   « Composing Feature Models »          53
Upcoming SlideShare
Loading in …5
×

Composing Feature Models

2,073 views

Published on

Feature modeling is a widely used technique in Software Product Line development. Feature models allow stakeholders to describe domain concepts in terms of commonalities and differences within a family of software systems.
Developing a complex monolithic feature model can require significant effort and restrict the reusability of a set of features already modeled.
We advocate using modeling techniques that support separating and composing concerns to better manage the complexity of developing large feature models.
In this paper, we propose a set of composition operators dedicated to feature models. These composition operators enable the development of large feature models by composing smaller feature models which address well-defined concerns. The operators are notably distinguished by their documented capabilities to preserve some significant properties.

Published in: Education, Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,073
On SlideShare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
73
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Composing Feature Models

  1. 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. 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. 3. What is feature model? • Hierarchy of features plus variability information Mathieu Acher « Composing Feature Models » 3
  4. 4. What is feature model? • Hierarchy of features plus variability information mandatory Mathieu Acher « Composing Feature Models » 4
  5. 5. What is feature model? • Hierarchy of features plus variability information optional Mathieu Acher « Composing Feature Models » 5
  6. 6. What is feature model? • Hierarchy of features plus variability information alternative Mathieu Acher « Composing Feature Models » 6
  7. 7. What is feature model? • Hierarchy of features plus variability information alternative (not mutually exclusive) Mathieu Acher « Composing Feature Models » 7
  8. 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. 9. Feature models and Configuration • Represent a set of valid configurations Mathieu Acher « Composing Feature Models » 9
  10. 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. 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. 12. Feature Models Mathieu Acher « Composing Feature Models » 12
  13. 13. Feature Models Mathieu Acher « Composing Feature Models » 13
  14. 14. Feature Models Scalability issues in terms of - construction - evolution - reasoning Mathieu Acher « Composing Feature Models » 14
  15. 15. Separating and Composing Feature Models Mathieu Acher « Composing Feature Models » 15
  16. 16. Composing Feature Models 16 Mathieu Acher « Composing Feature Models »
  17. 17. Design of a Language for Composing Feature Models with predictable properties 17 Mathieu Acher « Composing Feature Models »
  18. 18. Requirements insert merge Mathieu Acher « Composing Feature Models » 20
  19. 19. Rationale • Characterizing the result of a Compositional Operator in terms of sets of configurations FM1 FM2 Mathieu Acher « Composing Feature Models »
  20. 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. 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. 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. 23. Insert Operator: Syntax Aspect Base insert (aspectFeature: Feature, joinpointFeature: Feature, operator: Operator) What? Where? How? Mathieu Acher « Composing Feature Models » 26
  24. 24. Insert Operator: Syntax = Aspect Base Result insert (urbanTransport, transport, Xor) Mathieu Acher « Composing Feature Models » 27
  25. 25. Insert Operator: Syntax = Aspect Base Result insert (urbanTransport, transport, And-mandatory) Mathieu Acher « Composing Feature Models » 28
  26. 26. Insert Operator: Syntax = Aspect Base Result insert (urbanTransport, transport, And-optional) Mathieu Acher « Composing Feature Models » 29
  27. 27. Insert Operator: Syntax = Aspect Base Result insert (urbanTransport, transport, And-optional) Mathieu Acher « Composing Feature Models » 30
  28. 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. 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. 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. 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. 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. 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. 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. 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. 36. Reasoning on the Result (2) = Base Aspect Result Mathieu Acher « Composing Feature Models » 39
  37. 37. Merge Operator: Principles merge (aspectFeature: Feature, baseFeature: Feature, mode: Mode) What? Where? How? Mathieu Acher « Composing Feature Models » 40
  38. 38. Merge Operator: Principles merge (aspectFeature: Feature, baseFeature: Feature, mode: Mode) What? Where? How? Renaming mechanism Mathieu Acher « Composing Feature Models » 41
  39. 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. 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. 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. 42. Merge Operator: Intersection Mode Mathieu Acher « Composing Feature Models » 45
  43. 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. 44. Merge Operator: Union Mode Mathieu Acher « Composing Feature Models » 47
  45. 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. 46. Merge Operator: Union Mode Mathieu Acher « Composing Feature Models » 50
  47. 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. 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. 49. ? http://www.i3s.unice.fr/~acher/ Mathieu Acher « Composing Feature Models » 53

×