SlideShare une entreprise Scribd logo
1  sur  64
Télécharger pour lire hors ligne
Model transformations


     Paolo Ciancarini
Agenda
    Modeling platforms and Platform Independence
    Model Transformations
    MDA in the Eclipse IDE
    The Atlas Transformation Language
CIM, PIM and PSM

     CIM: Computation Independent Model
         A vocabulary of a problem domain useful to a
          variety of stakeholders
     PIM: Platform Independent Model
         A specification of a system that does not take into
          account technical details of a specific platform
     PSM: Platform Specific Model
         A specification of a system expressed in terms of
          the specification model of the platform
The MDA process (abstraction)




www.ibm.com/developerworks/ibm/library/i-modev1/!
PIM: an Example
PSM: an Example
MDA process for a complex system
MDA: Mappings between Models


                           From PIM to Specific
       Platform-               Middleware
     Independent
                          Technologies via OMG
        Model
                            Standard Mappings


  CORBA       Java/EJB   XML/SOAP     Other
   Model       Model       Model      Model
                                                       From PSM to
                                                  application interfaces,
                                                  code, GUI descriptors,
                                                    SQL queries, etc.
  CORBA       Java/EJB   XML/SOAP     Other
Model Representation

                UML Model (PIM)                XMI Document
                      Auto                      <Auto>
                                                  <Color> Red </Color>
                 Color : String     MOF
                                                  <Door> 4 </Door>
                 Door : Integer
                                                  <Engine> 2 </Engine>
                 Engine : Integer
                                                </Auto>




                                             XMI DTD, Schema
      IDL, Java…                          <!Element Auto
interface Auto                              (Color*,
   { Class Auto                              Door*,
    }; {public String color;                 Engine*)>
         public int Door;
         public int Engine;
        }
Model Transformation

    Working with interrelated models requires to ensure
     their vertical, horizontal, and evolutionary consistency
    This activity can be performed taking one or more
     source models as input and producing one or more
     target models as output
    The process of model transformation must comply with
     a set of transformation rules
Model Transformation
PIM to PSM Transformation


    It is used when the PIM is mapped into
     a platform specific infrastructure
       The transformation is based on a set of
        platform features
       These features should be described by
        UML
PIM to PIM Transformation


    It is used when models are enhanced,
     refined or filtered during the
     development lifecycle without needing
     any platform specific information
         Example: analysis-to-design model
          transformation
PSM to PSM Transformation


    It is used for component realization
     and deployment
         Generally, it is related to platform
          dependent model refinement
PSM to PIM Transformation


    It is performed for abstracting models of
     existing technology-dependent
     implementations into a platform independent
     model
         It is a refactoring process hard to be fully
          automated
Model Mapping
    A technique for setting the specifications, that drives
     the transformation from the source model to the target
     model
    The main mapping techniques are [8s]:
         Model-Type mapping
               The mapping is realized between platform-independent data types and platform-
                specific data types. The two kinds of data type drive the transformation
         Metamodel mapping
               The mapping is realized between the PIM metamodel data type and the PSM
                metamodel data type.
         Model-Instance mapping
               It uses marks, i.e. concepts of the target-model explaining how to transform source
                model elements
Model-Type Mapping
Metamodel Mapping
Model-Instance Mapping
Approaches to Model Transformations

    The tools performing model transformations can use:
         Direct transformations: internal model representation
          manipulated by specific APIs
         Intermediate transformations: model exported in an
          external standard form (e.g., XMI) that can be manipulated
         Transformation language: a language with specific
          constructs for defining and applying transformations
Platform Independence
    Platform Independence is a “fuzzy” concept
    It means independence from a specific execution and
     development domains
    The domains from which the independence can be
     asserted are the usual software engineering
     abstraction domains:
        Programming Languages

        Software Architectures

        Operative Systems

        Data Representation
Ex.: Bank Account Architectural PIM




•  Nothing said about the
architecture and the
developing technologies
•  It is the model used by bank
manager and stakeholders
Ex.: Bank Account Architectural PSM




•  It specifies a remote and some local objects
•  It adds some implementation information
•  It is the model used by analyst and
  programmers


•  it conforms to the PIM
•  it can be a PIM for a further platform specific model
MDA Tools

    Currently, there are no tools that implement MDA
     as envisioned by the OMG community
         MDA itself is still being defined
    Existing tools allow partial transformations
    They are usually limited to
         specific platforms
         specific languages
         specific transformations
    Usually they are evolutions of tools born in other
     research fields
         Especially in Generative programming and
          Metaprogramming
EMF and ATL
      Two interesting technologies are emerging that are
       more and more used in MDA tools:
1.     The Eclipse Modeling Framework (EMF) is the
       analogous of MOF in the Eclipse IDE Platform
          It consists of an extended set of API, a metamodelling
           framework named Ecore and an Eclipse IDE plug-in
2.     The Atlas Transformation Language (ATL) is a
       language specifically targeted for model
       transformations
          It supports MOF 1.4 and Ecore while conforming to MDA
           transformation specifications
MDA and Middleware
           Middleware is an enabling
           technology for MDA




      Generators’
      increasing
      complexity
From Coding to Modeling

    What is the difference between programming
     language abstractions and MDE/MDA
     abstractions?
         The former allow to abstract the solution space
               they are “computing oriented”
         MDE/MDA allow to abstract the problem space
               they are “application domain oriented”
    The current Enterprise Computing scenario
     requires to move the software development
     emphasis from coding to modeling systems
Metadata Integration
          Why we cannot use a single language to describe all the
           aspects of a system?

         The problem is not that we
          use different languages to
          describe different aspects of
          software components
         The problem is that we have
          no overall architecture for
          integrating specifications
          made in different languages
         MDA defines a single
          architecture for the integrated
          management of metadata
The Eclipse IDE in a Nutshell
    Eclipse is an open Universal Tooling Platform
         Open Source licensed via Common Public License
         Managed via the Eclipse Project (www.eclipse.org)
         Maintained by the Eclipse Foundation
               An independent consortium whose members include: IBM, SuSe,
                Borland, RedHat, HP, SAP, OMG
    It provides an open platform for application
     development tools
         It runs on a wide range of operating systems
         It is language-neutral
         It facilitates seamless tool integration
         It adds new tools to existing installed products
What is Eclipse?

     A general purpose IDE
     An open, extensible architecture based on plug-ins


Plug-in development environment          PDE


          Java development tools         JDT


                 Eclipse Platform      Platform

  Standard Java2 Virtual Machine       Java VM
The Eclipse Architecture
                                               Another
                    Eclipse Platform
                                                 App

      Java             Workbench        Help
  Development
     Tools                   JFace
     (JDT)
                       SWT
                                       Team      Your
                                               Tool/App

    Plug-in            Workspace
  Development                          Debug
  Environment
     (PDE)

                                                 Their
                         Platform Runtime        Tool

  Eclipse Project
MDA in Eclipse
    There are a number of plug-ins that support
     the MDA features in Eclipse
    Indeed, there is not a single tool that gives a
     full support of MDA features as envisioned
     by the OMG
    Three MDA plug-in categories can be
     identified basing on their focus:
       1.  Models representation and management
       2.  Models transformation
       3.  Models-to-Code generation
Notable MDA Projects in Eclipse
    Name                               Description                          Categ./
                                                                            License
   Acceleo       A MDA based code generator for various target middleware 3 / Free
                 and languages: Java EE, C#, Python, PHP etc.

    Atlas        It defines a management environment for MDE repositories 1 / Free
                 based on the "megamodel" approach. A megamodel is a
 Megamodel       registry of model resources available in a given scope (a
 Management      zone) In order to manage megamodels users may use
   (AM3)         metamodels from a library or invent their own ones for new
                 kinds of artifacts.
 Atlas Model     A tool for representing correspondence between models by   1 / Free
                 means of a model (named weaving model). Common
Weaver (AMW)
                 weaving use cases are: data exchange, data integration,
                 model merging, etc
     Atlas       A model transformation language that provides              2 / Free
                 ways to produce a set of target models from a
Transformation   set of source models. It also provide a toolkit
Language (ATL)   (the ATL IDE) with a number of tools aimed to
                 ease the development of ATL transformations.
Notable MDA Projects in Eclipse

    Name                              Description                           Categ./
                                                                            License
   Epsilon       It can be used to manage models of different modeling      1/Free
                 technologies using a family of integrated model
                 management languages. It can be used for model
                 navigation, modification, transformation, validation and
                 comparison. It also provides tools for defining and
                 executing wizard and for code profiling and monitoring.
  IBM Model      Is a set of tools that helps to make comparisons, check    2 / IBM
                 consistency, and implement transformations between         License
Transformation   Eclipse Modeling Framework (EMF) models.
  Framework
   Kermeta       A metaprogramming environment based on an object           2 / Free
                 oriented executable meta-modeling paradigm: a
                 Domain Specific Language (DSL) optimized for
                 metamodel engineering. It allows model and metamodel
                 management, weaving and transformation.
Notable MDA Projects in Eclipse

        Name                                       Description                                Categ./
                                                                                              License
openArchitectur It is suite of tools and components supporting in                            1, 3 / Free
                model driven software development. It is built upon a
    eWare       modular model-to-code generator framework
                           implemented in Java. It supports arbitrary import (model)
                           formats, meta models, and output (code) formats It is “a
                           tool for building MDA tools”
    AndroMDA               AndroMDA is an extensible generator framework that                3 / Free
                           adheres to MDA. Models from UML tools are
                           transformed into deployable components different
                           platforms: J2EE, Spring, .NET. It provides patterns for
                           Axis, Struts, JSF, Spring, Hibernate and other toolkits
         QiQu              It transforms an UML-model into source-code (Java, C#,            3 / Free
                           Cobol etc.). It relies on XMI and allows to build a
                           domain-specific generator that transform models into
                           code or anything else (XML, HTML, Scripts, Excel etc.)

Modeling Eclipse Plugins: http://www.eclipseplugincentral.com/Web_Links-index-req-viewcatlink-cid-11.html
MDA Enabling Technologies in Eclipse


    There are a set of de-facto standard Eclipse
     plug-ins that enable MDE features
    These plug-ins enable upper-standing MDA
     plug-ins to operate
    We consider an essential subset of these
     plug-ins in order to start experiencing with
     MDA
MDA Plug-ins in Eclipse
QVT (Query View Transform)

    QVT is an OMG specification
    QVT extends OCL 2.0 to imperative OCL
    QVT defines 3 DSL named Relations,
     Core and Operational Mappings
    Relations and Core are declarative
     languages
    OperationalMapping is an imperative
     language with constructs like loops,
     conditions, etc.
A Transformation Language: ATL
    The Atlas Transformation Language (ATL)
     is an answer to the OMG Query View and
     Transformation (QVT) RFP
    ATL is a QVT-like transformation language
     and engine with a large user community and
     an open source library of transformations
    ATL provides the developers with a mean to
     specify the way to produce a number of
     target models from a set of source models
Eclipse and Modeling Plug-ins

    The Eclipse Modeling Framework (EMF) is a
     framework and a code generation facility
         It allows to define and mange models in Java,
          XML and UML
         It relies on a meta-metamodel named Ecore
    UML2 is an EMF-based implementation of the
     UML 2.x metamodel
         It provides the support for UML model plug-ins
         It defines a common XMI schema for diagram
          interchange
Eclipse and Graphical Plug-ins
    The Graphical Editing Framework (GEF) allows
     to create a graphical editor under Eclipse
         GEF provides a layout and rendering toolkit for
          displaying graphs, manage palettes, handle and
          resize graphical objects
    The Graphical Modeling Framework (GMF)
     provides components and runtime
     infrastructures for developing graphical editors
     based on EMF and GEF
         reusable components for graphical editors
         generative infrastructure to graphical editor production
UML Modeler Plug-ins

      Name                              Description
  OmondoUML         It is a visual modeling tool based on UML2. It supports
                    reverse engineering and production code for EJB,
                    Struts, Web Services. It is based on GEF and EMF.

    Papyrus         It is an open source product to model in UML2. It
                    allows to graphically represent diagrams in the
                    Diagram Interchange (DI2) OMG standard. It supports
                    Java and C++ code production and some UML
                    profiles (e.g. SysML)
    Topcased        It is a software engineering toolkit that provides
                    various modelers such as UML, Ecore, SysML. It is
                    compliant with the requirements of critical and
                    embedded applications
Eclipse ArgoUML It integrates the ArgoUML open source tool in the
                    Eclipse platform. It is a complete UML modeler
                    integrated with the AndroMDA MDA plug-in.
The ATLAS Transformation Language

    ATL is a model transformation language
         Specified both as a metamodel and as a textual concrete syntax
         It is both declarative and imperative
               declarative style is the default choice for simple transformations
               source model elements are navigated by means of a set of rules that
                create target model elements
         It relies on a ATL Virtual Machine that allows transformations
               A transformation from the ATL metamodel to the VM code enables to
                “execute” ATL transformations
               It has been implemented as an Eclipse plug-in
ATL Architecture
    Execution Engine
         Virtual Machine
         ATL to bytecode compiler
    Eclipse IDE used for
         Editor with syntax highlighting
         ATL launch support
         Source debug
ATL Mapping Technique
     The mapping technique used by ATL is
      metamodel-based
                                           MMM: MOF or Ecore [13]
                                           MMt: ATL metamodel
                                           Mt: ATL transformation model
                                           MMa: source metamodel
                                           MMb: target metamodel
                                           Ma: source model
                                           Mb: target model




Conforming to OMG Q/V/T specifications the transformations (Mt) are
defined as models as well conforming to the ATL metamodel (MMt)
ATL Transformations

    ATL allows to define different types of
     transformations
       ATL Modules: are model to model
        transformations
       ATL Queries: are model to primitive datatype
        transformations
       ATL Libraries: factorize the ATL code in order
        to be imported and used in multiple
        transformations
    An ATL transformation file has the .atl
     extension
ATL Modules

    Modules enable ATL developers to specify
         the way to produce a set of target models starting
          from a set of source model
    Modules are structured in three sections:
         Header section that defines some attributes relative
          to the transformation
         Helpers that are similar to Java methods
         Rules that define the way target models are
          generated from source models
ATL Rules

    There are two different types of rules
         Matching Rules: for ATL declarative specifications
               to define for which kind of source elements target elements must
                be generated
               to define the way the generated target elements have to be
                initialized
         Called Rules: for ATL imperative programming
               they are a particular type of header that can generate target
                model elements
               It has to be called from an imperative code section
ATL Execution Modes

    ATL defines two different execution modes for its modules:
         Normal execution Mode
               Explicitly specifies how each target model element must be generated
                from source model elements
         Refinement execution Mode
               Source model elements are implicitly copied from the source to the
                target model
               ATL developers focus on the generation of the modified target
                elements
               It is limited to the transformation of a single source model to a single
                target model conforming to the same metamodel
Source Meta-model




  Simplified UML meta-model
Target Meta-model




Simplified Java meta-model
Transformation Rules
 Transformation declaration and a transformation rule:


TRANSFORMATION uml2java(SOURCE UML, TARGET Java)!
    TRACKING TModel;!
 !
    RULE umlClassifierToJavaClass(X, Y)!
          FORALL UMLClassifier X!
          WHERE X.name = N!
          MAKE JavaClass Y,!
                Y.name = N!
          LINKING X, Y BY JavaClassFromUMLClassifier;!
          ...!
Tracking Relationships
Tracking class and a transformation rule:
CLASS JavaClassFromUMLClassifier {!
   UMLClassifier a;!
   JavaClass c;!
   KEY (a);!
}!
!
RULE umlAttributeToJavaField!
   FORALL UMLAttribute X!
   WHERE JavaClassFromUMLClassifier LINKS X.owner, JC!
   MAKE JavaField Y,!
      Y.owner = JC!
   LINKING X, Y BY FieldFromAttr;!
Rule Inheritance
Rule inheritance and Superseding:

CLASS JavaIntfFromUMLIntf EXTENDS JavaClassFromUMLClassifier;!
!
RULE umlInterfaceToJavaInterface(X, Y)!
     SUPERSEDES umlClassifierToJavaClass(X, Y)!
     FORALL UMLInterface X!
     MAKE JavaInterface Y,!
        Y.name = X.name!
     LINKING X, Y BY JavaIntfFromUMLIntf;!
!
RULE umlClassToJavaClass(X, Y)!
     EXTENDS umlClassifierToJavaClass(X, Y)!
     MAKE JavaMethod M,!
        M.name = X.name,!
        Y.constructor = M!
     LINKING X, M BY JavaConsFromUMLClass;!
ATL Syntax Essentials

    Header syntax
module module_name;
create (output_model:output_metamodel)+ [from | refines]
(input_model:imput_metamodel)+;


    Import syntax
uses extensionless_library_file_name;

    Helper syntax

helper context context_of_definition
def: (par_name: par_type) helper_code
ATL Syntax Essentials
        Matching Rule
 rule rule_name {
        from
          source_pattern : source_metamodel!element
        to
          target_pattern : target_metamodel!element
        (
            [targt_entity <- source_pattern.source_entity]*
        )
       [do { imperative_code }]?
     }
        Called Rule
 rule rule_name ([param_name: paramType]){
        [[to
               target_pattern : target_metamodel!element
        (
               targt_entity <- local_variable
        )]*| [do { imperative_code} ] *] ?
 }
ATL DataTypes
    The ATL language is based on the OMG Object
     Constraint Language (OCL)
         Primitive DataType
               Boolean, Integer, Real, String
         Collection DataType
               Set, OrderedSet, Sequence, Bag as collection_type
                (element_datatype)
         Tuple DataType
               TupleType(var_name1 : var_type1, ..., var_namen :
                var_typen)
         Map DataType
               Map{(key1, value1), ..., (keyn, valuen)}
         Model Element DataType
               metamodel!class
An ATL Transformation

               Author                         Person
          +name : String                 +name : String
          +surname : String              +surname : String

      The Author Source Metamodel    The Person Target Metamodel


    The goal is a model to model PIM to PSM transformation
    name and surname attributes must be preserved
    An instance of Author is mapped into an instance of
     Person
An ATL Transformation
module Author2Person;
create OUT : Person from IN : Author;


rule Author {
from
   a : Author!Author
to
   p : Person!Person (
        name <- a.name,
        surname <- a.surname
   )
}
Conclusion
MDE is a new step of the object technology
      In the 80's objects and classes were seen as "first class entities",
       with libraries of several hundred of classes hierarchically organized
      Models and metamodels are considered first class entities now
      Libraries (lattices) of hundreds of metamodels highly abstract are
       beginning to appear. Each metamodel may contain several
       hundreds of concepts and relations
      Several tools can work with these libraries of models and
       metamodels
      Research is needed to bring together theory and practice of model
       engineering (ontologists, methodologists, software engineers,
       information system designers, database specialists, etc.)
Self-test questions

    What is a model transformation?
    What is the goal of model
     transformations?
    What is QVT?
    What is ATL?
References
Bézivin: On the unification power of models. Software and
  System Modeling, Springer, 4:2(171-188), May 2005
Frankel, Model Driven Architecture: Applying MDA to
  Enterprise Computing, Wiley, 2003
Kurtev, Bezivin, Jouault, Valduriez, “Model-Based DSL
  Framework” . ACM OOPSLA, 602—616. 2006.
Mellor, Scott, Uhl, Weise MDA Distilled: Principles of
  Model-Driven Architecture, Addison-Wesley, 2004
Schmidt, Model-Driven Engineering. IEEE Computer, 39:2
  (25-31), February 2006.
Specifications and URLs
[1s] Eclipse ATL Project, http://www.eclipse.org/m2m/atl
[2s] Eclipse EMF Project, http://www.eclipse.org/modeling/emf/
[3s] OMG, “Common Warehouse Meta-model (CWM)”, Version 1.0, October
     2001, http://www.omg.org/cgi-bin/doc?formal/01-10-01.pdf
[4s] OMG, “XML Metadata Interchange (XMI) Specification v1.2”, January
     2002, http://www.omg.org/cgi-bin/doc?formal/02-01-01.pdf
[5s] OMG, “Meta Object Facility (MOF) Specification”, Version 1.4, OMG, April
      2002, http://www.omg.org/cgi-bin/doc?formal/02-04-03.pdf
[6s] OMG, “Meta Object Facility (MOF) Core Specification”, Version 2.0,
      January 2006, http://www.omg.org/docs/formal/06-01-01.pdf
[7s] OMG, “Meta Object Facility 2.0 Query/View/Transformation Specification”,
     November 2005, http://www.omg.org/docs/ptc/05-11-01.pdf
[8s] OMG, “MDA Guide Version 1.0.1”, June 2003,
      http://www.omg.org/docs/omg/03-06-01.pdf
[9s] OMG, “Unified Modeling Language (UML), version 1.4”,
     September 2001, http://www.omg.org/cgi-bin/doc?formal/01-09-67
[10s] OMG, “Unified Modeling Language: Infrastucture”, version 2.2.1,
     February 2007, http://www.omg.org/docs/formal/07-02-04.pdf
[11s] Sun, “Java Metadata Interface (JMI) API 1.0 Specification”,
      http://jcp.org/aboutJava/communityprocess/final/jsr040/index.html
Questions?

Contenu connexe

Tendances

Reverse engineering
Reverse  engineeringReverse  engineering
Reverse engineeringYuffie Valen
 
Model-Driven Software Engineering in Practice - Chapter 1 - Introduction
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
 
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...
Model-Driven Software Engineering in Practice - Chapter 5 - Integration of Mo...Marco Brambilla
 
Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...
Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...
Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...Jordi Cabot
 
Model driven architecture
Model driven architectureModel driven architecture
Model driven architectureBiruk Mamo
 
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...Svetlin Nakov
 
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...
Model driven software engineering in practice book - chapter 7 - Developing y...Marco Brambilla
 
Open Closed Principle kata
Open Closed Principle kataOpen Closed Principle kata
Open Closed Principle kataPaul Blundell
 
Model-driven architecture (MDA)
Model-driven architecture (MDA) Model-driven architecture (MDA)
Model-driven architecture (MDA) Alia Hamwi
 
Shift Remote FRONTEND: Micro Frontend Architecture: A Look Into the Future - ...
Shift Remote FRONTEND: Micro Frontend Architecture: A Look Into the Future - ...Shift Remote FRONTEND: Micro Frontend Architecture: A Look Into the Future - ...
Shift Remote FRONTEND: Micro Frontend Architecture: A Look Into the Future - ...Shift Conference
 
Selenium Architecture
Selenium ArchitectureSelenium Architecture
Selenium Architecturerohitnayak
 
Solid principles, Design Patterns, and Domain Driven Design
Solid principles, Design Patterns, and Domain Driven DesignSolid principles, Design Patterns, and Domain Driven Design
Solid principles, Design Patterns, and Domain Driven DesignIrwansyah Irwansyah
 
MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )Ahmed Emad
 
Software Architecture and Design - An Overview
Software Architecture and Design - An OverviewSoftware Architecture and Design - An Overview
Software Architecture and Design - An OverviewOliver Stadie
 

Tendances (20)

Training: MVVM Pattern
Training: MVVM PatternTraining: MVVM Pattern
Training: MVVM Pattern
 
Reverse engineering
Reverse  engineeringReverse  engineering
Reverse engineering
 
MDA
MDAMDA
MDA
 
Model-Driven Software Engineering in Practice - Chapter 1 - Introduction
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 - Introduction
 
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...
Model-Driven Software Engineering in Practice - Chapter 5 - Integration of Mo...
 
Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...
Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...
Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...
 
Model driven architecture
Model driven architectureModel driven architecture
Model driven architecture
 
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
 
jBPM v7 Roadmap
jBPM v7 RoadmapjBPM v7 Roadmap
jBPM v7 Roadmap
 
Micro Frontends
Micro FrontendsMicro Frontends
Micro Frontends
 
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...
Model driven software engineering in practice book - chapter 7 - Developing y...
 
Open Closed Principle kata
Open Closed Principle kataOpen Closed Principle kata
Open Closed Principle kata
 
Model-driven architecture (MDA)
Model-driven architecture (MDA) Model-driven architecture (MDA)
Model-driven architecture (MDA)
 
Shift Remote FRONTEND: Micro Frontend Architecture: A Look Into the Future - ...
Shift Remote FRONTEND: Micro Frontend Architecture: A Look Into the Future - ...Shift Remote FRONTEND: Micro Frontend Architecture: A Look Into the Future - ...
Shift Remote FRONTEND: Micro Frontend Architecture: A Look Into the Future - ...
 
Selenium Architecture
Selenium ArchitectureSelenium Architecture
Selenium Architecture
 
1.sdlc
1.sdlc1.sdlc
1.sdlc
 
Solid principles, Design Patterns, and Domain Driven Design
Solid principles, Design Patterns, and Domain Driven DesignSolid principles, Design Patterns, and Domain Driven Design
Solid principles, Design Patterns, and Domain Driven Design
 
MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )
 
Software Architecture and Design - An Overview
Software Architecture and Design - An OverviewSoftware Architecture and Design - An Overview
Software Architecture and Design - An Overview
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
 

En vedette

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA CloudMajong DevJfu
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product lineMajong DevJfu
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processesMajong DevJfu
 
PIMped Papyrus - A Language Workbench for UML DSLs
PIMped Papyrus - A Language Workbench for UML DSLsPIMped Papyrus - A Language Workbench for UML DSLs
PIMped Papyrus - A Language Workbench for UML DSLsAccenture | SolutionsIQ
 
A methodology for cim modelling and its transformation to pim
A methodology for cim modelling and its transformation to pimA methodology for cim modelling and its transformation to pim
A methodology for cim modelling and its transformation to pimAlexander Decker
 
Buscadores
BuscadoresBuscadores
Buscadoressysdatec
 
Something super epic...
Something super epic...Something super epic...
Something super epic...Rabah Rahil
 
Knowledge Transformation in Software Development Processes
Knowledge Transformation in Software Development ProcessesKnowledge Transformation in Software Development Processes
Knowledge Transformation in Software Development ProcessesIlia Bider
 
Traffic Shaping Su Linux
Traffic Shaping Su LinuxTraffic Shaping Su Linux
Traffic Shaping Su LinuxMajong DevJfu
 
5 Trasporto Affidabile Teoria
5 Trasporto Affidabile Teoria5 Trasporto Affidabile Teoria
5 Trasporto Affidabile TeoriaMajong DevJfu
 
Linguaggi Formali e Compilazione: Frontend
Linguaggi Formali e Compilazione: FrontendLinguaggi Formali e Compilazione: Frontend
Linguaggi Formali e Compilazione: FrontendMajong DevJfu
 
esercizio sigda n 11
esercizio sigda n 11esercizio sigda n 11
esercizio sigda n 11Majong DevJfu
 
2 sistemi informativi d azienda
2 sistemi informativi d azienda2 sistemi informativi d azienda
2 sistemi informativi d aziendaMajong DevJfu
 
4 Livello Ip Parte1 Color
4 Livello Ip Parte1 Color4 Livello Ip Parte1 Color
4 Livello Ip Parte1 ColorMajong DevJfu
 
Sistemi Operativi: Struttura - Lezione 04
Sistemi Operativi: Struttura - Lezione 04Sistemi Operativi: Struttura - Lezione 04
Sistemi Operativi: Struttura - Lezione 04Majong DevJfu
 

En vedette (20)

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product line
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes
 
PIMped Papyrus - A Language Workbench for UML DSLs
PIMped Papyrus - A Language Workbench for UML DSLsPIMped Papyrus - A Language Workbench for UML DSLs
PIMped Papyrus - A Language Workbench for UML DSLs
 
SLE2015: Distributed ATL
SLE2015: Distributed ATLSLE2015: Distributed ATL
SLE2015: Distributed ATL
 
A methodology for cim modelling and its transformation to pim
A methodology for cim modelling and its transformation to pimA methodology for cim modelling and its transformation to pim
A methodology for cim modelling and its transformation to pim
 
BPM 2010 demo
BPM 2010 demoBPM 2010 demo
BPM 2010 demo
 
Buscadores
BuscadoresBuscadores
Buscadores
 
Something super epic...
Something super epic...Something super epic...
Something super epic...
 
Introduction to MDE
Introduction to MDEIntroduction to MDE
Introduction to MDE
 
Knowledge Transformation in Software Development Processes
Knowledge Transformation in Software Development ProcessesKnowledge Transformation in Software Development Processes
Knowledge Transformation in Software Development Processes
 
Traffic Shaping Su Linux
Traffic Shaping Su LinuxTraffic Shaping Su Linux
Traffic Shaping Su Linux
 
8 Www2009 Parte1
8 Www2009 Parte18 Www2009 Parte1
8 Www2009 Parte1
 
5 Trasporto Affidabile Teoria
5 Trasporto Affidabile Teoria5 Trasporto Affidabile Teoria
5 Trasporto Affidabile Teoria
 
E6 Concorre
E6 ConcorreE6 Concorre
E6 Concorre
 
Linguaggi Formali e Compilazione: Frontend
Linguaggi Formali e Compilazione: FrontendLinguaggi Formali e Compilazione: Frontend
Linguaggi Formali e Compilazione: Frontend
 
esercizio sigda n 11
esercizio sigda n 11esercizio sigda n 11
esercizio sigda n 11
 
2 sistemi informativi d azienda
2 sistemi informativi d azienda2 sistemi informativi d azienda
2 sistemi informativi d azienda
 
4 Livello Ip Parte1 Color
4 Livello Ip Parte1 Color4 Livello Ip Parte1 Color
4 Livello Ip Parte1 Color
 
Sistemi Operativi: Struttura - Lezione 04
Sistemi Operativi: Struttura - Lezione 04Sistemi Operativi: Struttura - Lezione 04
Sistemi Operativi: Struttura - Lezione 04
 

Similaire à 6 - Architetture Software - Model transformation

MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools researchRoger Xia
 
The Economics of OptimJ
The Economics of OptimJThe Economics of OptimJ
The Economics of OptimJPatrick Viry
 
Eclipse EDT - EGL Inner Workings - June 2011
Eclipse EDT - EGL Inner Workings - June 2011Eclipse EDT - EGL Inner Workings - June 2011
Eclipse EDT - EGL Inner Workings - June 2011Will Smythe
 
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWarePragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWareMichael Vorburger
 
MODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSE
MODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSEMODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSE
MODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSEAnže Vodovnik
 
Evaluation of meta modeling tools for domain specific modeling language chnjl
Evaluation of meta modeling   tools for domain specific modeling language chnjlEvaluation of meta modeling   tools for domain specific modeling language chnjl
Evaluation of meta modeling tools for domain specific modeling language chnjlPG Scholar
 
CS587 Project - Raychaudhury,Shaalmali
CS587 Project - Raychaudhury,ShaalmaliCS587 Project - Raychaudhury,Shaalmali
CS587 Project - Raychaudhury,Shaalmalisagar.247
 
EGL Conference 2011 - EGL Open
EGL Conference 2011 - EGL OpenEGL Conference 2011 - EGL Open
EGL Conference 2011 - EGL OpenWill Smythe
 
Domain specific modelling (DSM)
Domain specific modelling (DSM)Domain specific modelling (DSM)
Domain specific modelling (DSM)PG Scholar
 
Introduction to java
Introduction to  javaIntroduction to  java
Introduction to javaKalai Selvi
 
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worldsmbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling WorldsIstvan Rath
 
Model level debugging and profiling, Code Generation Conference 2014
Model level debugging and profiling, Code Generation Conference 2014Model level debugging and profiling, Code Generation Conference 2014
Model level debugging and profiling, Code Generation Conference 2014Juha-Pekka Tolvanen
 

Similaire à 6 - Architetture Software - Model transformation (20)

6
66
6
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools research
 
The Economics of OptimJ
The Economics of OptimJThe Economics of OptimJ
The Economics of OptimJ
 
ERP_Up_Down.ppt
ERP_Up_Down.pptERP_Up_Down.ppt
ERP_Up_Down.ppt
 
Eclipse EDT - EGL Inner Workings - June 2011
Eclipse EDT - EGL Inner Workings - June 2011Eclipse EDT - EGL Inner Workings - June 2011
Eclipse EDT - EGL Inner Workings - June 2011
 
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWarePragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWare
 
ALT
ALTALT
ALT
 
MODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSE
MODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSEMODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSE
MODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSE
 
Evaluation of meta modeling tools for domain specific modeling language chnjl
Evaluation of meta modeling   tools for domain specific modeling language chnjlEvaluation of meta modeling   tools for domain specific modeling language chnjl
Evaluation of meta modeling tools for domain specific modeling language chnjl
 
CS587 Project - Raychaudhury,Shaalmali
CS587 Project - Raychaudhury,ShaalmaliCS587 Project - Raychaudhury,Shaalmali
CS587 Project - Raychaudhury,Shaalmali
 
EGL Conference 2011 - EGL Open
EGL Conference 2011 - EGL OpenEGL Conference 2011 - EGL Open
EGL Conference 2011 - EGL Open
 
Sig A&D - MDA
Sig A&D - MDASig A&D - MDA
Sig A&D - MDA
 
Domain specific modelling (DSM)
Domain specific modelling (DSM)Domain specific modelling (DSM)
Domain specific modelling (DSM)
 
Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties
Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee ApplicatiesFinal Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties
Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties
 
Introduction to java
Introduction to  javaIntroduction to  java
Introduction to java
 
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worldsmbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
 
Introduction to .net
Introduction to .netIntroduction to .net
Introduction to .net
 
Model level debugging and profiling, Code Generation Conference 2014
Model level debugging and profiling, Code Generation Conference 2014Model level debugging and profiling, Code Generation Conference 2014
Model level debugging and profiling, Code Generation Conference 2014
 
1 introduction
1 introduction1 introduction
1 introduction
 
Programming
Programming Programming
Programming
 

Plus de Majong DevJfu

4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture PortfolioMajong DevJfu
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural stylesMajong DevJfu
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architectureMajong DevJfu
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a productMajong DevJfu
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural stylesMajong DevJfu
 
25 architectural adaptation
25 architectural adaptation25 architectural adaptation
25 architectural adaptationMajong DevJfu
 
24 dssa and_product_lines
24 dssa and_product_lines24 dssa and_product_lines
24 dssa and_product_linesMajong DevJfu
 
22 deployment and_mobility
22 deployment and_mobility22 deployment and_mobility
22 deployment and_mobilityMajong DevJfu
 
21 security and_trust
21 security and_trust21 security and_trust
21 security and_trustMajong DevJfu
 
20 nfp design_techniques
20 nfp design_techniques20 nfp design_techniques
20 nfp design_techniquesMajong DevJfu
 

Plus de Majong DevJfu (20)

4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
Uml3
Uml3Uml3
Uml3
 
Uml2
Uml2Uml2
Uml2
 
5
55
5
 
4 (uml basic)
4 (uml basic)4 (uml basic)
4 (uml basic)
 
3
33
3
 
2
22
2
 
1
11
1
 
Tmd template-sand
Tmd template-sandTmd template-sand
Tmd template-sand
 
26 standards
26 standards26 standards
26 standards
 
25 architectural adaptation
25 architectural adaptation25 architectural adaptation
25 architectural adaptation
 
24 dssa and_product_lines
24 dssa and_product_lines24 dssa and_product_lines
24 dssa and_product_lines
 
23 intro to_dsse
23 intro to_dsse23 intro to_dsse
23 intro to_dsse
 
22 deployment and_mobility
22 deployment and_mobility22 deployment and_mobility
22 deployment and_mobility
 
21 security and_trust
21 security and_trust21 security and_trust
21 security and_trust
 
20 nfp design_techniques
20 nfp design_techniques20 nfp design_techniques
20 nfp design_techniques
 

Dernier

Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 

Dernier (20)

Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
20230104 - machine vision
20230104 - machine vision20230104 - machine vision
20230104 - machine vision
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 

6 - Architetture Software - Model transformation

  • 1. Model transformations Paolo Ciancarini
  • 2. Agenda   Modeling platforms and Platform Independence   Model Transformations   MDA in the Eclipse IDE   The Atlas Transformation Language
  • 3. CIM, PIM and PSM   CIM: Computation Independent Model   A vocabulary of a problem domain useful to a variety of stakeholders   PIM: Platform Independent Model   A specification of a system that does not take into account technical details of a specific platform   PSM: Platform Specific Model   A specification of a system expressed in terms of the specification model of the platform
  • 4. The MDA process (abstraction) www.ibm.com/developerworks/ibm/library/i-modev1/!
  • 7. MDA process for a complex system
  • 8. MDA: Mappings between Models From PIM to Specific Platform- Middleware Independent Technologies via OMG Model Standard Mappings CORBA Java/EJB XML/SOAP Other Model Model Model Model From PSM to application interfaces, code, GUI descriptors, SQL queries, etc. CORBA Java/EJB XML/SOAP Other
  • 9. Model Representation UML Model (PIM) XMI Document Auto <Auto> <Color> Red </Color> Color : String MOF <Door> 4 </Door> Door : Integer <Engine> 2 </Engine> Engine : Integer </Auto> XMI DTD, Schema IDL, Java… <!Element Auto interface Auto (Color*, { Class Auto Door*, }; {public String color; Engine*)> public int Door; public int Engine; }
  • 10. Model Transformation   Working with interrelated models requires to ensure their vertical, horizontal, and evolutionary consistency   This activity can be performed taking one or more source models as input and producing one or more target models as output   The process of model transformation must comply with a set of transformation rules
  • 12. PIM to PSM Transformation   It is used when the PIM is mapped into a platform specific infrastructure   The transformation is based on a set of platform features   These features should be described by UML
  • 13. PIM to PIM Transformation   It is used when models are enhanced, refined or filtered during the development lifecycle without needing any platform specific information   Example: analysis-to-design model transformation
  • 14. PSM to PSM Transformation   It is used for component realization and deployment   Generally, it is related to platform dependent model refinement
  • 15. PSM to PIM Transformation   It is performed for abstracting models of existing technology-dependent implementations into a platform independent model   It is a refactoring process hard to be fully automated
  • 16. Model Mapping   A technique for setting the specifications, that drives the transformation from the source model to the target model   The main mapping techniques are [8s]:   Model-Type mapping   The mapping is realized between platform-independent data types and platform- specific data types. The two kinds of data type drive the transformation   Metamodel mapping   The mapping is realized between the PIM metamodel data type and the PSM metamodel data type.   Model-Instance mapping   It uses marks, i.e. concepts of the target-model explaining how to transform source model elements
  • 20. Approaches to Model Transformations   The tools performing model transformations can use:   Direct transformations: internal model representation manipulated by specific APIs   Intermediate transformations: model exported in an external standard form (e.g., XMI) that can be manipulated   Transformation language: a language with specific constructs for defining and applying transformations
  • 21. Platform Independence   Platform Independence is a “fuzzy” concept   It means independence from a specific execution and development domains   The domains from which the independence can be asserted are the usual software engineering abstraction domains:   Programming Languages   Software Architectures   Operative Systems   Data Representation
  • 22. Ex.: Bank Account Architectural PIM •  Nothing said about the architecture and the developing technologies •  It is the model used by bank manager and stakeholders
  • 23. Ex.: Bank Account Architectural PSM •  It specifies a remote and some local objects •  It adds some implementation information •  It is the model used by analyst and programmers •  it conforms to the PIM •  it can be a PIM for a further platform specific model
  • 24. MDA Tools   Currently, there are no tools that implement MDA as envisioned by the OMG community   MDA itself is still being defined   Existing tools allow partial transformations   They are usually limited to   specific platforms   specific languages   specific transformations   Usually they are evolutions of tools born in other research fields   Especially in Generative programming and Metaprogramming
  • 25. EMF and ATL   Two interesting technologies are emerging that are more and more used in MDA tools: 1.  The Eclipse Modeling Framework (EMF) is the analogous of MOF in the Eclipse IDE Platform   It consists of an extended set of API, a metamodelling framework named Ecore and an Eclipse IDE plug-in 2.  The Atlas Transformation Language (ATL) is a language specifically targeted for model transformations   It supports MOF 1.4 and Ecore while conforming to MDA transformation specifications
  • 26. MDA and Middleware Middleware is an enabling technology for MDA Generators’ increasing complexity
  • 27. From Coding to Modeling   What is the difference between programming language abstractions and MDE/MDA abstractions?   The former allow to abstract the solution space   they are “computing oriented”   MDE/MDA allow to abstract the problem space   they are “application domain oriented”   The current Enterprise Computing scenario requires to move the software development emphasis from coding to modeling systems
  • 28. Metadata Integration   Why we cannot use a single language to describe all the aspects of a system?   The problem is not that we use different languages to describe different aspects of software components   The problem is that we have no overall architecture for integrating specifications made in different languages   MDA defines a single architecture for the integrated management of metadata
  • 29. The Eclipse IDE in a Nutshell   Eclipse is an open Universal Tooling Platform   Open Source licensed via Common Public License   Managed via the Eclipse Project (www.eclipse.org)   Maintained by the Eclipse Foundation   An independent consortium whose members include: IBM, SuSe, Borland, RedHat, HP, SAP, OMG   It provides an open platform for application development tools   It runs on a wide range of operating systems   It is language-neutral   It facilitates seamless tool integration   It adds new tools to existing installed products
  • 30. What is Eclipse?   A general purpose IDE   An open, extensible architecture based on plug-ins Plug-in development environment PDE Java development tools JDT Eclipse Platform Platform Standard Java2 Virtual Machine Java VM
  • 31. The Eclipse Architecture Another Eclipse Platform App Java Workbench Help Development Tools JFace (JDT) SWT Team Your Tool/App Plug-in Workspace Development Debug Environment (PDE) Their Platform Runtime Tool Eclipse Project
  • 32. MDA in Eclipse   There are a number of plug-ins that support the MDA features in Eclipse   Indeed, there is not a single tool that gives a full support of MDA features as envisioned by the OMG   Three MDA plug-in categories can be identified basing on their focus: 1.  Models representation and management 2.  Models transformation 3.  Models-to-Code generation
  • 33. Notable MDA Projects in Eclipse Name Description Categ./ License Acceleo A MDA based code generator for various target middleware 3 / Free and languages: Java EE, C#, Python, PHP etc. Atlas It defines a management environment for MDE repositories 1 / Free based on the "megamodel" approach. A megamodel is a Megamodel registry of model resources available in a given scope (a Management zone) In order to manage megamodels users may use (AM3) metamodels from a library or invent their own ones for new kinds of artifacts. Atlas Model A tool for representing correspondence between models by 1 / Free means of a model (named weaving model). Common Weaver (AMW) weaving use cases are: data exchange, data integration, model merging, etc Atlas A model transformation language that provides 2 / Free ways to produce a set of target models from a Transformation set of source models. It also provide a toolkit Language (ATL) (the ATL IDE) with a number of tools aimed to ease the development of ATL transformations.
  • 34. Notable MDA Projects in Eclipse Name Description Categ./ License Epsilon It can be used to manage models of different modeling 1/Free technologies using a family of integrated model management languages. It can be used for model navigation, modification, transformation, validation and comparison. It also provides tools for defining and executing wizard and for code profiling and monitoring. IBM Model Is a set of tools that helps to make comparisons, check 2 / IBM consistency, and implement transformations between License Transformation Eclipse Modeling Framework (EMF) models. Framework Kermeta A metaprogramming environment based on an object 2 / Free oriented executable meta-modeling paradigm: a Domain Specific Language (DSL) optimized for metamodel engineering. It allows model and metamodel management, weaving and transformation.
  • 35. Notable MDA Projects in Eclipse Name Description Categ./ License openArchitectur It is suite of tools and components supporting in 1, 3 / Free model driven software development. It is built upon a eWare modular model-to-code generator framework implemented in Java. It supports arbitrary import (model) formats, meta models, and output (code) formats It is “a tool for building MDA tools” AndroMDA AndroMDA is an extensible generator framework that 3 / Free adheres to MDA. Models from UML tools are transformed into deployable components different platforms: J2EE, Spring, .NET. It provides patterns for Axis, Struts, JSF, Spring, Hibernate and other toolkits QiQu It transforms an UML-model into source-code (Java, C#, 3 / Free Cobol etc.). It relies on XMI and allows to build a domain-specific generator that transform models into code or anything else (XML, HTML, Scripts, Excel etc.) Modeling Eclipse Plugins: http://www.eclipseplugincentral.com/Web_Links-index-req-viewcatlink-cid-11.html
  • 36. MDA Enabling Technologies in Eclipse   There are a set of de-facto standard Eclipse plug-ins that enable MDE features   These plug-ins enable upper-standing MDA plug-ins to operate   We consider an essential subset of these plug-ins in order to start experiencing with MDA
  • 37. MDA Plug-ins in Eclipse
  • 38. QVT (Query View Transform)   QVT is an OMG specification   QVT extends OCL 2.0 to imperative OCL   QVT defines 3 DSL named Relations, Core and Operational Mappings   Relations and Core are declarative languages   OperationalMapping is an imperative language with constructs like loops, conditions, etc.
  • 39. A Transformation Language: ATL   The Atlas Transformation Language (ATL) is an answer to the OMG Query View and Transformation (QVT) RFP   ATL is a QVT-like transformation language and engine with a large user community and an open source library of transformations   ATL provides the developers with a mean to specify the way to produce a number of target models from a set of source models
  • 40. Eclipse and Modeling Plug-ins   The Eclipse Modeling Framework (EMF) is a framework and a code generation facility   It allows to define and mange models in Java, XML and UML   It relies on a meta-metamodel named Ecore   UML2 is an EMF-based implementation of the UML 2.x metamodel   It provides the support for UML model plug-ins   It defines a common XMI schema for diagram interchange
  • 41. Eclipse and Graphical Plug-ins   The Graphical Editing Framework (GEF) allows to create a graphical editor under Eclipse   GEF provides a layout and rendering toolkit for displaying graphs, manage palettes, handle and resize graphical objects   The Graphical Modeling Framework (GMF) provides components and runtime infrastructures for developing graphical editors based on EMF and GEF   reusable components for graphical editors   generative infrastructure to graphical editor production
  • 42. UML Modeler Plug-ins Name Description OmondoUML It is a visual modeling tool based on UML2. It supports reverse engineering and production code for EJB, Struts, Web Services. It is based on GEF and EMF. Papyrus It is an open source product to model in UML2. It allows to graphically represent diagrams in the Diagram Interchange (DI2) OMG standard. It supports Java and C++ code production and some UML profiles (e.g. SysML) Topcased It is a software engineering toolkit that provides various modelers such as UML, Ecore, SysML. It is compliant with the requirements of critical and embedded applications Eclipse ArgoUML It integrates the ArgoUML open source tool in the Eclipse platform. It is a complete UML modeler integrated with the AndroMDA MDA plug-in.
  • 43. The ATLAS Transformation Language   ATL is a model transformation language   Specified both as a metamodel and as a textual concrete syntax   It is both declarative and imperative   declarative style is the default choice for simple transformations   source model elements are navigated by means of a set of rules that create target model elements   It relies on a ATL Virtual Machine that allows transformations   A transformation from the ATL metamodel to the VM code enables to “execute” ATL transformations   It has been implemented as an Eclipse plug-in
  • 44. ATL Architecture   Execution Engine   Virtual Machine   ATL to bytecode compiler   Eclipse IDE used for   Editor with syntax highlighting   ATL launch support   Source debug
  • 45. ATL Mapping Technique   The mapping technique used by ATL is metamodel-based MMM: MOF or Ecore [13] MMt: ATL metamodel Mt: ATL transformation model MMa: source metamodel MMb: target metamodel Ma: source model Mb: target model Conforming to OMG Q/V/T specifications the transformations (Mt) are defined as models as well conforming to the ATL metamodel (MMt)
  • 46. ATL Transformations   ATL allows to define different types of transformations   ATL Modules: are model to model transformations   ATL Queries: are model to primitive datatype transformations   ATL Libraries: factorize the ATL code in order to be imported and used in multiple transformations   An ATL transformation file has the .atl extension
  • 47. ATL Modules   Modules enable ATL developers to specify   the way to produce a set of target models starting from a set of source model   Modules are structured in three sections:   Header section that defines some attributes relative to the transformation   Helpers that are similar to Java methods   Rules that define the way target models are generated from source models
  • 48. ATL Rules   There are two different types of rules   Matching Rules: for ATL declarative specifications   to define for which kind of source elements target elements must be generated   to define the way the generated target elements have to be initialized   Called Rules: for ATL imperative programming   they are a particular type of header that can generate target model elements   It has to be called from an imperative code section
  • 49. ATL Execution Modes   ATL defines two different execution modes for its modules:   Normal execution Mode   Explicitly specifies how each target model element must be generated from source model elements   Refinement execution Mode   Source model elements are implicitly copied from the source to the target model   ATL developers focus on the generation of the modified target elements   It is limited to the transformation of a single source model to a single target model conforming to the same metamodel
  • 50. Source Meta-model Simplified UML meta-model
  • 52. Transformation Rules Transformation declaration and a transformation rule: TRANSFORMATION uml2java(SOURCE UML, TARGET Java)! TRACKING TModel;! ! RULE umlClassifierToJavaClass(X, Y)! FORALL UMLClassifier X! WHERE X.name = N! MAKE JavaClass Y,! Y.name = N! LINKING X, Y BY JavaClassFromUMLClassifier;! ...!
  • 53. Tracking Relationships Tracking class and a transformation rule: CLASS JavaClassFromUMLClassifier {! UMLClassifier a;! JavaClass c;! KEY (a);! }! ! RULE umlAttributeToJavaField! FORALL UMLAttribute X! WHERE JavaClassFromUMLClassifier LINKS X.owner, JC! MAKE JavaField Y,! Y.owner = JC! LINKING X, Y BY FieldFromAttr;!
  • 54. Rule Inheritance Rule inheritance and Superseding: CLASS JavaIntfFromUMLIntf EXTENDS JavaClassFromUMLClassifier;! ! RULE umlInterfaceToJavaInterface(X, Y)! SUPERSEDES umlClassifierToJavaClass(X, Y)! FORALL UMLInterface X! MAKE JavaInterface Y,! Y.name = X.name! LINKING X, Y BY JavaIntfFromUMLIntf;! ! RULE umlClassToJavaClass(X, Y)! EXTENDS umlClassifierToJavaClass(X, Y)! MAKE JavaMethod M,! M.name = X.name,! Y.constructor = M! LINKING X, M BY JavaConsFromUMLClass;!
  • 55. ATL Syntax Essentials   Header syntax module module_name; create (output_model:output_metamodel)+ [from | refines] (input_model:imput_metamodel)+;   Import syntax uses extensionless_library_file_name;   Helper syntax helper context context_of_definition def: (par_name: par_type) helper_code
  • 56. ATL Syntax Essentials   Matching Rule rule rule_name { from source_pattern : source_metamodel!element to target_pattern : target_metamodel!element ( [targt_entity <- source_pattern.source_entity]* ) [do { imperative_code }]? }   Called Rule rule rule_name ([param_name: paramType]){ [[to target_pattern : target_metamodel!element ( targt_entity <- local_variable )]*| [do { imperative_code} ] *] ? }
  • 57. ATL DataTypes   The ATL language is based on the OMG Object Constraint Language (OCL)   Primitive DataType   Boolean, Integer, Real, String   Collection DataType   Set, OrderedSet, Sequence, Bag as collection_type (element_datatype)   Tuple DataType   TupleType(var_name1 : var_type1, ..., var_namen : var_typen)   Map DataType   Map{(key1, value1), ..., (keyn, valuen)}   Model Element DataType   metamodel!class
  • 58. An ATL Transformation Author Person +name : String +name : String +surname : String +surname : String The Author Source Metamodel The Person Target Metamodel   The goal is a model to model PIM to PSM transformation   name and surname attributes must be preserved   An instance of Author is mapped into an instance of Person
  • 59. An ATL Transformation module Author2Person; create OUT : Person from IN : Author; rule Author { from a : Author!Author to p : Person!Person ( name <- a.name, surname <- a.surname ) }
  • 60. Conclusion MDE is a new step of the object technology   In the 80's objects and classes were seen as "first class entities", with libraries of several hundred of classes hierarchically organized   Models and metamodels are considered first class entities now   Libraries (lattices) of hundreds of metamodels highly abstract are beginning to appear. Each metamodel may contain several hundreds of concepts and relations   Several tools can work with these libraries of models and metamodels   Research is needed to bring together theory and practice of model engineering (ontologists, methodologists, software engineers, information system designers, database specialists, etc.)
  • 61. Self-test questions   What is a model transformation?   What is the goal of model transformations?   What is QVT?   What is ATL?
  • 62. References Bézivin: On the unification power of models. Software and System Modeling, Springer, 4:2(171-188), May 2005 Frankel, Model Driven Architecture: Applying MDA to Enterprise Computing, Wiley, 2003 Kurtev, Bezivin, Jouault, Valduriez, “Model-Based DSL Framework” . ACM OOPSLA, 602—616. 2006. Mellor, Scott, Uhl, Weise MDA Distilled: Principles of Model-Driven Architecture, Addison-Wesley, 2004 Schmidt, Model-Driven Engineering. IEEE Computer, 39:2 (25-31), February 2006.
  • 63. Specifications and URLs [1s] Eclipse ATL Project, http://www.eclipse.org/m2m/atl [2s] Eclipse EMF Project, http://www.eclipse.org/modeling/emf/ [3s] OMG, “Common Warehouse Meta-model (CWM)”, Version 1.0, October 2001, http://www.omg.org/cgi-bin/doc?formal/01-10-01.pdf [4s] OMG, “XML Metadata Interchange (XMI) Specification v1.2”, January 2002, http://www.omg.org/cgi-bin/doc?formal/02-01-01.pdf [5s] OMG, “Meta Object Facility (MOF) Specification”, Version 1.4, OMG, April 2002, http://www.omg.org/cgi-bin/doc?formal/02-04-03.pdf [6s] OMG, “Meta Object Facility (MOF) Core Specification”, Version 2.0, January 2006, http://www.omg.org/docs/formal/06-01-01.pdf [7s] OMG, “Meta Object Facility 2.0 Query/View/Transformation Specification”, November 2005, http://www.omg.org/docs/ptc/05-11-01.pdf [8s] OMG, “MDA Guide Version 1.0.1”, June 2003, http://www.omg.org/docs/omg/03-06-01.pdf [9s] OMG, “Unified Modeling Language (UML), version 1.4”, September 2001, http://www.omg.org/cgi-bin/doc?formal/01-09-67 [10s] OMG, “Unified Modeling Language: Infrastucture”, version 2.2.1, February 2007, http://www.omg.org/docs/formal/07-02-04.pdf [11s] Sun, “Java Metadata Interface (JMI) API 1.0 Specification”, http://jcp.org/aboutJava/communityprocess/final/jsr040/index.html