weaving variability into domain metamodels

79
Weaving Variability into Domain Metamodels Juan Antonio Martin-Checa (Advanced Component-Based Systems) Master in Software Engineering & Artificial Intelligence Weaving Variability into Weaving Variability into Domain Metamodels Domain Metamodels Juan Antonio Martin Juan Antonio Martin - - Checa Checa (Advanced Component (Advanced Component - - Based Systems) Based Systems) Master in Software Engineering & Artificial Intelligence Master in Software Engineering & Artificial Intelligence Computer Science Department University of Malaga, Spain 2011 Computer Science Department University of Malaga, Spain 2011

Upload: juan-antonio-martin-checa

Post on 06-May-2015

595 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Weaving Variability into Domain Metamodels

Weaving Variability into Domain Metamodels

Juan Antonio Martin-Checa (Advanced Component-Based Systems)

Master in Software Engineering & Artificial Intelligence

Weaving Variability into Weaving Variability into Domain MetamodelsDomain Metamodels

Juan Antonio MartinJuan Antonio Martin--Checa Checa (Advanced Component(Advanced Component--Based Systems)Based Systems)

Master in Software Engineering & Artificial IntelligenceMaster in Software Engineering & Artificial Intelligence

Computer Science DepartmentUniversity of Malaga, Spain

2011

Computer Science DepartmentUniversity of Malaga, Spain

2011

Page 2: Weaving Variability into Domain Metamodels

2

Index of contentsIndex of contentsIndex of contents

1. Introduction

2. Variability as a (meta-) aspect

3. Applications on 2 domain metamodels

4. Related work

5. Conclusions

1. Introduction

2. Variability as a (meta-) aspect

3. Applications on 2 domain metamodels

4. Related work

5. Conclusions

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

Page 3: Weaving Variability into Domain Metamodels

3

1. Introduction1. Introduction

Page 4: Weaving Variability into Domain Metamodels

4

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

1. Introduction / motivation1. Introduction / motivation

1. Introduction1. Introduction 2. Variability 2. Variability 3. Applications 4. Related Work 3. Applications 4. Related Work 5. Conclusions5. Conclusions

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

Page 5: Weaving Variability into Domain Metamodels

5

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

1. Introduction / motivation1. Introduction / motivation

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction1. Introduction 2. Variability 2. Variability 3. Applications 4. Related Work 3. Applications 4. Related Work 5. Conclusions5. Conclusions

Page 6: Weaving Variability into Domain Metamodels

6

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

1. Introduction / motivation1. Introduction / motivation

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction1. Introduction 2. Variability 2. Variability 3. Applications 4. Related Work 3. Applications 4. Related Work 5. Conclusions5. Conclusions

Page 7: Weaving Variability into Domain Metamodels

7

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

1. Introduction / motivation1. Introduction / motivation

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction1. Introduction 2. Variability 2. Variability 3. Applications 4. Related Work 3. Applications 4. Related Work 5. Conclusions5. Conclusions

Page 8: Weaving Variability into Domain Metamodels

8

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

1. Introduction / motivation1. Introduction / motivation

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction1. Introduction 2. Variability 2. Variability 3. Applications 4. Related Work 3. Applications 4. Related Work 5. Conclusions5. Conclusions

Page 9: Weaving Variability into Domain Metamodels

9

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

1. Introduction / motivation1. Introduction / motivation

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction1. Introduction 2. Variability 2. Variability 3. Applications 4. Related Work 3. Applications 4. Related Work 5. Conclusions5. Conclusions

Page 10: Weaving Variability into Domain Metamodels

10

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Page 11: Weaving Variability into Domain Metamodels

11

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Page 12: Weaving Variability into Domain Metamodels

12

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Page 13: Weaving Variability into Domain Metamodels

13

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Page 14: Weaving Variability into Domain Metamodels

14

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

1. Introduction / key ideas

Products should meet (changing) user requirementsTime-to-market is a critical concernDeveloping products from scratch is time consuming

1. Introduction / key ideas

Products should meet (changing) user requirementsTime-to-market is a critical concernDeveloping products from scratch is time consuming

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction1. Introduction 2. Variability 2. Variability 3. Applications 4. Related Work 3. Applications 4. Related Work 5. Conclusions5. Conclusions

Page 15: Weaving Variability into Domain Metamodels

15

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

1. Introduction / SPL and MDE in concert1. Introduction / SPL and MDE in concert

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction1. Introduction 2. Variability 2. Variability 3. Applications 4. Related Work 3. Applications 4. Related Work 5. Conclusions5. Conclusions

Page 16: Weaving Variability into Domain Metamodels

16

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Page 17: Weaving Variability into Domain Metamodels

17

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

1. Introduction / SPL

“A software product line (SPL) is a set of software-intensive systems that share a common, managed set of features satisfying the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way.”

1. Introduction / SPL

“A software product line (SPL) is a set of software-intensive systems that share a common, managed set of features satisfying the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way.”

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction1. Introduction 2. Variability 2. Variability 3. Applications 4. Related Work 3. Applications 4. Related Work 5. Conclusions5. Conclusions

Page 18: Weaving Variability into Domain Metamodels

18

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

1. Introduction / SPL / Benefits

INCREASED

Productivity

Quality

1. Introduction / SPL / Benefits

INCREASED

Productivity

Quality

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction1. Introduction 2. Variability 2. Variability 3. Applications 4. Related Work 3. Applications 4. Related Work 5. Conclusions5. Conclusions

DECREASED

Cost

Labor needs

Time to Market

Page 19: Weaving Variability into Domain Metamodels

19

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

1. Introduction / MDE

“Model-driven engineering (MDE) is a software development methodology which focuses on creating and exploiting domain models (that is, abstract representations of the knowledge and activities that govern a particular application domain), rather than on the computing (or algorithmic) concepts.”

1. Introduction / MDE

“Model-driven engineering (MDE) is a software development methodology which focuses on creating and exploiting domain models (that is, abstract representations of the knowledge and activities that govern a particular application domain), rather than on the computing (or algorithmic) concepts.”

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction1. Introduction 2. Variability 2. Variability 3. Applications 4. Related Work 3. Applications 4. Related Work 5. Conclusions5. Conclusions

Page 20: Weaving Variability into Domain Metamodels

20

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

1. Introduction / MDE / Benefits

INCREASED

Productivity

Compatibility

Reusability

Team communications

1. Introduction / MDE / Benefits

INCREASED

Productivity

Compatibility

Reusability

Team communicationsWeaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction1. Introduction 2. Variability 2. Variability 3. Applications 4. Related Work 3. Applications 4. Related Work 5. Conclusions5. Conclusions

DECREASED

Design complexity

Page 21: Weaving Variability into Domain Metamodels

21

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces) Exploits/benefits from commonalitiesManages variabilitiesDerives products depending on the needs

DSML (Domain Specific Modeling Languages)....Composition, transformation, code generation....

Early validation, simulation....

Exploits/benefits from commonalitiesManages variabilitiesDerives products depending on the needs

DSML (Domain Specific Modeling Languages)....Composition, transformation, code generation....

Early validation, simulation....

Page 22: Weaving Variability into Domain Metamodels

22

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Page 23: Weaving Variability into Domain Metamodels

23

2. Variabilityas a (meta-) aspect

2. Variabilityas a (meta-) aspect

Page 24: Weaving Variability into Domain Metamodels

24

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

2. Variability as a (meta-) aspect / goals

Reusable variability aspect

Describe models containing variability (based on the concepts defined in the domain metamodel)

2. Variability as a (meta-) aspect / goals

Reusable variability aspect

Describe models containing variability (based on the concepts defined in the domain metamodel)

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction 1. Introduction 2. Variability2. Variability 3. Applications 3. Applications 4. Related Work 5. Conclusions4. Related Work 5. Conclusions

Page 25: Weaving Variability into Domain Metamodels

25

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

2. Variability as a (meta-) aspect / approaches

Put variability inside the models

Put variability aside of the models

2. Variability as a (meta-) aspect / approaches

Put variability inside the models

Put variability aside of the models

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction 1. Introduction 2. Variability2. Variability 3. Applications 3. Applications 4. Related Work 5. Conclusions4. Related Work 5. Conclusions

Page 26: Weaving Variability into Domain Metamodels

26

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces) variability inside the modelsvariability inside the models

Page 27: Weaving Variability into Domain Metamodels

27

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces) variability aside of the modelsvariability aside of the models

Page 28: Weaving Variability into Domain Metamodels

28

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces) variability inside Vs aside the modelsvariability inside Vs aside the models

Page 29: Weaving Variability into Domain Metamodels

29

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

2. Variability as a (meta-) aspect / considerations

Orthogonal to a domain- Supported by DSMLs

Standard concepts- XOR, options, etc.- Not useful for all domains - Variability FIXED

2. Variability as a (meta-) aspect / considerations

Orthogonal to a domain- Supported by DSMLs

Standard concepts- XOR, options, etc.- Not useful for all domains - Variability FIXED

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction 1. Introduction 2. Variability2. Variability 3. Applications 3. Applications 4. Related Work 5. Conclusions4. Related Work 5. Conclusions

Page 30: Weaving Variability into Domain Metamodels

30

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

2. Variability as a (meta-) aspect / metamodelfor variability

Founded upon previous workOperators

XOR, OR, AND, Vp, OptionalHomegeneous Vs Heterogeneous

ConstraintsREQUIRE, EXCLUDE, etc.

2. Variability as a (meta-) aspect / metamodelfor variability

Founded upon previous workOperators

XOR, OR, AND, Vp, OptionalHomegeneous Vs Heterogeneous

ConstraintsREQUIRE, EXCLUDE, etc.

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction 1. Introduction 2. Variability2. Variability 3. Applications 3. Applications 4. Related Work 5. Conclusions4. Related Work 5. Conclusions

Page 31: Weaving Variability into Domain Metamodels

31

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

2. Variability as a (meta-) aspect / metamodelfor variability

2. Variability as a (meta-) aspect / metamodelfor variability

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction 1. Introduction 2. Variability2. Variability 3. Applications 3. Applications 4. Related Work 5. Conclusions4. Related Work 5. Conclusions

Page 32: Weaving Variability into Domain Metamodels

32

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Page 33: Weaving Variability into Domain Metamodels

33

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

2. Variability as a (meta-) aspect / EMF metamodelwith variability

2. Variability as a (meta-) aspect / EMF metamodelwith variability

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction 1. Introduction 2. Variability2. Variability 3. Applications 3. Applications 4. Related Work 5. Conclusions4. Related Work 5. Conclusions

Page 34: Weaving Variability into Domain Metamodels

34

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Page 35: Weaving Variability into Domain Metamodels

35

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Page 36: Weaving Variability into Domain Metamodels

36

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Page 37: Weaving Variability into Domain Metamodels

37

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Page 38: Weaving Variability into Domain Metamodels

38

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Page 39: Weaving Variability into Domain Metamodels

39

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

2. Variability as a (meta-) aspect / weaving variability

idea: insert variability controllers on the references

2. Variability as a (meta-) aspect / weaving variability

idea: insert variability controllers on the references

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction 1. Introduction 2. Variability2. Variability 3. Applications 3. Applications 4. Related Work 5. Conclusions4. Related Work 5. Conclusions

Page 40: Weaving Variability into Domain Metamodels

40

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

2. Variability as a (meta-) aspect / AOMAOM (Aspect-Oriented Metamodeling)

Meta-Aspect: Aspect that applies to a metamodelMetamodels are models like others- A (meta)model conforms to a (meta-)metamodelAspect-Oriented Metamodeling (AOM)- Applied at the metamodel level- Metamodels == base models for the aspects

2. Variability as a (meta-) aspect / AOMAOM (Aspect-Oriented Metamodeling)

Meta-Aspect: Aspect that applies to a metamodelMetamodels are models like others- A (meta)model conforms to a (meta-)metamodelAspect-Oriented Metamodeling (AOM)- Applied at the metamodel level- Metamodels == base models for the aspects

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction 1. Introduction 2. Variability2. Variability 3. Applications 3. Applications 4. Related Work 5. Conclusions4. Related Work 5. Conclusions

Page 41: Weaving Variability into Domain Metamodels

41

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

2. Variability as a (meta-) aspect / Smart Adapterweaving (meta-) aspects

ASPECT:- pointcut model (WHERE)- advice model (WHAT)- composition protocol (HOW)POINTCUT: contextualized before weaving- automatically: pattern matching, etc.

- semi-automatically: automatic detection, on-demand

- manually: mapping

2. Variability as a (meta-) aspect / Smart Adapterweaving (meta-) aspects

ASPECT:- pointcut model (WHERE)- advice model (WHAT)- composition protocol (HOW)POINTCUT: contextualized before weaving- automatically: pattern matching, etc.

- semi-automatically: automatic detection, on-demand

- manually: mappingWeaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction 1. Introduction 2. Variability2. Variability 3. Applications 3. Applications 4. Related Work 5. Conclusions4. Related Work 5. Conclusions

Page 42: Weaving Variability into Domain Metamodels

42

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

2. Variability as a (meta-) aspect / variability(meta-) aspect

– Pointcut model matches any referencesbetween 2 meta-classes

– Useful homogeneous controllers are introduced on these references

– Useful heterogeneous controllers are introduced

– Constraints are attached to the root meta-class

2. Variability as a (meta-) aspect / variability(meta-) aspect

– Pointcut model matches any referencesbetween 2 meta-classes

– Useful homogeneous controllers are introduced on these references

– Useful heterogeneous controllers are introduced

– Constraints are attached to the root meta-class

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction 1. Introduction 2. Variability2. Variability 3. Applications 3. Applications 4. Related Work 5. Conclusions4. Related Work 5. Conclusions

Page 43: Weaving Variability into Domain Metamodels

43

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Page 44: Weaving Variability into Domain Metamodels

44

3. Applicationson 2 domainmetamodels

3. Applicationson 2 domainmetamodels

Page 45: Weaving Variability into Domain Metamodels

45

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

3. Applications on 2 domain metamodels

Class diagram with VariabilityUse of UML constructs + profiles

Aspect model with VariabilityMatching variabilityComposition variability

3. Applications on 2 domain metamodels

Class diagram with VariabilityUse of UML constructs + profiles

Aspect model with VariabilityMatching variabilityComposition variability

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction 2. Variability 1. Introduction 2. Variability 3. Applications3. Applications 4. Related Work 4. Related Work 5. Conclusions5. Conclusions

Page 46: Weaving Variability into Domain Metamodels

46

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Weaving variability into EMF/ECore Weaving variability into EMF/ECore

Page 47: Weaving Variability into Domain Metamodels

47

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Weaving variability into Smart AdaptersWeaving variability into Smart Adapters

Page 48: Weaving Variability into Domain Metamodels

48

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Weaving variability into Smart AdaptersWeaving variability into Smart Adapters

Page 49: Weaving Variability into Domain Metamodels

49

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

3. Applications on 2 domain metamodels / derivation process

From the model (with variability)Maintain a FD (Feature Diagram)

SPL tools select productsPruned FD (only selected features)

Pruned FD derive the modelModel conforming to initial metamodel

3. Applications on 2 domain metamodels / derivation process

From the model (with variability)Maintain a FD (Feature Diagram)

SPL tools select productsPruned FD (only selected features)

Pruned FD derive the modelModel conforming to initial metamodel

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction 2. Variability 1. Introduction 2. Variability 3. Applications3. Applications 4. Related Work 4. Related Work 5. Conclusions5. Conclusions

Page 50: Weaving Variability into Domain Metamodels

50

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

3. Applications on 2 domain metamodels / key ideas

Normal model Vs

Derived model

3. Applications on 2 domain metamodels / key ideas

Normal model Vs

Derived modelWeaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction 2. Variability 1. Introduction 2. Variability 3. Applications3. Applications 4. Related Work 4. Related Work 5. Conclusions5. Conclusions

Page 51: Weaving Variability into Domain Metamodels

51

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Page 52: Weaving Variability into Domain Metamodels

52

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Page 53: Weaving Variability into Domain Metamodels

53

4. Related Work4. Related Work

Page 54: Weaving Variability into Domain Metamodels

54

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

4. Related work / approaches

UML metamodel extension variability included in various UML diagrams

Variability techniquesengineering of DSMLs

Integrating model-driven & aspect-oriented software development

4. Related work / approaches

UML metamodel extension variability included in various UML diagrams

Variability techniquesengineering of DSMLs

Integrating model-driven & aspect-oriented software development

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction 2. Variability 1. Introduction 2. Variability 3. Applications 3. Applications 4. Related Work4. Related Work 5. Conclusions5. Conclusions

Page 55: Weaving Variability into Domain Metamodels

55

5. Conclusions5. Conclusions

Page 56: Weaving Variability into Domain Metamodels

56

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

5. Conclusions

Two approaches to combine SPL & DSMLvariability inside Vs variability asideboth have ++/--

Adopted approach: Variability Insidesystematic and flexible variability weavingthe variability you need, where you need it

5. Conclusions

Two approaches to combine SPL & DSMLvariability inside Vs variability asideboth have ++/--

Adopted approach: Variability Insidesystematic and flexible variability weavingthe variability you need, where you need it

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction 2. Variability 1. Introduction 2. Variability 3. Applications 4. Rela3. Applications 4. Related Work ted Work 5. Conclusions5. Conclusions

Page 57: Weaving Variability into Domain Metamodels

57

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Page 58: Weaving Variability into Domain Metamodels

58

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Page 59: Weaving Variability into Domain Metamodels

59

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Page 60: Weaving Variability into Domain Metamodels

60

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Page 61: Weaving Variability into Domain Metamodels

61

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Page 62: Weaving Variability into Domain Metamodels

62

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Page 63: Weaving Variability into Domain Metamodels

63

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

5. Conclusions

Personal Reflections...

5. Conclusions

Personal Reflections...

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction 2. Variability 1. Introduction 2. Variability 3. Applications 4. Rela3. Applications 4. Related Work ted Work 5. Conclusions5. Conclusions

Page 64: Weaving Variability into Domain Metamodels

64

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Page 65: Weaving Variability into Domain Metamodels

65

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Page 66: Weaving Variability into Domain Metamodels

66

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Page 67: Weaving Variability into Domain Metamodels

67

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Page 68: Weaving Variability into Domain Metamodels

68

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Page 69: Weaving Variability into Domain Metamodels

69

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

Page 70: Weaving Variability into Domain Metamodels

70

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

5. Conclusions / Critique / PROSreusable variability aspectextends metamodel with variabilityindependent from any domain metamodelgeneric approach(applicable to any Ecore/EMOF meta-model, incl. UML)

variability aspect can be standardizedDSMLs can be designed without variabilityvariability is woven on demandapproach validated (Ecore / Smart Adapters)authors: wide experience in the field (↑publications)

5. Conclusions / Critique / PROSreusable variability aspectextends metamodel with variabilityindependent from any domain metamodelgeneric approach(applicable to any Ecore/EMOF meta-model, incl. UML)

variability aspect can be standardizedDSMLs can be designed without variabilityvariability is woven on demandapproach validated (Ecore / Smart Adapters)authors: wide experience in the field (↑publications)

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction 2. Variability 1. Introduction 2. Variability 3. Applications 4. Rela3. Applications 4. Related Work ted Work 5. Conclusions5. Conclusions

Page 71: Weaving Variability into Domain Metamodels

71

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

5. Conclusions / Critique / CONSconstraints: limited to ‘requires’ and ‘mutex’(does not contemplate other kinds of constraints) [2,6,7]article:

lacks of some concept definitionslacks of a clear, brief “step-by-step” summary of the approachlacks of a scheme/diagram summarizing the approach

there are other valid approaches:using UML + OO [2]extending UML metamodel with variability [20]variability techniques to assist the engineering of DSMLs [12]integrating model-driven & aspect-oriented sw evelopment [21](the last 2, introduce variability at the model level)

5. Conclusions / Critique / CONSconstraints: limited to ‘requires’ and ‘mutex’(does not contemplate other kinds of constraints) [2,6,7]article:

lacks of some concept definitionslacks of a clear, brief “step-by-step” summary of the approachlacks of a scheme/diagram summarizing the approach

there are other valid approaches:using UML + OO [2]extending UML metamodel with variability [20]variability techniques to assist the engineering of DSMLs [12]integrating model-driven & aspect-oriented sw evelopment [21](the last 2, introduce variability at the model level)

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction 2. Variability 1. Introduction 2. Variability 3. Applications 4. Rela3. Applications 4. Related Work ted Work 5. Conclusions5. Conclusions

Page 72: Weaving Variability into Domain Metamodels

72

1. Wigdor 2010 (Architecting ext-Generation User Interfaces) 1. 1. WigdorWigdor 20102010 (Architecting ext(Architecting ext--Generation User Interfaces) Generation User Interfaces)

5. Conclusions / Critique / Personal opinioninteresting approachcomplete: involves all steps (begining –to-end)detailedfounded upon previous research/studiesvalidatedexperimented authorsfuture research opportunities:

model checkingediting facilitiesetc.

5. Conclusions / Critique / Personal opinioninteresting approachcomplete: involves all steps (begining –to-end)detailedfounded upon previous research/studiesvalidatedexperimented authorsfuture research opportunities:

model checkingediting facilitiesetc.

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

1. Introduction 2. Variability 1. Introduction 2. Variability 3. Applications 4. Rela3. Applications 4. Related Work ted Work 5. Conclusions5. Conclusions

Page 73: Weaving Variability into Domain Metamodels

73

ReferencesReferences

Page 74: Weaving Variability into Domain Metamodels

74

1. Pohl, K., Böckle, G., van der Linden, F.J.: Software Product Line Engineering:Foundations, Principles and Techniques. Springer-Verlag New York, Inc., Secaucus,NJ, USA (2005)

2. Perrouin, G., Klein, J., Guel, N., Jezequel, J.M.: Reconciling automation and exibilityin product derivation. In: 12th International Software Product Line Conference(SPLC 2008), Limerick, Ireland, IEEE Computer Society (2008) 339-348

3. OMG: OMG Unied Modeling Language OMG UML, Superstructure Version 2.2.Technical Report formal/2007-02-03, Object Management Group (2007)

4. Lahire, P., Morin, B., Vanwormhoudt, G., Gaignard, A., Barais, O., Jzquel, J.M.: Introducingvariability into aspect-oriented modeling approaches. In: In Proceedings ofACM/IEEE 10th International Conference on Model Driven Engineering Languagesand Systems (MoDELS 07), Nashville, TN, USA (2007)

5. Gray, J., Sztipanovits, J., Schmidt, D.C., Bapty, T., Neema, S., Gokhale, A.: Two levelaspect weaving to support evolution in model-driven synthesis. Addison-Wesley,Boston (2005) 681-709

6. Schobbens, P.Y., Heymans, P., Trigaux, J.C., Bontemps, Y.: Feature Diagrams: ASurvey and A Formal Semantics. In: RE, Minneapolis, Minnesota, USA (2006)

7. Schobbens, P.Y., Heymans, P., Trigaux, J.C., Bontemps, Y.: Generic semantics offeature diagrams. Computer Networks 51 (2007) 456-479

1. Pohl, K., Böckle, G., van der Linden, F.J.: Software Product Line Engineering:Foundations, Principles and Techniques. Springer-Verlag New York, Inc., Secaucus,NJ, USA (2005)

2. Perrouin, G., Klein, J., Guel, N., Jezequel, J.M.: Reconciling automation and exibilityin product derivation. In: 12th International Software Product Line Conference(SPLC 2008), Limerick, Ireland, IEEE Computer Society (2008) 339-348

3. OMG: OMG Unied Modeling Language OMG UML, Superstructure Version 2.2.Technical Report formal/2007-02-03, Object Management Group (2007)

4. Lahire, P., Morin, B., Vanwormhoudt, G., Gaignard, A., Barais, O., Jzquel, J.M.: Introducingvariability into aspect-oriented modeling approaches. In: In Proceedings ofACM/IEEE 10th International Conference on Model Driven Engineering Languagesand Systems (MoDELS 07), Nashville, TN, USA (2007)

5. Gray, J., Sztipanovits, J., Schmidt, D.C., Bapty, T., Neema, S., Gokhale, A.: Two levelaspect weaving to support evolution in model-driven synthesis. Addison-Wesley,Boston (2005) 681-709

6. Schobbens, P.Y., Heymans, P., Trigaux, J.C., Bontemps, Y.: Feature Diagrams: ASurvey and A Formal Semantics. In: RE, Minneapolis, Minnesota, USA (2006)

7. Schobbens, P.Y., Heymans, P., Trigaux, J.C., Bontemps, Y.: Generic semantics offeature diagrams. Computer Networks 51 (2007) 456-479

Page 75: Weaving Variability into Domain Metamodels

75

8. Kang, K., Cohen, S., Hess, J., Novak, W., Peterson, S.: Feature-Oriented DomainAnalysis (FODA) Feasibility Study. Technical Report CMU/SEI-90-TR-21, SoftwareEngineering Institute (1990)

9. Czarnecki, K., Helsen, S., Eisenecker, U.: Formalizing Cardinality-based FeatureModels and their Specialization. Software Process Improvement and Practice 10(2005) 7-29

10. Griss, M.L., Favaro, J., d' Alessandro, M.: Integrating Feature Modeling with theRSEB. In: ICSR, Washington, DC, USA (1998)

11. Kang, K.C., Kim, S., Lee, J., Kim, K., Shin, E., Huh, M.: FORM: A Feature-Oriented Reuse Method with Domain-Specic Reference Architectures. Ann. Softw. Eng. 5 (1998) 143-168

12. Haugen, O., Moller-Pedersen, B., Oldevik, J., Olsen, G., Svendsen, A.: Adding standardized variability to domain specic languages. In: Software Product Line Conference.(2008) 139-148

13. Ramos, R., Barais, O., Jzquel, J.M.: Matching model-snippets. In: In Proceedings of ACM/IEEE 10th International Conference on Model Driven Engineering Languages and Systems (MoDELS 07), Nashville, TN, USA (2007)

14. Batory, D.S.: Feature models, grammars, and propositional formulas. In Obbink,J.H., Pohl, K., eds.: SPLC. Volume 3714 of LNCS., Springer (2005) 7-20

8. Kang, K., Cohen, S., Hess, J., Novak, W., Peterson, S.: Feature-Oriented DomainAnalysis (FODA) Feasibility Study. Technical Report CMU/SEI-90-TR-21, SoftwareEngineering Institute (1990)

9. Czarnecki, K., Helsen, S., Eisenecker, U.: Formalizing Cardinality-based FeatureModels and their Specialization. Software Process Improvement and Practice 10(2005) 7-29

10. Griss, M.L., Favaro, J., d' Alessandro, M.: Integrating Feature Modeling with theRSEB. In: ICSR, Washington, DC, USA (1998)

11. Kang, K.C., Kim, S., Lee, J., Kim, K., Shin, E., Huh, M.: FORM: A Feature-Oriented Reuse Method with Domain-Specic Reference Architectures. Ann. Softw. Eng. 5 (1998) 143-168

12. Haugen, O., Moller-Pedersen, B., Oldevik, J., Olsen, G., Svendsen, A.: Adding standardized variability to domain specic languages. In: Software Product Line Conference.(2008) 139-148

13. Ramos, R., Barais, O., Jzquel, J.M.: Matching model-snippets. In: In Proceedings of ACM/IEEE 10th International Conference on Model Driven Engineering Languages and Systems (MoDELS 07), Nashville, TN, USA (2007)

14. Batory, D.S.: Feature models, grammars, and propositional formulas. In Obbink,J.H., Pohl, K., eds.: SPLC. Volume 3714 of LNCS., Springer (2005) 7-20

Page 76: Weaving Variability into Domain Metamodels

76

15. PureSystems. Pure::Variants Website http://www.pure-systems.com/ (2006)

16. Czarnecki, K., Antkiewicz, M.: Mapping Features to Models: A Template Approachbased on Superimposed Variants. In: Generative programming and component engineering(GPCE). Volume 3676 of LNCS., Springer-Verlag (2005) 422-437

17. Benavides, D., Segura, S., Trinidad, P., Ruiz-Cortes, A.: FAMA: Tooling a frameworkfor the automated analysis of feature models. In: Proceeding of the First InternationalWorkshop on Variability Modelling of Software-intensive Systems (VAMOS). (2007)129-134

18. Metzger, A., Pohl, K., Heymans, P., Schobbens, P.Y., Saval, G.: Disambiguatingthe documentation of variability in software product lines: A separation of concerns,formalization and automated analysis. In: IEEE Conference on Requirements Engineering,Los Alamitos, CA, USA, IEEE Computer Society (2007) 243-253

19. Muller, P.A., Fleurey, F., Jezequel, J.M.: Weaving executability into object-orientedmeta-languages. In: Proc. of MODELS/UML'2005. LNCS, Jamaica, Springer (2005)

20. Ziadi, T., Jezequel, J.M.: Product Line Engineering with the UML: Deriving Products.In: Families Research Book. Springer (2006)

21. Voelter, M., Groher, I.: Product line implementation using aspect-oriented andmodel-driven software development. In: 11th International Software Product LineConference, Kyoto, Japan (2007) 10

15. PureSystems. Pure::Variants Website http://www.pure-systems.com/ (2006)

16. Czarnecki, K., Antkiewicz, M.: Mapping Features to Models: A Template Approachbased on Superimposed Variants. In: Generative programming and component engineering(GPCE). Volume 3676 of LNCS., Springer-Verlag (2005) 422-437

17. Benavides, D., Segura, S., Trinidad, P., Ruiz-Cortes, A.: FAMA: Tooling a frameworkfor the automated analysis of feature models. In: Proceeding of the First InternationalWorkshop on Variability Modelling of Software-intensive Systems (VAMOS). (2007)129-134

18. Metzger, A., Pohl, K., Heymans, P., Schobbens, P.Y., Saval, G.: Disambiguatingthe documentation of variability in software product lines: A separation of concerns,formalization and automated analysis. In: IEEE Conference on Requirements Engineering,Los Alamitos, CA, USA, IEEE Computer Society (2007) 243-253

19. Muller, P.A., Fleurey, F., Jezequel, J.M.: Weaving executability into object-orientedmeta-languages. In: Proc. of MODELS/UML'2005. LNCS, Jamaica, Springer (2005)

20. Ziadi, T., Jezequel, J.M.: Product Line Engineering with the UML: Deriving Products.In: Families Research Book. Springer (2006)

21. Voelter, M., Groher, I.: Product line implementation using aspect-oriented andmodel-driven software development. In: 11th International Software Product LineConference, Kyoto, Japan (2007) 10

Page 77: Weaving Variability into Domain Metamodels

77

22. Lahire, P., Morin. B., Barais., O. Introducing Variability into Aspect-Oriented Modeling Approaches. Vanderbilt University, Springer-Verlag (2007)

23. Morin, B., Klein, J., Barains, O. A Generic Weaver for Supporting Product Lines. In: Early Aspects Workshops at ICSE (2008)

24. Morin, B., Fleurey, F., Bencomo, N. An Aspect-Oriented and Model-Driven Approach for Managing Dynamic Variability. In: ACM/IEEE MODELS’08. (2008)

22. Lahire, P., Morin. B., Barais., O. Introducing Variability into Aspect-Oriented Modeling Approaches. Vanderbilt University, Springer-Verlag (2007)

23. Morin, B., Klein, J., Barains, O. A Generic Weaver for Supporting Product Lines. In: Early Aspects Workshops at ICSE (2008)

24. Morin, B., Fleurey, F., Bencomo, N. An Aspect-Oriented and Model-Driven Approach for Managing Dynamic Variability. In: ACM/IEEE MODELS’08. (2008)

Page 78: Weaving Variability into Domain Metamodels

78

You might be thinking...You might be thinking...You might be thinking...

Now you can impress your friends talking about WeavingVariability intoDomain Metamodels

please, ask!

Now you can impress your friends talking about WeavingVariability intoDomain Metamodels

please, ask!

Weaving Variability into Domain Metamodels CS Dept. University of Malaga, SpainCS Dept. University of Malaga, Spain

Page 79: Weaving Variability into Domain Metamodels

Weaving Variability into Domain Metamodels

Juan Antonio Martin-Checa (Advanced Component-Based Systems)

Master in Software Engineering & Artificial Intelligence

Weaving Variability into Weaving Variability into Domain MetamodelsDomain Metamodels

Juan Antonio MartinJuan Antonio Martin--Checa Checa (Advanced Component(Advanced Component--Based Systems)Based Systems)

Master in Software Engineering & Artificial IntelligenceMaster in Software Engineering & Artificial Intelligence

Computer Science DepartmentUniversity of Malaga, Spain

2011

Computer Science DepartmentUniversity of Malaga, Spain

2011