Model-Driven Software Engineering in Practice - Chapter 2 - MDSE Principles

Marco Brambilla
Marco BrambillaFull Professor of Computer Science and Engineering at Politecnico di Milano
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 PRINCIPLES
Chapter #2
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
MDSE Principles
Contents
§ Concepts
§ Approaches
§ Adoption
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Models
What is a model?
Mapping Feature A model is based on an original (=system)
Reduction Feature A model only reflects a (relevant) selection
of the original‘s properties
Pragmatic Feature A model needs to be usable in place of an
original with respect to some purpose
ModelrepresentsSystem
Purposes:
•  descriptive purposes
•  prescriptive purposes
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
MDSE aim at large
§ MDSE considers models as first-class citizens in software
engineering
§ The way in which models are defined and managed is
based on the actual needs that they will address.
§ MDSE defines sound engineering approaches to the
definition of
§ models
§ transformations
§ development process.
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Concepts
Principles and objectives
§  Abstraction from specific realization technologies
§  Requires modeling languages, which do not hold specific concepts of
realization technologies (e.g., Java EJB)
§  Improved portability of software to new/changing technologies – model
once, build everywhere
§  Interoperability between different technologies can be automated (so
called Technology Bridges)
§  Automated code generation from abstract models
§  e.g., generation of Java-APIs, XML Schemas, etc. from UML
§  Requires expressive und precise models
§  Increased productivity and efficiency (models stay up-to-date)
§  Separate development of application and infrastructure
§  Separation of application-code and infrastructure-code (e.g., Application
Framework) increases reusability
§  Flexible development cycles as well as different development roles
possible
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
MDSE methodology ingredients
§ Concepts: The components that build up the methodology
§ Notations: The way in which concepts are represented
§ Process and rules: The activities that lead to the
production of the final product
§ Tools: Applications that ease the execution of activities or
their coordination
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
MDSE Equation
Models + Transformations = Software
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
The MD* Jungle of Acronyms
§  Model-Driven Development (MDD) is a development paradigm that
uses models as the primary artifact of the development process.
§  Model-driven Architecture (MDA) is the particular vision of MDD
proposed by the Object Management Group (OMG)
§  Model-Driven Engineering (MDE) is a superset of MDD because it
goes beyond of the pure development
§  Model-Based Engineering (or “model-based development”) (MBE) is a
softer version of ME, where models do not “drive” the process.
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Target of MDSE
§  The Problem Domain
is defined as the field
or area of expertise
that needs to be
examined to solve a
problem.
§  The Domain Model is
the conceptual model
of the problem domain
§  Technical Spaces
represent specific
working contexts for
the specification,
implementation, and
deployment of
applications.
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Modeling Languages
§ Domain-Specific Modeling Languages (DSMLs, DSLs):
languages that are designed specifically for a certain
domain or context
§ DSLs have been largely used in computer science.
§ Examples: HTML, Logo, VHDL, Mathematica, SQL
§ General Purpose Modeling Languages (GPMLs, GMLs,
or GPLs): languages that can be applied to any sector or
domain for (software) modeling purposes
§ The typical examples are: UML, Petri-nets, or state
machines
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Metamodeling
§  To represent the
models themselves as
“instances” of some
more abstract models.
§  Metamodel = yet
another abstraction,
highlighting properties
of the model itself
§  Metamodels can be
used for:
§  defining new languages
§  defining new properties
or features of existing
information (metadata)
Class
Attribute
Video
Meta-metamodel
M3
M2
M1
M0
«instanceOf»
«instanceOf»
Class
«instanceOf»
+ title: String
«instanceOf»«instanceOf»
«instanceOf»
Metamodel
Model
Real
world
objects
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Model Transformations
§  Transforming items
§  MDSE provides appropriate languages for defining model
transformation rules
§  Rules can be written manually from scratch by a developer, or can
be defined as a refined specification of an existing one.
§  Alternatively, transformations themselves can be produced
automatically out of some higher level mapping rules between
models
§  defining a mapping between elements of a model to elements to another
one (model mapping or model weaving)
§  automating the generation of the actual transformation rules through a
system that receives as input the two model definitions and the mapping
§  Transformations themselves can be seen as models!
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Concepts
Model Engineering basic architectureRealizationModeling
Model
Artifacts
(e.g. code)
Modeling
language
Platform
Meta-
modeling
language
Transformation
definition
Transformation
language
uses
defined using
defined by
Application domainApplication Meta-Level
Automation
Transformation /
Code generation
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Modelware vs. Grammarware
§ Two technical spaces
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
InstanceOf vs. ConformsTo
§ Conformance is between models
§ Instantiation is between model elements
Metamodel
class
«instanceOf» «conformsTo»
Model
object
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Model Transformations
MOF and transformation setting
MMM
MT LanguageMMa MMb
Ma Mb
«conformsTo»
«conformsTo»
«conformsTo»
«conformsTo»
«conformsTo» «conformsTo»«conformsTo»
MT
Execution Engine
MT Definition
«uses» «uses»
«executes» «writes»«reads»
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Types of models
§ Static models: Focus on the static aspects of the system in
terms of managed data and of structural shape and
architecture of the system.
§ Dynamic models: Emphasize the dynamic behavior of the
system by showing the execution.
§ Just think about UML!
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Concepts
Consequences or Preconditions
§  Modified development process
§  Two levels of development – application and infrastructure
§  Infrastructure development involves modeling language, platform (e.g.,
framework) and transformation definition
§  Application development only involves modeling – efficient reuse of the
infrastructure(s)
§  Strongly simplified application development
§  Automatic code generation replaces programming
§  Working on code level (implementation, testing, maintenance) becomes
unnecessary
§  Under which conditions is this realistic … or just futuristic?
§  New development tools
§  Tools for language definition, in particular meta modeling
§  Editor and engine for model transformations
§  Customizable tools like model editors, repositories, simulation,
verification, and testing tools
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Approaches
Overview
§ Considered Approaches
§ Computer Aided Software Engineering (CASE)
§ Executable UML
§ Model Driven Architecture (MDA)
§ Architecture Centric Model Driven Software Development (AC-MDSD)
§ MetaCASE
§ Software Factories
§ Distinguishing features
§ Special objectives and fields of application
§ Restrictions or extensions of the basic architecture
§ Concrete procedures
§ Specific technologies, languages, tools
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Approaches
CASE
§  Historic approach (end of 20th century)
§  Example: Computer Associates’ AllFusion Gen
§  Supports the Information Engineering Method by James Martin, different diagram types
§  Fully automated code generation for one architecture (3-Tier) and plenty of execution
platforms (Mainframe, Unix, .NET, J2EE, different databases, …)
§  Advantage/Disadvantage: no handling with the target platform required/possible
§  Different implementation versions of the basic architecture
§  Meta-Level often not supported / not accessible
§  Modeling language often fixed, tool specific versions
§  Execution platform often not considered or fixed
§  Advantages
§  Productivity, development and maintenance costs, quality, documentation
§  Disadvantages
§  Proprietary (version of a) modeling language
§  Tool interoperability non-existent
§  Strongly dependent on the tool vendor regarding execution platforms, further development
§  Tools are highly complex
[http://www.ca.com/us/devcenter/ca-gen.aspx/]
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Approaches
Executable UML
§  “CASE with UML”
§  UML-Subset: Class Diagram, State Machine, Package/Component
Diagram, as well as
§  UML Action Semantic Language (ASL) as programming language
§  Niche product
§  Several specialized vendors like Kennedy/Carter
§  Mainly used for the development of Embedded Systems
§  One part of the basic architecture implemented
§  Modeling language is predetermined (xUML)
§  Transformation definitions can be adapted or can be established by the
user (via ASL)
§  Advantages compared to CASE
§  Standardized modeling language based on the UML
§  Disadvantages compared to CASE
§  Limited extent of the modeling language
[S.J. Mellor, M.J. Balcer: Executable UML: a foundation for model-driven architecture. Addison-Wesley, 2002]
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Approaches
MDA
§  Interoperability through platform independent models
§  Standardization initiative of the Object Management Group (OMG), based
on OMG Standards, particularly UML
§  Counterpart to CORBA on the modeling level: interoperability between
different platforms
§  Applications which can be installed on different platforms à portability, no
problems with changing technologies, integration of different platforms,
etc.
§  Modifications to the basic architecture
§  Segmentation of the model level
§  Platform Independent Models (PIM): valid for a set of (similar) platforms
§  Platform Specific Models (PSM): special adjustments for one specific
platform
§  Requires model-to-model transformation (PIM-PSM; cf. QVT) and model-
to-code transformation (PSM-Code)
§  Platform development is not taken into consideration – in general industry
standards like J2EE, .NET, CORBA are considered as platforms
[www.omg.org/mda/]
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Base Level: UML
Platform-Independent
Model of Business
Functionality & Behavior
Automated
Transformation
Intermediate Level UML
Platform-Specific
Model|s| on
selected platforms
generated from PIM
Implementation
generated from PSMs
Modeling in a technology-
independent UML profile allows
a precise representation
of business process/rules
Executed by MDA tool which
follows OMG standard mappings.
Resulting PSM may need some
hand adjustments based
on infrastructure decisions
Modeled in a technology-
specific UML profile.
Represents every aspect of a
coded application, but still as a model
Executed by MDA tool.
Many tools on the market
execute this step very well today
Generated code and auxiliary files
ready for compilation, linking
with legacy or other code, and deployment
Automated
Transformation
ModelingSpaceCodeSpace
Approaches
MDA development cycle
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Modeling Levels
CIM, PIM, PSM
§ Computation independent models (CIM): describe
requirements and needs at a very abstract level, without any
reference to implementation aspects (e.g., description of
user requirements or business objectives);
§ Platform independent models (PIM): define the behavior
of the systems in terms of stored data and performed
algorithms, without any technical or technological details;
§ Platform-specific models (PSM): define all the
technological aspects in detail.
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Modeling levels
CIM
§ Eg., business process
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Modeling levels
MDA Platform Independent Model (PIM)
§  Specification of
structure and behaviour
of a system, abstracted
from technological
details
§  Using UML(optional)
§  Abstraction of structur and behaviour of a system by PIM
simplifies the following:
§  Validation of correctness of the model
§  Creation of implementations on different platforms
§  Tool support during implementation
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Modeling levels
MDA Platform Specific Model (PSM)
§ Specifies how the functionality described
in the PIM is realized on a certain platform
§ Using a UML-Profile for the
selected platform, e.g., EJB
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Approaches
MDA Reverse Engineering / Roundtrip Engineering
§  Re-integration onto
new platforms via
reverse engineering
of an existing
application into a PIM
und subsequent code
generation
§  MDA tools for
reverse engineering
automate the model
construction from
existing code
Legacy
App
COTS
App
Other
Other
Model
Reverse engineer
existing application
into a model and
redeploy
PIM (UML)
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Approaches
Excursus: OMG Standards
§  CORBA - Common Object Request Broker Architecture
§  Language- and platform-neutral interoperability standard (similar to
WSDL, SOAP and UDDI)
§  UML - Unified Modeling Language
§  Standardized modeling language, industry standard
§  CWM - Common Warehouse Metamodel
§  Integrated modeling language for data warehouses
§  MOF – Meta Object Facility
§  A standard for metamodels and model repositories
§  XMI - XML Metadata Interchange
§  XML-based exchange of models
§  QVT – Queries/Views/Transformations
§  Standard language for model-to-model transformations
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Approaches
MDA with UML
§  Problems when using UML as PIM/PSM
§  Method bodies?
§  Incomplete diagrams, e.g. missing attributes
§  Inconsistent diagrams
§  For the usage of the UML in Model Engineering special guidelines have to
be defined and adhered to
§  Different requirements to code generation
§  get/set methods
§  Serialization or persistence of an object
§  Security features, e.g. Java Security Policy
§  Using adaptable code generators or PIM-to-PSM transformations
§  Expressiveness of the UML
§  UML is mainly suitable for “generic” software platforms like Java,
EJB, .NET
§  Lack of support for user interfaces, code, etc.
§  MDA tools often use proprietary extensions
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Approaches
MDA
§ Many UML tools are expanded to MDA tools
§ UML profiles and code generators
§ Stage of development partly still similar to CASE: proprietary UML
profiles and transformations, limited adaptability
§ Advantages of MDA
§ Standardization of the Meta-Level
§ Separation of platform independent and platform specific models
(reuse)
§ Disadvantages of MDA
§ No special support for the development of the execution platform and
the modeling language
§ Modeling language practically limited to UML with profiles
§ Therefore limited code generation (typically no method bodies, user
interface)
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
MDSE industry
Adoption and acceptance (hype)
§ Not yet mainstream in all industries
§ Strong in core industry (defense, avionics, …)
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
MDSE Industry (2)
Adoption Lifecycle
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Tool support
§ Drawing vs. modeling
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Approaches
AC-MDSD
§  Efficient reuse of architectures
§  Special attention to the efficient reuse of infrastructures/frameworks (= architectures) for a
series of applications
§  Specific procedure model
§  Development of a reference application
§  Analysis in individual code, schematically recurring code and generic code (equal for all applications)
§  Extraction of the required modeling concepts and definition of the modeling language, transformations and
platform
§  Software support (www.openarchitectureware.org)
§  Basic architecture almost completely covered
§  When using UML profiles there is the problem of the method bodies
§  The recommended procedure is to rework these method bodies not in the model but in the
generated code
§  Advantages compared to MDA
§  Support for platform- and modeling language development
§  Disadvantages compared to MDA
§  Platform independence and/or portability not considered
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Approaches
MetaCASE/MetaEdit+
§  Free configurable CASE
§  Meta modeling for the development of domain-specific modeling
languages (DSLs)
§  The focus is on the ideal support of the application area, e.g. mobile-
phone application, traffic light pre-emption, digital clock – Intentional
Programming
§  Procedural method driven by the DSL development
§  Support in particular for the modeling level
§  Strong Support for meta modeling, e.g. graphical editors
§  Platform development not assisted specifically, the usage of components
and frameworks is recommended
§  Advantages
§  Domain-specific languages
§  Disadvantages
§  Tool support only focuses on graphical modeling
[www.metacase.com]
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Approaches
Software Factories
§  Series production of software products
§  Combines the ideas of different approaches (MDA, AC-MDSD,
MetaCASE/DSLs) as well as popular SWD-technologies (patterns,
components, frameworks)
§  Objective is the automatically processed development of software product
series, i.e., a series of applications with the same application area and the
same infrastructure
§  The SW-Factory as a marketable product
§  Support of the complete basic architecture
§  Refinements in particular on the realization level, e.g. deployment
§  Advantages
§  Comprehensive approach
§  Disadvantages
§  Approach not clearly delimited (similar MDA)
§  Only little tool support
[J. Greenfield, K. Short: Software Factories. Wiley, 2004]
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Eclipse and EMF
§ Eclipse Modeling Framework
§ Full support for metamodeling and language design
§ Fully MD (vs. programming-based tools)
§ Used in this course!
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Conclusion
Modeling in the last century
§ Critical Statements of Software Developers
§ »When it comes down to it, the real point of software
development is cutting code«
§ »Diagrams are, after all, just pretty pictures«
§ »No user is going to thank you for pretty pictures;
what a user wants is software that executes«
M. Fowler, ”UML Distilled”, 1st edition, Addison Wesley, 1997
Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Conclusion
Modeling in the new millennium – Much has changed!
§  »When it comes down to it, the real point of software development is cutting
code«
§  To model or to program, that is not the question!
§  Instead: Talk about the right abstraction level
§  »Diagrams are, after all, just pretty pictures«
§  Models are not just notation!
§  Instead: Models have a well-defined syntax in terms of metamodels
§  »No user is going to thank you for pretty pictures;
what a user wants is software that executes«
§  Models and code are not competitors!
§  Instead: Bridge the gap between design and implementation by model transformations
M. Fowler, ”UML Distilled”, 1st edition, Addison Wesley, 1997
(revisited in 2009)
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 on www.amazon.com
1 of 41

Recommended

Model-Driven Software Engineering in Practice - Chapter 1 - Introduction by
Model-Driven Software Engineering in Practice - Chapter 1 - IntroductionModel-Driven Software Engineering in Practice - Chapter 1 - Introduction
Model-Driven Software Engineering in Practice - Chapter 1 - IntroductionMarco Brambilla
23.1K views19 slides
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch... by
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...Jordi Cabot
10.2K views74 slides
Model-Driven Software Engineering in Practice - Chapter 5 - Integration of Mo... by
Model-Driven Software Engineering in Practice - Chapter 5 - Integration of Mo...Model-Driven Software Engineering in Practice - Chapter 5 - Integration of Mo...
Model-Driven Software Engineering in Practice - Chapter 5 - Integration of Mo...Marco Brambilla
8.7K views23 slides
Model-Driven Software Engineering in Practice - Chapter 6 - Modeling Language... by
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
9.5K views105 slides
Model-driven Software Engineering in practice: Chapter 3 - MDSE Use cases by
Model-driven Software Engineering in practice: Chapter 3 - MDSE Use casesModel-driven Software Engineering in practice: Chapter 3 - MDSE Use cases
Model-driven Software Engineering in practice: Chapter 3 - MDSE Use casesJordi Cabot
12K views27 slides
Model driven software engineering in practice book - chapter 7 - Developing y... by
Model driven software engineering in practice book - chapter 7 - Developing y...Model driven software engineering in practice book - chapter 7 - Developing y...
Model driven software engineering in practice book - chapter 7 - Developing y...Marco Brambilla
9.2K views123 slides

More Related Content

What's hot

6 - Architetture Software - Model transformation by
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformationMajong DevJfu
4.9K views64 slides
Introducción a la ingeniería dirigida por modelos by
Introducción a la ingeniería dirigida por modelosIntroducción a la ingeniería dirigida por modelos
Introducción a la ingeniería dirigida por modelosVicente García Díaz
2.5K views123 slides
Process models by
Process modelsProcess models
Process modelsStudent
452 views20 slides
CS6201 Software Reuse - Design Patterns by
CS6201 Software Reuse - Design PatternsCS6201 Software Reuse - Design Patterns
CS6201 Software Reuse - Design PatternsKwangshin Oh
4.5K views44 slides
dot net technology by
dot net technologydot net technology
dot net technologyImran Khan
3K views28 slides
Software development PROCESS by
Software development PROCESSSoftware development PROCESS
Software development PROCESSIvano Malavolta
3.1K views97 slides

What's hot(20)

6 - Architetture Software - Model transformation by Majong DevJfu
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation
Majong DevJfu4.9K views
Process models by Student
Process modelsProcess models
Process models
Student452 views
CS6201 Software Reuse - Design Patterns by Kwangshin Oh
CS6201 Software Reuse - Design PatternsCS6201 Software Reuse - Design Patterns
CS6201 Software Reuse - Design Patterns
Kwangshin Oh4.5K views
dot net technology by Imran Khan
dot net technologydot net technology
dot net technology
Imran Khan3K views
Domain Driven Design(DDD) Presentation by Oğuzhan Soykan
Domain Driven Design(DDD) PresentationDomain Driven Design(DDD) Presentation
Domain Driven Design(DDD) Presentation
Oğuzhan Soykan5.9K views
Low-code vs Model-Driven Engineering by Jordi Cabot
Low-code vs Model-Driven EngineeringLow-code vs Model-Driven Engineering
Low-code vs Model-Driven Engineering
Jordi Cabot16.5K views
Design Patterns - General Introduction by Asma CHERIF
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General Introduction
Asma CHERIF628 views
Software Quality Models: A Comparative Study paper by Moutasm Tamimi
Software Quality Models: A Comparative Study  paperSoftware Quality Models: A Comparative Study  paper
Software Quality Models: A Comparative Study paper
Moutasm Tamimi4.6K views
Pressman ch-1-software by AlenaDion
Pressman ch-1-softwarePressman ch-1-software
Pressman ch-1-software
AlenaDion1.1K views
Unit iii(part c - user interface design) by BALAJI A
Unit   iii(part c - user interface design)Unit   iii(part c - user interface design)
Unit iii(part c - user interface design)
BALAJI A566 views
Implementing DDD with C# by Pascal Laurin
Implementing DDD with C#Implementing DDD with C#
Implementing DDD with C#
Pascal Laurin36.3K views
A Practical Guide to Domain Driven Design: Presentation Slides by thinkddd
A Practical Guide to Domain Driven Design: Presentation SlidesA Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation Slides
thinkddd11.4K views
Design patterns by abhisheksagi
Design patternsDesign patterns
Design patterns
abhisheksagi14.9K views
Domain driven design and model driven development by Dmitry Geyzersky
Domain driven design and model driven developmentDomain driven design and model driven development
Domain driven design and model driven development
Dmitry Geyzersky5.6K views
Software quality by Sara Mehmood
Software qualitySoftware quality
Software quality
Sara Mehmood25.8K views

Similar to Model-Driven Software Engineering in Practice - Chapter 2 - MDSE Principles

Model-Driven Software Engineering in Practice - Chapter 10 - Managing models by
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
8.4K views42 slides
Sig A&D - MDA by
Sig A&D - MDASig A&D - MDA
Sig A&D - MDADavid Meijers
616 views20 slides
MDA by
MDAMDA
MDAPreetam Palwe
870 views18 slides
Mda introduction and common research problems by
Mda   introduction and common research problemsMda   introduction and common research problems
Mda introduction and common research problemsLai Ha
499 views25 slides
Web technologies: Model Driven Engineering by
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringPiero Fraternali
5.7K views45 slides
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter) by
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)siouxhotornot
1.7K views67 slides

Similar to Model-Driven Software Engineering in Practice - Chapter 2 - MDSE Principles(20)

Model-Driven Software Engineering in Practice - Chapter 10 - Managing models by Jordi Cabot
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
Jordi Cabot8.4K views
Mda introduction and common research problems by Lai Ha
Mda   introduction and common research problemsMda   introduction and common research problems
Mda introduction and common research problems
Lai Ha499 views
Web technologies: Model Driven Engineering by Piero Fraternali
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven Engineering
Piero Fraternali5.7K views
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter) by siouxhotornot
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
siouxhotornot1.7K views
Innovation in model driven software by Sagi Schliesser
Innovation in model driven softwareInnovation in model driven software
Innovation in model driven software
Sagi Schliesser213 views
Lightweight Model-Driven Engineering by Jordi Cabot
Lightweight Model-Driven EngineeringLightweight Model-Driven Engineering
Lightweight Model-Driven Engineering
Jordi Cabot3.4K views
A Lightweight MDD Process Applied in Small Projects by Gabor Guta
A Lightweight MDD Process Applied in Small ProjectsA Lightweight MDD Process Applied in Small Projects
A Lightweight MDD Process Applied in Small Projects
Gabor Guta345 views
MDD and modeling tools research by Roger Xia
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools research
Roger Xia1.2K views
Domain Driven Design Introduction by wojtek_s
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introduction
wojtek_s1.2K views
10 Things You Should Know About MDD by Johan den Haan
10 Things You Should Know About MDD10 Things You Should Know About MDD
10 Things You Should Know About MDD
Johan den Haan3K views
Agile and Modeling / MDE : friends or foes? (Agile Tour Nantes 2010) by Jordi Cabot
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 Cabot4.1K views
CS587 Project - Raychaudhury,Shaalmali by sagar.247
CS587 Project - Raychaudhury,ShaalmaliCS587 Project - Raychaudhury,Shaalmali
CS587 Project - Raychaudhury,Shaalmali
sagar.247247 views
2 trasnformation design_patterns-sandeep_katoch by IBM
2 trasnformation design_patterns-sandeep_katoch2 trasnformation design_patterns-sandeep_katoch
2 trasnformation design_patterns-sandeep_katoch
IBM499 views
Trasnformation Design Patterns - Sandeep Katoch by Roopa Nadkarni
Trasnformation Design Patterns - Sandeep KatochTrasnformation Design Patterns - Sandeep Katoch
Trasnformation Design Patterns - Sandeep Katoch
Roopa Nadkarni1.3K views

More from Marco Brambilla

Hierarchical Transformers for User Semantic Similarity - ICWE 2023 by
Hierarchical Transformers for User Semantic Similarity - ICWE 2023Hierarchical Transformers for User Semantic Similarity - ICWE 2023
Hierarchical Transformers for User Semantic Similarity - ICWE 2023Marco Brambilla
167 views31 slides
Exploring the Bi-verse. A trip across the digital and physical ecospheres by
Exploring the Bi-verse.A trip across the digital and physical ecospheresExploring the Bi-verse.A trip across the digital and physical ecospheres
Exploring the Bi-verse. A trip across the digital and physical ecospheresMarco Brambilla
378 views61 slides
Conversation graphs in Online Social Media by
Conversation graphs in Online Social MediaConversation graphs in Online Social Media
Conversation graphs in Online Social MediaMarco Brambilla
389 views30 slides
Trigger.eu: Cocteau game for policy making - introduction and demo by
Trigger.eu: Cocteau game for policy making - introduction and demoTrigger.eu: Cocteau game for policy making - introduction and demo
Trigger.eu: Cocteau game for policy making - introduction and demoMarco Brambilla
315 views26 slides
Generation of Realistic Navigation Paths for Web Site Testing using RNNs and ... by
Generation of Realistic Navigation Paths for Web Site Testing using RNNs and ...Generation of Realistic Navigation Paths for Web Site Testing using RNNs and ...
Generation of Realistic Navigation Paths for Web Site Testing using RNNs and ...Marco Brambilla
1.3K views14 slides
Analyzing rich club behavior in open source projects by
Analyzing rich club behavior in open source projectsAnalyzing rich club behavior in open source projects
Analyzing rich club behavior in open source projectsMarco Brambilla
2K views22 slides

More from Marco Brambilla(20)

Hierarchical Transformers for User Semantic Similarity - ICWE 2023 by Marco Brambilla
Hierarchical Transformers for User Semantic Similarity - ICWE 2023Hierarchical Transformers for User Semantic Similarity - ICWE 2023
Hierarchical Transformers for User Semantic Similarity - ICWE 2023
Marco Brambilla167 views
Exploring the Bi-verse. A trip across the digital and physical ecospheres by Marco Brambilla
Exploring the Bi-verse.A trip across the digital and physical ecospheresExploring the Bi-verse.A trip across the digital and physical ecospheres
Exploring the Bi-verse. A trip across the digital and physical ecospheres
Marco Brambilla378 views
Conversation graphs in Online Social Media by Marco Brambilla
Conversation graphs in Online Social MediaConversation graphs in Online Social Media
Conversation graphs in Online Social Media
Marco Brambilla389 views
Trigger.eu: Cocteau game for policy making - introduction and demo by Marco Brambilla
Trigger.eu: Cocteau game for policy making - introduction and demoTrigger.eu: Cocteau game for policy making - introduction and demo
Trigger.eu: Cocteau game for policy making - introduction and demo
Marco Brambilla315 views
Generation of Realistic Navigation Paths for Web Site Testing using RNNs and ... by Marco Brambilla
Generation of Realistic Navigation Paths for Web Site Testing using RNNs and ...Generation of Realistic Navigation Paths for Web Site Testing using RNNs and ...
Generation of Realistic Navigation Paths for Web Site Testing using RNNs and ...
Marco Brambilla1.3K views
Analyzing rich club behavior in open source projects by Marco Brambilla
Analyzing rich club behavior in open source projectsAnalyzing rich club behavior in open source projects
Analyzing rich club behavior in open source projects
Marco Brambilla2K views
Analysis of On-line Debate on Long-Running Political Phenomena. The Brexit C... by Marco Brambilla
Analysis of On-line Debate on Long-Running Political Phenomena.The Brexit C...Analysis of On-line Debate on Long-Running Political Phenomena.The Brexit C...
Analysis of On-line Debate on Long-Running Political Phenomena. The Brexit C...
Marco Brambilla445 views
Community analysis using graph representation learning on social networks by Marco Brambilla
Community analysis using graph representation learning on social networksCommunity analysis using graph representation learning on social networks
Community analysis using graph representation learning on social networks
Marco Brambilla1.6K views
Available Data Science M.Sc. Thesis Proposals by Marco Brambilla
Available Data Science M.Sc. Thesis Proposals Available Data Science M.Sc. Thesis Proposals
Available Data Science M.Sc. Thesis Proposals
Marco Brambilla1.5K views
Data Cleaning for social media knowledge extraction by Marco Brambilla
Data Cleaning for social media knowledge extractionData Cleaning for social media knowledge extraction
Data Cleaning for social media knowledge extraction
Marco Brambilla1.6K views
Iterative knowledge extraction from social networks. The Web Conference 2018 by Marco Brambilla
Iterative knowledge extraction from social networks. The Web Conference 2018Iterative knowledge extraction from social networks. The Web Conference 2018
Iterative knowledge extraction from social networks. The Web Conference 2018
Marco Brambilla1.1K views
Driving Style and Behavior Analysis based on Trip Segmentation over GPS Info... by Marco Brambilla
Driving Style and Behavior Analysis based on Trip Segmentation over GPS  Info...Driving Style and Behavior Analysis based on Trip Segmentation over GPS  Info...
Driving Style and Behavior Analysis based on Trip Segmentation over GPS Info...
Marco Brambilla2.3K views
Myths and challenges in knowledge extraction and analysis from human-generate... by Marco Brambilla
Myths and challenges in knowledge extraction and analysis from human-generate...Myths and challenges in knowledge extraction and analysis from human-generate...
Myths and challenges in knowledge extraction and analysis from human-generate...
Marco Brambilla2K views
Harvesting Knowledge from Social Networks: Extracting Typed Relationships amo... by Marco Brambilla
Harvesting Knowledge from Social Networks: Extracting Typed Relationships amo...Harvesting Knowledge from Social Networks: Extracting Typed Relationships amo...
Harvesting Knowledge from Social Networks: Extracting Typed Relationships amo...
Marco Brambilla634 views
Model-driven Development of User Interfaces for IoT via Domain-specific Comp... by Marco Brambilla
Model-driven Development of  User Interfaces for IoT via Domain-specific Comp...Model-driven Development of  User Interfaces for IoT via Domain-specific Comp...
Model-driven Development of User Interfaces for IoT via Domain-specific Comp...
Marco Brambilla1.4K views
A Model-Based Method for Seamless Web and Mobile Experience. Splash 2016 conf. by Marco Brambilla
A Model-Based Method for  Seamless Web and Mobile Experience. Splash 2016 conf.A Model-Based Method for  Seamless Web and Mobile Experience. Splash 2016 conf.
A Model-Based Method for Seamless Web and Mobile Experience. Splash 2016 conf.
Marco Brambilla783 views
Big Data and Stream Data Analysis at Politecnico di Milano by Marco Brambilla
Big Data and Stream Data Analysis at Politecnico di MilanoBig Data and Stream Data Analysis at Politecnico di Milano
Big Data and Stream Data Analysis at Politecnico di Milano
Marco Brambilla701 views
On the Quest for Changing Knowledge. Capturing emerging entities from social ... by Marco Brambilla
On the Quest for Changing Knowledge. Capturing emerging entities from social ...On the Quest for Changing Knowledge. Capturing emerging entities from social ...
On the Quest for Changing Knowledge. Capturing emerging entities from social ...
Marco Brambilla1.6K views
Studying Multicultural Diversity of Cities and Neighborhoods through Social M... by Marco Brambilla
Studying Multicultural Diversity of Cities and Neighborhoods through Social M...Studying Multicultural Diversity of Cities and Neighborhoods through Social M...
Studying Multicultural Diversity of Cities and Neighborhoods through Social M...
Marco Brambilla3.2K views

Recently uploaded

nintendo_64.pptx by
nintendo_64.pptxnintendo_64.pptx
nintendo_64.pptxpaiga02016
6 views7 slides
Introduction to Git Source Control by
Introduction to Git Source ControlIntroduction to Git Source Control
Introduction to Git Source ControlJohn Valentino
7 views18 slides
Airline Booking Software by
Airline Booking SoftwareAirline Booking Software
Airline Booking SoftwareSharmiMehta
9 views26 slides
.NET Deserialization Attacks by
.NET Deserialization Attacks.NET Deserialization Attacks
.NET Deserialization AttacksDharmalingam Ganesan
5 views50 slides
predicting-m3-devopsconMunich-2023.pptx by
predicting-m3-devopsconMunich-2023.pptxpredicting-m3-devopsconMunich-2023.pptx
predicting-m3-devopsconMunich-2023.pptxTier1 app
8 views24 slides
predicting-m3-devopsconMunich-2023-v2.pptx by
predicting-m3-devopsconMunich-2023-v2.pptxpredicting-m3-devopsconMunich-2023-v2.pptx
predicting-m3-devopsconMunich-2023-v2.pptxTier1 app
12 views33 slides

Recently uploaded(20)

Introduction to Git Source Control by John Valentino
Introduction to Git Source ControlIntroduction to Git Source Control
Introduction to Git Source Control
John Valentino7 views
Airline Booking Software by SharmiMehta
Airline Booking SoftwareAirline Booking Software
Airline Booking Software
SharmiMehta9 views
predicting-m3-devopsconMunich-2023.pptx by Tier1 app
predicting-m3-devopsconMunich-2023.pptxpredicting-m3-devopsconMunich-2023.pptx
predicting-m3-devopsconMunich-2023.pptx
Tier1 app8 views
predicting-m3-devopsconMunich-2023-v2.pptx by Tier1 app
predicting-m3-devopsconMunich-2023-v2.pptxpredicting-m3-devopsconMunich-2023-v2.pptx
predicting-m3-devopsconMunich-2023-v2.pptx
Tier1 app12 views
JioEngage_Presentation.pptx by admin125455
JioEngage_Presentation.pptxJioEngage_Presentation.pptx
JioEngage_Presentation.pptx
admin1254558 views
aATP - New Correlation Confirmation Feature.pptx by EsatEsenek1
aATP - New Correlation Confirmation Feature.pptxaATP - New Correlation Confirmation Feature.pptx
aATP - New Correlation Confirmation Feature.pptx
EsatEsenek1205 views
Generic or specific? Making sensible software design decisions by Bert Jan Schrijver
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium... by Lisi Hocke
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...
Lisi Hocke35 views
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated... by TomHalpin9
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...
TomHalpin96 views
Ports-and-Adapters Architecture for Embedded HMI by Burkhard Stubert
Ports-and-Adapters Architecture for Embedded HMIPorts-and-Adapters Architecture for Embedded HMI
Ports-and-Adapters Architecture for Embedded HMI
Burkhard Stubert33 views
ADDO_2022_CICID_Tom_Halpin.pdf by TomHalpin9
ADDO_2022_CICID_Tom_Halpin.pdfADDO_2022_CICID_Tom_Halpin.pdf
ADDO_2022_CICID_Tom_Halpin.pdf
TomHalpin95 views

Model-Driven Software Engineering in Practice - Chapter 2 - MDSE Principles

  • 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 PRINCIPLES Chapter #2
  • 2. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. MDSE Principles Contents § Concepts § Approaches § Adoption
  • 3. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Models What is a model? Mapping Feature A model is based on an original (=system) Reduction Feature A model only reflects a (relevant) selection of the original‘s properties Pragmatic Feature A model needs to be usable in place of an original with respect to some purpose ModelrepresentsSystem Purposes: •  descriptive purposes •  prescriptive purposes
  • 4. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. MDSE aim at large § MDSE considers models as first-class citizens in software engineering § The way in which models are defined and managed is based on the actual needs that they will address. § MDSE defines sound engineering approaches to the definition of § models § transformations § development process.
  • 5. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Concepts Principles and objectives §  Abstraction from specific realization technologies §  Requires modeling languages, which do not hold specific concepts of realization technologies (e.g., Java EJB) §  Improved portability of software to new/changing technologies – model once, build everywhere §  Interoperability between different technologies can be automated (so called Technology Bridges) §  Automated code generation from abstract models §  e.g., generation of Java-APIs, XML Schemas, etc. from UML §  Requires expressive und precise models §  Increased productivity and efficiency (models stay up-to-date) §  Separate development of application and infrastructure §  Separation of application-code and infrastructure-code (e.g., Application Framework) increases reusability §  Flexible development cycles as well as different development roles possible
  • 6. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. MDSE methodology ingredients § Concepts: The components that build up the methodology § Notations: The way in which concepts are represented § Process and rules: The activities that lead to the production of the final product § Tools: Applications that ease the execution of activities or their coordination
  • 7. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. MDSE Equation Models + Transformations = Software
  • 8. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. The MD* Jungle of Acronyms §  Model-Driven Development (MDD) is a development paradigm that uses models as the primary artifact of the development process. §  Model-driven Architecture (MDA) is the particular vision of MDD proposed by the Object Management Group (OMG) §  Model-Driven Engineering (MDE) is a superset of MDD because it goes beyond of the pure development §  Model-Based Engineering (or “model-based development”) (MBE) is a softer version of ME, where models do not “drive” the process.
  • 9. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Target of MDSE §  The Problem Domain is defined as the field or area of expertise that needs to be examined to solve a problem. §  The Domain Model is the conceptual model of the problem domain §  Technical Spaces represent specific working contexts for the specification, implementation, and deployment of applications.
  • 10. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Modeling Languages § Domain-Specific Modeling Languages (DSMLs, DSLs): languages that are designed specifically for a certain domain or context § DSLs have been largely used in computer science. § Examples: HTML, Logo, VHDL, Mathematica, SQL § General Purpose Modeling Languages (GPMLs, GMLs, or GPLs): languages that can be applied to any sector or domain for (software) modeling purposes § The typical examples are: UML, Petri-nets, or state machines
  • 11. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Metamodeling §  To represent the models themselves as “instances” of some more abstract models. §  Metamodel = yet another abstraction, highlighting properties of the model itself §  Metamodels can be used for: §  defining new languages §  defining new properties or features of existing information (metadata) Class Attribute Video Meta-metamodel M3 M2 M1 M0 «instanceOf» «instanceOf» Class «instanceOf» + title: String «instanceOf»«instanceOf» «instanceOf» Metamodel Model Real world objects
  • 12. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Model Transformations §  Transforming items §  MDSE provides appropriate languages for defining model transformation rules §  Rules can be written manually from scratch by a developer, or can be defined as a refined specification of an existing one. §  Alternatively, transformations themselves can be produced automatically out of some higher level mapping rules between models §  defining a mapping between elements of a model to elements to another one (model mapping or model weaving) §  automating the generation of the actual transformation rules through a system that receives as input the two model definitions and the mapping §  Transformations themselves can be seen as models!
  • 13. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Concepts Model Engineering basic architectureRealizationModeling Model Artifacts (e.g. code) Modeling language Platform Meta- modeling language Transformation definition Transformation language uses defined using defined by Application domainApplication Meta-Level Automation Transformation / Code generation
  • 14. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Modelware vs. Grammarware § Two technical spaces
  • 15. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. InstanceOf vs. ConformsTo § Conformance is between models § Instantiation is between model elements Metamodel class «instanceOf» «conformsTo» Model object
  • 16. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Model Transformations MOF and transformation setting MMM MT LanguageMMa MMb Ma Mb «conformsTo» «conformsTo» «conformsTo» «conformsTo» «conformsTo» «conformsTo»«conformsTo» MT Execution Engine MT Definition «uses» «uses» «executes» «writes»«reads»
  • 17. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Types of models § Static models: Focus on the static aspects of the system in terms of managed data and of structural shape and architecture of the system. § Dynamic models: Emphasize the dynamic behavior of the system by showing the execution. § Just think about UML!
  • 18. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Concepts Consequences or Preconditions §  Modified development process §  Two levels of development – application and infrastructure §  Infrastructure development involves modeling language, platform (e.g., framework) and transformation definition §  Application development only involves modeling – efficient reuse of the infrastructure(s) §  Strongly simplified application development §  Automatic code generation replaces programming §  Working on code level (implementation, testing, maintenance) becomes unnecessary §  Under which conditions is this realistic … or just futuristic? §  New development tools §  Tools for language definition, in particular meta modeling §  Editor and engine for model transformations §  Customizable tools like model editors, repositories, simulation, verification, and testing tools
  • 19. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Approaches Overview § Considered Approaches § Computer Aided Software Engineering (CASE) § Executable UML § Model Driven Architecture (MDA) § Architecture Centric Model Driven Software Development (AC-MDSD) § MetaCASE § Software Factories § Distinguishing features § Special objectives and fields of application § Restrictions or extensions of the basic architecture § Concrete procedures § Specific technologies, languages, tools
  • 20. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Approaches CASE §  Historic approach (end of 20th century) §  Example: Computer Associates’ AllFusion Gen §  Supports the Information Engineering Method by James Martin, different diagram types §  Fully automated code generation for one architecture (3-Tier) and plenty of execution platforms (Mainframe, Unix, .NET, J2EE, different databases, …) §  Advantage/Disadvantage: no handling with the target platform required/possible §  Different implementation versions of the basic architecture §  Meta-Level often not supported / not accessible §  Modeling language often fixed, tool specific versions §  Execution platform often not considered or fixed §  Advantages §  Productivity, development and maintenance costs, quality, documentation §  Disadvantages §  Proprietary (version of a) modeling language §  Tool interoperability non-existent §  Strongly dependent on the tool vendor regarding execution platforms, further development §  Tools are highly complex [http://www.ca.com/us/devcenter/ca-gen.aspx/]
  • 21. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Approaches Executable UML §  “CASE with UML” §  UML-Subset: Class Diagram, State Machine, Package/Component Diagram, as well as §  UML Action Semantic Language (ASL) as programming language §  Niche product §  Several specialized vendors like Kennedy/Carter §  Mainly used for the development of Embedded Systems §  One part of the basic architecture implemented §  Modeling language is predetermined (xUML) §  Transformation definitions can be adapted or can be established by the user (via ASL) §  Advantages compared to CASE §  Standardized modeling language based on the UML §  Disadvantages compared to CASE §  Limited extent of the modeling language [S.J. Mellor, M.J. Balcer: Executable UML: a foundation for model-driven architecture. Addison-Wesley, 2002]
  • 22. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Approaches MDA §  Interoperability through platform independent models §  Standardization initiative of the Object Management Group (OMG), based on OMG Standards, particularly UML §  Counterpart to CORBA on the modeling level: interoperability between different platforms §  Applications which can be installed on different platforms à portability, no problems with changing technologies, integration of different platforms, etc. §  Modifications to the basic architecture §  Segmentation of the model level §  Platform Independent Models (PIM): valid for a set of (similar) platforms §  Platform Specific Models (PSM): special adjustments for one specific platform §  Requires model-to-model transformation (PIM-PSM; cf. QVT) and model- to-code transformation (PSM-Code) §  Platform development is not taken into consideration – in general industry standards like J2EE, .NET, CORBA are considered as platforms [www.omg.org/mda/]
  • 23. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Base Level: UML Platform-Independent Model of Business Functionality & Behavior Automated Transformation Intermediate Level UML Platform-Specific Model|s| on selected platforms generated from PIM Implementation generated from PSMs Modeling in a technology- independent UML profile allows a precise representation of business process/rules Executed by MDA tool which follows OMG standard mappings. Resulting PSM may need some hand adjustments based on infrastructure decisions Modeled in a technology- specific UML profile. Represents every aspect of a coded application, but still as a model Executed by MDA tool. Many tools on the market execute this step very well today Generated code and auxiliary files ready for compilation, linking with legacy or other code, and deployment Automated Transformation ModelingSpaceCodeSpace Approaches MDA development cycle
  • 24. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Modeling Levels CIM, PIM, PSM § Computation independent models (CIM): describe requirements and needs at a very abstract level, without any reference to implementation aspects (e.g., description of user requirements or business objectives); § Platform independent models (PIM): define the behavior of the systems in terms of stored data and performed algorithms, without any technical or technological details; § Platform-specific models (PSM): define all the technological aspects in detail.
  • 25. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Modeling levels CIM § Eg., business process
  • 26. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Modeling levels MDA Platform Independent Model (PIM) §  Specification of structure and behaviour of a system, abstracted from technological details §  Using UML(optional) §  Abstraction of structur and behaviour of a system by PIM simplifies the following: §  Validation of correctness of the model §  Creation of implementations on different platforms §  Tool support during implementation
  • 27. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Modeling levels MDA Platform Specific Model (PSM) § Specifies how the functionality described in the PIM is realized on a certain platform § Using a UML-Profile for the selected platform, e.g., EJB
  • 28. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Approaches MDA Reverse Engineering / Roundtrip Engineering §  Re-integration onto new platforms via reverse engineering of an existing application into a PIM und subsequent code generation §  MDA tools for reverse engineering automate the model construction from existing code Legacy App COTS App Other Other Model Reverse engineer existing application into a model and redeploy PIM (UML)
  • 29. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Approaches Excursus: OMG Standards §  CORBA - Common Object Request Broker Architecture §  Language- and platform-neutral interoperability standard (similar to WSDL, SOAP and UDDI) §  UML - Unified Modeling Language §  Standardized modeling language, industry standard §  CWM - Common Warehouse Metamodel §  Integrated modeling language for data warehouses §  MOF – Meta Object Facility §  A standard for metamodels and model repositories §  XMI - XML Metadata Interchange §  XML-based exchange of models §  QVT – Queries/Views/Transformations §  Standard language for model-to-model transformations
  • 30. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Approaches MDA with UML §  Problems when using UML as PIM/PSM §  Method bodies? §  Incomplete diagrams, e.g. missing attributes §  Inconsistent diagrams §  For the usage of the UML in Model Engineering special guidelines have to be defined and adhered to §  Different requirements to code generation §  get/set methods §  Serialization or persistence of an object §  Security features, e.g. Java Security Policy §  Using adaptable code generators or PIM-to-PSM transformations §  Expressiveness of the UML §  UML is mainly suitable for “generic” software platforms like Java, EJB, .NET §  Lack of support for user interfaces, code, etc. §  MDA tools often use proprietary extensions
  • 31. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Approaches MDA § Many UML tools are expanded to MDA tools § UML profiles and code generators § Stage of development partly still similar to CASE: proprietary UML profiles and transformations, limited adaptability § Advantages of MDA § Standardization of the Meta-Level § Separation of platform independent and platform specific models (reuse) § Disadvantages of MDA § No special support for the development of the execution platform and the modeling language § Modeling language practically limited to UML with profiles § Therefore limited code generation (typically no method bodies, user interface)
  • 32. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. MDSE industry Adoption and acceptance (hype) § Not yet mainstream in all industries § Strong in core industry (defense, avionics, …)
  • 33. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. MDSE Industry (2) Adoption Lifecycle
  • 34. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Tool support § Drawing vs. modeling
  • 35. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Approaches AC-MDSD §  Efficient reuse of architectures §  Special attention to the efficient reuse of infrastructures/frameworks (= architectures) for a series of applications §  Specific procedure model §  Development of a reference application §  Analysis in individual code, schematically recurring code and generic code (equal for all applications) §  Extraction of the required modeling concepts and definition of the modeling language, transformations and platform §  Software support (www.openarchitectureware.org) §  Basic architecture almost completely covered §  When using UML profiles there is the problem of the method bodies §  The recommended procedure is to rework these method bodies not in the model but in the generated code §  Advantages compared to MDA §  Support for platform- and modeling language development §  Disadvantages compared to MDA §  Platform independence and/or portability not considered
  • 36. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Approaches MetaCASE/MetaEdit+ §  Free configurable CASE §  Meta modeling for the development of domain-specific modeling languages (DSLs) §  The focus is on the ideal support of the application area, e.g. mobile- phone application, traffic light pre-emption, digital clock – Intentional Programming §  Procedural method driven by the DSL development §  Support in particular for the modeling level §  Strong Support for meta modeling, e.g. graphical editors §  Platform development not assisted specifically, the usage of components and frameworks is recommended §  Advantages §  Domain-specific languages §  Disadvantages §  Tool support only focuses on graphical modeling [www.metacase.com]
  • 37. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Approaches Software Factories §  Series production of software products §  Combines the ideas of different approaches (MDA, AC-MDSD, MetaCASE/DSLs) as well as popular SWD-technologies (patterns, components, frameworks) §  Objective is the automatically processed development of software product series, i.e., a series of applications with the same application area and the same infrastructure §  The SW-Factory as a marketable product §  Support of the complete basic architecture §  Refinements in particular on the realization level, e.g. deployment §  Advantages §  Comprehensive approach §  Disadvantages §  Approach not clearly delimited (similar MDA) §  Only little tool support [J. Greenfield, K. Short: Software Factories. Wiley, 2004]
  • 38. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Eclipse and EMF § Eclipse Modeling Framework § Full support for metamodeling and language design § Fully MD (vs. programming-based tools) § Used in this course!
  • 39. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Conclusion Modeling in the last century § Critical Statements of Software Developers § »When it comes down to it, the real point of software development is cutting code« § »Diagrams are, after all, just pretty pictures« § »No user is going to thank you for pretty pictures; what a user wants is software that executes« M. Fowler, ”UML Distilled”, 1st edition, Addison Wesley, 1997
  • 40. Marco Brambilla, Jordi Cabot, Manuel Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool 2012. Conclusion Modeling in the new millennium – Much has changed! §  »When it comes down to it, the real point of software development is cutting code« §  To model or to program, that is not the question! §  Instead: Talk about the right abstraction level §  »Diagrams are, after all, just pretty pictures« §  Models are not just notation! §  Instead: Models have a well-defined syntax in terms of metamodels §  »No user is going to thank you for pretty pictures; what a user wants is software that executes« §  Models and code are not competitors! §  Instead: Bridge the gap between design and implementation by model transformations M. Fowler, ”UML Distilled”, 1st edition, Addison Wesley, 1997 (revisited in 2009)
  • 41. 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 on www.amazon.com