SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
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
MDSE USE CASES
Chapter #3
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
www.mdse-book.com
MDSE GOES FAR BEYOND
CODE-GENERATION
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
MDSE has many applications
•  MDD is just the tip of the
iceberg
•  And MDA a specific
“realization” of MDD when
using OMG standards
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Three killer MDSE applications
Code
Generation
Software
Modernization
Systems
interoperability
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
www.mdse-book.com
USE CASE1 – MODEL
DRIVEN DEVEOPMENT
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
MDD contribution: Communication
•  Models capture and organize the understanding of the
system within a group of people
•  Models as lingua franca between actors from business
and IT divisions
Requirements ImplementationAnalysis Design
M2M M2M M2T
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
MDD contribution: Productivity
•  MDD (semi)automates software development
•  In MDD, software is derived through a series of model-to-
model transformations (possibly) ending with a model-to-
text transformations that produces the final code
Original
model
1st
refinement
nth
refinement
Model-to-model
Transformation
Model-to-text
Transformation
...
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Executable models
•  An executable model is a model complete enough to be
executable
•  From a theoretical point of view, a model is executable
when its operational semantics are fully specified
•  In practice, the executability of a model may depend on
the adopted execution engine
•  models which are not entirely specified but that can be executed by
some advanced tools that are able to fill the gaps
•  Completely formalized models that cannot be executed because an
appropriate execution engine is missing.
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Smart vs dumb execution engines
•  CRUD operation typically account for 80% of the overall
software functionality
•  Huge spared effort through simple generation rules
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Executable models
•  Most popular: Executable UML models
•  Executable UML development method (xUML) initially
proposed by Steve Mellor
•  Based on an action language (kind of imperative
pseudocode)
•  Current standards
•  Foundational Subset for Executable UML Models (fUML)
•  Action language is the Action Language for fUML (Alf)
•  basically a textual notation for UML behaviors that can be attached to a
UML model
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Executable models: 2 main approaches
•  Code generation: generating running code from a higher
level model in order to create a working application
•  by means of a rule-based template engine
•  common IDE tools can be used to render the source code
produced
•  Model interpretation: interpreting the models and making
them run
•  Non-empty intersection between the two options
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Code Generation
•  Goal: generating running code from higher level models
•  Like compilers producing executable binary files from source code
•  Also known as model compilers
•  Once the source code is generated state-of-the-art IDEs
can be used to manipulate the code
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Code Generation: Scope
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Code Generation: Benefits
•  Intellectual property
•  Separation of modeling and execution
•  Multi-platform generation
•  Generators simpler than interpreters
•  Reuse of existing artefacts
•  Adaptation to enterprise policies
•  Better performances
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Code Generation: Partial Generation
•  Input models are not complete & code generator is not
smart enough to derive or guess the missing information
•  Programmers will need to complete the code manually
•  Caution! Breaking the generation cycle is dangerous
Solutions:
•  Defining protected areas in the code, which are the ones
to be manually edited by the developer
•  Using round-trip engineering tools (not many available)
•  Better to do complete generation of parts of the system
instead of partial generation of the full system
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Code Generation: Turing test
•  A human judge examines the code generated by one
programmer and one code-generation tool for the same
formal specification. If the judge cannot reliably tell the
tool from the human, the tool is said to have passed the
test
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Model interpretation
•  A generic engine parses and executes the model on-the-fly
using an interpretation approach
•  Benefits
•  Faster changes & Transparent (re)deployment
•  Better portability (if the vendor supports several platforms)
•  The model is the code. Easier model debugging
•  No deployment
•  Updates of the model at runtime
•  Higher level abstraction of the system (implemented by the interpreter)
•  Updates in the interpreter may result in automatic improvements of
your software
•  Danger of becoming dependent of the application vendor.
Limited influence in the –ities of the SW
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Generation and interpretation
•  Can be used together in the same process
•  Interpretation at early protoyyping / debugging time
•  Generation for production and deployment
•  Hybrid solutions are possible:
•  Model interpretation based on internal code generation
implementation
•  Code generation that relies on predefined, configurable
components / framework at runtime. The generated code is e.g.,
XML descriptor / configurations of the components
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
www.mdse-book.com
USE CASE2 – SYSTEMS
INTEROPERABILITY
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Interoperability
•  Ability of two or more systems to exchange information
(IEEE)
•  Needed for collaborative work (e.g. using different tools),
tool and language evolution, system integration…
•  Interoperability must be done at the syntactic and
semantic levels
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Model-Driven Interoperability
•  MDSE techniques to bridge the interoperability gap
•  The metamodels (i.e. “schemas”) of the two systems are
made explicit and aligned
•  Transformations follow the alignment to move information
•  Injectors (text-to-model) represent system A data as a model
(syntactic transformation)
•  M2M transformation adapts the data to system B metamodel
(semantic transformation)
•  Extractors (model-to-text) generate the final System B output data
(syntactic transformation).
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
MDI: Global schema
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
www.mdse-book.com
USE CASE3 – MODEL
DRIVEN REVERSE
ENGINEERING
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Need for reverse engineering
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Model-driven reverse engineering
•  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
Discover
Models	
  
Understand
Viewpoints	
  
Regenerate
New	
  
So0ware	
  Ar4facts	
  
Legacy	
  ar)facts	
  :	
  
	
  -­‐	
  source	
  code	
  
	
  -­‐	
  configura4on	
  files	
  	
  
	
  -­‐	
  tests	
  
	
  -­‐	
  databases	
  
	
  -­‐	
  etc.	
  
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Model-Driven Interoperability: Example
COBOL
model
Model
discovery
COBOL
system
COBOL
metamodel
T2M
Model
understanding
Model
generation
UML
models
UML
metamodel
M2M
M2M (refactorings)
Java
model
Java
system
Java
metamodel
M2M M2T
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

Más contenido relacionado

La actualidad más candente

Incremental model
Incremental modelIncremental model
Incremental modelHpibmx
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assuranceAman Adhikari
 
Aspect oriented architecture
Aspect oriented architecture Aspect oriented architecture
Aspect oriented architecture tigneb
 
Quality Management in Software Engineering SE24
Quality Management in Software Engineering SE24Quality Management in Software Engineering SE24
Quality Management in Software Engineering SE24koolkampus
 
SRS(software requirement specification)
SRS(software requirement specification)SRS(software requirement specification)
SRS(software requirement specification)Akash Kumar Dhameja
 
Compiler Design
Compiler DesignCompiler Design
Compiler DesignMir Majid
 
Chapter 13 software testing strategies
Chapter 13 software testing strategiesChapter 13 software testing strategies
Chapter 13 software testing strategiesSHREEHARI WADAWADAGI
 
Lecture-1: Introduction to web engineering - course overview and grading scheme
Lecture-1: Introduction to web engineering - course overview and grading schemeLecture-1: Introduction to web engineering - course overview and grading scheme
Lecture-1: Introduction to web engineering - course overview and grading schemeMubashir Ali
 
Programming Paradigm & Languages
Programming Paradigm & LanguagesProgramming Paradigm & Languages
Programming Paradigm & LanguagesGaditek
 
object oriented methodologies
object oriented methodologiesobject oriented methodologies
object oriented methodologiesAmith Tiwari
 
Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design PatternSanae BEKKAR
 
Constructive Cost Model - II (COCOMO-II)
Constructive Cost Model - II (COCOMO-II)Constructive Cost Model - II (COCOMO-II)
Constructive Cost Model - II (COCOMO-II)AmanSharma1172
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process FrameworkJAINAM KAPADIYA
 
Object oriented analysis and design
Object oriented analysis and designObject oriented analysis and design
Object oriented analysis and designnaveed428
 

La actualidad más candente (20)

Software cost estimation
Software cost estimationSoftware cost estimation
Software cost estimation
 
Incremental model
Incremental modelIncremental model
Incremental model
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Aspect oriented architecture
Aspect oriented architecture Aspect oriented architecture
Aspect oriented architecture
 
6. describing syntax and semantics
6. describing syntax and semantics6. describing syntax and semantics
6. describing syntax and semantics
 
DSDM
DSDMDSDM
DSDM
 
Testing web application
Testing web applicationTesting web application
Testing web application
 
Quality Management in Software Engineering SE24
Quality Management in Software Engineering SE24Quality Management in Software Engineering SE24
Quality Management in Software Engineering SE24
 
SRS(software requirement specification)
SRS(software requirement specification)SRS(software requirement specification)
SRS(software requirement specification)
 
Compiler Design
Compiler DesignCompiler Design
Compiler Design
 
Chapter 13 software testing strategies
Chapter 13 software testing strategiesChapter 13 software testing strategies
Chapter 13 software testing strategies
 
Lecture-1: Introduction to web engineering - course overview and grading scheme
Lecture-1: Introduction to web engineering - course overview and grading schemeLecture-1: Introduction to web engineering - course overview and grading scheme
Lecture-1: Introduction to web engineering - course overview and grading scheme
 
Programming Paradigm & Languages
Programming Paradigm & LanguagesProgramming Paradigm & Languages
Programming Paradigm & Languages
 
object oriented methodologies
object oriented methodologiesobject oriented methodologies
object oriented methodologies
 
Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design Pattern
 
CMM
CMMCMM
CMM
 
Constructive Cost Model - II (COCOMO-II)
Constructive Cost Model - II (COCOMO-II)Constructive Cost Model - II (COCOMO-II)
Constructive Cost Model - II (COCOMO-II)
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process Framework
 
Object oriented analysis and design
Object oriented analysis and designObject oriented analysis and design
Object oriented analysis and design
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 

Similar a Model-Driven Software Engineering in Practice Teaching Material

Model driven software engineering in practice book - Chapter 9 - Model to tex...
Model driven software engineering in practice book - Chapter 9 - Model to tex...Model driven software engineering in practice book - Chapter 9 - Model to tex...
Model driven software engineering in practice book - Chapter 9 - Model to tex...Marco Brambilla
 
Model-Driven Software Engineering in Practice - Chapter 10 - Managing models
Model-Driven Software Engineering in Practice - Chapter 10 - Managing modelsModel-Driven Software Engineering in Practice - Chapter 10 - Managing models
Model-Driven Software Engineering in Practice - Chapter 10 - Managing modelsJordi Cabot
 
Model-Driven Software Engineering in Practice - Chapter 6 - Modeling Language...
Model-Driven Software Engineering in Practice - Chapter 6 - Modeling Language...Model-Driven Software Engineering in Practice - Chapter 6 - Modeling Language...
Model-Driven Software Engineering in Practice - Chapter 6 - Modeling Language...Jordi Cabot
 
2013 Good Design Is Good Business MDD Embedded Systems
2013 Good Design Is Good Business MDD Embedded Systems2013 Good Design Is Good Business MDD Embedded Systems
2013 Good Design Is Good Business MDD Embedded SystemsRoger Snook
 
Model driven engineering for big data management systems
Model driven engineering for big data management systemsModel driven engineering for big data management systems
Model driven engineering for big data management systemsMarcos Almeida
 
Maximal: MPL Software Demo - INFORMS Phoenix Oct 2012
Maximal: MPL Software Demo - INFORMS Phoenix Oct 2012Maximal: MPL Software Demo - INFORMS Phoenix Oct 2012
Maximal: MPL Software Demo - INFORMS Phoenix Oct 2012Bjarni Kristjánsson
 
Automatic code generation for cross platform, multi-device mobile apps. An in...
Automatic code generation for cross platform, multi-device mobile apps. An in...Automatic code generation for cross platform, multi-device mobile apps. An in...
Automatic code generation for cross platform, multi-device mobile apps. An in...Marco Brambilla
 
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
 
Web technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringPiero Fraternali
 
Lightweight Model-Driven Engineering
Lightweight Model-Driven EngineeringLightweight Model-Driven Engineering
Lightweight Model-Driven EngineeringJordi Cabot
 
Maximal: Deploying Optimization Models on Servers and Mobile Platforms - Oct ...
Maximal: Deploying Optimization Models on Servers and Mobile Platforms - Oct ...Maximal: Deploying Optimization Models on Servers and Mobile Platforms - Oct ...
Maximal: Deploying Optimization Models on Servers and Mobile Platforms - Oct ...Bjarni Kristjánsson
 
Le projet MORPHEMIC – Adaptation des ressources de cloud computing selon une ...
Le projet MORPHEMIC – Adaptation des ressources de cloud computing selon une ...Le projet MORPHEMIC – Adaptation des ressources de cloud computing selon une ...
Le projet MORPHEMIC – Adaptation des ressources de cloud computing selon une ...Open Source Experience
 
Innovation in model driven software
Innovation in model driven softwareInnovation in model driven software
Innovation in model driven softwareSagi Schliesser
 
Agile and Modeling / MDE : friends or foes? (Agile Tour Nantes 2010)
Agile and Modeling / MDE : friends or foes? (Agile Tour  Nantes 2010)Agile and Modeling / MDE : friends or foes? (Agile Tour  Nantes 2010)
Agile and Modeling / MDE : friends or foes? (Agile Tour Nantes 2010)Jordi 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
 
DutchMLSchool. ML for Energy Trading and Automotive Sector
DutchMLSchool. ML for Energy Trading and Automotive SectorDutchMLSchool. ML for Energy Trading and Automotive Sector
DutchMLSchool. ML for Energy Trading and Automotive SectorBigML, Inc
 
Mdeforge slides
Mdeforge slidesMdeforge slides
Mdeforge slidesJuri Rocco
 
Rapid Development with Schemaless Data Models
Rapid Development with Schemaless Data ModelsRapid Development with Schemaless Data Models
Rapid Development with Schemaless Data ModelsMongoDB
 

Similar a Model-Driven Software Engineering in Practice Teaching Material (20)

Model driven software engineering in practice book - Chapter 9 - Model to tex...
Model driven software engineering in practice book - Chapter 9 - Model to tex...Model driven software engineering in practice book - Chapter 9 - Model to tex...
Model driven software engineering in practice book - Chapter 9 - Model to tex...
 
Model-Driven Software Engineering in Practice - Chapter 10 - Managing models
Model-Driven Software Engineering in Practice - Chapter 10 - Managing modelsModel-Driven Software Engineering in Practice - Chapter 10 - Managing models
Model-Driven Software Engineering in Practice - Chapter 10 - Managing models
 
Model-Driven Software Engineering in Practice - Chapter 6 - Modeling Language...
Model-Driven Software Engineering in Practice - Chapter 6 - Modeling Language...Model-Driven Software Engineering in Practice - Chapter 6 - Modeling Language...
Model-Driven Software Engineering in Practice - Chapter 6 - Modeling Language...
 
2013 Good Design Is Good Business MDD Embedded Systems
2013 Good Design Is Good Business MDD Embedded Systems2013 Good Design Is Good Business MDD Embedded Systems
2013 Good Design Is Good Business MDD Embedded Systems
 
Model driven engineering for big data management systems
Model driven engineering for big data management systemsModel driven engineering for big data management systems
Model driven engineering for big data management systems
 
Maximal: MPL Software Demo - INFORMS Phoenix Oct 2012
Maximal: MPL Software Demo - INFORMS Phoenix Oct 2012Maximal: MPL Software Demo - INFORMS Phoenix Oct 2012
Maximal: MPL Software Demo - INFORMS Phoenix Oct 2012
 
Automatic code generation for cross platform, multi-device mobile apps. An in...
Automatic code generation for cross platform, multi-device mobile apps. An in...Automatic code generation for cross platform, multi-device mobile apps. An in...
Automatic code generation for cross platform, multi-device mobile apps. An in...
 
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
 
Web technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven Engineering
 
Lightweight Model-Driven Engineering
Lightweight Model-Driven EngineeringLightweight Model-Driven Engineering
Lightweight Model-Driven Engineering
 
Maximal: Deploying Optimization Models on Servers and Mobile Platforms - Oct ...
Maximal: Deploying Optimization Models on Servers and Mobile Platforms - Oct ...Maximal: Deploying Optimization Models on Servers and Mobile Platforms - Oct ...
Maximal: Deploying Optimization Models on Servers and Mobile Platforms - Oct ...
 
Le projet MORPHEMIC – Adaptation des ressources de cloud computing selon une ...
Le projet MORPHEMIC – Adaptation des ressources de cloud computing selon une ...Le projet MORPHEMIC – Adaptation des ressources de cloud computing selon une ...
Le projet MORPHEMIC – Adaptation des ressources de cloud computing selon une ...
 
Innovation in model driven software
Innovation in model driven softwareInnovation in model driven software
Innovation in model driven software
 
Agile and Modeling / MDE : friends or foes? (Agile Tour Nantes 2010)
Agile and Modeling / MDE : friends or foes? (Agile Tour  Nantes 2010)Agile and Modeling / MDE : friends or foes? (Agile Tour  Nantes 2010)
Agile and Modeling / MDE : friends or foes? (Agile Tour Nantes 2010)
 
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
 
DutchMLSchool. ML for Energy Trading and Automotive Sector
DutchMLSchool. ML for Energy Trading and Automotive SectorDutchMLSchool. ML for Energy Trading and Automotive Sector
DutchMLSchool. ML for Energy Trading and Automotive Sector
 
Mdeforge slides
Mdeforge slidesMdeforge slides
Mdeforge slides
 
Coding
CodingCoding
Coding
 
Rapid Development with Schemaless Data Models
Rapid Development with Schemaless Data ModelsRapid Development with Schemaless Data Models
Rapid Development with Schemaless Data Models
 
Mdeforge
MdeforgeMdeforge
Mdeforge
 

Más 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
 
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
 
Multi-Platform Chatbot Modeling and Deployment with the Xatkit Framework
Multi-Platform Chatbot Modeling and Deployment with the Xatkit FrameworkMulti-Platform Chatbot Modeling and Deployment with the Xatkit Framework
Multi-Platform Chatbot Modeling and Deployment with the Xatkit FrameworkJordi Cabot
 

Más 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
 
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
 
Multi-Platform Chatbot Modeling and Deployment with the Xatkit Framework
Multi-Platform Chatbot Modeling and Deployment with the Xatkit FrameworkMulti-Platform Chatbot Modeling and Deployment with the Xatkit Framework
Multi-Platform Chatbot Modeling and Deployment with the Xatkit Framework
 

Model-Driven Software Engineering in Practice Teaching Material

  • 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 MDSE USE CASES Chapter #3
  • 2. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. www.mdse-book.com MDSE GOES FAR BEYOND CODE-GENERATION
  • 3. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. MDSE has many applications •  MDD is just the tip of the iceberg •  And MDA a specific “realization” of MDD when using OMG standards
  • 4. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Three killer MDSE applications Code Generation Software Modernization Systems interoperability
  • 5. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. www.mdse-book.com USE CASE1 – MODEL DRIVEN DEVEOPMENT
  • 6. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. MDD contribution: Communication •  Models capture and organize the understanding of the system within a group of people •  Models as lingua franca between actors from business and IT divisions Requirements ImplementationAnalysis Design M2M M2M M2T
  • 7. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. MDD contribution: Productivity •  MDD (semi)automates software development •  In MDD, software is derived through a series of model-to- model transformations (possibly) ending with a model-to- text transformations that produces the final code Original model 1st refinement nth refinement Model-to-model Transformation Model-to-text Transformation ...
  • 8. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Executable models •  An executable model is a model complete enough to be executable •  From a theoretical point of view, a model is executable when its operational semantics are fully specified •  In practice, the executability of a model may depend on the adopted execution engine •  models which are not entirely specified but that can be executed by some advanced tools that are able to fill the gaps •  Completely formalized models that cannot be executed because an appropriate execution engine is missing.
  • 9. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Smart vs dumb execution engines •  CRUD operation typically account for 80% of the overall software functionality •  Huge spared effort through simple generation rules
  • 10. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Executable models •  Most popular: Executable UML models •  Executable UML development method (xUML) initially proposed by Steve Mellor •  Based on an action language (kind of imperative pseudocode) •  Current standards •  Foundational Subset for Executable UML Models (fUML) •  Action language is the Action Language for fUML (Alf) •  basically a textual notation for UML behaviors that can be attached to a UML model
  • 11. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Executable models: 2 main approaches •  Code generation: generating running code from a higher level model in order to create a working application •  by means of a rule-based template engine •  common IDE tools can be used to render the source code produced •  Model interpretation: interpreting the models and making them run •  Non-empty intersection between the two options
  • 12. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Code Generation •  Goal: generating running code from higher level models •  Like compilers producing executable binary files from source code •  Also known as model compilers •  Once the source code is generated state-of-the-art IDEs can be used to manipulate the code
  • 13. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Code Generation: Scope
  • 14. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Code Generation: Benefits •  Intellectual property •  Separation of modeling and execution •  Multi-platform generation •  Generators simpler than interpreters •  Reuse of existing artefacts •  Adaptation to enterprise policies •  Better performances
  • 15. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Code Generation: Partial Generation •  Input models are not complete & code generator is not smart enough to derive or guess the missing information •  Programmers will need to complete the code manually •  Caution! Breaking the generation cycle is dangerous Solutions: •  Defining protected areas in the code, which are the ones to be manually edited by the developer •  Using round-trip engineering tools (not many available) •  Better to do complete generation of parts of the system instead of partial generation of the full system
  • 16. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Code Generation: Turing test •  A human judge examines the code generated by one programmer and one code-generation tool for the same formal specification. If the judge cannot reliably tell the tool from the human, the tool is said to have passed the test
  • 17. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Model interpretation •  A generic engine parses and executes the model on-the-fly using an interpretation approach •  Benefits •  Faster changes & Transparent (re)deployment •  Better portability (if the vendor supports several platforms) •  The model is the code. Easier model debugging •  No deployment •  Updates of the model at runtime •  Higher level abstraction of the system (implemented by the interpreter) •  Updates in the interpreter may result in automatic improvements of your software •  Danger of becoming dependent of the application vendor. Limited influence in the –ities of the SW
  • 18. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Generation and interpretation •  Can be used together in the same process •  Interpretation at early protoyyping / debugging time •  Generation for production and deployment •  Hybrid solutions are possible: •  Model interpretation based on internal code generation implementation •  Code generation that relies on predefined, configurable components / framework at runtime. The generated code is e.g., XML descriptor / configurations of the components
  • 19. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. www.mdse-book.com USE CASE2 – SYSTEMS INTEROPERABILITY
  • 20. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Interoperability •  Ability of two or more systems to exchange information (IEEE) •  Needed for collaborative work (e.g. using different tools), tool and language evolution, system integration… •  Interoperability must be done at the syntactic and semantic levels
  • 21. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Model-Driven Interoperability •  MDSE techniques to bridge the interoperability gap •  The metamodels (i.e. “schemas”) of the two systems are made explicit and aligned •  Transformations follow the alignment to move information •  Injectors (text-to-model) represent system A data as a model (syntactic transformation) •  M2M transformation adapts the data to system B metamodel (semantic transformation) •  Extractors (model-to-text) generate the final System B output data (syntactic transformation).
  • 22. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. MDI: Global schema
  • 23. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. www.mdse-book.com USE CASE3 – MODEL DRIVEN REVERSE ENGINEERING
  • 24. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Need for reverse engineering
  • 25. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Model-driven reverse engineering •  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 Discover Models   Understand Viewpoints   Regenerate New   So0ware  Ar4facts   Legacy  ar)facts  :    -­‐  source  code    -­‐  configura4on  files      -­‐  tests    -­‐  databases    -­‐  etc.  
  • 26. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Model-Driven Interoperability: Example COBOL model Model discovery COBOL system COBOL metamodel T2M Model understanding Model generation UML models UML metamodel M2M M2M (refactorings) Java model Java system Java metamodel M2M M2T
  • 27. 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