0% found this document useful (0 votes)
24 views35 pages

Model Driven Engineering Meta-Modeling: Vincent ENGLEBERT, Prof. University of Namur

The document discusses different types of mappings between models and the systems or concepts they represent including isotypical, prototypical, and metatypical mappings. It also discusses why modeling is useful including for understanding systems, validating hypotheses, documenting rationales, and enabling automation.

Uploaded by

Francine Fayo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views35 pages

Model Driven Engineering Meta-Modeling: Vincent ENGLEBERT, Prof. University of Namur

The document discusses different types of mappings between models and the systems or concepts they represent including isotypical, prototypical, and metatypical mappings. It also discusses why modeling is useful including for understanding systems, validating hypotheses, documenting rationales, and enabling automation.

Uploaded by

Francine Fayo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 35

Business and Organizational Modeling

Languages & Methods

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 ».

Ce matériel ne peut être édité ou réutilisé dans d’autres contextes.


En particulier, il ne peut être mis à disposition en partie ou en
entier pour une tierce personne quelque soit le moyen.

Ce support est protégé par le droit d’auteur.

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 :

(c) HarperCollins Publishers

A software prototype could


be a model of the system to
develop.

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

To understand the system !


– Use notations that improve the understanding.
To validate and test the hypotheses
To document and keep the rationales
To communicate with other stakeholders.
To automate process
– Check consistency
– Simulate or animate the models
– Generate the code
– Transform models

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 …

By defining a mapping from the modelling language L to constructs of


another language L’ that is already well understood.
• Petit Robert ?
• Bootstrapping
A language can have several semantics, they should
be consistent together.
• See BPMN (Petri nets, CSP, Pi-calculus, YAWL, …)
• Several dictionaries will provide different definitions
of a same word, they should be coherent.

24
Model Notation (aka Concrete Syntax)

Most models have a notation, that is graphical,


textual or a mix of them, or even several notations.

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

Passive texts Syntax driven editors


Hypertexts Semantics driven editors
Embedded Advanced
Text Editors

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

Source: Goodman, N. Languages of Art: An Approach to a Theory of


Source: Bertin, J. Semiology of Graphics: Diagrams, Networks, Maps. University of Wisconsin Press, Madison, Symbols. Bobbs-Merrill Co, Indianapolis, 1968.
Wisconsin, USA, 1983.

29
Domain Specific Modelling Languages (DSML)

© metacase.com

30
Method

Define the DSML


Define the pertinent aspects of the system to model
• What is in the domain ? What is outside the domain ?
– Give examples and counter-examples
• What do you expect with that DSML
• Who are the users
• List the useful artefacts to consult (experts, documentation, standards, case studies,
analysis blueprints, …)
• Which process do you wish to support with that DSML
Its meta-model
Its semantics
Its notation(s)
Define the process and implement them
Use meta-modelling tools
Modelling
Transformation
Code generation

31
Meta-CASE

32
And to conclude… the supra meta-model

33
References

@ Vincent Englebert - FUNDP 34


End of print

35

You might also like