composing feature models

Download Composing Feature Models

Post on 03-Jun-2015

1.388 views

Category:

Education

2 download

Embed Size (px)

DESCRIPTION

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.

TRANSCRIPT

  • 1. Composing Feature ModelsMathieu Acher1, Philippe Collet1, Philippe Lahire1, Robert France21 Universityof 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 domaincan 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 termsof featuresMathieu Acher Composing Feature Models 2 3. What is feature model? Hierarchy of features plus variabilityinformation Mathieu Acher Composing Feature Models 3 4. What is feature model? Hierarchy of features plus variabilityinformation mandatory Mathieu Acher Composing Feature Models 4 5. What is feature model? Hierarchy of features plus variabilityinformationoptional Mathieu Acher Composing Feature Models 5 6. What is feature model? Hierarchy of features plus variabilityinformationalternative Mathieu Acher Composing Feature Models 6 7. What is feature model? Hierarchy of features plus variabilityinformationalternative (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, carMathieu Acher Composing Feature Models 10 11. Agenda Issues in Feature Modeling Requirements and Rationale for theComposition Language Composition Operators Conclusion and Future WorkMathieu 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 ComposingFeature Models Mathieu Acher Composing Feature Models 15 16. Composing Feature Models16 Mathieu Acher Composing Feature Models 17. Design of a Language for Composing Feature Models with predictable properties 17 Mathieu Acher Composing Feature Models 18. Requirementsinsert merge Mathieu Acher Composing Feature Models 20 19. Rationale Characterizing the result of a CompositionalOperator in terms of sets of configurationsFM1 FM2 Mathieu Acher Composing Feature Models 20. Rationale Characterizing the result of a Compositional Operator in terms of sets of configurations Classification [Thm, Batory and Kstner (ICSE09)] FM1 FM2Mathieu Acher Composing Feature Models 22 21. Rationale Characterizing the result of a CompositionalOperator in terms of sets of configurations BaseAspect To predict which configurations will be removed, added, or/and keptWe choose to distinguish Aspect from Base models Mathieu Acher Composing Feature Models 23 22. Rationale (contd) Insert and Merge operators Ensure predictable properties between inputfeature 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 AspectBaseinsert (aspectFeature: Feature, joinpointFeature: Feature, operator: Operator) What? Where? How? Mathieu Acher Composing Feature Models 26 24. Insert Operator: Syntax =AspectBase Result insert (urbanTransport, transport, Xor) Mathieu Acher Composing Feature Models 27 25. Insert Operator: Syntax =AspectBase Resultinsert (urbanTransport, transport, And-mandatory) Mathieu Acher Composing Feature Models 28 26. Insert Operator: Syntax =AspectBase Result insert (urbanTransport, transport, And-optional) Mathieu Acher Composing Feature Models 29 27. Insert Operator: Syntax =AspectBase Result insert (urbanTransport, transport, And-optional) Mathieu Acher Composing Feature Models 30 28. Reasoning on the Result (1) = BaseAspectResultThe 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) = BaseAspectResultThe 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) = BaseAspect ResultThe 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) = BaseAspect ResultThe 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) = BaseAspectResult 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) = BaseAspectResult The set of congurations of Result is at least the set of congurations of the cross product of Base and Aspect.Base : {{B, B2}, {B, B1, B2 }} Aspect : {{A}, {A, A1}} Base * Aspect = ResultMathieu Acher Composing Feature Models 36 34. Reasoning on the Result (2) = BaseAspect ResultBase : {{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) = BaseAspect 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)=BaseAspectResult 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 conguration 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 conguration 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 ModeNo merged model The intersection of two FMs, Base and Aspect, is a new FM where each conguration that is valid both in Base and Aspect, is also valid.Have a look at housingfeatureMathieu 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

Whoops - Discover Share Present

Whoops!

Something went wrong. Please come back later!