MOVIDA studio a modeling environment to create viewpoints

  • Slides: 53
Download presentation
MOVIDA studio : a modeling environment to create viewpoints and manage variability in views

MOVIDA studio : a modeling environment to create viewpoints and manage variability in views Marie Gouyette, INRIA Olivier Barais, IRISA Université Rennes 1 Jérôme Le Noir, Thalès Reseach and Technology Cédric Brun, Obeo Date /Référence Marcos Almeida Da Silva, LIP 6 Xavier Blanc, Labri, Daniel Exertier, Thalès Corporate Services, Jean-Marc Jézéquel, Irisa, Université de Rennes 1

Talk outline • Viewpoint modeling and variability overview • MOVIDA project presentation • MOVIDA

Talk outline • Viewpoint modeling and variability overview • MOVIDA project presentation • MOVIDA tools presentation : • Obeo Desiger • Praxis • Variability tool • Tutorial example • Conclusion 2 2

Viewpoint modeling • Viewpoint : an encapsulation of partial information about a system (1)

Viewpoint modeling • Viewpoint : an encapsulation of partial information about a system (1) • View : an integration of different types of information taken from the same viewpoint (1) SOMMERVILLE I. , SAWYER P. , Viewpoints : principles, problems and a practical approach to requirements engineering , Ann. Softw. Eng. , vol. 3, 1997, p. 101– 130, J. C. Baltzer AG, Science Publishers 3 3

Viewpoint modeling examples Exchanges viewpoint Safety Viewpoint Here, two viewpoints on the same architecture.

Viewpoint modeling examples Exchanges viewpoint Safety Viewpoint Here, two viewpoints on the same architecture. Safety viewpoint add temperature concern (display temperature and used fan). 4 4

Challenges Needs § Environment to define architecture setting § Tool and methodology sustaining a

Challenges Needs § Environment to define architecture setting § Tool and methodology sustaining a grand scale Scientific stakes § Define basis of multi-view engineering in Model Driven Engineering context (MDE) §Point of view definition (Obeo) §Inconsistencies detection (Praxis, LIP 6, UPMC) §Representation definition (Obeo) §Model composability (INRIA) §Variability (INRIA) §Multi-criteria analysis to select the best compromise of architecture (Thales) Standards OMG Diagram definition RFP OMG Common Variability Language RFP IEEE-1471 – ISO/IEC 42010 5 5

MOVIDA Overview 1/2 • MOVIDA : MOdelling VIews and Decision support for Architects •

MOVIDA Overview 1/2 • MOVIDA : MOdelling VIews and Decision support for Architects • ANR project (2009 -2011) • Aim : multi-view engineering in Model Driven Engineering context (MDE) • Partners : 6 §Multi-criteria analysis to select the best compromise of architecture (Thales) 6

MOVIDA Overview 2/2 § Multi-criteria analysis to select the best compromise of architecture §

MOVIDA Overview 2/2 § Multi-criteria analysis to select the best compromise of architecture § Variability § Composability § Variability tool § Viewpoint definition § Inconsistencies detection § Representation definition § Use of Praxis § Use of Obeo Designer 7 7

Check inconsistencies between the different viewpoint • Is information from different viewpoints on the

Check inconsistencies between the different viewpoint • Is information from different viewpoints on the same system are consistent? • How to check it? • => Writing some constraints • Should Manage : • Incremental check : check only the last actions on the model not the whole actions on the model • Multi-model : detect inconsistencies between different models 8 8

Variability overview • Software Product Line (SPL) : • Engineering techniques to manage software

Variability overview • Software Product Line (SPL) : • Engineering techniques to manage software systems that have some commonalities and some variations (variability) between them • Variability can be modeled through features. • Feature : • “a distinguishable characteristic of a concept (e. g system components and so on) that is relevant to some stakeholder of the concept” (1) Ulrich W. Eisenecker, K. C. , ed. : Generative Programming : Method Tools and Applications. Addison. Wesley Professional (2000) 9 9

Variability example 10 10

Variability example 10 10

Obeo Designer 11 11

Obeo Designer 11 11

MOVIDA tools presentation • We will present here three of tools used in MOVIDA

MOVIDA tools presentation • We will present here three of tools used in MOVIDA : • Obeo Designer (Obeo) • Praxis (UPMC, LIP 6) • Variability tool (INRIA/IRISA) 12 12

Obeo Designer • Aims : • • • Express a need Describe a solution

Obeo Designer • Aims : • • • Express a need Describe a solution Check the model Produce code or documentation Keep consistency between model and code Graphical modeling 13 13

Obeo Designer • Modelers adapted to your own needs : Your know-how 14 Your

Obeo Designer • Modelers adapted to your own needs : Your know-how 14 Your modeler Your users 14

Obeo Designer • Applicative domains : Applicative cartography System engineering Ex : Sys. ML,

Obeo Designer • Applicative domains : Applicative cartography System engineering Ex : Sys. ML, Marte, EAST-ADL Enterprise Architecture ex : Togaf 15 Software design ex : UML, SOA Risk analysis Products catalog ex : Insurance Business process ex : BPMN, SPEM Your domain 15

Obeo Designer • Key functionalities : • No code to define the modeler Modeler

Obeo Designer • Key functionalities : • No code to define the modeler Modeler described by a model, dynamically interpreted • Numerous possibilities of representation Diagrams, tables, matrices, trees • Viewpoint approach Presentation of information necessary and sufficient • Traceability Synchronization between model and generated code • Integration to Eclipse environment Based on EMF, GMF and Acceleo 16 16

Obeo Designer Principles : 17 17

Obeo Designer Principles : 17 17

Obeo Designer • Obeo Designer based on : • Eclipse platform • Some components

Obeo Designer • Obeo Designer based on : • Eclipse platform • Some components of the project Eclipse modeling 18 18

Obeo Designer TO DO add 1 or 2 more technical slides : Graphical concepts

Obeo Designer TO DO add 1 or 2 more technical slides : Graphical concepts Mapping language 19 19

Praxis overview • Aim : Incremental detection of inconsistency in design models • Principles

Praxis overview • Aim : Incremental detection of inconsistency in design models • Principles : • Model represented as the set of construction actions • Incremental inconsistency detection based on increments • Tool separated into two parts : • Praxis. Rules inconsisteny rules editor • Praxis inconsistency detector 20 20

Praxis : choices made • Construction Actions : • Six actions based on MOF

Praxis : choices made • Construction Actions : • Six actions based on MOF metamodel • Create and Delete • Ex: create(a, class) • Add. Property and Rem. Property • Ex: add. Property(a, name, ‘User’) • Add. Reference and Rem. Reference • Ex: add. Reference(a, owned. Operation, op) • Praxis. Rules : • Rule based language based on Prolog • Rules describe inconsistencies • Rules are contex-free 21 21

Actions based model representation Object ID Metaclass Timestamp create(xmiid_Ty. Aw, fsm, 811). add. Property(xmiid_Ty.

Actions based model representation Object ID Metaclass Timestamp create(xmiid_Ty. Aw, fsm, 811). add. Property(xmiid_Ty. Aw, name, 'F', 812). create(xmiid_Vu. Rw, state, 813). add. Property(xmiid_Vu. R, name, 'initial', 814). create(xmiid_XZtw, state, 816). add. Property(xmiid_XZt, name, 'end', 817). add. Reference(xmiid_Ty. A, ownedstate, xmiid_Vu. R, add. Reference(xmiid_Ty. A, ownedstate, xmiid_XZt, . . . 22 22 Reference or Property name 815). 818).

Overview of Praxis. Rules Importing metamodels or Other rulesets Rule. Set declaration Rule user

Overview of Praxis. Rules Importing metamodels or Other rulesets Rule. Set declaration Rule user friendly description Logical connectives Actions Built-ins 23 23

Associating a Rule. Set to a Viewpoint 1. Select Viewpoint 2. Select Rule. Set

Associating a Rule. Set to a Viewpoint 1. Select Viewpoint 2. Select Rule. Set in Properties View 24 24

Checking Inconsistencies at Runtime Current Model Inconsistency Problems view 25 25

Checking Inconsistencies at Runtime Current Model Inconsistency Problems view 25 25

Variability tool overview • Aim : model variability on an architecture with the possibility

Variability tool overview • Aim : model variability on an architecture with the possibility to derive it to obtain the final architecture • Tool separated into four parts : • Graphical feature diagram editor with constraints to check it • Base Model Decorator • Selection Engine • Product Derivation engine • Technologies used : • • 26 EMF (Eclipse Modeling Framework) Obeo Designer Praxis Kermeta (Domain Specific Language dedicated to metamodel engineering (INRIA Triskell team) 26

Variability tool : choices made • Feature metamodel : • Decomposition edge such as

Variability tool : choices made • Feature metamodel : • Decomposition edge such as or, xor (called here alternative), card • Attributes : associate metadata to features • Direct mapping with Domain model elements in features • Graphical notation : • similar to FORM notation (Kang et al. (1) ) (but simplification of the notation on the tool) • Constraints : • Integrated with the graphical editor (1) Kang, K. C. , Kim, S. , Lee, J. , Kim, K. , Shin, E. , Huh, M. : FORM: A Feature-Oriented Reuse Method with Domain-Specific Reference Architectures. Ann. Softw. Eng. 5 (1998) 143– 168 27 27

Product Derivation Engine models RFP CVL (Common Variability Language) Presentation CVL Models • Base

Product Derivation Engine models RFP CVL (Common Variability Language) Presentation CVL Models • Base Model : general architecture model • Variability model : feature diagram model features are associated with domain model elements • Resolution model : contain feature selection Source : CVL RFP • Resolved model : specialized architecture model Product Derivation Concepts • Use the models defined above as in CVL approach (but it is not CVL here) • Use negative variability : domain model elements associated to unselected features are removed 28 28

Feature diagram metamodel 29 29

Feature diagram metamodel 29 29

Resolution metamodel It references a given Feature. Diagram and some features on it. 30

Resolution metamodel It references a given Feature. Diagram and some features on it. 30 30

Example of variability in an architecture § Two variability points on these architecture :

Example of variability in an architecture § Two variability points on these architecture : § The first is plugged in the mains § The second have a second input controller § A second fan can be added as option 31 31

Feature Diagram Editor • Now, each Domain Model Element is added as a text

Feature Diagram Editor • Now, each Domain Model Element is added as a text in the feature • The attribute max. Consumption is represented in gray. 32 32

Base Model Decorator • Aim : make appears a graphical decorator on Domain Model

Base Model Decorator • Aim : make appears a graphical decorator on Domain Model Elements added on an optional feature (Here a Fan element) 33 33

Selection Engine • We choose to select the feature two. Inputs Selection in the

Selection Engine • We choose to select the feature two. Inputs Selection in the Resolution model by checking selected features 34 34

Product Derivation Engine • After derivation we obtain the following model : 35 35

Product Derivation Engine • After derivation we obtain the following model : 35 35

Tutorial example presentation • Aim of this tutorial : using the following tool to

Tutorial example presentation • Aim of this tutorial : using the following tool to create a new DSML on which we can add some variability • Steps : • EMF and Obeo Designer • Praxis and OCL • Variability tool 36 36

Example presentation • We want to model some component which behavior can be modeled

Example presentation • We want to model some component which behavior can be modeled through a Finite State Machine model. • These components can have : • • Provided and required ports A way to link these ports Some interfaces with some operations A link to a given Finite State Machine • For the finite state machine we need : • States • Transitions 37 37

Practice : Metamodel proposition • QUESTION 1 : What metamodel could we propose for

Practice : Metamodel proposition • QUESTION 1 : What metamodel could we propose for the component model and the Finite state machine? 38 38

Possible solution used in this tutorial 1/2 • Component metamodel : 39 39

Possible solution used in this tutorial 1/2 • Component metamodel : 39 39

Possible solution used in this tutorial 2/2 • Finite State Machine metamodel : 40

Possible solution used in this tutorial 2/2 • Finite State Machine metamodel : 40 40

Express constraints on this metamodel 1/2 • QUESTION 2 : What constraints could we

Express constraints on this metamodel 1/2 • QUESTION 2 : What constraints could we write on these metamodels? 41 41

Example of constraints • Components constraints : • A bundle must have a provided

Example of constraints • Components constraints : • A bundle must have a provided interface and a required interface • For a given, component that references a FSM, transitions input from this fsm must to operations names associated with this component • Finite State Machine constraints : • Two states elements cannot have the same name • The FSM must be determinist : we cannot have two transition starting with the same state and with the same input 42 42

Write constraints in OCL and Praxis • QUESTION 3 : How to write these

Write constraints in OCL and Praxis • QUESTION 3 : How to write these constraints in OCL and Praxis? 43 43

OCL constraints • Two states cannot have the same not self. owning. FSM. owned.

OCL constraints • Two states cannot have the same not self. owning. FSM. owned. State->exists( st | st. name = self. name and st <> self) 44 44

Praxis Constraints • Two states cannot have the same name 45 45

Praxis Constraints • Two states cannot have the same name 45 45

Creating a Praxis. Rules Plugin File > New > Other > Praxis. Rules Plug-in

Creating a Praxis. Rules Plugin File > New > Other > Praxis. Rules Plug-in Project Wizard Anatomy of a Praxis. Rules Plug-in Project Built-ins declaration Rule. Set and its Prolog compiled version Rules Metadata 46 46

TO DO : present other constraints 47 47

TO DO : present other constraints 47 47

Write constraints in OCL and Praxis • QUESTION 4 : Create an EMF model

Write constraints in OCL and Praxis • QUESTION 4 : Create an EMF model for FSM and an Obeo Designer modeler following the tutorial (Chapter 3) 48 48

Write constraints in OCL and Praxis • QUESTION 5 : Write constraints in Praxis

Write constraints in OCL and Praxis • QUESTION 5 : Write constraints in Praxis and OCL (Chapter 4) 49 49

Variability on Finite State Machine • Two possible choices : • Use calculate 1()

Variability on Finite State Machine • Two possible choices : • Use calculate 1() and finish in st 1 state • Use calculate 2() and finish in st 2 state 50 50

Write constraints in OCL and Praxis • QUESTION 6 : Use the variability tool

Write constraints in OCL and Praxis • QUESTION 6 : Use the variability tool (Chapter 5) 51 51

Conclusion • This tutorial has shown how to : • Create a metamodel and

Conclusion • This tutorial has shown how to : • Create a metamodel and a graphical modeler using EMF and Obeo Designer • Write constraints on a given metamodel in OCL and Praxis and how to check it • Use the variability tool for model created with the previous modeler • For more information please refer to : • MOVIDA update site : http: //movida. gforge. inria. fr/index. php? n=Main. Home. Page 52 52

Questions Thank you for your attention. Do you have any questions? 53 53

Questions Thank you for your attention. Do you have any questions? 53 53