MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture
-
Upload
jordi-cabot -
Category
Technology
-
view
734 -
download
0
description
Transcript of MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture
![Page 1: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/1.jpg)
MDE 2.0 – Pragmatic formal model verification and other stories
1
Jordi Cabot
HdR
http://modeling-languages.com
![Page 2: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/2.jpg)
Index
Introducing MDE
Research in MDE
A Research Agenda for MDE 2.0
– Models & Quality
– Legacy systems
– Social aspects
– Very Large models
Dissemination and technology transfer
Credits
Conclusions
![Page 3: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/3.jpg)
Software is everywhere
Aerospace
Medicine
Power grid
Software Software
Automotive
![Page 4: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/4.jpg)
but software development is still a challenge
![Page 5: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/5.jpg)
MDE tries to improve this situation by promoting engineering principles in Software Engineering
MDE advocates the rigorous use of software models as the main artifacts in all software engineering activities.
Model-driven Engineering
This in fact is common practice in many other professions
Does anybody imagine building a house without plans?
![Page 6: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/6.jpg)
The MDEequation
![Page 7: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/7.jpg)
Many MDE applications
Code
Generation
Software
Modernization
Systems interoperability
![Page 8: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/8.jpg)
MDE = Model-Driven Everything
8
MDE(engineering)
MDSD(software
development)
MDE
MDSD
![Page 9: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/9.jpg)
What is MDE?
UML
Code-Generation
DSLs
Model-driven Rev. Eng
Metamodel
M2M
OCL
M2T
Model Evolution
Model-Based Testing
MDD
MDA
Profiles
Multi-modeling
SBVR
BPMN
Model Quality
ATL
QVT
T2M
MOF
EcoreMarte
EMF
Graph
TGG
Profile OMG
![Page 10: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/10.jpg)
Basic principle: Everything is a model (J. Bézivin)
Models are designed/built/generated to be–Observed–Transformed
The MDE Equation: Models + transformations = Software
where of course transformations can also be regarded as models
There’s hope - Order in the Chaos
Models + transformation models = Software
Models + Models = Software
2 x Models = Software
Models = 1/2 Software ???????
![Page 11: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/11.jpg)
What is a model
11/04/2311
© AtlanMod - [email protected]
City of Nantes = “system” to be
modeled
A map is a model of this system
Its legend (what elements can
appear, how they can be combined,
…) is the grammar/
metamodel
![Page 12: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/12.jpg)
A model is the result, of the observation of a system considering a given
metamodel with specific objectivesor purposes.
.
Models & Metamodels
12
representation of
System S
conforms to
Model M
MetamodelMM
![Page 13: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/13.jpg)
The 3-level Modeling Stack
13
© AtlanMod - [email protected]
conforms to
Model M1
MetamodelM2
MetametamodelM3
conforms to
conforms to
11/04/23
![Page 14: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/14.jpg)
Btw, same approach as other Technical Spaces
MDE Grammarware
MOF (metametamo
del)
UML (metamode
l)
ABank.uml
EBNF.g
Java.g
MyProgram.java
![Page 15: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/15.jpg)
MDE Core Technique/Operation: Model Transformation
Model-to-Model Transformation (M2M)
11/04/2315
© AtlanMod - [email protected]
JavaMetamodel
TransformationJava-to-UML2
Conforms to
UML2Metamodel
Model b
Conforms to
Model a
Conforms toConforms to
![Page 16: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/16.jpg)
Index
Introducing MDE
Research in MDE
A Research Agenda for MDE 2.0
– Models & Quality
– Legacy systems
– Social aspects
– Very Large models
Dissemination and technology transfer
Credits
Conclusions
![Page 17: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/17.jpg)
Research in MDE
![Page 18: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/18.jpg)
UML and profiles
DSLs & Language workbenches
Model-to-model and model-to-text transformations
Model management and evolution
…
We have advanced a lot on the core techniques
![Page 19: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/19.jpg)
J Cabot, R Raventós: Conceptual Modelling Patterns for Roles. Journal on Data Semantics
with some contributions: Conceptual Modeling
![Page 20: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/20.jpg)
J Cabot, E Teniente: Transformation Techniques for OCL Constraints. Science of Computer Programming Journal
with some contributions: Rule modeling
![Page 21: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/21.jpg)
Albert, Cabot, Gómez, Pelechano: Automatic Generation of Basic Behavior Schemas from UML Class Diagrams. Software and Systems Modeling
Albert,Cabot, Gómez,Pelechano. Generating operation specifications from UML class diagrams: A model transformation approach. Data & Knowledge Engineering
with some contributions: Code Generation
![Page 22: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/22.jpg)
J Cabot, E Teniente: Incremental Integrity Checking of UML/OCL Conceptual Schemas. Journal of Systems and Software
with some personal contributions: Code Generation
cPSE1
…PSEn
Step 2
PSE1
…PSEe
PSEe+1
…PSEh
PSEk
…PSEn
c
c2
... ... ...
cp
Step 1
c'1
...c'e
c'2,e+1
... ... ...
c'p,n
Step 3c
![Page 23: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/23.jpg)
Stakeholder
Explains
Designer
Models UML CASE Tool
UML Model
Transf. M2M:
UML to SBVR
Transf M2T:SBVR to Natural
Language
SBVR Model
Structured EnglishStructured English
RuleSpeakRuleSpeak
. . . . . .
English Text
Validate
with some contributions: UML Validation
J Cabot, R Pau, R Raventós: From UML/OCL to SBVR Specifications: a Challenging Transformation. Information Systems
![Page 24: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/24.jpg)
J Cánovas, F Jouault, J Cabot, J García Molina. API2MoL: Automating the building of bridges between APIs and Model-Driven Engineering. Information and Software Technology.
with some contributions: API integration
![Page 25: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/25.jpg)
But it’s clearly not enough
Modeling will be commonplace in 3 years time – S. Mellor
Though he is giving the same answer for the last 20 years
![Page 26: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/26.jpg)
Index
Introducing MDE
Research in MDE
A Research Agenda for MDE 2.0
– Models & Quality
– Legacy systems
– Social aspects
– Very Large models
Dissemination and technology transfer
Credits
Conclusions
![Page 27: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/27.jpg)
What else do we need? MDE 2.0
![Page 28: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/28.jpg)
1. Quality of models
2. Support for legacy systems
3. Social aspects of MDE
4. Very large models / Scalability
Four main challenges
![Page 29: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/29.jpg)
Quality
![Page 30: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/30.jpg)
Quality is a very broad concept
Quality
We focus on the verification of models (are we building the models right?) and, partially, on their validation (are we building the right models?)
![Page 31: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/31.jpg)
31©
AtlanMod -
atlanmod
-contact
@mines-nantes.fr
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
Importance of Quality in models
![Page 32: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/32.jpg)
A Basic quality property: Satisfiability
Satisfiability is the most basic correctness property for static models. Liveliness, redundancy,… can be expressed in terms of this one
A model is satisfiable if it is possible to create a valid instantiation of that model. Otherwise it is useless, users won’t be able to work with the model
A instantiation is valid if it satisfies all model constraints
id: String
Dept
name: String
EmployeeWorksIn* 1
1 0..1Bossmanager
deptworkers
managed
id = “HR”
d1: Dept
name = “Peter”
e1: Employee
WorksIn
Boss name = “Timothy”
e2: Employee
WorksIn
![Page 33: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/33.jpg)
Example: Is it satisfiable?
Person
name: string children
2
*
+ constraint : Nobody can be his own ancestor
parent
![Page 34: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/34.jpg)
How models are verified?
34©
AtlanMod -
atlanmod
-contact
@mines-nantes.fr
…..Strong Satisfiability
![Page 35: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/35.jpg)
But Quality classified as a Grand Challenge
MDE
1E+18 scenarios for small models (classes=10)
More than cells in the human body!!!
![Page 36: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/36.jpg)
Finding the right trade-off
Verification
Automation Efficiency
Expressiveness Complete
No perfect solution exists
![Page 37: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/37.jpg)
Our “pragmatic” approach
EMF/UML model
1. Class diagram / metamodel2. OCL constraints
Solution?
Constraint Satisfaction Problem
1. Variables – basic types + struct/list
2. Domains – finite
3. Constraints – Prolog
4. Property -> Additional Constraint
Translate
Solve
Deduce
Property?
![Page 38: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/38.jpg)
Translation of OCL invariants
OCL invariant =instance of OCL metamodel
Invariant becomes aconstraint of the CSP
AttribCallExpwordCount
VariableExpself
IntLiteralExp10000
OperationCallExp<
context Paper inv: self.wordCount < 10000
![Page 39: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/39.jpg)
Translation of OCL invariants
LessThan(Vars, Result):- // Evaluate subexpressions Attribute(Vars, X), Constant(Y), // Compute result #<(X,Y, Result).
X Y
Result
Z
AttribCallExpwordCount
VariableExpself
IntLiteralExp10000
OperationCallExp<
![Page 40: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/40.jpg)
Translation of OCL invariants
invariant(Papers):-// Expression must be true// for each Paper ( for (Paper, Papers)
doLessThan([Paper],Result),Result #= 1 ) .
context Paper inv: self.wordCount < 10000
![Page 41: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/41.jpg)
To analyze OCL constraints, it is necessary to provide a translation for all OCL constructs in terms of the Prolog-based language used by the ECLiPSe solver.
We have extended ECLiPSe with a new library dedicated to the translation of OCL constraints
The library makes use of the ECLiPSe support for higher-order predicates e.g. ocl_set_collect(Instances, Vars, Set, Predicate, Result),
Removal of symmetries and the suspension mechanism are used to optimize the performance of the library
OCL Prolog library
![Page 42: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/42.jpg)
Resolution of the CSP
Define cardinality variables
Constraints on cardinalities
Assign cardinalities
Define attribute variables
Constraints on attributes
Assign attributes
Proof
![Page 43: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/43.jpg)
Trade-offs in verification
Decidability: is automation possible? Yes
Completeness: proof for any input?No, bounded verification(but Small Scope hypothesis – D. Jackson )
Expressiveness: full OCL support? Yes
Efficiency: Controlled by the user
Validation is also possible: we can generate valid instances from
partial models
![Page 44: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/44.jpg)
Other applications (1): Operation contracts
Exists? Post? Find legal final state
Find legal initial state
Inconsistent Model ProvingExample
UML Model
OCL invariants
OCL precondition
OCL postcondition
Pre?
NO
YES
NO
YES
YES
NO
Verification of the Weak Executability Property
Verification of contracts: Applicability and executability of operations, determinism,…
![Page 45: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/45.jpg)
Other applications(2): Graph Transformation to OCL
machine
op1NAC:
machine
LHS:
machine
op2RHS:
context System::work()
pre: Machine::allInstances()−>exists(m| not ( Operator::allInstances()−>exists(op1|m.operator−> includes(op1)))
post: Machine::allInstances()@pre−>exists(m| not ( Operator::allInstances@pre()−>exists(op1|m.operator->includes(p1))) and op2.oclIsNew() and op2.oclIsTypeOf(Operator) and m.operator−>includes(op2)
LHSNAC
RHS
work
Cabot, Clarisó, Guerra, de Lara: A UML/OCL framework for the analysis of graph transformation rules. Software and System Modeling
![Page 46: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/46.jpg)
Other applications(3): TGG / QVT / ATL to OCL
work
c :Class t :Tablec2t :Cl2Tb
namepersistent
name{new}
{new} {new}
ATTR COND: c.name=t.name and c.persistent=true
{new} {new}
Invariants:
context Cl2Tb Inv: self.class.size()=1 and self.table.size()=1 and self.class.name=self.table.name
context Class Inv: self.persistent=true implies self.Cl2Tb.size() >=1
context Table Inv: self.Cl2Tb.size() >=1
Cabot, Clariso, Guerra, de Lara: Verification and validation of declarative model-to-model transformations through invariants. Journal of
Systems and Software
![Page 47: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/47.jpg)
Challenges / Work in Progress
Incremental verification
Combine CSPs with SMT solvers to provide a complete verification approach when possible.
More meaningful feedback (e.g. the subset of constraints that cause the inconsistency)
Model slicing for parallel verification
![Page 48: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/48.jpg)
Model-driven Reverse Engineering
![Page 49: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/49.jpg)
MoDISCO: a MDRE framerwork
Instead of adhoc Rev. Eng. Solutions, we use an intermediate
model-based representation of the legacy system
Legacy Systems
Modernizationhelpers
•Documentation•Impact analysis
•Models•Viewpoints
•Restructured code•Migrated code
•Metrics•Norms checking
Eclipse Modeling
Source code
Databases
Configurationfiles
MoDisco
![Page 50: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/50.jpg)
MDRE phases in MoDisco
Why? Models provide an homogeneous and interrelated representation of all legacy components.
No information loss: initial models have a 1:1 correspondance with the code
51
Legacy artifacts : - source code
- configuration files - tests
- databases - etc.
Discover
Models
Understand
Viewpoints
Transform
NewSoftware Artifacts
![Page 51: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/51.jpg)
Challenges / Work in Progress
Extraction of business rules– Getting a model of the code helps but it’s still too low-level for a
stakeholder to look at it– Semi-automatic approach with IBM.
Rev Eng of the whole software system– We know how to extract a model from a single component but we
don’t take into account its relationship with other components (esp. in other layers)
– Companies are interested in knowing the enterprise architecture (e.g. TOGAF) of a system
![Page 52: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/52.jpg)
Reverse Engineering of security policies
Challenges / Work in Progress
![Page 53: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/53.jpg)
Social aspects of MDE
![Page 54: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/54.jpg)
Social aspects of MDE
We need a better understanding of the needs of users (technical and non-technical) to make sure we solve their actual problems (and not the ones we think they have).
One example: Huge amount of research on providing methods for the specification, validation, etc of non-functional requirements:– Nontechnical constraints (like cost, type of license, specific providers)
are as prominent as technical requirements like performance or security – Modern technology platforms already cover many applications’ quality
requirements so explicit NFR management not so useful– NFRs are hardly ever documented and poorly validated
Architecture Quality Revisited. Buschmann, Frank; Ameller, David; Ayala, Claudia P.; Cabot, Jordi; Franch, Xavier. IEEE Software, vol. 29 (4)
![Page 55: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/55.jpg)
Dealing with users is not easy
56©
AtlanMod -
atlanmod
-contact
@mines-nantes.fr
![Page 56: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/56.jpg)
Collaborative development of DSLs
Participation of end-users is specially relevant when creating DSLs since we are creating a language for them
![Page 57: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/57.jpg)
Collaborative development of DSLs
![Page 58: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/58.jpg)
Collaborative development of DSLs
Collaboro: process + DSL + tool to enable the collaborative development of DSLs
Users suggest changes to both abstract and concrete syntax levels
The community comments and votes changes and solutions
Once an agreement is reached (based on a given decision policy, e.g. unanimity) the solution is added to the current language version
We get:– Languages that better satisfy the users’ needs– Traceability to justify the rational behind the language design decisions
![Page 59: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/59.jpg)
Challenges / Work in progress
Gamification techniques to promote more user interaction
What constitutes a good concrete syntax for DSLs?
Learning from web designers: AB testing for DSLs –E.g. evolve the concrete syntax based on which alternative gets more “conversions”).
![Page 60: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/60.jpg)
Very large models
![Page 61: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/61.jpg)
Scalability
MDE tools fail when dealing with very large models – E.g. reverse engineering of the Eclipse platform generates a model of
more than 5M instances– EMF just crashes with these volumes
Scalability important both at the model (loading very large models) and model manipulation level (executing complex transformations on large models)
Key problem in industrial scenarios but far from a trivial one– Very Large DataBases is the main conf. in the database domain with
37 editions and still looking for solutions
![Page 62: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/62.jpg)
Modeling in the cloud
Can the Cloud be used to handle VLMs?
Two key aspects:– Model storage in the Cloud for efficiently storing and loading VLMs – Model transformation in the Cloud for distributing the computation of
the transformation• Each virtual node executes the full transformation on a subset of
the model• Each virtual node executes part of the transformation on the full
model
![Page 63: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/63.jpg)
Cloud Virtual Model
![Page 64: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/64.jpg)
Cloud Virtual Model
![Page 65: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/65.jpg)
Parallel Transformation Overview
![Page 66: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/66.jpg)
Challenges / Work in Progress
Optimal way to split the models and transformations – And when not to split them
Best technology for the backend?– Hadoop for storing the models plus MapReduce for the transformations?
Reactive transformation engine:– Automaticaly activate only the strictly needed computation in response
to updates or requests of model elements. – Incremental, minimal set of recalculations
![Page 67: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/67.jpg)
Index
Introducing MDE
Research in MDE
A Research Agenda for MDE 2.0
– Models & Quality
– Legacy systems
– Social aspects
– Very Large models
Dissemination and technology transfer
Credits
Conclusions
![Page 68: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/68.jpg)
Always with technology transfer in mind
![Page 69: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/69.jpg)
How do we bridge the gap?
Traditional direct approach
70©
AtlanMod -
atlanmod
-contact
@mines-nantes.fr
Research Labs(Scientific Experts)
Companies(End Users)
Innovation
TechnologyTransfer
Direct technology transfer doesn’t work!: Our tools are
not good and they won’t magically become great Direct technology transfer doesn’t work!: Our tools are
not good and they won’t magically become great
![Page 70: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/70.jpg)
We need a new business model
Three-entity approach
Introduction of a third entity in the process– A SME as Technology Provider
– Play the role of Interface betweenresearchers and users
71©
AtlanMod -
atlanmod
-contact
@mines-nantes.fr
Labs (scientific experts)
Big Companies / end-users
Open source
SME
Research challengesIndustrializ
ation
Services
![Page 71: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/71.jpg)
Dissemination
![Page 72: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/72.jpg)
The Modeling Languages portal
Dissemination of MDE news, tutorials, tools,… for people:– Researchers and practitioners– Novices or experts
Goal: to explore and discuss when, where and how MDE can improve current software engineering practices
modeling-languages.com
![Page 73: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/73.jpg)
![Page 74: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/74.jpg)
Credits
![Page 75: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/75.jpg)
Credits
Research is always a team activity– Works on conceptual modeling and code-generation together with colleagues
from Technical University of Catalonia and Politecnico di Milano– Quality line started together with R. Clariso (Open University of Catalonia) and J.
de Lara and E. Guerra (Autonomous university of Madrid)– Univ. of Toronto taught me the importance of social and organizational aspects of
Software Engineering– … thanks also to and many more co-authors that I can’t list here
Current research lines possible thanks to the members of the AtlanMod team (EMN / INRIA / LINA )
AtlanMod was created in 2008 by Jean Bézivin. He is the “father” of MoDisco and of the technology transfer model we are following.
![Page 76: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/76.jpg)
Wrapping up
![Page 77: MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture](https://reader035.fdocuments.in/reader035/viewer/2022062703/554f4697b4c905423f8b498b/html5/thumbnails/77.jpg)
Conclusions
MDE is changing the way we build software – Though this “we” is still limited
We have explored some of the (IMHO) promising research directions to improve MDE (and its adoption): – Quality, scalability, human aspects, legacy systems
MDE as a means to an end Better Software Engineering
It is ok to renounce to perfect solutions in exchange of useful ones – The good-enough revolution (Wired – 09/2009)