Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Seminar
Model Driven Software Engineering
What is it?
Topics
Requirements
Schedule
Contact
A famous painting by René Magritte
„Model-based Software Development“, 2016
2
Systems versus Modells
A model
A system
isModelOf
conformsTo
The image (model) captures important properties and lets us reason
about
appeareance
functions
usability
etc
But with an image (model) we cannot smoke.
„Model-based Software Development“, 2016
3
Modells Represent Views of a System
France 1453
French cheese map
The System
Models
Railroads in France
„Model-based Software Development“, 2016
Termite population
in France
4
Metamodels explain Models
How do we know what a
map tells us?
The „Legend“ explains
the used symbols
„Bicycle Lane“
…
The „Legend“ is the
„metamodel“ of the map
Metamodels model the
language of models
Elements & their legal use syntax
Meaning of elements semantics
„Model-based Software Development“, 2016
5
Meta-Models
The „Image of an image of an image“
is a meta-metamodel
One could go on like this forever…
modelOf
The „image of an image of a pipe“
is a modell of a model – a metamodell
It captures aspects of images
Frame, contents, label, …
modelOf
The „image of a pipe“ is a model of the
system
It captures aspects of pipes
Shape, colour, ...
The pipe is real – a system.
„Model-based Software Development“, 2016
modelOf
6
The (Meta-)Modell-Pyramid
Meta-Object-Facility
conforms to
source
MOF (Meta-Object-Facility)
M3 (model of UML metamodels)
UML Metamodel
M2
Class
Association
destination
M3
conforms to
The UML Metamodell
(Model of UML models)
1
*
Class
Attribute
M2
conforms to
UML Model
M1
A UML-Model
(Model of a system)
Spy
M1
Name : String
A System
(„the real world“)
conforms to
My Name is ...
M0
„Model-based Software Development“, 2016
M0
7
Domain Specific Language (DSL)
Domain
An are of knowldege with tightly interrelated concepts
Examples: Genetics, flight control, data base management, …
DSL – Domain Specific Language
Approach: The Concepts of a domain are defined by a metamodel
Advantages compared to general purpose language
Higher abstraction level
Easier understanding by domain experts
Automated mapping to lower abstraction levels
Examples
Representation of database schema by ER diagramm (grafical DSL)
Representation of database schema by DDL script (textual DSL)
MOF – Meta Object Facility
Model based language for defining meta models
Master form (unique metametamodell MMM)
„Model-based Software Development“, 2016
8
Concrete Syntax versus Abstract Syntax
1
package
package demo;
name
demo
package(1, 0, 'demo')
parent
class(2, 1, 'C')
2
class C {
class
name
C
method(3, 2, 'm', int,[4])
parent
int m(int i) {
3
param(4, 3, ‘i'‚ int)
name
m
method
block(5, 3, [6])
method
parent
5
int
block
4
param
name
i
parent
int
m(i);
name
6
m
call
}
call(6, 5, null, 3 )
parent
}
7
var access
„Model-based Software Development“, 2016
name
i
ident(7, 6, 4 )
9
Concrete Syntax versus Abstract Syntax
package demo;
● Describes the structure of the
input or output of a system
◆ Textual
◆ Graphical
● Specified by a grammar
◆ Textual → EBNF
◆ Graphical → Graph grammar
„Model-based Software Development“, 2016
package(1,
'demo').
0,
● Describes the structure of the
internal representation (= the
model)
◆ Objects
◆ Clauses
◆ Relations
● Specified by a meta-model
◆ See previous slides
10
Families of Model Transformation
Text-to-model
Concrete Syntax
Abstract Syntax
(textual / grafical)
(internal)
Model-to-model
Model-to-text
„Model-based Software Development“, 2016
11
„Model-based Software Development“
Summer semester 2016
Core MDSE Topics
–
–
1. Eclipse Modeling Framework
ECORE as the basis of tool interoperability
ECORE
conforms to
Meta-model of
Source Model
Meta-model of
Target Model
conforms to
conforms to
Source Model
Transformation
Rules
Target Model
Transformation rules use the meta-models
Tools use ECORE to understand the meta-models
„Model-based Software Development“, 2016
13
1. Xtext: Define your own DSL!
● 1. Define the grammar of your language
„Model-based Software Development“, 2016
14
2. Xtext: Define your own DSL!
● 2. Automatically generate
◆ a parser
◆ an internal model
◆ a complete IDE for the new language
„Model-based Software Development“, 2016
15
3. Xtext: Customize your DSL!
● Configure the code generation workflow
◆ Workflow language (MWE2)
◆ Dependency injection (Google Guice)
◆ Continuous Integration (Maven)
● Customize
◆ Semantic checking
◆ Error reporting
◆ Outline
◆ Formatting
◆ Autocompletion
„Model-based Software Development“, 2016
16
4. Xtend: Model to Model Transformation
● Full programing language
● Java made easy
◆ Less boilerplate code
◆ Type inference
◆…
● You can work on the model otherwise, but Xtrend makes it much easier
„Model-based Software Development“, 2016
17
5. Xtend: Model to text transformation
● Template language embedded into Xtend
Reference to an attribute of the
currently processed model
element
Start template
Literal output (fully formatted, no
need for System.out.println(„…“)
End template
Embedded code
„Model-based Software Development“, 2016
18
6. Viatra: Graph-based
Model to Model Transformation
● Graph-based transformations
www.eclipse.org/viatra/
„Model-based Software Development“, 2016
19
7. ATL: Hybrid
model-to-model transformation
● Declarative …
rule Member2Female {
from
s : Families!Member (s.isFemale())
to
t : Persons!Female (
fullName <- s.firstName + ' ' + s.familyName
)
}
…and operational
helper context Families!Member def: isFemale() : Boolean =
if not self.familyMother.oclIsUndefined() then
true
else
if not self.familyDaughter.oclIsUndefined() then
true
else
false
endif
endif;
„Model-based Software Development“, 2016
20
„Model-based Software Development“
Summer semester 2016
Application Topics
–
–
Propositionalization
● What is Machine Learning?
◆ Learning models from observations
◆ E.g detect spam emails, predict whether printing machine will fail
● Often transformations to simple feature vectors
◆ Feature vector example: (sunny, 23.2 degrees Celsius, windy)
◆ Real world: often complex relationships e.g. social graphs of persons,
complex interactions in machines
Task :
●
Look at transformation techniques from
MDSE perspective and present comparative
analysis with (dis-)advantages
„Model-based Software Development“, 2016
22
Propositionalization
● References:
Ristoski, Petar, and Heiko Paulheim. "A comparison of
propositionalization strategies for creating features from linked open data."
Linked Data for Knowledge Discovery (2014): 6.
http://ceur-ws.org/Vol-1232/LD4KD2014-complete.pdf#page=6
Kramer, S., Lavrac, N., Flach, P.: Propositionalisation approaches to
Relational Data Mining. In Dzeroski, S., Larac, N., eds.: Relational Data
Mining. Springer, Berlin (2001) 262–291
Maier, Marc, et al. "Flattening network data for causal discovery: What
could go wrong?." Workshop on Information in Networks. 2013.
http://people.cs.umass.edu/~maier/papers/maier-et-al-win2013-1.pdf
„Model-based Software Development“, 2016
23
Machine Learning
● Modelling: Each type of classifier is a model, which follows certain
properties and learns a particular task. e.g.
– Decision Trees
– Neural Networks
– Rule based Learners
● Task 1: Look at learning algorithms from MDSE perspective and
present an analysis of models
● Task 2: Look at a machine learning tool e.g. WEKA, and present a
comparative analysis of learning models from MDSE perspective
„Model-based Software Development“, 2016
24
Kernel based Learning
● Modelling layer :
● There are some classifiers called kernel based classifiers.
● They require data to be transformed in a particular manner. i.e.
ð low dimensions
ð linearly separable.
● Task: Explore different kernel techniques from MDSE perspective and
present analysis of kernel based modelling methods
„Model-based Software Development“, 2016
25
Kernel based Learning
References :
l
Bishop, Christopher M. "Model-based machine learning." Philosophical
Transactions of the Royal Society of London A: Mathematical, Physical and
Engineering Sciences 371.1984 (2013): 20120222.
l
http://research.microsoft.com/en-us/um/people/cmbishop/downloads/BishopMBML-2012.pdf
http://docs.aws.amazon.com/machine-learning/latest/dg/training-mlmodels.html
http://machinelearningmastery.com/a-tour-of-machine-learning-algorithms/
„Model-based Software Development“, 2016
26
Model based Optimization
● Given a complex optimization problem, the task is to find the values of
parameters that optimize the problem. e.g.
ð Data packet routing,
ð Shortest path
Function optimization
● There are different methods to model a solution to such problem.
● Mathematical Modelling
– Gradient Descent
● Algorithmic Modelling
– Genetic Algorithm
● Task : Explore any one type of such optimization algorithms with
MDSE perspective and highlight the underlying modelling techniques
„Model-based Software Development“, 2016
27
Model based Optimization
References :
http://jmlr.csail.mit.edu/proceedings/papers/v22/domke12/domke12.p
df
http://castlelab.princeton.edu/ORF569papers/Hu%20et%20al%20%20Survey%20of%20modelbased%20methods%20for%20global%20optimization.pdf
„Model-based Software Development“, 2016
28