Model Driven Engineering Meta-Modeling: Vincent ENGLEBERT, Prof. University of Namur
Model Driven Engineering Meta-Modeling: Vincent ENGLEBERT, Prof. University of Namur
1
Ce matériel est mis à votre disposition dans le cadre exclusif du
cours «Business and Organizational Modelling Languages &
Methods ».
2
Imagine
Valid
Test
Discuss
Archive
Model
3
Models
Models represent information about the understanding of
some aspects of the “problem” (the system, the business, . . . ).
Some definitions :
4
Looks like the idea of
“pattern” in software
engineering, or “prototype”
in the “prototype
languages” [CUCH91].
See http://en.wikipedia.org/wiki/Prototype-based_programming
5
Matches quite well
the usual definition of
this term in software
engineering:
Class diagrams, ER,
BPMN, Statechart,
Petri Nets, Enterprise
Architectures, …
6
Interpretative mapping
3 interpretations
a) Isotypical mappings map one model entity to
one SUS entity. The model entity
straightforwardly represents the SUS entity.
b) Prototypical mappings map one model entity to
a set of SUS entities given by a example, i.e. the
model entity exemplifies the kind of SUS
entities that can be mapped to it.
c) Metatypical mappings map one model entity to
a set of SUS entities given declaratively, i.e. the
model entity is a description of the properties
that SUS entities must comply with in order to
be mapped to it.
7
Henderson-Sellers, B. « On the Mathematics of Modelling, Metamodelling, Ontologies and Modelling Languages » Springer, 2012.
Isotypical mapping
8
© Sparx
Prototypical Mapping
9
© http://www.agilemodeling.com/artifacts/uiPrototype.htm
Prototypical Mapping
10
© Wikipedia contributors. "Prototype-based programming." Wikipedia, The Free Encyclopedia. Wikipedia, The Free Encyclopedia, 31 Jan. 2013. Web. 14 Feb. 2013.
Metatypical Mapping
11
Why modeling
12
Meta-Model
Definition
A meta-model is a model that describes models sharing a
common concern.
For instance
The ER modeling language can be used to describe
statecharts models with an ER model.
Meta-models usually describe the static/structural
part of the models.
Imagine a meta-model that describes the behavior of a
model (e.g. statechart)
AtlanMod has a zoo of meta-models:
http://www.emn.fr/z-info/atlanmod/index.php/Zoos
13
1 ACG 1.0 63 DSL 1.0 126 KML 2.0 (Keyhole Markup Language) 0.1 188 PetriNet 1.0 250 TextualPathExp 1.0
2 ACME 1.2 64 DSLModel 1 127 Klaper 1.0 189 PetriNet_extended 1.0 251 Trace 1.0
3 ADELFE 1.0 65 DTD 1.0 128 LQN 1.0 190 PluginEclipse 1.0 252 UDDI 0.1
4 AGATE 1.1 66 DTMP (discrete time Markov processes) 1.0 129 LaTeX 1.0 191 ProMarte a UML profile for MARTE 0.1 253 UEML 1.0
5 ATL 2.0 67 DXF 1.1 130 M 1.0 192 Problem 1.0 254 UEML (Extended) 1.0
6 ATOM 1.0 68 DatadiagramMLBasicDef 1.2 131 MARTE (Modelling and Analysis of Real-Time193 Program 0.1 255 UEML extension Capturing Agents 1.0
7 AWKPrograms 1.0 69 DatadiagramMLSimplified 1.2 and Embedded systems) 0.1 194 Promenade 1.0 256 UEML extension Capturing social effects 1.0
8 Abstract Syntax for Stereotypes in UML 1.4 70 DatadiagramMLTextFormat 1.2 132 MAS (Multi-Agent System) 1.0 195 PtolemyII 1.0 257 UEML extension Dynamic Aspects 1.0
9 Abstract Syntax of the XMorph Language 1.0 71 DatadiagramMLXForm 1.2 133 MATLAB 1.2 196 Publication 1.1 258 UEML extension: Modeling Aspects 1.0
10 Actor Concept 1.0 72 Deployment 1.0 134 MSProject 1.1 197 QVT 1.0 259 UIML-3.0 0.1
11 Amble 1.1 73 DiagramInterchange 1.0 135 MSProject2 0.1 198 QoS Characteristic 260 UML (Metamodel Fragment)
12 Ant 0.3 74 DoDAF 0.1 136 MTRANS 0.1 199 QoS Profile 261 UML For Object Oriented Class Modeling 1.0
13 AntScripts 1.0 75 DoDAF-OV5 0.1 137 Make 0.3 200 QoS Statement 262 UML with reuse contracts
14 AnyLogic 1.0 76 DoDAF-SV4 0.1 138 Mantis 1.1 201 Quality of Service 263 UML2 1.0
15 Architectural Description 77 DoDAF-SV5 0.1 139 Maude 1.0 202 R2ML 4.0 264 UMLDI 1.1
16 AsmL 1.0 78 DocBook 1.1 140 Maven (maven.xml) 0.3 203 RDFS 1 265 UMLDI Activity Graphs 0.1
17 BIBTEX 1 79 DotNET System Reflection 1.2 141 Maven (project.xml) 0.3 204 RSS-2.0 2.0 266 UMLDI Collaborations 0.1
18 BMM 1.0 80 EAI 0.1 142 Measure 2.0 205 Relational 1.1 267 UMLDI ModelManagement 0.1
19 BPEL 1.0 81 EG 1.0 143 MetaH 1.0 206 RelationalDBContent 1.0 268 UMLDI State Machine 0.1
20 BPMN 1.1 82 EQN 1.0 144 Metrics 1.0 207 RelationalDBSchema 1.0 269 UMLDI Use Cases 0.1
21 BQL (Bibtex Query Language) 0.2 83 EXPRESS 0.1 145 Micro 1.0 208 Repository 1.0 270 USECASE1 1.0
22 Based Viewpoint Metamodel 0.1 84 EXPRESS 0.2 146 Mining Mart 1.0 209 Reqtify 0.1 271 USECASE2 1.0
23 BibTeX 1.1 85 EclipseLaunchConfigurations 1.0 147 MoDAF 0.1 210 Requirement 1.0 272 Unified Ontology Language 1.0
24 BibTeXML 1.2 86 EclipsePlugIn 0.1 148 Monitor Program 1.1 211 RequisitePro 0.1 273 UnixFS 0.1
25 Book 1.1 87 Edas 1.0 149 Multilevel Healthcare Information Modelling212 SBVRvoc 1.0 274 Use Cases 1.0
26 Bossa 1.0 1.1 88 Ekaw 1.0 2.0 213 SCADE 1.0 275 UsiXML Task Metamodel 1.0
27 Bugzilla 1.1 89 Extended UML Core Package 150 Multiple Metalevels 214 SEE Design 276 Visual Basic 0.1
28 Business Entity Model 90 Family 1.1 151 MySQL 0.1 215 SPEM 0.1 277 WSDL 0.1
29 Business Process Model 91 FeatureDiagrams 1.0 152 News 0.1 216 SPL 1.0 278 Web Applications: Abstract Model
30 C 1.0 92 Finite Automaton 1.0 153 OCCAM 0.1 217 SQLDDL 1.0 279 Web applications: Conceptual Model
31 C# 1.0 93 Finite State Machine 1.0 154 OCL Expressions 218 SQLDML 1.0 280 WfMC 0.1
32 C++ 1.0 94 Flat Signal Flow 1.0 155 OCL Operations 219 SVG 1.1 281 WikiTable 1.0
33 CADM (C4ISR Architecture Data Model) 1.0 95 GAIA 1.0 156 OCL Types 220 SWRC 1 282 WordprocessingMLBasicDef 1.2
34 CDE 1.0 96 GRAFCET 1.0 157 OCL Values 221 Scilab 1.0 283 WordprocessingMLSimplified 1.2
35 CFG 0.1 97 GUI 0.1 158 ODP Computational Viewpoint 0.1 222 SecureUML 1.0 284 WordprocessingMLStyles 1.2
36 CML 1.0 98 Gantt 1.0 159 ODP Engineering Viewpoint 0.1 223 Seminar Scheduling System 285 WordprocessingMLTableElts 1.2
37 COBOL 1.0 99 Generic Outline 0.1 160 ODP Enterprise Viewpoint 0.1 224 Sharengo 1.0 286 WorkDefinitions 0.1
38 CORBAComponent 1.0 100 Generic editor 0.2 161 ODP Information Viewpoint 0.1 225 Sigkdd 1.0 287 XAML-Perspective 1.0
39 CPL 1.0 101 GeoTrans 1.1 162 ODP Technology Viewpoint 0.1 226 Signal Flow 1.0 288 XAML-ResourceDictionary 1.0
40 CPR 1.0 102 Goal and Plan Concepts 1.0 163 OWL 1 227 Simple Airline Domain 289 XASM 1.15
41 CSM 1.0 103 GraphML 1.0 164 OpenConf 1.0 228 Simple Use Case 1.0 290 XHTML 1.0
42 CWMCore 1.0 104 GraphvizDot 1.0 165 OpenQVT 0.1 229 Simple Web Services connections 0.1 291 XML 1.1
43 CWMRelationalData 1.0 105 HAL 1 166 PASSI 1.0 230 SimpleClass 0.2 292 XPDL 0.1
44 Case representation 1.0 106 HPROF 1.0 167 PDG 1.0 231 SimpleRDBMS 0.2 293 XQuery 1.1
45 Choco 1.0 107 HTML 1.0 168 PIF 0.1 232 SimpleRDBMS 0.2 294 XSLT 1.1
46 Class 1.1 108 Hierarchical State Machine 1.0 169 PL/1 0.1 233 SimpleSBVR 1.0 295 XSchema 1.0
47 Class Diagram 1.0 109 Hierarchical State Machine 1.0 170 PNML Modular 1.0 234 SimpleUML 0.2 296 XUL Interactor 1.0
48 ClassicModels 1.0 110 Hybrid Automata 1.0 171 PNML Simplified 1.1 235 Simulink/Stateflow 1.0 297 bmmOmg 1.0
49 Cmt 1.0 111 IMSTransactionMessage 1.0 172 PNML_basic 1.0 236 Sofsem 1.0 298 data representation 1.0
50 Cocus 1.0 112 IRL 0.1 173 PNML_structured 1.0 237 Software Quality Control 1.1 299 data representation 1.0
51 Collaborations and Interactions in UML113 Iasted 1.0 174 PRR (Production Rule Representation) 0.1 238 SpreadsheetMLBasicDef 1.2 300 ebXML 0.1
Metamodel 114 Integrating Tropos Actor Concept 1.0 175 Paperdyne 1.0 239 SpreadsheetMLPrintingSetup 1.2 301 ifc2x3 0.1
52 Company Structure 115 Integration of OCL Expressions in UML 176 Parameters 0.1 240 SpreadsheetMLSimplified 1.2 302 sbvrEclipse 1.0
53 ComponentUML 1.0 116 J2SE5 1.0 177 Pascal 0.1 241 SpreadsheetMLStyles 1.2 303 sbvrOMG 1.0
54 Conceptual model 0.1 117 JAVA 1.1 178 PathExp 1.0 242 SpreadsheetMLWorkbookProp 1.1 304 yUML 1.0
55 ConfTool 1.0 118 JAVA3 0.1 179 Pcs 1.0 243 SpreadsheetMLWorksheetOpt 1.2 305 µOCCAM 1.0
56 Confious 1.0 119 Java Project 1.0 180 Perceptory 1.0 244 Statecharts 1.0
57 Contact 1.1 120 JavaAbstractSyntax 1.0 181 Person 1.1 245 Sync Charts
58 ControllerUML 1.0 121 JavaSource 1.1 182 PetriNet 0.1 246 SysML (OMG System Modeling Language) 1.0
59 Cristal 1.0 122 Jess 1.0 183 PetriNet 1.0 247 System Definition Model 0.2
60 Crs 1.0 123 KDM 1.0 184 PetriNet 2.0 248 System Definition Model DeploymentReport
61 DOT 1.0 124 KDMSimplified 1.0 185 PetriNet 3.0 0.1 14
62 DSL 1.1 125 KM3 1.1 186 PetriNet 4.0 249 Table 1.1
187 PetriNet 5.0
Statechart meta-model
15
A Usage Meta-Model
16
An IT-Architecture Meta-Model
17
A Component Meta-Model
18
A Class Meta-Model
19
A Physical Database Meta-Model
20
An Architecture Description Language Meta-Model
21
The Zachman framework
22
The TOGAF Meta-Model
23
© http://pubs.opengroup.org/architecture/togaf9-doc/arch/Figures/34_contentfwk8.png
Semantics
How to define the semantics of a modelling language ?
A language may have an intuitive self-sufficient semantics?
• Sketching and isotypical mapping for instance …
24
Model Notation (aka Concrete Syntax)
25
Graphical Notations
Drawing
Mobile phone screen, form, web site sketching, …
Graphs: Nodes & Edges
Swimming lines, Grids, etc
Hierarchical notation. A notation could resume
several models within a single notation
Homogeneous: when models share the same notation.
• Composed statechart
Heterogeneous: when models have distinct notations
• Class diagrams with statecharts inside the classes.
26
Textual Notations
27
© http://www.itemis.com/itemis-ag/services-and-solutions/software-tools-for-embedded-systems/language=en/42697/mbeddr
Other Notations
Matrix
Consume : Process × Process
Call: Function × Function
Gantt
Tabular
History of modifications.
List of objects by type.
Result of a request on the repository.
Sketching/Prototyping
Visualize the model with the
same system point of view
A mix of graphical, textual,
matrix and tabular notations.
28
Notations: properties
29
Domain Specific Modelling Languages (DSML)
© metacase.com
30
Method
31
Meta-CASE
32
And to conclude… the supra meta-model
33
References
35