representing variability in product lines a survey of
play

Representing Variability in Product Lines: A Survey of Modeling and - PowerPoint PPT Presentation

Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques Fabian Benduhn FOSD Meeting 2014 May 6, 2014 Background SPL used for safety-critical and mission-critical systems High degree of reliability


  1. Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques Fabian Benduhn FOSD Meeting 2014 May 6, 2014

  2. Background ◮ SPL used for safety-critical and mission-critical systems ◮ High degree of reliability required ◮ Adaption of verification techniques: growing research area ◮ Requires modeling and specification techniques ◮ Model : formal description of behavior ◮ Specification : formal description of properties Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 2

  3. Problem ◮ Modeling and specification techniques proposed in diverse lines of research ◮ Hard to compare, hard to keep track ◮ Representation of variability? Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 3

  4. Feature-Oriented Software Development Domain Artifacts Feature Model Product Generation Products Configuration Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 4

  5. Feature-Oriented Software Development Mapping Domain Artifacts Feature Model Product Generation Products Configuration Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 4

  6. Representation of Variability: Implementation Annotation-Based Techniques: ◮ Single code base ◮ Annotated with mapping to features ◮ Product generation: remove code of undesired features Composition-Based Techniques: ◮ Features encapsulated into modules ◮ Product generation: composition of feature modules Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 5

  7. Example: Annotation-Based (Preprocessor) class Transaction { { Base, Locking } void run() { //if[Locking] lock(); //end[Locking] while (!operations.isEmpty)operations.pop().operate(); //if[Locking] unlock(); //end[Locking] }} Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 6

  8. Example: Composition-Based (FOP) class Transaction { { Base } void run() { while (!operations.isEmpty)operations.pop().operate(); } } • class Transaction { { Locking } void run() { lock(); original (); unlock(); }} Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 7

  9. Example: Composition-Based (FOP) class Transaction { { Base } void run() { while (!operations.isEmpty)operations.pop().operate(); } } • class Transaction { { Locking } void run() { lock(); original (); unlock(); }} = class Transaction { { Base, Locking } void run() { lock(); while (!operations.isEmpty)operations.pop().operate(); unlock(); }} Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 7

  10. Contributions ◮ General taxonomy of product-line representations → implementation, specification, models, documentation, ... ◮ Survey modeling and specification techniques for software product lines ◮ Classification of modeling and specification techniques according to taxonomy ◮ Identify possible directions for future research Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 8

  11. Taxonomy of Product-Line Representations ◮ Product-Line Representation: Set of artifacts representing characteristics such as behavior or properties of a product line ◮ Mapping between domain artifacts and products Product-Line Representation Variability-Aware Commonality-Based Product-Based Composition-Based Family-Wide Domain-Independent Annotation-Based Family-Based Feature-Based Family-Based Feature-Based Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 9

  12. Variability-Aware Representation Annotation-Based Composition-Based Products Representation Representation Separate Modules Annotated Parts ... ... Single Module Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 10

  13. Annotation-Based: Featured Transition Systems ◮ Mapping: Transitions annotated with feature expressions aborted n g l i d u e c h s R e Locking rescheduled ¬ Locking unlockedDB Rescheduling g n i k c o L ¬ Locking Base running ready undef Locking unlockedDB g n i L k g Base n o c i c k o c k L o i L n g ¬ Locking committed done lockedDB Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 11

  14. Composition-Based: Design by Contract for FOP class Transaction { { Base } Queue operations; / ∗ @ ensures operations.isEmpty(); @ ∗ / void run() { ... }} • class Transaction { { Locking } / ∗ @ ensures Database.isLocked == false; @ ∗ / void run() { ... }} Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 12

  15. Composition-Based: Design by Contract for FOP class Transaction { { Base } Queue operations; / ∗ @ ensures operations.isEmpty(); @ ∗ / void run() { ... }} • class Transaction { { Locking } / ∗ @ ensures Database.isLocked == false; @ ∗ / void run() { ... }} = class Transaction { { Base, Locking } / ∗ @ ensures operations.isEmpty() && Database.isLocked == false; @ ∗ / void run() { ... } Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 12

  16. Feature-Based Representation Feature-Composition-Based Products Representation Products Separate with Modules certain Feature ... Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 13

  17. Family-Based Representation Family-Composition-Based Products Representation Arbitrary Sets Separate + Modules + ... Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 14

  18. Product-Based Representation Product-Based Products Representation Single Products Separate Modules ... Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 15

  19. Commonality-Based Representation Product Commonality-based Representation Line Complete All Representation Products Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 16

  20. Family-Wide Representation Family-Wide Products Representation All Products Commonalities Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 17

  21. Domain-Independent Representation Product Several Domain-Independent Product Representation Line Line Product Lines All Ice Cream Ice Cream Products Ice Cream Ice Cream Ice Cream Ice Cream Commonalities Ice Cream Ice Cream Ice Cream Ice Cream Ice Cream Ice Cream Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 18

  22. Taxonomy Overview #Modules Mapping Source Mapping Target Product-based - module single product Commonality-based - representation - Family-wide - representation all products of single product line Domain-Independent - representation all products of several product lines Variability-aware - - set of products, (not single, not same) Composition-based multiple module - Annotation-based single parts of modules - Feature-based - - all products with certain feature Family-based - - arbitrary sets of products Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 19

  23. Annotation-Based Modeling Techniques Formalism/Language Feature-Based Family-Based Formalisms SHVM � FTS � Feature Petri Nets � FTS � A-FTS � FTA � GEMTS � MTS � Modal I/O-automata � Languages FLan � fSMV � Rebeca � SDVA � fPromela � PL-CCS � Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 20

  24. Composition-Based Modeling Techniques Formalism/Language Feature-Based Family-Based Transition-Based Formalisms Variable IO-Automata � Transition Systems/TS+ � Transition Systems � Modular Transition Systems � Languages Alloy � ASM � Event-B � State Charts � Promela � FSMv � Larissa � FeatureAlloy � Modal Sequence Diagrams � Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 21

  25. Specification Techniques Formalism/Language Feature-B. Family-B. Comp.-B. Annot.-B. Domain-I. Family-W. Variable CTL � � fCTL � � fLTL � � AdaCTL � � VMC (CTL-Based) � � vaCTL/MHML � � Service Diagrams � � LTL � � FeatureAlloy � � Tests � � Contracts (AOP) � � Contracts (FOP) � � Contracts (DOP) � � LTL � JPF (verification tool) � LTSA (verification tool) � CTL � LTL � TCTL � ACTL � Tests � Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 22

Recommend


More recommend