Slide 1

Slide 1 text

International Workshop on Graph and Model Transformation Generative Programming and Component Engineering (GPCE'05) Requirements variability support through MDDTM and graph transformation F. Javier Pérez García Miguel A. Laguna Yania Crespo Bruno González-Baixauli

Slide 2

Slide 2 text

September 05 Page 2 Index Introduction: Product Lines MDDTM and Product Lines A Transformation example Support through graph transformations Conclusions

Slide 3

Slide 3 text

September 05 Page 3 Introduction: Product Lines

Slide 4

Slide 4 text

September 05 Page 4 Product Lines (PL) PL issues: Successful reuse approach Coarse-grained components Top-down systematic approach High effort & complex Lack of process definition Two Processes: Product Line Engineering Process Product Product Engineering Process

Slide 5

Slide 5 text

September 05 Page 5 Product Line Process (1) Goal: reduce investment and present results earlier Enabling PLs for small enterprises Features: Defined with SPEM Using best practices Two different process Iterative

Slide 6

Slide 6 text

September 05 Page 6 Product Line Process (2) Product Line Engineering Process Asset management (Reuse library) Product Engineering Process Inicio Elaboración Construcción Transición Inicio Elaboración Construcción Transición Inception Elaboration Construction Transition Assets Requirement Engineering Reference Architecture definition Component Implementation Domain definition Assets Assets

Slide 7

Slide 7 text

September 05 Page 7 PL Engineering Process Three phases: PL inception PL elaboration PL construction Six disciplines: Domain definition PL Requirement engineering Reference architecture definition Component implementation Other (Test & Change management)

Slide 8

Slide 8 text

September 05 Page 8 PL Requirements Engineering Initial: features & use-cases [solution oriented] Add Goals: Intentional viewpoint – explicit Problem oriented NFR dealing Analyze alternatives

Slide 9

Slide 9 text

September 05 Page 9 Goal Model Examples D D D Persona Discapacitada Comunicar Receptor Mensaje D Facilidad de Uso Movilidad D D D D Comunicador Aumentativo Y Alternativo (CAA) D Entregar Mensaje D Facilidad de Uso D D D D Mensaje Obtener Mensaje D D ALCANZAR Comunicación AND ALCANZAR Mensaje Introducido ALCANZAR Mensaje Reproducido OR OR Mediante Texto Mediante SPC Usando Texto Usando Voz ACTOR Leyenda HARDGOAL SOFTGOAL RECURSO TASK

Slide 10

Slide 10 text

September 05 Page 10 PL Models Goal Model Goal Model Feature Model Feature SubModel Product Line Model Application Model Soft-goal Model Application <> <> <> <> << instanceOf >> << instanceOf >> <>

Slide 11

Slide 11 text

September 05 Page 11 MDD and Product Lines

Slide 12

Slide 12 text

September 05 Page 12 MDD & MDA Model Driven Development Generalization of Model Driven Architecture (MDATM) Introduced by OMG Based in models: Platform Independent Model (PIM) Platform Specific Model (PSM) Model Transformations Can be applied to our process?

Slide 13

Slide 13 text

September 05 Page 13 MDA & Product Lines Several model types: Goal & Softgoal Feature Architecture (class) Different scope: All PL (variability & communality) Application specific PIM models PIM to PIM transformations (MDE)

Slide 14

Slide 14 text

September 05 Page 14 PL Architecture (OO Framework) Application Feature Sub-Model Application Model Application EJB PIM to PSM transformations Application .NET PIM to PIM Transformations? Application Goal/soft-goal Model Instantiation Selection Goal/soft-goal Model Configuration Feature Model Rationale Definition PL Architecture (OO Framework) Application Feature Sub-Model Application Model Application EJB PIM to PSM transformations Application .NET PIM to PIM Transformations? Application Goal/soft-goal Model Instantiation Selection Selection Goal/soft-goal Model Configuration Configuration Feature Model Rationale Definition Transformations

Slide 15

Slide 15 text

September 05 Page 15 PL Architecture (OO Framework) Application Feature Sub-Model Application Model Application EJB PIM to PSM transformations Application .NET PIM to PIM Transformations? Application Goal/soft-goal Model Instantiation Selection Goal/soft-goal Model Configuration Feature Model Rationale Definition PL Architecture (OO Framework) Application Feature Sub-Model Application Model Application EJB PIM to PSM transformations Application .NET PIM to PIM Transformations? Application Goal/soft-goal Model Instantiation Selection Selection Goal/soft-goal Model Configuration Configuration Feature Model Rationale Definition Horizontal Transformations Selection: Domain engineer Configuration: Trazability Application from PL: Trazability

Slide 16

Slide 16 text

September 05 Page 16 Vertical Transformations Application EJB Application .NET Application EJB Application .NET Application : PIM to PSM (MDA)

Slide 17

Slide 17 text

September 05 Page 17 A Transformation Example

Slide 18

Slide 18 text

September 05 Page 18 Application EJB Application .NET Application EJB Application .NET Transformation

Slide 19

Slide 19 text

September 05 Page 19 From the Feature Model …

Slide 20

Slide 20 text

September 05 Page 20 … to the Architecture Model

Slide 21

Slide 21 text

September 05 Page 21 Features to Architecture Transformation Metamodel mapping approach: Compatibility? – MOF Simplicity Architecture metamodel - UML Feature metamodel Several Czarnecky – cardinality Describe transformations with OMG QVT

Slide 22

Slide 22 text

September 05 Page 22 Feature Metamodel (Czarnecki)

Slide 23

Slide 23 text

September 05 Page 23 Partial UML Class Metamodel

Slide 24

Slide 24 text

September 05 Page 24 Features to Architecture Transformation Ordered Context Sensitive Transformations Rules: Feature model -> Package: FeatureModelToNamespace Root feature -> Class: RootFeatureToClass Recursively (linked features): SolitaryFeatures & FeatureGroups to classes and associated to parent: SolitaryFeatureToClass & FeatureGroupToClass GroupedFeatures to classes and associated (generalization) to parent feature group: FeatureModeltoNamespace Associations multiplicity = Feature cardinality

Slide 25

Slide 25 text

September 05 Page 25 FeatureModelToNamespace m:FeatureModel <> name=fm n:Namespace name=fm <> uml, e fm, c FeatureModel to Namespace Feature Model is transformed in a Package

Slide 26

Slide 26 text

September 05 Page 26 when FeatureModelToNamespace(m,n) RootFeatureToClass f:RootFeature <> name=fn m:FeatureModel c:Class name=fn <> uml, e fm, c where SolitaryFeatureToClass(f,c) FeatureGroupToClass(f,c) n:Namespace RootFeature to Class The RootFeature is transformed to the first class

Slide 27

Slide 27 text

September 05 Page 27 where SolitaryFeatureToClass(sf,sc); FeatureGroupToClass(sf,sc); SolitaryFeatureToClass f:Feature <> sf:SolitaryFeature c:Class <> uml, e fm, c a:Association name=sn featureCardinality=fc sc:Class name=sn ae2:AssociationEnd multiplicity=fc ae1:AssociationEnd multiplicity=“1..1” SolitaryFeature to Class SolitaryFeatures are transformed into classes and associated to the owner feature with multiplicity featureCardinality

Slide 28

Slide 28 text

September 05 Page 28 where GroupedFeatureToClass(fg,cg); FeatureGroupToClass f:Feature <> fg:FeatureGroup uml, e fm, c name=gn groupCardinality=gc c:Class <> a:Association ae2:AssociationEnd multiplicity=gc ae1:AssociationEnd multiplicity=“1..1” cg:Class name=gn FeatureGroup to Class FeatureGroups are transformed to classes and associated of owned GroupedFeatures with multiplicity groupCardinality

Slide 29

Slide 29 text

September 05 Page 29 where SolitaryFeatureToClass(f,c) FeatureGroupToClass(f,c) GroupedFeatureToClass fg:FeatureGroup <> f:GroupedFeature gc:Class <> uml, e fm, c name=fn c:Class name=fn g:Generalization parent child GroupedFeature to Class GroupedFeatures are transformed to sub- classes of owner

Slide 30

Slide 30 text

September 05 Page 30 Transformation Example Input Buttons Element Mechanism Grouped Lists Phrase Voice Character 1..1 1..1 0..1 1..1 1..1 Element Button List Character Phrase Voice Input Grouped MecType Mechanism 0..1 ElemType

Slide 31

Slide 31 text

September 05 Page 31 Transformation Example Input Buttons Element Mechanism Grouped Lists Phrase Voice Character 1..1 1..1 0..1 1..1 1..1 Element Button List Character Phrase Voice Input Grouped MecType Mechanism 0..1 RootFeatureToClass ElemType

Slide 32

Slide 32 text

September 05 Page 32 Transformation Example Input Buttons Element Mechanism Grouped Lists Phrase Voice Character 1..1 1..1 0..1 1..1 1..1 Element Button List Character Phrase Voice Input Grouped MecType Mechanism 0..1 SingleFeatureToClass ElemType

Slide 33

Slide 33 text

September 05 Page 33 Transformation Example Input Buttons Element Mechanism Grouped Lists Phrase Voice Character 1..1 1..1 0..1 1..1 1..1 ElemType Button List Character Phrase Voice Input Grouped MecType Mechanism 0..1 FeatureGroupToClass Element

Slide 34

Slide 34 text

September 05 Page 34 Transformation Example Input Buttons Element Mechanism Grouped Lists Phrase Voice Character 1..1 1..1 0..1 1..1 1..1 Element Button List Character Phrase Voice Input Grouped MecType Mechanism 0..1 GroupedFeatureToClass ElemType

Slide 35

Slide 35 text

September 05 Page 35 Transformation Example Input Buttons Element Mechanism Grouped Lists Phrase Voice Character 1..1 1..1 0..1 1..1 1..1 Element Button List Character Phrase Voice Input Grouped MecType Mechanism 0..1 SingleFeatureToClass ElemType

Slide 36

Slide 36 text

September 05 Page 36 Support through Graph Transformations

Slide 37

Slide 37 text

September 05 Page 37 Support Specification independent of implementation. Support based on: Models representation Transformation implementation Two approaches: XML + XSLT / Java Graph Grammars + AGG

Slide 38

Slide 38 text

September 05 Page 38 Graph Transformations Models = Graphs Model Transformations = Graph Transformations Metamodel = Type Graph Models = Typed Graphs + Attributes Rule ordering: Layered Graph Grammars AGG: State of the art graph transformation tool Context + Layers + Attributes

Slide 39

Slide 39 text

September 05 Page 39 Graph Transformation Rules QVT rule translates into a set of GG rules: Create classes Classes in the target model matching features in the source model Move children Link Features in the source model to the transformed parent class Delete Feature Node Transformed Feature node has no children and can be deleted

Slide 40

Slide 40 text

September 05 Page 40 Rule Ordering Layers L0: FeatureModelToNamespace L1: RootFeatureToClass L2: SolitaryFeatureToClass L3: FeatureGroupToClass L4: GroupedFeatureToClass Dangling edges restriction Loop over layers

Slide 41

Slide 41 text

September 05 Page 41 RootFeature To Class Rules

Slide 42

Slide 42 text

September 05 Page 42 Initial Feature Model

Slide 43

Slide 43 text

September 05 Page 43 Resulting Architecture Model

Slide 44

Slide 44 text

September 05 Page 44 Conclusions

Slide 45

Slide 45 text

September 05 Page 45 Conclusions Exploration MDATM to PL own process Transformation: Feature -> Architecture Support through Graph Transformations GT Tool: AGG Integration within other tools (Eclipse) Further work Trazability mechanism Goals to Feature transformation

Slide 46

Slide 46 text

International Workshop on Graph and Model Transformation Generative Programming and Component Engineering (GPCE'05) Requirements variability support through MDDTM and graph transformation F. Javier Pérez García Miguel A. Laguna Yania Crespo Bruno González-Baixauli

Slide 47

Slide 47 text

September 05 Page 47 XML + XSLT Under Eclipse Feature Model -> Xfeature plugin: XML Customizability of meta-model Architecture Model UML Class diagram XMI

Slide 48

Slide 48 text

September 05 Page 48 XFeature

Slide 49

Slide 49 text

September 05 Page 49 Resulting Model

Slide 50

Slide 50 text

September 05 Page 50 Eclipse Integration