SlideShare une entreprise Scribd logo
1  sur  42
Télécharger pour lire hors ligne
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Teaching material for the book
Model-Driven Software Engineering in Practice
by Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Morgan & Claypool, USA, 2012.
www.mdse-book.com
MANAGING MODELS
Chapter #10
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Motivation
Why Model managing?
§ In MDE everything is a model but as important as that, no
model is an island
§ All modeling artefacts in a MDE project are interrelated.
These relationships must be properly managed during the
project lifecycle
Transformations
Requirements
Use Case
Class Diagram
Java Project
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Content
§  Model Interchange
§  Model Persistence
§  Model Comparison
§  Model Versioning
§  Model Co-Evolution
§  Global Model Management
§  Model Quality
§  Collaborative Modeling
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
www.mdse-book.com
MODEL INTERCHANGE
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Model Once, Open Everywhere
§  There’s a clear need to be able to exchange models among
different modeling tools
§  In a perfect world, you’d be able to choose ToolA for specifying model,
ToolB to check its quality, ToolC to execute it….
§  We are still far away from this goal
§  Solution attempt: XMI (XML Metadata Interchange), a standard
adopted by OMG for serializing and exchanging UML and MOF
models
§  But each tools seems to understand the standard in a different
manner
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
XMI example
(Simplified and partial versions of the actual XMI files)
Employee
WorksIn1..*
- name : String
Department
- name : String
1
<packagedElement xmi:type="uml:Class" xmi:id="c001"
name="Employee">
<ownedAttribute xmi:id="a001" name="name"/>
</packagedElement>
<packagedElement xmi:type="uml:PrimitiveType" xmi:id=" t001"
name="String "/>
<packagedElement xmi:type="uml:Class" xmi:id="c002"
name="Department">
<ownedAttribute xmi:id="a002" name="name" type="t001"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="as001"
name="WorksIn“ memberEnd="e001 e002">
<ownedEnd xmi:id="e001" type="c002" association="as001"/>
<ownedEnd xmi:id="e002" name="" type="c001" association=
"as001">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="un001"
value=""/>
</ownedEnd>
</packagedElement>
<UML:Class xmi.id = 'c001'
name = 'Employee' visibility = 'public' isSpecification =
'false' isRoot = 'false'
isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
<UML:Classifier.feature>
<UML:Attribute xmi.id = 'a001'
name = 'name ' visibility = 'public' isSpecification =
'false‘ ownerScope = 'instance' changeability =
'changeable' targetScope = 'instance'>
<UML:StructuralFeature.multiplicity>
<UML:Multiplicity xmi.id = 'm001'>
<UML:Multiplicity.range>
<UML:MultiplicityRange xmi.id = 'mr001 '
lower = '1' upper = '1'/>
</UML:Multiplicity.range>
</UML:Multiplicity>
</UML:StructuralFeature.multiplicity>
</UML:Class>
ECLIPSE ArgoUML
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Model Once, Open Everywhere
Recent advances
§ Model Interchange Working Group3 (MIWG) to enable the
assessment of model interchange capability of modeling
tools by comparing the vendor XMI exports for a test suite
§ New the new Diagram Definition standard will allow to
exchange not only the modeling content but also the
graphical layout of the models
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
www.mdse-book.com
MODEL PERSISTENCE
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Model Persistence
§  Typically models are serialized in plain files, following the
previous XMI format or any other proprietary XML format
§  Doesn’t work well with large models
§  Scalability issues
§  Loading the whole model in memory may not be an option
§  Random access strategies plus lazy loading (i.e., loading on
demand) are needed
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Model Persistence
Alternatives
§  CDO (Connected Data Objects) Model Repository
§  Run-time persistence framework optimized for scalable query and
transactional support for large object graphs.
§  Back-ends: object, NoSQL, and relational databases.
§  For relational databases, CDO relies on Teneo6, a Model-Relational
mapping and runtime database persistence
§  Pure NoSQL solutions: Morsa and MongoEMF. Both use
MongoDB as backend.
§  Newer alternatives aim at using the Cloud as model
storage solution
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
www.mdse-book.com
MODEL COMPARISON
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Model Comparison
§ Comparing two models is a key operation in many model-
management operations like model versioning
§ Goal of model comparison is to identify the set of differences
between two models
§ These differences are usually represented as a model
themselves, called a difference model
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Model Comparison: Model matching
Phase 1 of a model comparison process
§  Identify the common elements in the two models
§  How do we establish which elements have the same identity?
§  Static identity: explicit id’s annotating the elements
§  Signature identity: Identity based on the model element features (i.e.,
name, contained elements,…)
§  Identity can be a probabilistic function (similarity matching)
§  Works better if users redefine the concept of matching for
specific DSLs (so that their specific semantic can be taken into
account)
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Model Comparison: Model differencing
Phase 2 of a model comparison process
§ Matched elements are searched for differences
§ A difference corresponds to an atomic add / delete / update /
move operation executed on one of the elements
§ These differences are collected and stored in the difference
model
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Model Comparison tools
§  EMF Compare
§  EMF Compare
§  Most popular one
§  Generic comparison facilities for any kind of EMF model
§  Differences can be exported as a model patch§ 
SiDiff
§  Mainly similarity-based matching
§  Adaptable to any graph-like model
§  Epsilon Comparison Language§  Includes a DSL to enable the implementation of specialized
higher-level
changes§  With it, high-level changes such as
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
www.mdse-book.com
MODEL VERSIONING
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Model Versioning
§ Programmers can’t live without version control systems like
SVN or GIT. Designers need the same for models.
§ VCSs help detect, manage and resolve conflicts arising
when merging models.
§ Current VCSs are text-based. Using them to merge models
may result in inconsistent results due to the graph-based
semantics of models.
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Model Versioning
Example
A B
1.  <State id=“S1”, name = “A”>
2.  <State id=“S2”, name = “B”>
3.  <Transition id=“T1”, source=“S1”, target=“S2”>
1.  <State id=“S1”, name = “A”>
2.  <State id=“S2”, name = “B”>
3.  <Transition id=“T1”, source=“S1”, target=“S2”>
4.  <Transition id=“T2”, source=“S2”, target=“S1”>
1.  <State id=“S2”, name=“B”>
2.  <Transition id=“T2”, source=“S2”, target=“S1”>
1.  <State id=“S2”, name=“B”>
sm V0
sm.xmi
sm.xmi
sm V1’
B
sm.xmi
sm.xmi
A B
sm V1’’
B
sm V1
InitialVersionConcurrentVersions
Inconsistent
MergedVersion
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Model Versioning
Tools
§  Dedicated model-based VCSs are needed
§  Some first attempts:
§  EMFStore: Official Eclipse project for model repositories. Follows the
same SVN interaction protocol at the model-level
§  AMOR (Adaptable model versioning): Several conflict detection and
resolution strategies possible. Visual merge process by means of
annotations of conflicts directly on the graphical view of the models
§  CDO includes branching support for models
§  Epsilon Merging Language is a rule-based language for merging
(heterogeneous) models
§  Versioning of the graphical layout is still an open question (should
moving a class two inches to the right count as a change?)
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
www.mdse-book.com
MODEL CO-EVOLUTION
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Model Co-Evolution
§  Model versioning keeps track of the changes in a single modeling
artefact but each change may affect many other related artefacts
§  Co-Evolution in MDE
§  Co-evolution is the change of a model triggered by the change of a
related model
§  Current View
§  Relationship: r(a,b)
§  a → a’
§  b → b’ | r(a’,b’)
§  Challenge: Relationship Reconciliation
§  Current research focus is on one-to-one relationships:
§  Model / Metamodel evolution
§  Metamodel / Transformation evolution
§  …
a a'
b b'
Δ
Δ
r r
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Model / Metamodel Co-Evolution
A	

D	

B	

D1	

 D2	

Metamodel A
a1:A	

a2:A	

b1:B	

b2:B	

a1:A	

a2:A	

c1:C	

c2:C	

Instance of Metamodel A Instance of Metamodel A’
A	

D	

C	

D1	

 D2	

Metamodel A‘
Δ rename(B, C)
Δ cast(b:B, c:C)
Assumption: Renamed Class does not represent a new modeling concept!
Metamodel
Models
conformsToExample
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Model / Metamodel Co-Evolution
Process
§ Classification of meta-model changes
§ Non-breaking operations: No need to migrate the models
§ Breaking and resolvable: Automatic migration of existing models is
possible
§ Breaking and unresolvable: User intervention is necessary
§ Tools like Edapt and Epsilon Flock can derive a migration
transformation to adapt current models to the new
metamodel structure when possible
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Metamodel / Transformation Co-Evolution
Other Co-Evolution Scenarios
MMa MMb
MMb‘
Source
Metamodel
Target MM
Evolution
t1
t2
t1 … Forward Transformation
t2,t3 … Migration Transformations
v1.0
v2.0
Target
Metamodel
v3.0MMb‘‘
t3
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
www.mdse-book.com
GLOBAL MODEL
MANAGEMENT
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Global Model Management
§  Model-based solution to the problem of managing all this model
ecosystem appearing in any MDE project
§  We represent with a model, the megamodel, all the models (and
related artefacts like configuration files) and relationships in the
ecosystem
§  A megamodel can be viewed as a metadata repository for the
project
§  A megamodel is a model whose elements are in fact other models
§  As a model, a megamodel can be directly manipulated using the
same tools employed to manipulate “normal” models
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Global Model Management
The metamodel of a megamodel
Terminal
Model
MetaMeta
Model
Entity
RelationshipModel
MetaModel
Weaving
Model Transformation
Model Mega
Model
1
Identified
Element
* relatedTo
* sourceOf
* targetOf
* linked
* source
* target
extends *
conformsTo 1
Reference
Model
* elements
Transformation
*
*
srcReferenceModel
targetReferenceModel
Directed
Relationship
targetModel
srcModel
Transformation
Record
*
*
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Global Model Management
Using megamodels
t
x
(x)= y
Synchronize
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Global Model Management
MoScript
§ DSL to write model management scripts on megamodels
§ It allows the automation of complex modelling tasks,
involving several (batch) consecutive manipulations on a set
of models.
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Global Model Management
MoScript Examples
•  Query operations
•  Model to Model transformations (M2M)
Model::allInstances()−>any(m | m.indentifier = ’SimpsonFamily’)
" −>allContents()−>collect(el | el.name))"
Collection {’Bart’, ’Homer’, ’Lisa’, ’Maggie’, ’Marge’} "
let j2dNet : Transformation = Transformation::allInstances()"
"−>any(t | t.identifier = ’j2dNet’)"
in"
"
Model::allInstances()"
"−>select(m | m.conformsTo.kind = ’Java’)) "
"−>collect (jModel | j2dNet.applyTo(jModel))"
1"
2"
3"
4"
5"
6"
7"
TransformationRecord::allInstances()−>collect(tr | tr.run())"
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
www.mdse-book.com
MODEL QUALITY
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Original
model
1st
refinement
nth
refinement
Model
Transformation
Model
Transformation
Source
Code
...
MDE-based software development process
Errors in models will lead to errors in
the resulting software
Motivation
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Model Quality
§ Modeling tools only check for well-formedness
§ Is a model conforming to its metamodel, i.e., is a model a valid
instance of its metamodel?
§ But this is just the tip of iceberg when it comes to evaluating
the quality of a model. There are many other properties to
verify:
§ For static models: satisfiability, liveliness, redundancy, subsumption …
§ For dynamic models: absence of deadlocks, reachability,…
§ Evaluation of these properties can be done through formal
model verification or testing
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example Property: Satisfiability
§ A model is satisfiable if it is possible to create a valid
instantiation of that model. A instantiation is valid if it
satisfies all model constraints
§ More difficult than it seems
MDE
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example of Unsatisfiability (1)
§ Due to EnrolsIn |student|>=20*|course|
§ Due to Likes |student|=5*|course|
Student
EnrolsIn20..*
Course
Likes
1
5 1
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example of Unsatisfiability (2)
…..
Strong Satisfiability
And no person is his/
her own ancestor
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
EMF/UML model
1.  Class diagram / metamodel
2.  OCL constraints
Solution?
Constraint Satisfaction Problem / SAT
SMT / …
1.  Variables – basic types + struct/list
2.  Domains – finite
3.  Constraints – Prolog
4.  Property -> Additional Constraint
Translate
Solve
Deduce
Property?
Ex: EMFtoCSP tool
Typical Formal Verification Approach
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Testing models
Derive tests from your models
§  Same as we test code, models can also be tested
§  Tools like USE can create snapshots of a system and evaluate OCL constraints on
them to test the OCL expressions
§  Specially useful for dynamic models & operations like model
transformations
§  E.g., we may want to check a transformation generates a valid output model every time
a valid input model is provided
§  Several black-box and white-box techniques for model testing have
been proposed
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
www.mdse-book.com
COLLABORATIVE
MODELING
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Collaborative Modeling
§ Modeling is by definition a team activity
§ Offline synchronization of models can be handled using the
model versioning tools seen before
§ Online collaborative modeling (several users updating the
same model at the same time) is more problematic
§ Based on a short transaction model where changes are immediately
propagated to everybody
§ Very lightweight conflict management mechanisms (e.g., voluntary
locking)
§ Conflict resolution by explicit consensus among all parties
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Collaborative Modeling
Tools
§ EMFCollab
§ Master copy in a server, slave copy in each client.
§ Commands to modify the models are serialized and distributed across
the network
§ SpacEclipse-CGMF
§ Integration of collaborative functionality in GMF-based editors
§ This functionality can be generated as part of the generation of the
own GMF editor and workspace
§ Dawn
§ Subproject of CDO
§ Aimed at providing collaborative access to GMF diagrams
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Teaching material for the book
Model-Driven Software Engineering in Practice
by Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Morgan & Claypool, USA, 2012.
www.mdse-book.com
MODEL-DRIVEN SOFTWARE
ENGINEERING IN PRACTICE
Marco Brambilla,
Jordi Cabot,
Manuel Wimmer.
Morgan & Claypool, USA, 2012.
www.mdse-book.com
www.morganclaypool.com
or buy it at: www.amazon.com

Contenu connexe

Tendances

Model-Driven Software Engineering in Practice - Chapter 1 - Introduction
Model-Driven Software Engineering in Practice - Chapter 1 - IntroductionModel-Driven Software Engineering in Practice - Chapter 1 - Introduction
Model-Driven Software Engineering in Practice - Chapter 1 - IntroductionMarco Brambilla
 
Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...
Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...
Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...Jordi Cabot
 
Model driven development and code generation of software systems
Model driven development and code generation of software systemsModel driven development and code generation of software systems
Model driven development and code generation of software systemsMarco Brambilla
 
Lightweight Model-Driven Engineering
Lightweight Model-Driven EngineeringLightweight Model-Driven Engineering
Lightweight Model-Driven EngineeringJordi Cabot
 
Our research lines on Model-Driven Engineering and Software Engineering
Our research lines on Model-Driven Engineering and Software EngineeringOur research lines on Model-Driven Engineering and Software Engineering
Our research lines on Model-Driven Engineering and Software EngineeringJordi Cabot
 
Web technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringPiero Fraternali
 
Industrial and Academic Experiences with a User Interaction Modeling Language...
Industrial and Academic Experiences with a User Interaction Modeling Language...Industrial and Academic Experiences with a User Interaction Modeling Language...
Industrial and Academic Experiences with a User Interaction Modeling Language...Marco Brambilla
 
MoDisco EclipseCon2010
MoDisco EclipseCon2010MoDisco EclipseCon2010
MoDisco EclipseCon2010fmadiot
 
Interaction Flow Modeling Language: updates on the Beta2 version - by the OMG...
Interaction Flow Modeling Language: updates on the Beta2 version - by the OMG...Interaction Flow Modeling Language: updates on the Beta2 version - by the OMG...
Interaction Flow Modeling Language: updates on the Beta2 version - by the OMG...Marco Brambilla
 
IFML - The interaction flow modeling language, the OMG standard for UI modeli...
IFML - The interaction flow modeling language, the OMG standard for UI modeli...IFML - The interaction flow modeling language, the OMG standard for UI modeli...
IFML - The interaction flow modeling language, the OMG standard for UI modeli...Marco Brambilla
 
Model Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & FutureModel Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & Futureelliando dias
 
Towards a UML and IFML mapping to GraphQL
Towards a UML and IFML mapping to GraphQLTowards a UML and IFML mapping to GraphQL
Towards a UML and IFML mapping to GraphQLJordi Cabot
 
The secret life of rules in Software Engineering
The secret life of rules in Software EngineeringThe secret life of rules in Software Engineering
The secret life of rules in Software EngineeringJordi Cabot
 
IFML - Interaction Flow Modeling Language - tutorial on UI and UX modeling &...
IFML -  Interaction Flow Modeling Language - tutorial on UI and UX modeling &...IFML -  Interaction Flow Modeling Language - tutorial on UI and UX modeling &...
IFML - Interaction Flow Modeling Language - tutorial on UI and UX modeling &...Marco Brambilla
 
A UML profile for OData Web APIs
A UML profile for OData Web APIsA UML profile for OData Web APIs
A UML profile for OData Web APIsJordi Cabot
 

Tendances (20)

Model-Driven Software Engineering in Practice - Chapter 1 - Introduction
Model-Driven Software Engineering in Practice - Chapter 1 - IntroductionModel-Driven Software Engineering in Practice - Chapter 1 - Introduction
Model-Driven Software Engineering in Practice - Chapter 1 - Introduction
 
Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...
Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...
Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...
 
Model driven development and code generation of software systems
Model driven development and code generation of software systemsModel driven development and code generation of software systems
Model driven development and code generation of software systems
 
Lightweight Model-Driven Engineering
Lightweight Model-Driven EngineeringLightweight Model-Driven Engineering
Lightweight Model-Driven Engineering
 
Our research lines on Model-Driven Engineering and Software Engineering
Our research lines on Model-Driven Engineering and Software EngineeringOur research lines on Model-Driven Engineering and Software Engineering
Our research lines on Model-Driven Engineering and Software Engineering
 
Introducing MDSD
Introducing MDSDIntroducing MDSD
Introducing MDSD
 
Web technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven Engineering
 
01 mde principles
01 mde principles01 mde principles
01 mde principles
 
Industrial and Academic Experiences with a User Interaction Modeling Language...
Industrial and Academic Experiences with a User Interaction Modeling Language...Industrial and Academic Experiences with a User Interaction Modeling Language...
Industrial and Academic Experiences with a User Interaction Modeling Language...
 
MoDisco EclipseCon2010
MoDisco EclipseCon2010MoDisco EclipseCon2010
MoDisco EclipseCon2010
 
Interaction Flow Modeling Language: updates on the Beta2 version - by the OMG...
Interaction Flow Modeling Language: updates on the Beta2 version - by the OMG...Interaction Flow Modeling Language: updates on the Beta2 version - by the OMG...
Interaction Flow Modeling Language: updates on the Beta2 version - by the OMG...
 
Introduction to MDA
Introduction to MDAIntroduction to MDA
Introduction to MDA
 
IFML - The interaction flow modeling language, the OMG standard for UI modeli...
IFML - The interaction flow modeling language, the OMG standard for UI modeli...IFML - The interaction flow modeling language, the OMG standard for UI modeli...
IFML - The interaction flow modeling language, the OMG standard for UI modeli...
 
Model Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & FutureModel Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & Future
 
Acceleo Code Generation
Acceleo Code GenerationAcceleo Code Generation
Acceleo Code Generation
 
Towards a UML and IFML mapping to GraphQL
Towards a UML and IFML mapping to GraphQLTowards a UML and IFML mapping to GraphQL
Towards a UML and IFML mapping to GraphQL
 
The secret life of rules in Software Engineering
The secret life of rules in Software EngineeringThe secret life of rules in Software Engineering
The secret life of rules in Software Engineering
 
MDA
MDAMDA
MDA
 
IFML - Interaction Flow Modeling Language - tutorial on UI and UX modeling &...
IFML -  Interaction Flow Modeling Language - tutorial on UI and UX modeling &...IFML -  Interaction Flow Modeling Language - tutorial on UI and UX modeling &...
IFML - Interaction Flow Modeling Language - tutorial on UI and UX modeling &...
 
A UML profile for OData Web APIs
A UML profile for OData Web APIsA UML profile for OData Web APIs
A UML profile for OData Web APIs
 

Similaire à Model-Driven Software Engineering in Practice - Chapter 10 - Managing models

EU projects MODAClouds and JUNIPER – Writing and testing transformations from...
EU projects MODAClouds and JUNIPER – Writing and testing transformations from...EU projects MODAClouds and JUNIPER – Writing and testing transformations from...
EU projects MODAClouds and JUNIPER – Writing and testing transformations from...Marcos Almeida
 
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"GlobalLogic Ukraine
 
Document Object Model
Document Object ModelDocument Object Model
Document Object Modelchomas kandar
 
Document Object Model
Document Object ModelDocument Object Model
Document Object Modelchomas kandar
 
Dealing with Run-Time Variability in Service Robotics: Towards a DSL for Non-...
Dealing with Run-Time Variability in Service Robotics: Towards a DSL for Non-...Dealing with Run-Time Variability in Service Robotics: Towards a DSL for Non-...
Dealing with Run-Time Variability in Service Robotics: Towards a DSL for Non-...Serge Stinckwich
 
STAF 在自動化測試上的延伸應用 -- TMSTAF (TrendMicro STAF)
STAF 在自動化測試上的延伸應用 -- TMSTAF (TrendMicro STAF)STAF 在自動化測試上的延伸應用 -- TMSTAF (TrendMicro STAF)
STAF 在自動化測試上的延伸應用 -- TMSTAF (TrendMicro STAF)pycontw
 
Rapid Development with Schemaless Data Models
Rapid Development with Schemaless Data ModelsRapid Development with Schemaless Data Models
Rapid Development with Schemaless Data ModelsMongoDB
 
Mobile First with Angular.JS - Владимир Цветков, Obecto
Mobile First with Angular.JS - Владимир Цветков, ObectoMobile First with Angular.JS - Владимир Цветков, Obecto
Mobile First with Angular.JS - Владимир Цветков, ObectobeITconference
 
Angular js
Angular jsAngular js
Angular jsymtech
 
A Lightweight MDD Process Applied in Small Projects
A Lightweight MDD Process Applied in Small ProjectsA Lightweight MDD Process Applied in Small Projects
A Lightweight MDD Process Applied in Small ProjectsGabor Guta
 
Planbox Backbone MVC
Planbox Backbone MVCPlanbox Backbone MVC
Planbox Backbone MVCAcquisio
 
Operationalizing AI at scale using MADlib Flow - Greenplum Summit 2019
Operationalizing AI at scale using MADlib Flow - Greenplum Summit 2019Operationalizing AI at scale using MADlib Flow - Greenplum Summit 2019
Operationalizing AI at scale using MADlib Flow - Greenplum Summit 2019VMware Tanzu
 
Web technologies-course 12.pptx
Web technologies-course 12.pptxWeb technologies-course 12.pptx
Web technologies-course 12.pptxStefan Oprea
 
Effectively Deploying MongoDB on AEM
Effectively Deploying MongoDB on AEMEffectively Deploying MongoDB on AEM
Effectively Deploying MongoDB on AEMNorberto Leite
 
Framework Engineering Revisited
Framework Engineering RevisitedFramework Engineering Revisited
Framework Engineering RevisitedYoungSu Son
 
From Eclipse to Document Management - Eclipse DemoCamp Grenoble 2012
From Eclipse to Document Management - Eclipse DemoCamp Grenoble 2012From Eclipse to Document Management - Eclipse DemoCamp Grenoble 2012
From Eclipse to Document Management - Eclipse DemoCamp Grenoble 2012Marc Dutoo
 
Angular.js interview questions
Angular.js interview questionsAngular.js interview questions
Angular.js interview questionscodeandyou forums
 
Innovation in model driven software
Innovation in model driven softwareInnovation in model driven software
Innovation in model driven softwareSagi Schliesser
 

Similaire à Model-Driven Software Engineering in Practice - Chapter 10 - Managing models (20)

EU projects MODAClouds and JUNIPER – Writing and testing transformations from...
EU projects MODAClouds and JUNIPER – Writing and testing transformations from...EU projects MODAClouds and JUNIPER – Writing and testing transformations from...
EU projects MODAClouds and JUNIPER – Writing and testing transformations from...
 
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
 
Document Object Model
Document Object ModelDocument Object Model
Document Object Model
 
Document Object Model
Document Object ModelDocument Object Model
Document Object Model
 
Dealing with Run-Time Variability in Service Robotics: Towards a DSL for Non-...
Dealing with Run-Time Variability in Service Robotics: Towards a DSL for Non-...Dealing with Run-Time Variability in Service Robotics: Towards a DSL for Non-...
Dealing with Run-Time Variability in Service Robotics: Towards a DSL for Non-...
 
STAF 在自動化測試上的延伸應用 -- TMSTAF (TrendMicro STAF)
STAF 在自動化測試上的延伸應用 -- TMSTAF (TrendMicro STAF)STAF 在自動化測試上的延伸應用 -- TMSTAF (TrendMicro STAF)
STAF 在自動化測試上的延伸應用 -- TMSTAF (TrendMicro STAF)
 
Rapid Development with Schemaless Data Models
Rapid Development with Schemaless Data ModelsRapid Development with Schemaless Data Models
Rapid Development with Schemaless Data Models
 
Mobile First with Angular.JS - Владимир Цветков, Obecto
Mobile First with Angular.JS - Владимир Цветков, ObectoMobile First with Angular.JS - Владимир Цветков, Obecto
Mobile First with Angular.JS - Владимир Цветков, Obecto
 
Angular js
Angular jsAngular js
Angular js
 
A Lightweight MDD Process Applied in Small Projects
A Lightweight MDD Process Applied in Small ProjectsA Lightweight MDD Process Applied in Small Projects
A Lightweight MDD Process Applied in Small Projects
 
Planbox Backbone MVC
Planbox Backbone MVCPlanbox Backbone MVC
Planbox Backbone MVC
 
Operationalizing AI at scale using MADlib Flow - Greenplum Summit 2019
Operationalizing AI at scale using MADlib Flow - Greenplum Summit 2019Operationalizing AI at scale using MADlib Flow - Greenplum Summit 2019
Operationalizing AI at scale using MADlib Flow - Greenplum Summit 2019
 
Cg 2011
Cg 2011Cg 2011
Cg 2011
 
Web technologies-course 12.pptx
Web technologies-course 12.pptxWeb technologies-course 12.pptx
Web technologies-course 12.pptx
 
Effectively Deploying MongoDB on AEM
Effectively Deploying MongoDB on AEMEffectively Deploying MongoDB on AEM
Effectively Deploying MongoDB on AEM
 
Framework Engineering Revisited
Framework Engineering RevisitedFramework Engineering Revisited
Framework Engineering Revisited
 
From Eclipse to Document Management - Eclipse DemoCamp Grenoble 2012
From Eclipse to Document Management - Eclipse DemoCamp Grenoble 2012From Eclipse to Document Management - Eclipse DemoCamp Grenoble 2012
From Eclipse to Document Management - Eclipse DemoCamp Grenoble 2012
 
Angular.js interview questions
Angular.js interview questionsAngular.js interview questions
Angular.js interview questions
 
Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties
Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee ApplicatiesFinal Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties
Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties
 
Innovation in model driven software
Innovation in model driven softwareInnovation in model driven software
Innovation in model driven software
 

Plus de Jordi Cabot

AI and Software consultants: friends or foes?
AI and Software consultants: friends or foes?AI and Software consultants: friends or foes?
AI and Software consultants: friends or foes?Jordi Cabot
 
Model-driven engineering for Industrial IoT architectures
Model-driven engineering for Industrial IoT architecturesModel-driven engineering for Industrial IoT architectures
Model-driven engineering for Industrial IoT architecturesJordi Cabot
 
Smart modeling of smart software
Smart modeling of smart softwareSmart modeling of smart software
Smart modeling of smart softwareJordi Cabot
 
Modeling should be an independent scientific discipline
Modeling should be an independent scientific disciplineModeling should be an independent scientific discipline
Modeling should be an independent scientific disciplineJordi Cabot
 
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...Jordi Cabot
 
How to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortHow to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortJordi Cabot
 
All Researchers Should Become Entrepreneurs
All Researchers Should Become EntrepreneursAll Researchers Should Become Entrepreneurs
All Researchers Should Become EntrepreneursJordi Cabot
 
The Software Challenges of Building Smart Chatbots - ICSE'21
The Software Challenges of Building Smart Chatbots - ICSE'21The Software Challenges of Building Smart Chatbots - ICSE'21
The Software Challenges of Building Smart Chatbots - ICSE'21Jordi Cabot
 
Low-code vs Model-Driven Engineering
Low-code vs Model-Driven EngineeringLow-code vs Model-Driven Engineering
Low-code vs Model-Driven EngineeringJordi Cabot
 
Lessons learned from building a commercial bot development platform
Lessons learned from building a commercial bot development platformLessons learned from building a commercial bot development platform
Lessons learned from building a commercial bot development platformJordi Cabot
 
Future Trends on Software and Systems Modeling
Future Trends on Software and Systems ModelingFuture Trends on Software and Systems Modeling
Future Trends on Software and Systems ModelingJordi Cabot
 
Ingeniería del Software dirigida por modelos -Versión para incrédulos
Ingeniería del Software dirigida por modelos -Versión para incrédulosIngeniería del Software dirigida por modelos -Versión para incrédulos
Ingeniería del Software dirigida por modelos -Versión para incrédulosJordi Cabot
 
Chatbot Tutorial - Create your first bot with Xatkit
Chatbot Tutorial - Create your first bot with Xatkit Chatbot Tutorial - Create your first bot with Xatkit
Chatbot Tutorial - Create your first bot with Xatkit Jordi Cabot
 
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...Jordi Cabot
 
An LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model TransformationsAn LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model TransformationsJordi Cabot
 
WAPIml: Towards a Modeling Infrastructure for Web APIs
WAPIml: Towards a Modeling Infrastructure for Web APIsWAPIml: Towards a Modeling Infrastructure for Web APIs
WAPIml: Towards a Modeling Infrastructure for Web APIsJordi Cabot
 
Is there a future for Model Transformation Languages?
Is there a future for Model Transformation Languages?Is there a future for Model Transformation Languages?
Is there a future for Model Transformation Languages?Jordi Cabot
 
Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?Jordi Cabot
 
Temporal EMF: A temporal metamodeling platform
Temporal EMF: A temporal metamodeling platformTemporal EMF: A temporal metamodeling platform
Temporal EMF: A temporal metamodeling platformJordi Cabot
 
UMLtoNoSQL : From UML domain models to NoSQL Databases
UMLtoNoSQL : From UML domain models to NoSQL DatabasesUMLtoNoSQL : From UML domain models to NoSQL Databases
UMLtoNoSQL : From UML domain models to NoSQL DatabasesJordi Cabot
 

Plus de Jordi Cabot (20)

AI and Software consultants: friends or foes?
AI and Software consultants: friends or foes?AI and Software consultants: friends or foes?
AI and Software consultants: friends or foes?
 
Model-driven engineering for Industrial IoT architectures
Model-driven engineering for Industrial IoT architecturesModel-driven engineering for Industrial IoT architectures
Model-driven engineering for Industrial IoT architectures
 
Smart modeling of smart software
Smart modeling of smart softwareSmart modeling of smart software
Smart modeling of smart software
 
Modeling should be an independent scientific discipline
Modeling should be an independent scientific disciplineModeling should be an independent scientific discipline
Modeling should be an independent scientific discipline
 
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
 
How to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortHow to sustain a tool building community-driven effort
How to sustain a tool building community-driven effort
 
All Researchers Should Become Entrepreneurs
All Researchers Should Become EntrepreneursAll Researchers Should Become Entrepreneurs
All Researchers Should Become Entrepreneurs
 
The Software Challenges of Building Smart Chatbots - ICSE'21
The Software Challenges of Building Smart Chatbots - ICSE'21The Software Challenges of Building Smart Chatbots - ICSE'21
The Software Challenges of Building Smart Chatbots - ICSE'21
 
Low-code vs Model-Driven Engineering
Low-code vs Model-Driven EngineeringLow-code vs Model-Driven Engineering
Low-code vs Model-Driven Engineering
 
Lessons learned from building a commercial bot development platform
Lessons learned from building a commercial bot development platformLessons learned from building a commercial bot development platform
Lessons learned from building a commercial bot development platform
 
Future Trends on Software and Systems Modeling
Future Trends on Software and Systems ModelingFuture Trends on Software and Systems Modeling
Future Trends on Software and Systems Modeling
 
Ingeniería del Software dirigida por modelos -Versión para incrédulos
Ingeniería del Software dirigida por modelos -Versión para incrédulosIngeniería del Software dirigida por modelos -Versión para incrédulos
Ingeniería del Software dirigida por modelos -Versión para incrédulos
 
Chatbot Tutorial - Create your first bot with Xatkit
Chatbot Tutorial - Create your first bot with Xatkit Chatbot Tutorial - Create your first bot with Xatkit
Chatbot Tutorial - Create your first bot with Xatkit
 
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
 
An LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model TransformationsAn LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model Transformations
 
WAPIml: Towards a Modeling Infrastructure for Web APIs
WAPIml: Towards a Modeling Infrastructure for Web APIsWAPIml: Towards a Modeling Infrastructure for Web APIs
WAPIml: Towards a Modeling Infrastructure for Web APIs
 
Is there a future for Model Transformation Languages?
Is there a future for Model Transformation Languages?Is there a future for Model Transformation Languages?
Is there a future for Model Transformation Languages?
 
Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?
 
Temporal EMF: A temporal metamodeling platform
Temporal EMF: A temporal metamodeling platformTemporal EMF: A temporal metamodeling platform
Temporal EMF: A temporal metamodeling platform
 
UMLtoNoSQL : From UML domain models to NoSQL Databases
UMLtoNoSQL : From UML domain models to NoSQL DatabasesUMLtoNoSQL : From UML domain models to NoSQL Databases
UMLtoNoSQL : From UML domain models to NoSQL Databases
 

Dernier

W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Hararemasabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburgmasabamasaba
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 

Dernier (20)

W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 

Model-Driven Software Engineering in Practice - Chapter 10 - Managing models

  • 1. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Teaching material for the book Model-Driven Software Engineering in Practice by Marco Brambilla, Jordi Cabot, Manuel Wimmer. Morgan & Claypool, USA, 2012. www.mdse-book.com MANAGING MODELS Chapter #10
  • 2. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Motivation Why Model managing? § In MDE everything is a model but as important as that, no model is an island § All modeling artefacts in a MDE project are interrelated. These relationships must be properly managed during the project lifecycle Transformations Requirements Use Case Class Diagram Java Project
  • 3. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Content §  Model Interchange §  Model Persistence §  Model Comparison §  Model Versioning §  Model Co-Evolution §  Global Model Management §  Model Quality §  Collaborative Modeling
  • 4. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. www.mdse-book.com MODEL INTERCHANGE
  • 5. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Model Once, Open Everywhere §  There’s a clear need to be able to exchange models among different modeling tools §  In a perfect world, you’d be able to choose ToolA for specifying model, ToolB to check its quality, ToolC to execute it…. §  We are still far away from this goal §  Solution attempt: XMI (XML Metadata Interchange), a standard adopted by OMG for serializing and exchanging UML and MOF models §  But each tools seems to understand the standard in a different manner
  • 6. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. XMI example (Simplified and partial versions of the actual XMI files) Employee WorksIn1..* - name : String Department - name : String 1 <packagedElement xmi:type="uml:Class" xmi:id="c001" name="Employee"> <ownedAttribute xmi:id="a001" name="name"/> </packagedElement> <packagedElement xmi:type="uml:PrimitiveType" xmi:id=" t001" name="String "/> <packagedElement xmi:type="uml:Class" xmi:id="c002" name="Department"> <ownedAttribute xmi:id="a002" name="name" type="t001"/> </packagedElement> <packagedElement xmi:type="uml:Association" xmi:id="as001" name="WorksIn“ memberEnd="e001 e002"> <ownedEnd xmi:id="e001" type="c002" association="as001"/> <ownedEnd xmi:id="e002" name="" type="c001" association= "as001"> <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="un001" value=""/> </ownedEnd> </packagedElement> <UML:Class xmi.id = 'c001' name = 'Employee' visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'> <UML:Classifier.feature> <UML:Attribute xmi.id = 'a001' name = 'name ' visibility = 'public' isSpecification = 'false‘ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'> <UML:StructuralFeature.multiplicity> <UML:Multiplicity xmi.id = 'm001'> <UML:Multiplicity.range> <UML:MultiplicityRange xmi.id = 'mr001 ' lower = '1' upper = '1'/> </UML:Multiplicity.range> </UML:Multiplicity> </UML:StructuralFeature.multiplicity> </UML:Class> ECLIPSE ArgoUML
  • 7. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Model Once, Open Everywhere Recent advances § Model Interchange Working Group3 (MIWG) to enable the assessment of model interchange capability of modeling tools by comparing the vendor XMI exports for a test suite § New the new Diagram Definition standard will allow to exchange not only the modeling content but also the graphical layout of the models
  • 8. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. www.mdse-book.com MODEL PERSISTENCE
  • 9. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Model Persistence §  Typically models are serialized in plain files, following the previous XMI format or any other proprietary XML format §  Doesn’t work well with large models §  Scalability issues §  Loading the whole model in memory may not be an option §  Random access strategies plus lazy loading (i.e., loading on demand) are needed
  • 10. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Model Persistence Alternatives §  CDO (Connected Data Objects) Model Repository §  Run-time persistence framework optimized for scalable query and transactional support for large object graphs. §  Back-ends: object, NoSQL, and relational databases. §  For relational databases, CDO relies on Teneo6, a Model-Relational mapping and runtime database persistence §  Pure NoSQL solutions: Morsa and MongoEMF. Both use MongoDB as backend. §  Newer alternatives aim at using the Cloud as model storage solution
  • 11. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. www.mdse-book.com MODEL COMPARISON
  • 12. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Model Comparison § Comparing two models is a key operation in many model- management operations like model versioning § Goal of model comparison is to identify the set of differences between two models § These differences are usually represented as a model themselves, called a difference model
  • 13. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Model Comparison: Model matching Phase 1 of a model comparison process §  Identify the common elements in the two models §  How do we establish which elements have the same identity? §  Static identity: explicit id’s annotating the elements §  Signature identity: Identity based on the model element features (i.e., name, contained elements,…) §  Identity can be a probabilistic function (similarity matching) §  Works better if users redefine the concept of matching for specific DSLs (so that their specific semantic can be taken into account)
  • 14. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Model Comparison: Model differencing Phase 2 of a model comparison process § Matched elements are searched for differences § A difference corresponds to an atomic add / delete / update / move operation executed on one of the elements § These differences are collected and stored in the difference model
  • 15. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Model Comparison tools §  EMF Compare §  EMF Compare §  Most popular one §  Generic comparison facilities for any kind of EMF model §  Differences can be exported as a model patch§  SiDiff §  Mainly similarity-based matching §  Adaptable to any graph-like model §  Epsilon Comparison Language§  Includes a DSL to enable the implementation of specialized higher-level changes§  With it, high-level changes such as
  • 16. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. www.mdse-book.com MODEL VERSIONING
  • 17. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Model Versioning § Programmers can’t live without version control systems like SVN or GIT. Designers need the same for models. § VCSs help detect, manage and resolve conflicts arising when merging models. § Current VCSs are text-based. Using them to merge models may result in inconsistent results due to the graph-based semantics of models.
  • 18. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Model Versioning Example A B 1.  <State id=“S1”, name = “A”> 2.  <State id=“S2”, name = “B”> 3.  <Transition id=“T1”, source=“S1”, target=“S2”> 1.  <State id=“S1”, name = “A”> 2.  <State id=“S2”, name = “B”> 3.  <Transition id=“T1”, source=“S1”, target=“S2”> 4.  <Transition id=“T2”, source=“S2”, target=“S1”> 1.  <State id=“S2”, name=“B”> 2.  <Transition id=“T2”, source=“S2”, target=“S1”> 1.  <State id=“S2”, name=“B”> sm V0 sm.xmi sm.xmi sm V1’ B sm.xmi sm.xmi A B sm V1’’ B sm V1 InitialVersionConcurrentVersions Inconsistent MergedVersion
  • 19. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Model Versioning Tools §  Dedicated model-based VCSs are needed §  Some first attempts: §  EMFStore: Official Eclipse project for model repositories. Follows the same SVN interaction protocol at the model-level §  AMOR (Adaptable model versioning): Several conflict detection and resolution strategies possible. Visual merge process by means of annotations of conflicts directly on the graphical view of the models §  CDO includes branching support for models §  Epsilon Merging Language is a rule-based language for merging (heterogeneous) models §  Versioning of the graphical layout is still an open question (should moving a class two inches to the right count as a change?)
  • 20. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. www.mdse-book.com MODEL CO-EVOLUTION
  • 21. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Model Co-Evolution §  Model versioning keeps track of the changes in a single modeling artefact but each change may affect many other related artefacts §  Co-Evolution in MDE §  Co-evolution is the change of a model triggered by the change of a related model §  Current View §  Relationship: r(a,b) §  a → a’ §  b → b’ | r(a’,b’) §  Challenge: Relationship Reconciliation §  Current research focus is on one-to-one relationships: §  Model / Metamodel evolution §  Metamodel / Transformation evolution §  … a a' b b' Δ Δ r r
  • 22. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Model / Metamodel Co-Evolution A D B D1 D2 Metamodel A a1:A a2:A b1:B b2:B a1:A a2:A c1:C c2:C Instance of Metamodel A Instance of Metamodel A’ A D C D1 D2 Metamodel A‘ Δ rename(B, C) Δ cast(b:B, c:C) Assumption: Renamed Class does not represent a new modeling concept! Metamodel Models conformsToExample
  • 23. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Model / Metamodel Co-Evolution Process § Classification of meta-model changes § Non-breaking operations: No need to migrate the models § Breaking and resolvable: Automatic migration of existing models is possible § Breaking and unresolvable: User intervention is necessary § Tools like Edapt and Epsilon Flock can derive a migration transformation to adapt current models to the new metamodel structure when possible
  • 24. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Metamodel / Transformation Co-Evolution Other Co-Evolution Scenarios MMa MMb MMb‘ Source Metamodel Target MM Evolution t1 t2 t1 … Forward Transformation t2,t3 … Migration Transformations v1.0 v2.0 Target Metamodel v3.0MMb‘‘ t3
  • 25. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. www.mdse-book.com GLOBAL MODEL MANAGEMENT
  • 26. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Global Model Management §  Model-based solution to the problem of managing all this model ecosystem appearing in any MDE project §  We represent with a model, the megamodel, all the models (and related artefacts like configuration files) and relationships in the ecosystem §  A megamodel can be viewed as a metadata repository for the project §  A megamodel is a model whose elements are in fact other models §  As a model, a megamodel can be directly manipulated using the same tools employed to manipulate “normal” models
  • 27. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Global Model Management The metamodel of a megamodel Terminal Model MetaMeta Model Entity RelationshipModel MetaModel Weaving Model Transformation Model Mega Model 1 Identified Element * relatedTo * sourceOf * targetOf * linked * source * target extends * conformsTo 1 Reference Model * elements Transformation * * srcReferenceModel targetReferenceModel Directed Relationship targetModel srcModel Transformation Record * *
  • 28. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Global Model Management Using megamodels t x (x)= y Synchronize
  • 29. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Global Model Management MoScript § DSL to write model management scripts on megamodels § It allows the automation of complex modelling tasks, involving several (batch) consecutive manipulations on a set of models.
  • 30. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Global Model Management MoScript Examples •  Query operations •  Model to Model transformations (M2M) Model::allInstances()−>any(m | m.indentifier = ’SimpsonFamily’) " −>allContents()−>collect(el | el.name))" Collection {’Bart’, ’Homer’, ’Lisa’, ’Maggie’, ’Marge’} " let j2dNet : Transformation = Transformation::allInstances()" "−>any(t | t.identifier = ’j2dNet’)" in" " Model::allInstances()" "−>select(m | m.conformsTo.kind = ’Java’)) " "−>collect (jModel | j2dNet.applyTo(jModel))" 1" 2" 3" 4" 5" 6" 7" TransformationRecord::allInstances()−>collect(tr | tr.run())"
  • 31. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. www.mdse-book.com MODEL QUALITY
  • 32. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Original model 1st refinement nth refinement Model Transformation Model Transformation Source Code ... MDE-based software development process Errors in models will lead to errors in the resulting software Motivation
  • 33. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Model Quality § Modeling tools only check for well-formedness § Is a model conforming to its metamodel, i.e., is a model a valid instance of its metamodel? § But this is just the tip of iceberg when it comes to evaluating the quality of a model. There are many other properties to verify: § For static models: satisfiability, liveliness, redundancy, subsumption … § For dynamic models: absence of deadlocks, reachability,… § Evaluation of these properties can be done through formal model verification or testing
  • 34. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Example Property: Satisfiability § A model is satisfiable if it is possible to create a valid instantiation of that model. A instantiation is valid if it satisfies all model constraints § More difficult than it seems MDE
  • 35. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Example of Unsatisfiability (1) § Due to EnrolsIn |student|>=20*|course| § Due to Likes |student|=5*|course| Student EnrolsIn20..* Course Likes 1 5 1
  • 36. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Example of Unsatisfiability (2) ….. Strong Satisfiability And no person is his/ her own ancestor
  • 37. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. EMF/UML model 1.  Class diagram / metamodel 2.  OCL constraints Solution? Constraint Satisfaction Problem / SAT SMT / … 1.  Variables – basic types + struct/list 2.  Domains – finite 3.  Constraints – Prolog 4.  Property -> Additional Constraint Translate Solve Deduce Property? Ex: EMFtoCSP tool Typical Formal Verification Approach
  • 38. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Testing models Derive tests from your models §  Same as we test code, models can also be tested §  Tools like USE can create snapshots of a system and evaluate OCL constraints on them to test the OCL expressions §  Specially useful for dynamic models & operations like model transformations §  E.g., we may want to check a transformation generates a valid output model every time a valid input model is provided §  Several black-box and white-box techniques for model testing have been proposed
  • 39. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. www.mdse-book.com COLLABORATIVE MODELING
  • 40. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Collaborative Modeling § Modeling is by definition a team activity § Offline synchronization of models can be handled using the model versioning tools seen before § Online collaborative modeling (several users updating the same model at the same time) is more problematic § Based on a short transaction model where changes are immediately propagated to everybody § Very lightweight conflict management mechanisms (e.g., voluntary locking) § Conflict resolution by explicit consensus among all parties
  • 41. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Collaborative Modeling Tools § EMFCollab § Master copy in a server, slave copy in each client. § Commands to modify the models are serialized and distributed across the network § SpacEclipse-CGMF § Integration of collaborative functionality in GMF-based editors § This functionality can be generated as part of the generation of the own GMF editor and workspace § Dawn § Subproject of CDO § Aimed at providing collaborative access to GMF diagrams
  • 42. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Teaching material for the book Model-Driven Software Engineering in Practice by Marco Brambilla, Jordi Cabot, Manuel Wimmer. Morgan & Claypool, USA, 2012. www.mdse-book.com MODEL-DRIVEN SOFTWARE ENGINEERING IN PRACTICE Marco Brambilla, Jordi Cabot, Manuel Wimmer. Morgan & Claypool, USA, 2012. www.mdse-book.com www.morganclaypool.com or buy it at: www.amazon.com