SlideShare a Scribd company logo
1 of 73
Download to read offline
Budapest University of Technology and Economics




                  Model Transformations in the
                     VIATRA2 Framework

            István Ráth                                Dániel Varró
           PhD candidate                            Associate professor

           Budapest University of Technology and Economics
            Dept. of Measurement and Information Systems




Fault-tolerant Systems Research Group
                                                                          1
Budapest University of Technology and Economics


Overview - Outline
 Introduction
   − Motivation for model transformations
   − Main concepts of MTs
 The VIATRA2 transformation language
   − Models and Metamodels
   − Graph Patterns and Graph transformation
   − Controlled transformations (Abstract state machines)
 Advanced Transformation concepts
   − Synchronization with Event-driven Transformations
   − Constraint satisfaction problems over models
   − Model simulation
 Applications in practice: Model-driven tool integration
   − SENSORIA
   − Embedded domain

    Fault-tolerant Systems Research Group
                                                            2
Budapest University of Technology and Economics


Challenges for Software Development




   Fault-tolerant Systems Research Group
                                                       3
Budapest University of Technology and Economics


Challenges for Software Development
 A typical design process of a large system involves
  −   Many stakeholders
  −   Many development teams
  −   Many manmonths
  −   MANY TOOLS
        ● Requirements, Analysis, Design, Testing, Maintenance, …




      Fault-tolerant Systems Research Group
                                                                    3
Budapest University of Technology and Economics


Challenges for Software Development
 A typical design process of a large system involves
  −   Many stakeholders
  −   Many development teams
  −   Many manmonths
  −   MANY TOOLS
        ● Requirements, Analysis, Design, Testing, Maintenance, …
 Tool integration is a major challenge
  − Design of Embedded / Critical systems:
    Cost of tool integration ≈ Cost of the tools themselves




      Fault-tolerant Systems Research Group
                                                                    3
Budapest University of Technology and Economics


Challenges for Software Development
 A typical design process of a large system involves
  −   Many stakeholders
  −   Many development teams
  −   Many manmonths
  −   MANY TOOLS
        ● Requirements, Analysis, Design, Testing, Maintenance, …
 Tool integration is a major challenge
  − Design of Embedded / Critical systems:
    Cost of tool integration ≈ Cost of the tools themselves
 Why?
  − Continuous evolution / changes of tools
  − Each having its own (modeling / programming) language
  − Difficult to build correct and robust bridges between them

      Fault-tolerant Systems Research Group
                                                                    3
Budapest University of Technology and Economics


Challenges for Software Development
 A typical design process of a large system involves
  −   Many stakeholders
  −   Many development teams
  −   Many manmonths
  −   MANY TOOLS
        ● Requirements, Analysis, Design, Testing, Maintenance, …
 Tool integration is a major challenge
  − Design of Embedded / Critical systems:
    Cost of tool integration ≈ Cost of the tools themselves
 Why?
  − Continuous evolution / changes of tools
  − Each having its own (modeling / programming) language
  − Difficult to build correct and robust bridges between them

      Fault-tolerant Systems Research Group
                                                                    3
Budapest University of Technology and Economics


Model Transformation for Tool Integration
         System design




           High-level
            System
             Model
          (UML, BPM,
             DSL)




  Fault-tolerant Systems Research Group
                                                      4
Budapest University of Technology and Economics


Model Transformation for Tool Integration
         System design
                                            Model
                                          generation

           High-level
            System
             Model
          (UML, BPM,
             DSL)




  Fault-tolerant Systems Research Group
                                                       4
Budapest University of Technology and Economics


Model Transformation for Tool Integration
         System design
                                            Model
                                          generation

           High-level
            System
             Model
          (UML, BPM,
             DSL)                       List of
                                    inconsistencies




  Fault-tolerant Systems Research Group
                                                       4
Budapest University of Technology and Economics


Model Transformation for Tool Integration
         System design
                                            Model
                                          generation

           High-level
            System                        Refinement
             Model
          (UML, BPM,
             DSL)                       List of
                                    inconsistencies




  Fault-tolerant Systems Research Group
                                                       4
Budapest University of Technology and Economics


Model Transformation for Tool Integration
         System design
                                            Model
                                          generation

           High-level
            System                        Refinement
             Model
          (UML, BPM,
             DSL)                       List of
                                    inconsistencies




  Fault-tolerant Systems Research Group
                                                       4
Budapest University of Technology and Economics


Model Transformation for Tool Integration
         System design                                 Mathematical analysis
                                            Model
                                          generation    Mathematical
           High-level
                                          Refinement
                                                           model
            System
             Model
          (UML, BPM,
             DSL)                       List of
                                    inconsistencies
                                                            Analysis




  Fault-tolerant Systems Research Group
                                                                               4
Budapest University of Technology and Economics


Model Transformation for Tool Integration
         System design                    VIATRA2      Mathematical analysis
                                            Model
                                          generation    Mathematical
           High-level
                                          Refinement
                                                           model
            System
             Model
          (UML, BPM,
             DSL)                       List of
                                    inconsistencies
                                                            Analysis




  Fault-tolerant Systems Research Group
                                                                               4
Budapest University of Technology and Economics


Model Transformation for Tool Integration
         System design                    VIATRA2      Mathematical analysis
                                            Model
                                          generation    Mathematical
           High-level
                                          Refinement
                                                           model
            System
             Model
          (UML, BPM,
             DSL)                       List of
                                    inconsistencies
                                                            Analysis
                   Code gen

       Implementation




  Fault-tolerant Systems Research Group
                                                                               4
Budapest University of Technology and Economics


 Model Transformation for Tool Integration
          System design                    VIATRA2      Mathematical analysis
                                             Model
                                           generation    Mathematical
            High-level
                                           Refinement
                                                            model
             System
              Model
           (UML, BPM,
              DSL)                       List of
                                     inconsistencies
                                                             Analysis
  Auto-
Deployment          Code gen

       Implementation
      Deployment desc
         Dependable
          platform


   Fault-tolerant Systems Research Group
                                                                                4
Budapest University of Technology and Economics


 Model Transformation for Tool Integration
          System design                    VIATRA2             Mathematical analysis
                                             Model
                                           generation           Mathematical
            High-level
                                           Refinement
                                                                   model
             System
              Model
           (UML, BPM,
              DSL)                       List of
                                     inconsistencies
                                                                    Analysis
  Auto-                                           Monitor
Deployment          Code gen
                                                  generation
       Implementation                         Runtime
      Deployment desc                        monitoring
         Dependable                          IT Monitoring
          platform                              System


   Fault-tolerant Systems Research Group
                                                                                       4
Budapest University of Technology and Economics




THE MODEL
TRANSFORMATION PROBLEM

Fault-tolerant Systems Research Group
                                                    5
Budapest University of Technology and Economics

Native (Ad Hoc) Model Transformations




           Native                          Manually written      Native
        Source model                       native program     Target model

                                       Vendor’s own tool
   Fault-tolerant Systems Research Group
                                                                             6
Budapest University of Technology and Economics

Native (Ad Hoc) Model Transformations




   Native source models:
   • EMF
   • XML documents
   • Databases
   • Domain-specific models
   • UML



           Native                          Manually written      Native
        Source model                       native program     Target model

                                       Vendor’s own tool
   Fault-tolerant Systems Research Group
                                                                             6
Budapest University of Technology and Economics

Native (Ad Hoc) Model Transformations




   Native source models:                                Native target models:
   • EMF                                                • EMF
   • XML documents                                      • App source code
   • Databases                                          • XML deployment descript.
   • Domain-specific models                             • Databases
   • UML                                                • Analysis tools



           Native                          Manually written           Native
        Source model                       native program          Target model

                                       Vendor’s own tool
   Fault-tolerant Systems Research Group
                                                                                     6
Budapest University of Technology and Economics

Models, Metamodels, Transformations




                               VIATRA Model Space (VPM)
          Source                           Xform. rules     Target
         metamodel                         (GT+ASM)        metamodel


            Source                                            Target
            model                                             model




           Native                                             Native
        Source model                                       Target model

                                       Vendor’s own tool
   Fault-tolerant Systems Research Group
                                                                          7
Budapest University of Technology and Economics

Models, Metamodels, Transformations




                               VIATRA Model Space (VPM)
          Source                           Xform. rules     Target
         metamodel                         (GT+ASM)        metamodel


            Source                                            Target
            model              Model: Description of a        model
                               concrete system
                               (see Eclipse EMF)


           Native                                             Native
        Source model                                       Target model

                                       Vendor’s own tool
   Fault-tolerant Systems Research Group
                                                                          7
Budapest University of Technology and Economics

Models, Metamodels, Transformations
 Metamodel: Precise spec of
 a modeling language
 (see Eclipse EMF - Ecore)

                                VIATRA Model Space (VPM)
           Source                           Xform. rules     Target
          metamodel                         (GT+ASM)        metamodel


             Source                                            Target
             model              Model: Description of a        model
                                concrete system
                                (see Eclipse EMF)


            Native                                             Native
         Source model                                       Target model

                                        Vendor’s own tool
    Fault-tolerant Systems Research Group
                                                                           7
Budapest University of Technology and Economics

Models, Metamodels, Transformations
 Metamodel: Precise spec of                      Transformation:
 a modeling language                             How to generate
 (see Eclipse EMF - Ecore)                       a target equivalent of
                                                 an arbitrary source model
                                VIATRA Model Space (VPM)
           Source                           Xform. rules      Target
          metamodel                         (GT+ASM)         metamodel


             Source                                             Target
             model              Model: Description of a         model
                                concrete system
                                (see Eclipse EMF)


            Native                                              Native
         Source model                                        Target model

                                        Vendor’s own tool
    Fault-tolerant Systems Research Group
                                                                             7
Budapest University of Technology and Economics

Transformation Engine

                                       Eclipse framework
                        VIATRA2 Model Transformation Plug-in

                               VIATRA Model Space (VPM)
          Source                           Xform. rules     Target
         metamodel                         (GT+ASM)        metamodel


            Source                                             Target
                                           Xform engine
            model                                              model




           Native                                             Native
        Source model                                       Target model

                                       Vendor’s own tool
   Fault-tolerant Systems Research Group
                                                                          8
Budapest University of Technology and Economics

Transformation Engine

                                       Eclipse framework
                        VIATRA2 Model Transformation Plug-in

                               VIATRA Model Space (VPM)
          Source                           Xform. rules     Target
         metamodel                         (GT+ASM)        metamodel


            Source                                             Target
                                           Xform engine
            model                                              model


                               Transformation engine:
                               Support for querying and
           Native              manipulating large models      Native
        Source model                                       Target model

                                       Vendor’s own tool
   Fault-tolerant Systems Research Group
                                                                          8
Budapest University of Technology and Economics

Standalone Transformation Plugins

                                       Eclipse framework
                        VIATRA2 Model Transformation Plug-in

                               VIATRA Model Space (VPM)
          Source                           Xform. rules     Target
         metamodel                         (GT+ASM)        metamodel


            Source                                             Target
                                           Xform engine
            model                                              model
                                           Meta XForm



           Native                             Native          Native
        Source model                       XForm Plugin    Target model

                                       Vendor’s own tool
   Fault-tolerant Systems Research Group
                                                                          9
Budapest University of Technology and Economics

Standalone Transformation Plugins

                                       Eclipse framework
                        VIATRA2 Model Transformation Plug-in

                               VIATRA Model Space (VPM)
          Source                           Xform. rules     Target
         metamodel                         (GT+ASM)        metamodel


            Source                                             Target
                               Xform engine
            model                                              model
                Standalone transformation:
                               Meta XForm
                Independent of transformation
                development environment

           Native                             Native          Native
        Source model                       XForm Plugin    Target model

                                       Vendor’s own tool
   Fault-tolerant Systems Research Group
                                                                          9
Budapest University of Technology and Economics

The VIATRA2 framework

                                       Eclipse framework
                        VIATRA2 Model Transformation Plug-in

                                  VPM Metamodeling Core
            PIM                            Xform. rules     SCADE
         metamodel                         (UML/QVT)       metamodel


           Source                   Xform engine      Target
          PIM model                (ASM+GraTra)    SCADE model
                             Transformation Design
                                    Meta XForm



            Native                    Native          Native
          PIM model        Transformation ExecutionSCADE model
                                   XForm Plugin

                                       Vendor’s own tool
   Fault-tolerant Systems Research Group
                                                                       10
Budapest University of Technology and Economics

Traceability of Transformations


                        VIATRA2 Model Transformation Service

                                VIATRA Model Space (VPM)
           Source                           Reference       Target
          metamodel                         metamodel      metamodel


             Source                          Reference         Target
             model                            model            model




            Native                                            Native
         Source model                                      Target model

                                       Service Consumer
    Fault-tolerant Systems Research Group
                                                                          11
Budapest University of Technology and Economics

Traceability of Transformations


                        VIATRA2 Model Transformation Service

                                VIATRA Model Space (VPM)
           Source                           Reference        Target
          metamodel                         metamodel       metamodel


             Source                          Reference         Target
             model                            model            model


                                Traceability:
                                • Show the source element
            Native              for a target element           Native
         Source model           • Show the target element   Target model
                                for a source element
                                     Service Consumer
    Fault-tolerant Systems Research Group
                                                                           11
Budapest University of Technology and Economics

Back-Annotation of Analysis Results


                       VIATRA2 Model Transformation Service

                               VIATRA Model Space (VPM)
          Source                           Reference       Target
         metamodel                         metamodel      metamodel


            Source                          Reference         Target
            model                            model            model




           Native                                            Native
        Source model                                      Result model

         Modeling Tool                                    Analysis Tool
   Fault-tolerant Systems Research Group
                                                                          12
Budapest University of Technology and Economics

Back-Annotation of Analysis Results


                       VIATRA2 Model Transformation Service

                               VIATRA Model Space (VPM)
          Source                           Reference       Target
         metamodel                         metamodel      metamodel


            Source                          Reference         Target
            model                            model            model




           Native                                            Native
        Source model                                      Result model

         Modeling Tool                                    Analysis Tool
   Fault-tolerant Systems Research Group
                                                                          12
Budapest University of Technology and Economics


The VIATRA2 Framework @ Eclipse




                 http://www.eclipse.org/gmt/VIATRA2
  Fault-tolerant Systems Research Group
                                                      13
Budapest University of Technology and Economics


The VIATRA2 Approach
 Model management:
  − Model space: Unified, global view of
    models, metamodels and transformations
      ● Hierarchical graph model
      ● Complex type hierarchy
      ● Multilevel metamodeling
 Model manipulation and transformations:
  integration of two mathematically precise,
  rule and pattern-based formalisms
  − Graph patterns (GP): structural conditions
  − Graph transformation (GT): elementary xform steps
  − Abstract state machines (ASM): complex xform programs
 Code generation:
  − Special model transformations with
  − Code templates and code formatters

    Fault-tolerant Systems Research Group
                                                            14
Budapest University of Technology and Economics


The VIATRA2 Approach
 Model management:
  − Model space: Unified, global view of
    models, metamodels and transformations
      ● Hierarchical graph model
      ● Complex type hierarchy
      ● Multilevel metamodeling
 Model manipulation and transformations:
  integration of two mathematically precise,
  rule and pattern-based formalisms
  − Graph patterns (GP): structural conditions
  − Graph transformation (GT): elementary xform steps
  − Abstract state machines (ASM): complex xform programs
 Code generation:
  − Special model transformations with
  − Code templates and code formatters

    Fault-tolerant Systems Research Group
                                                            14
Budapest University of Technology and Economics


Metamodeling in VIATRA2 (VTML)
                                                         entity(family) {
                                           Entity            relation(members, family, person);
                                           Entity            isAggregation(members, true);
                    Family
                                           Relation      }
             familyName:String
                                                         entity(person) {
                                                             relation(parent,person,person);
                                                             relation(father,person,man);
                                    father                   multiplicity(father, many_to_one);
        members
                         *          refines                  supertypeOf(parent,father);
                                    parent                   relation(firstname, person,
                   Person                                    datatypes.String);
              firstname:String                           }
              lastname:String mother                     entity(woman) {
   parent
                               refines                       relation(husband, woman, man);
                               parent
                                                             multiplicity(husband, one_to_one);
                                                         }
            husband
 Man                           Woman                     supertypeOf(person,woman);
                       wife
                                                         entity(man) {
                                                             relation(wife, man, woman);

   Fault-tolerant Systems Research Group
                                                                                                  15
Budapest University of Technology and Economics


Metamodeling in VIATRA2 (VTML)
                                                          entity(family) {
                                                              relation(members, family, person);
                                       Aggregation
                                        Relation              isAggregation(members, true);
                    Family
                                                          }
             familyName:String
                                                          entity(person) {
                                           Multiplicity
                                            Relation          relation(parent,person,person);
                                                              relation(father,person,man);
                                    father                    multiplicity(father, many_to_one);
        members
                         *          refines                   supertypeOf(parent,father);
                                    parent                    relation(firstname, person,
                   Person                                     datatypes.String);
              firstname:String                            }
              lastname:String mother                      entity(woman) {
   parent
                               refines                        relation(husband, woman, man);
                               parent
                                                              multiplicity(husband, one_to_one);
                                                          }
            husband
 Man                           Woman                      supertypeOf(person,woman);
                       wife
                                                          entity(man) {
                                        Supertype             relation(wife, man, woman);

   Fault-tolerant Systems Research Group
                                                                                                   16
Budapest University of Technology and Economics


Models in VIATRA2 (VTML)
                                                          namespace people.models;
                     mother      Namespace,
 man                                                      import people.metamodel;
                     father
                                   Imports
woman                wife/husband                         family('Varro1') {
                                                            man('Gyozo') {
        Family Varro1
                                     Instance                      man.wife(wf1, Gyozo, Maria);
                                     definition             }
   Gyozo            Maria                                   woman('Maria') {
                                                                   woman.husband(hb1, Maria, Gyozo);
                                                            }
                                      Explicit
                                                            man('Daniel');
   Daniel          Gergely          instance-of
                                                            entity('Gergely');
                                                            instanceOf(Gergely, man);
                                                            person.father(f1,'Gergely','Gyozo');
                                                            person.mother(m1,'Gergely','Maria');
                                                            family.members(mb1, 'Varro1', 'Gyozo');
                                       Value                family.members(mb2, 'Varro1', 'Maria');
                                   OO datatype              family.members(mb3, 'Varro1', 'Gergely');
                                                            family.members(mb4, 'Varro1', 'Daniel');

   Fault-tolerant Systems Research Group
                                                                                                   17
Budapest University of Technology and Economics

      mother              Graphical notation               Containment View
      father
                                   Family Varro1
      wife/
      husband              Gyozo                   Maria
man

woman
                           Daniel             Gergely

            m1:mother



        Gyozo:Man                  Maria:Woman
                       f1:father
                                            m1:mother
          f1:father

        Daniel:Man                 Gergely:Man

      mb4:members                   mb3:members
mb1:members                              mb2:members
                      Varro1:Family
                                   fn:familyname
str:String    "Varro"

                      Graph view
      Fault-tolerant Systems Research Group
                                                                              18
Budapest University of Technology and Economics


Comparison to EMF
                            EMF                         VPM / VIATRA

Namespace                   Only for                    Both models and
                            metamodels                  metamodels
Navigation                  As explicitly defined Always bidirectional

Generalization Only for classes                         Boths for classes
                                                        and references
Containment                 Along references            Independent from
                                                        references
Generics                    Uni-directional             Bi-directional
                            instance-of                 instance-of
    Fault-tolerant Systems Research Group
                                                                            19
Budapest University of Technology and Economics


The VIATRA2 Approach
 Model management:
  − Model space: Unified, global view of
    models, metamodels and transformations
      ● Hierarchical graph model
      ● Complex type hierarchy
      ● Multilevel metamodeling
 Model manipulation and transformations:
  integration of two mathematically precise,
  rule and pattern-based formalisms
  − Graph patterns (GP): structural conditions
  − Graph transformation (GT): elementary xform steps
  − Abstract state machines (ASM): complex xform programs
 Code generation:
  − Special model transformations with
  − Code templates and code formatters

    Fault-tolerant Systems Research Group
                                                            20
Budapest University of Technology and Economics

      Pattern definition                                         Graphical notation
pattern brother(X,B)
                                                          Family Varro1                  mother
                P: Person                                                                father
                                            P           Gyozo       Maria                wife/
   P1:person               P2:person
                                                                                         husband
                                                                                   man
   X: Person                B: Man                                             B
                                            X           Daniel     Gergely         woman

check (X != B)

          matching
                                             Graph Pattern:
    m1:mother
                                                  − Structural condition that have to be
                                                    fulfilled by a part of the model space
 Gyozo:Man            Maria:Woman
                                             Graph pattern matching:
               f2:father
   f1:father                    m2:mother         − A model (i.e. part of the model space)
                                                    can satisfy a graph pattern,
                                                  − if the pattern can be matched to a
 Daniel:Man           Gergely:Man
                                                    subgraph of the model
       Instance Model
    Fault-tolerant Systems Research Group
                                                                                                  21
Budapest University of Technology and Economics


Graph patterns (VTCL)
                                                         // B is a brother of X
pattern brother(X,B)                                      pattern brother(X, B) =
                                                          {
              P: Person                                      person(X);
 P1:person             P2:person                             person.parent(P1, X, P);
                                                             person(P);
  X: Person               B: Man                             person.parent(P2, B, P);
                                                             man(B);
check (X != B)




     Fault-tolerant Systems Research Group
                                                                                        22
Budapest University of Technology and Economics


Graph patterns (VTCL)
                                                          // B is a brother of X
pattern brother(X,B)                                       pattern brother(X, B) =
                                                           {
              P: Person                                       person(X);
 P1:person               P2:person                            person.parent(P1, X, P);
                                                              person(P);
  X: Person                B: Man                             person.parent(P2, B, P);
                                                              man(B);
check (X != B)
                                                           // S is a sister of X
pattern sister(X,S, F)                                     pattern sister(X, S, F) = {
               F: Man                                         person(X) in F;
                                                              person.father(P1, X, M);
  P1:father              P2:father                            man(M) in F;
                                         OR pattern
  X: Person              S:Woman                              person.father(P2, S, M);
                 OR                                           woman(S) in F;
                                                          } or {
              M: Mother                                       person(X) in F;
 P1:mother               P2:mother                            person.mother(P1, X, W);
                                                              woman(W) in F;
  X: Person              S:Woman
                                                              person.mother(P2, S, W);
     Fault-tolerant Systems Research Group
                                                                                         22
Budapest University of Technology and Economics


Negative patterns (VTCL)
pattern mayMarry(M,W)                                    pattern mayMarry(X, D) = {
                                                            man(M);
  F1: Family           F2: Family
                                                            family(F1);
 MB1:members          MB2:members                           family.members(MB1, F1, M);
                                                            woman(W);
    M: Man             W:Woman               Negative       family(F2);
                                              pattern       family.members(MB2, F2, W);
                                                            neg find married(M);
       X                   X                                neg find married(W);
   neg find            neg find
    married             married                             check (F1 != F2);
                                                         }
check (F1 != F2)
                                                         pattern married(X) =
pattern married(X)                                       {
                                                             man(X);
 X: Man               W: Woman
          P1:person                                          man.wife(WF, X, W);
                       OR                                    woman(W);
 M: Man               X: Woman                            } or {
          P1:person                                          woman(X);

     Fault-tolerant Systems Research Group
                                                                                          23
Budapest University of Technology and Economics


Recursive patterns (VTCL)

                                                          pattern descendants(X, D) = {
 pattern descendants(X,D)
                                                              person(X);
              X: Person                                       person.parent(P2, Ch, X);
                                             OR pattern
                                             Recursive        person(Ch);
  P1:father
                                              pattern         find descendants(Ch, D)
  Ch: Person              D:Person
                                                              person(D);
                                                          } or {
          X         D                                         person(X);
        find descendants                                      person.parent(P1, D, X);
               OR                                             person(D);
            P1:parent

  D: Person             X: Person




     Fault-tolerant Systems Research Group
                                                                                          24
Budapest University of Technology and Economics


Graph transformation rules (VTCL)
 precondition pattern                                               postcondition pattern
 lhs(M,W,F1,MB1,F2,MB2)                                             rhs(M,W,F1,MB1,F2,MB2,F)

    F1: Family           F2: Family                                   F1: Family            F2: Family
                                                Precondition
  MB1:members          MB2:members                pattern
                                                                       M: Man               W:Woman
      M: Man             W:Woman
                                                                      MB1:members      MB4:members

        X                   X                                                   F: Family
    neg find            neg find
     married             married                Postcondition
                                                  pattern
gtrule marry(in M, in W, out F) =
precondition pattern                                        postcondition pattern
lhs(M,W,F1,MB1,F2,MB2) = {                                  rhs(M,W,F1,MB1,F2,MB2) = {
    family(F1);                                                 family(F1);
    family.members(MB1, F1, M);                                 man(M);
    man(M);                                                     family(F2);
    family(F2);                                                 woman(W);
    family.members(MB2, F2, W);                                 family(F);
    woman(W);                                                   family.members(MB3, F, M);
    neg find married(M);                                        family.members(MB4, F, W);

        Fault-tolerant Systems Research Group
                                                                                                         25
Budapest University of Technology and Economics


Graph transformation rules (VTCL)
 precondition pattern
 lhs(M,W,F1,MB1,F2,MB2)

    F1: Family           F2: Family
                                                Precondition
  MB1:members          MB2:members                pattern

      M: Man             W:Woman

        X                   X
    neg find            neg find
     married             married                   Action
                                                    Part
gtrule marry(in M, in W, out F) =
precondition pattern
                                                            action
lhs(M,W,F1,MB1,F2,MB2) = {
                                                             {
    family(F1);
    family.members(MB1, F1, M);                                 delete(MB1);
    man(M);                                                     delete(MB2);
    family(F2);                                                 new(family(F));
    family.members(MB2, F2, W);                                 new(family.members(MB3, F, M));
    woman(W);
                                                                new(family.members(MB4, F, W));
    neg find married(M);

        Fault-tolerant Systems Research Group
                                                                                                  26
Budapest University of Technology and Economics


Structure of GT rules



   NEG                                       LHS           RHS

    X            Z                                  X         X    Y



 gtrule myRule(X,Y)
 Interface with ASM
   − Input variables                        Input         Output
   − Output variables
   − (in Prolog style)                              X              Y
 All parameters can be typed


    Fault-tolerant Systems Research Group
                                                                       27
Budapest University of Technology and Economics


Generic GT rules (VTCL)
 gtrule parentIsAncR(Par,Child)

  precondition lhs(Par,Child)                           postcondition rhs(Par,Child)
                     P1:parent                                         E:anc
      Par:Class                Child:Class                 Par:Class               Child:Class
                                                                       P1:parent



 gtrule parentIsAncR(Par,Child,ClsE,ParR,AncR)

  precondition lhs(Par, Child, P1                       postcondition rhs(Par, Child, P1
                    ClsE,ParR,AncR)                                        ClsE,ParR,AncR)

     ParR:                              AncR:             ParR:                          AncR:
     relation      ClsE:entity          relation          relation     ClsE:entity       relation



                P1:relation                                           P1:relation
     Par:entity          Child:entity                      Par:entity          Child:entity
                                                                      E:relation

    Fault-tolerant Systems Research Group
                                                                                                    28
Budapest University of Technology and Economics


Abstract State Machines
 ASM: high-level                                          forall X below people.models,
                                                              B below people.models
  specification language
                                                              with find brother(X, B) do seq {
   − Control structure for xform
                                                                  print(name(X) + "->" + name(B));
   − Integrated with GT rules                                 }
 Examples
   − update location = term;                               let X = people.models.Varro1.Daniel,
   − parallel {…} / seq {…}                                    Y = people.models.Gyapay1.Szilvia,
   − let var = term in rule;                                   F = undef, F2 = undef in
   − if (formula) rule1; else rule2;                       choose Z below people.models
   − iterate rule;                                            apply marry(X, Y, F) do seq {
   − forall/choose variables                                      rename(F, "Varro2");
     with formula do rule;                                        move(F, people.models);
   − forall/choose variables                                      iterate
     apply gtrule do rule;                                      choose M below people.models,
                                                                       W below
  GT extensions to ASMs                                       people.models          apply marry(M,
  • Permanent states (models) + elementary model manipulation
       Fault-tolerant Systems Research Group
                                                                                                      29
Budapest University of Technology and Economics


Iterate choose vs. Forall
 Executes a GT rule as                                     Executes a GT rule for
  long as possible                                           each match one by one
 Potential nontermination                                  Potentially conflicting
                                                             effects

// This may cause nontermination if the same               // This may cause a conflict when X and B
// match for X and B is enabled after the                  // are both man, and they are brothers
// body of seq is executed
iterate choose X, B with find brother(X, B) do forall X, B with find brother(X, B) do seq {
    seq {                                           delete(X);
                                                              }
   }




       Fault-tolerant Systems Research Group
                                                                                                       30
Budapest University of Technology and Economics


The VIATRA2 Approach
 Model management:
  − Model space: Unified, global view of
    models, metamodels and transformations
      ● Hierarchical graph model
      ● Complex type hierarchy
      ● Multilevel metamodeling
 Model manipulation and transformations:
  integration of two mathematically precise,
  rule and pattern-based formalisms
  − Graph patterns (GP): structural conditions
  − Graph transformation (GT): elementary xform steps
  − Abstract state machines (ASM): complex xform programs
 Code generation:
  − Special model transformations driven by graph patterns
  − Code templates and/or print rules

    Fault-tolerant Systems Research Group
                                                             31
Budapest University of Technology and Economics


Code templates (Ongoing)
 Code generation                                       template printClass(in C) =
                                                        {
  − Code templates                                      public class $C {
  − Code formatters                                     #(forall At,Typ with attrib(C,At,Typ) do seq{)
 Code templates (alpha)                                private $Typ $At;
                                                        #(})
  − Text block with references                          }
    to GTASM patterns, rules                            }
  − Compiled into GTASM
    programs with prints                                // Result
  ≈ Velocity templates                                  rule printClass(in C) = seq {
                                                            print("public class " + C + "{");
 Code formatters                                           forall At,Typ with attrib(C,At,Typ) do
  − Split output code into                                   seq {
    multiple files                                                 print("private " + Typ + " " + At + ";");
  − Pretty printing                                            }
                                                            print("}");


    Fault-tolerant Systems Research Group
                                                                                                               32
Budapest University of Technology and Economics


Other advanced MT issues
 Reusability
  − Pattern composition (find)
  − Rule calls (call)
 Traceability
  − Reference metamodels
  − Explicit storage of reference models
 Extensibility
  − Native transformations:
    written in Java, called from MT programs
  − Integration of domain-specific models


    Fault-tolerant Systems Research Group
                                                        33
Budapest University of Technology and Economics




ADVANCED
TRANSFORMATION
CONCEPTS
Fault-tolerant Systems Research Group
                                                    34
Budapest University of Technology and Economics


Incremental graph pattern matching
 … previous talk




   Fault-tolerant Systems Research Group
                                                       35
Budapest University of Technology and Economics


What really is the incremental pattern matcher?
 Graph patterns ~ complex constraint sets
  − Matching set: overlay of “valid” elements
 RETE: a complex overlay cache of the model
  graph
  − Stores matching sets explicitly
 A historical cache
  − Can store “previous” overlay states




    Fault-tolerant Systems Research Group
                                                        36
Budapest University of Technology and Economics


What really is the incremental pattern matcher?
 Graph patterns ~ complex constraint sets
  − Matching set: overlay of “valid” elements
 RETE: a complex overlay cache of the model
  graph
  − Stores matching sets explicitly
 A historical cache
  − Can store “previous” overlay states




    Fault-tolerant Systems Research Group
                                                        36
Budapest University of Technology and Economics


Idea
 Use the historical overlay to
   − Easily compute non-trivial change information (beyond
     elementary changes)
       ● Detect high-level “events”
       ● Detect (the net effect of) complex change sequences
   − Assign actions to these changes
       ● Event-Condition-Action formalism in rule-based systems
       ●  event-driven transformations
   − Or, easily track the validity set of constraints as the model is
     evolving
       ●  constraint satisfaction solving
   − Or, easily track enabledness conditions for simulation rules
       ●  stochastic model simulation


    Fault-tolerant Systems Research Group
                                                                        37
Budapest University of Technology and Economics


Event-­‐driven	
  and	
  live	
  transforma1ons
 Core	
  idea:	
  represent	
  events	
  as	
  changes	
  in	
  the	
  matching	
  
  set	
  of	
  a	
  pa3ern.
    − More	
  general	
  than	
  previous	
  approaches
    − Use	
  events	
  and	
  reac:ons	
  as	
  transforma:on	
  specifica:on
 Live	
  transforma:ons
    − maintain	
  the	
  context	
  (variable	
  values,	
  global	
  variables,	
  …);
    − run	
  as	
  a	
  “daemon”,	
  react	
  whenever	
  necessary;
    − as	
  the	
  models	
  change,	
  the	
  system	
  can	
  react	
  instantly,	
  since	
  
      everything	
  needed	
  is	
  there	
  in	
  the	
  RETE	
  network:	
  no	
  re-­‐
      computa/on	
  is	
  necessary.	
  
 Paper	
  at	
  ICMT2008:	
  Live	
  model	
  transforma:ons	
  driven	
  
  by	
  incremental	
  pa3ern	
  matching.
      Fault-tolerant Systems Research Group
                                                                                                   38
Budapest University of Technology and Economics


Change-driven transformations
 Generalization of the live transformation approach
 New formalism supports more precise change queries
  − To distinguish between various execution trajectories that
    result in the same net change
  − A more complete adaptation of the ECA approach to graph
    transformations
 Application scenarios
  − Incremental model synchronization for non-materialized
    models (paper at MODELS2009: Change-driven
    transformations)
  − Back-annotation of simulation traces (paper at SEFM2010)



    Fault-tolerant Systems Research Group
                                                                 39
Budapest University of Technology and Economics


Constraint satisfaction over models
 Motivation
   − Very pragmatic problem area: constraint evaluation, “quick fix”
     computation, design or configuration-space exploration etc.
   − CLP(FD) limited: only finite problems can be formulated
       ● Problematic: object birth-and-death
   − CLP(FD) difficult to use
 GT-based approaches
   − Easier-to-use formalism
   − Infinite (dynamic) problems
   − “Traditional” problem: scalability 
 Our aim: combine ease-of-use and flexibility with
  performance



     Fault-tolerant Systems Research Group
                                                                       40
Budapest University of Technology and Economics


CSP(M)
 Described by (M0,C,G,L)                                 Performance
    − M0 initial model (typed graph)                       “Pure” and “Flexible” CSP(M)
    − C set of global constraints (graph                     − Execution times significantly faster
      patterns)                                                than KORAT or GROOVE
    − G set of goals (graph patterns)                      Dynamic CSP(M)
    − L set of labeling rules (GT rules)                     − We can even beat Prolog CLP(FD)
 Goal: Find a model Ms which                                  in some cases 
  satisfies all global constraints and                     In general
  goals (One, All, Optimal solutions)                        − VERY problem specific results
 Extensions                                                 − Lots of potential for future research
    − Flexible CSP
        ● Strong-weak constraints
        ● Quality metrics
    − Dynamic CSP: Add-remove
      constraints, goals, labeling rules on-the-
      fly
         ● Re-use already traversed state
           space

      Fault-tolerant Systems Research Group
                                                                                                   41
Budapest University of Technology and Economics


Stochastic simulation by graph transformation
 Joint work with prof. Reiko Heckel’s group (University of
  Leicester)
 Conceptually similar to the CSP engine
   −   Simulation rule: precondition + transformation
   −   Assign probability distributions to simulation rules
   −   Execute as-long-as-possible
   −   Observe system state changes
 Papers
   − FASE2010: P. Torrini, R. Heckel, I. Ráth: Stochastic simulation of graph
     transformation systems
   − GT-VMT2010: P. Torrini, R. Heckel, I. Ráth, G. Bergmann: Stochastic
     graph transformation with regions
   − ASMTA2010: A. Khan, P. Torrini, R. Heckel and I. Ráth: Model-based
     stochastic simulation of P2P VoIP using graph transformation


       Fault-tolerant Systems Research Group
                                                                                42
Budapest University of Technology and Economics


Applications
 VoIP P2P network behavioral simulation (Skype)
 Other simulation scenarios
  − Social networks
  − Traffic networks
  − Crystal growth
 Evaluation
  − +: Scales well (comparable to dedicated simulators)
  − +: GT is a high-level behavioral specification formalism that is
    easy-to-use
  − -: does not (yet) support certain topological constraints (e.g.
    transitive closure)



    Fault-tolerant Systems Research Group
                                                                  43
Budapest University of Technology and Economics


Summary of VIATRA
 VIATRA: provides a rule and pattern-based language
  for uni-directional model transformations
 Main concepts
  − multi-level metamodeling + model space
  − transformation language
      ● graph transformation
      ● abstract state machines
  − template-based code generation.
 Added value:
  − Rich specification language
  − Advanced and extensible execution strategies
  − Usable for tool integration problems in practice

    Fault-tolerant Systems Research Group
                                                        44
Budapest University of Technology and Economics




VIATRA2 IN TOOL
INTEGRATION

Fault-tolerant Systems Research Group
                                                    45
Budapest University of Technology and Economics


Main Application Fields
 Analysis of Business Process Models                      SOA
    − Verification by MC, Fault simulation,                  − Performance & Availability analysis
      Security analysis                                      − Configuration generation
      (Bell-LaPadula)                                        − Service Analysis and Deployment
    − Optimization (ILog Solver)                               descriptor generation
     IBM Faculty Awards                                     − Verification by MC (BPEL2SAL and
 MDD in the Enterprise                                        back)
    − Incremental correspondence                              SA Forum + SENSORIA IP
      maintenance between Requirements                     Embedded Systems
      models and                                             − PIM & PSM for dependable embedded
         ● Architecture models                                 systems
         ● Design models                                     − PIM & PSM model store
    − Change impact analysis                                 − PIM-to-PSM mapping
     SecureChange IP                                        − PIM & PSM validation
 Domain-specific modeling languages                         − Middleware code generation
    − Design and transformation of domain                    − Test generation using SAL-ATG
      specific languages                                     − Valid PSM generation based on
    − Model simulation and stochastic                          constraints ( CSP(M))
      simulation ( GraSS)                                    DECOS, DIANA, MOGENTES IP
    − Model-based generation of graphical
      user interfaces

      Fault-tolerant Systems Research Group
                                                                                                     46
Budapest University of Technology and Economics


Summary
 Tool integration by precise model transformations: feasible in
   − Service-oriented applications
   − Dependable embedded systems
   − Enterprise applications
 Transformations can be specified by a combination of formal
  techniques
   − Graph transformation
   − Abstract State Machines
 MDD tools
   − Can be built on open tool platforms
   − Integrate a large set of tools
 Our approach
   − Open, customizable
   − Highly adaptive (new modeling standards, platforms, V&V tools, …)



     Fault-tolerant Systems Research Group
                                                                         47
Budapest University of Technology and Economics




Many thanks to
      D. Varró, G. Bergmann, Á. Horváth, Á. Hegedüs, Z. Ujhelyi, G. Varró
      A. Pataricza, A. Balogh, L. Gönczy, B. Polgár, D. Tóth
      Z. Balogh, A. Ökrös, Zs. Déri
      And many more students

THANK YOU FOR YOUR
ATTENTION

Fault-tolerant Systems Research Group
                                                                            48

More Related Content

What's hot

4+1view architecture
4+1view architecture4+1view architecture
4+1view architecturedrewz lin
 
Object Orientation Fundamentals
Object Orientation FundamentalsObject Orientation Fundamentals
Object Orientation FundamentalsPramod Parajuli
 
On the Composition and Reuse of Viewpoints
On the Composition and Reuse of ViewpointsOn the Composition and Reuse of Viewpoints
On the Composition and Reuse of ViewpointsHenry Muccini
 
03 ooad uml-03
03 ooad uml-0303 ooad uml-03
03 ooad uml-03Niit Care
 
Sa 008 architecture_views
Sa 008 architecture_viewsSa 008 architecture_views
Sa 008 architecture_viewsFrank Gielen
 
Performance Evaluation using Blackboard Technique in Software Architecture
Performance Evaluation using Blackboard Technique in Software ArchitecturePerformance Evaluation using Blackboard Technique in Software Architecture
Performance Evaluation using Blackboard Technique in Software ArchitectureEditor IJCATR
 
12 ooad uml-16
12 ooad uml-1612 ooad uml-16
12 ooad uml-16Niit Care
 
BIS09 Application Development - III
BIS09 Application Development - IIIBIS09 Application Development - III
BIS09 Application Development - IIIPrithwis Mukerjee
 
Automatically bridging UML profiles into MOF metamodels
Automatically bridging UML profiles into MOF metamodelsAutomatically bridging UML profiles into MOF metamodels
Automatically bridging UML profiles into MOF metamodelsIvano Malavolta
 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software EngineeringVarsha Ajith
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringPramod Parajuli
 
Availability Assessment of Software Systems Architecture Using Formal Models
Availability Assessment of Software Systems Architecture Using Formal ModelsAvailability Assessment of Software Systems Architecture Using Formal Models
Availability Assessment of Software Systems Architecture Using Formal ModelsEditor IJCATR
 
A Review of Feature Model Position in the Software Product Line and Its Extra...
A Review of Feature Model Position in the Software Product Line and Its Extra...A Review of Feature Model Position in the Software Product Line and Its Extra...
A Review of Feature Model Position in the Software Product Line and Its Extra...CSCJournals
 
Advance Systems Engineering Topics
Advance Systems Engineering TopicsAdvance Systems Engineering Topics
Advance Systems Engineering TopicsAnimesh Chaturvedi
 
Evaluating Alternatives for Requirements, Envireonment, and Implemetation
Evaluating Alternatives for Requirements, Envireonment, and ImplemetationEvaluating Alternatives for Requirements, Envireonment, and Implemetation
Evaluating Alternatives for Requirements, Envireonment, and ImplemetationHenhen Lukmana
 
A Model-Based Method for System Reliability Analysis
A Model-Based Method for System Reliability AnalysisA Model-Based Method for System Reliability Analysis
A Model-Based Method for System Reliability AnalysisDaniele Gianni
 
Framework for developed simple architecture enterprise fdsae
Framework for developed simple architecture enterprise   fdsaeFramework for developed simple architecture enterprise   fdsae
Framework for developed simple architecture enterprise fdsaecsandit
 
10 ooad uml-13
10 ooad uml-1310 ooad uml-13
10 ooad uml-13Niit Care
 
Architectural views
Architectural viewsArchitectural views
Architectural viewsSaleem Khan
 

What's hot (20)

4+1view architecture
4+1view architecture4+1view architecture
4+1view architecture
 
Object Orientation Fundamentals
Object Orientation FundamentalsObject Orientation Fundamentals
Object Orientation Fundamentals
 
On the Composition and Reuse of Viewpoints
On the Composition and Reuse of ViewpointsOn the Composition and Reuse of Viewpoints
On the Composition and Reuse of Viewpoints
 
Sda 7
Sda   7Sda   7
Sda 7
 
03 ooad uml-03
03 ooad uml-0303 ooad uml-03
03 ooad uml-03
 
Sa 008 architecture_views
Sa 008 architecture_viewsSa 008 architecture_views
Sa 008 architecture_views
 
Performance Evaluation using Blackboard Technique in Software Architecture
Performance Evaluation using Blackboard Technique in Software ArchitecturePerformance Evaluation using Blackboard Technique in Software Architecture
Performance Evaluation using Blackboard Technique in Software Architecture
 
12 ooad uml-16
12 ooad uml-1612 ooad uml-16
12 ooad uml-16
 
BIS09 Application Development - III
BIS09 Application Development - IIIBIS09 Application Development - III
BIS09 Application Development - III
 
Automatically bridging UML profiles into MOF metamodels
Automatically bridging UML profiles into MOF metamodelsAutomatically bridging UML profiles into MOF metamodels
Automatically bridging UML profiles into MOF metamodels
 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software Engineering
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Availability Assessment of Software Systems Architecture Using Formal Models
Availability Assessment of Software Systems Architecture Using Formal ModelsAvailability Assessment of Software Systems Architecture Using Formal Models
Availability Assessment of Software Systems Architecture Using Formal Models
 
A Review of Feature Model Position in the Software Product Line and Its Extra...
A Review of Feature Model Position in the Software Product Line and Its Extra...A Review of Feature Model Position in the Software Product Line and Its Extra...
A Review of Feature Model Position in the Software Product Line and Its Extra...
 
Advance Systems Engineering Topics
Advance Systems Engineering TopicsAdvance Systems Engineering Topics
Advance Systems Engineering Topics
 
Evaluating Alternatives for Requirements, Envireonment, and Implemetation
Evaluating Alternatives for Requirements, Envireonment, and ImplemetationEvaluating Alternatives for Requirements, Envireonment, and Implemetation
Evaluating Alternatives for Requirements, Envireonment, and Implemetation
 
A Model-Based Method for System Reliability Analysis
A Model-Based Method for System Reliability AnalysisA Model-Based Method for System Reliability Analysis
A Model-Based Method for System Reliability Analysis
 
Framework for developed simple architecture enterprise fdsae
Framework for developed simple architecture enterprise   fdsaeFramework for developed simple architecture enterprise   fdsae
Framework for developed simple architecture enterprise fdsae
 
10 ooad uml-13
10 ooad uml-1310 ooad uml-13
10 ooad uml-13
 
Architectural views
Architectural viewsArchitectural views
Architectural views
 

Similar to Model transformations in the VIATRA2 framework

Brian muirhead v1-27-12
Brian muirhead v1-27-12Brian muirhead v1-27-12
Brian muirhead v1-27-12NASAPMC
 
Model driven architecture
Model driven architectureModel driven architecture
Model driven architectureBiruk Mamo
 
A World In Motion
A World In MotionA World In Motion
A World In Motionoose
 
xUMLFinalPresentation.ppt
xUMLFinalPresentation.pptxUMLFinalPresentation.ppt
xUMLFinalPresentation.pptssuser2ef938
 
MODEL CHECKERS –TOOLS AND LANGUAGES FOR SYSTEM DESIGN- A SURVEY
MODEL CHECKERS –TOOLS AND LANGUAGES FOR SYSTEM DESIGN- A SURVEYMODEL CHECKERS –TOOLS AND LANGUAGES FOR SYSTEM DESIGN- A SURVEY
MODEL CHECKERS –TOOLS AND LANGUAGES FOR SYSTEM DESIGN- A SURVEYcsandit
 
A tlm based platform to specify and verify component-based real-time systems
A tlm based platform to specify and verify component-based real-time systemsA tlm based platform to specify and verify component-based real-time systems
A tlm based platform to specify and verify component-based real-time systemsijseajournal
 
towards a model-based framework for development of engineering1 (1)
towards a model-based framework for development of engineering1 (1)towards a model-based framework for development of engineering1 (1)
towards a model-based framework for development of engineering1 (1)Jinzhi Lu
 
Giddings
GiddingsGiddings
Giddingsanesah
 
MBSE Training Crash Course
MBSE Training Crash CourseMBSE Training Crash Course
MBSE Training Crash CourseBryan Len
 
A new language for a new biology: How SBML and other tools are transforming m...
A new language for a new biology: How SBML and other tools are transforming m...A new language for a new biology: How SBML and other tools are transforming m...
A new language for a new biology: How SBML and other tools are transforming m...Mike Hucka
 
Model-Based Risk Assessment in Multi-Disciplinary Systems Engineering
Model-Based Risk Assessment in Multi-Disciplinary Systems EngineeringModel-Based Risk Assessment in Multi-Disciplinary Systems Engineering
Model-Based Risk Assessment in Multi-Disciplinary Systems EngineeringEmanuel Mätzler
 
Devnology Back to School: Empirical Evidence on Modeling in Software Development
Devnology Back to School: Empirical Evidence on Modeling in Software DevelopmentDevnology Back to School: Empirical Evidence on Modeling in Software Development
Devnology Back to School: Empirical Evidence on Modeling in Software DevelopmentDevnology
 
Application Of UML In Real-Time Embedded Systems
Application Of UML In Real-Time Embedded SystemsApplication Of UML In Real-Time Embedded Systems
Application Of UML In Real-Time Embedded Systemsijseajournal
 
Performance prediction for software architectures
Performance prediction for software architecturesPerformance prediction for software architectures
Performance prediction for software architecturesMr. Chanuwan
 
Performancepredictionforsoftwarearchitectures 100810045752-phpapp02
Performancepredictionforsoftwarearchitectures 100810045752-phpapp02Performancepredictionforsoftwarearchitectures 100810045752-phpapp02
Performancepredictionforsoftwarearchitectures 100810045752-phpapp02NNfamily
 
Quantify the Functional Requirements in Software System Engineering
Quantify the Functional Requirements in Software System EngineeringQuantify the Functional Requirements in Software System Engineering
Quantify the Functional Requirements in Software System EngineeringKarthika Parthasarathy
 
Reverse Engineering for Documenting Software Architectures, a Literature Review
Reverse Engineering for Documenting Software Architectures, a Literature ReviewReverse Engineering for Documenting Software Architectures, a Literature Review
Reverse Engineering for Documenting Software Architectures, a Literature ReviewEditor IJCATR
 
Model-Based Systems Engineering Demystified
Model-Based Systems Engineering DemystifiedModel-Based Systems Engineering Demystified
Model-Based Systems Engineering DemystifiedElizabeth Steiner
 
System model optimization through functional models execution methodology and...
System model optimization through functional models execution methodology and...System model optimization through functional models execution methodology and...
System model optimization through functional models execution methodology and...Daniele Gianni
 

Similar to Model transformations in the VIATRA2 framework (20)

Brian muirhead v1-27-12
Brian muirhead v1-27-12Brian muirhead v1-27-12
Brian muirhead v1-27-12
 
Model driven architecture
Model driven architectureModel driven architecture
Model driven architecture
 
A World In Motion
A World In MotionA World In Motion
A World In Motion
 
xUMLFinalPresentation.ppt
xUMLFinalPresentation.pptxUMLFinalPresentation.ppt
xUMLFinalPresentation.ppt
 
MODEL CHECKERS –TOOLS AND LANGUAGES FOR SYSTEM DESIGN- A SURVEY
MODEL CHECKERS –TOOLS AND LANGUAGES FOR SYSTEM DESIGN- A SURVEYMODEL CHECKERS –TOOLS AND LANGUAGES FOR SYSTEM DESIGN- A SURVEY
MODEL CHECKERS –TOOLS AND LANGUAGES FOR SYSTEM DESIGN- A SURVEY
 
A tlm based platform to specify and verify component-based real-time systems
A tlm based platform to specify and verify component-based real-time systemsA tlm based platform to specify and verify component-based real-time systems
A tlm based platform to specify and verify component-based real-time systems
 
towards a model-based framework for development of engineering1 (1)
towards a model-based framework for development of engineering1 (1)towards a model-based framework for development of engineering1 (1)
towards a model-based framework for development of engineering1 (1)
 
Giddings
GiddingsGiddings
Giddings
 
MBSE Training Crash Course
MBSE Training Crash CourseMBSE Training Crash Course
MBSE Training Crash Course
 
A new language for a new biology: How SBML and other tools are transforming m...
A new language for a new biology: How SBML and other tools are transforming m...A new language for a new biology: How SBML and other tools are transforming m...
A new language for a new biology: How SBML and other tools are transforming m...
 
Model-Based Risk Assessment in Multi-Disciplinary Systems Engineering
Model-Based Risk Assessment in Multi-Disciplinary Systems EngineeringModel-Based Risk Assessment in Multi-Disciplinary Systems Engineering
Model-Based Risk Assessment in Multi-Disciplinary Systems Engineering
 
Devnology Back to School: Empirical Evidence on Modeling in Software Development
Devnology Back to School: Empirical Evidence on Modeling in Software DevelopmentDevnology Back to School: Empirical Evidence on Modeling in Software Development
Devnology Back to School: Empirical Evidence on Modeling in Software Development
 
Application Of UML In Real-Time Embedded Systems
Application Of UML In Real-Time Embedded SystemsApplication Of UML In Real-Time Embedded Systems
Application Of UML In Real-Time Embedded Systems
 
Performance prediction for software architectures
Performance prediction for software architecturesPerformance prediction for software architectures
Performance prediction for software architectures
 
Performancepredictionforsoftwarearchitectures 100810045752-phpapp02
Performancepredictionforsoftwarearchitectures 100810045752-phpapp02Performancepredictionforsoftwarearchitectures 100810045752-phpapp02
Performancepredictionforsoftwarearchitectures 100810045752-phpapp02
 
Quantify the Functional Requirements in Software System Engineering
Quantify the Functional Requirements in Software System EngineeringQuantify the Functional Requirements in Software System Engineering
Quantify the Functional Requirements in Software System Engineering
 
Reverse Engineering for Documenting Software Architectures, a Literature Review
Reverse Engineering for Documenting Software Architectures, a Literature ReviewReverse Engineering for Documenting Software Architectures, a Literature Review
Reverse Engineering for Documenting Software Architectures, a Literature Review
 
Model-Based Systems Engineering Demystified
Model-Based Systems Engineering DemystifiedModel-Based Systems Engineering Demystified
Model-Based Systems Engineering Demystified
 
java
javajava
java
 
System model optimization through functional models execution methodology and...
System model optimization through functional models execution methodology and...System model optimization through functional models execution methodology and...
System model optimization through functional models execution methodology and...
 

More from Istvan Rath

Cloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool IntegrationCloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool IntegrationIstvan Rath
 
Cloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool IntegrationCloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool IntegrationIstvan Rath
 
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...Istvan Rath
 
IncQuery Server for Teamwork Cloud - Talk at IW2019
IncQuery Server for Teamwork Cloud - Talk at IW2019IncQuery Server for Teamwork Cloud - Talk at IW2019
IncQuery Server for Teamwork Cloud - Talk at IW2019Istvan Rath
 
VIATRA 2.0 Webinar
VIATRA 2.0 WebinarVIATRA 2.0 Webinar
VIATRA 2.0 WebinarIstvan Rath
 
Easier smart home development with simulators and rule engines
Easier smart home development with simulators and rule enginesEasier smart home development with simulators and rule engines
Easier smart home development with simulators and rule enginesIstvan Rath
 
Eclipse VIATRA Overview 2017
Eclipse VIATRA Overview 2017Eclipse VIATRA Overview 2017
Eclipse VIATRA Overview 2017Istvan Rath
 
Smarter internet of things with stream and event processing virtual io_t_meet...
Smarter internet of things with stream and event processing virtual io_t_meet...Smarter internet of things with stream and event processing virtual io_t_meet...
Smarter internet of things with stream and event processing virtual io_t_meet...Istvan Rath
 
Modes3: Model-based Demonstrator for Smart and Safe Systems
Modes3: Model-based Demonstrator for Smart and Safe SystemsModes3: Model-based Demonstrator for Smart and Safe Systems
Modes3: Model-based Demonstrator for Smart and Safe SystemsIstvan Rath
 
Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016
Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016
Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016Istvan Rath
 
Exploring the Future of Eclipse Modeling: Web and Semantic Collaboration
Exploring the Future of Eclipse Modeling: Web and Semantic CollaborationExploring the Future of Eclipse Modeling: Web and Semantic Collaboration
Exploring the Future of Eclipse Modeling: Web and Semantic CollaborationIstvan Rath
 
Okosabb Internet of Things rendszerek komplex eseményfeldolgozás alkalmazásával
Okosabb Internet of Things rendszerek komplex eseményfeldolgozás alkalmazásával Okosabb Internet of Things rendszerek komplex eseményfeldolgozás alkalmazásával
Okosabb Internet of Things rendszerek komplex eseményfeldolgozás alkalmazásával Istvan Rath
 
IoT Supercharged: Complex event processing for MQTT with Eclipse technologies
IoT Supercharged: Complex event processing for MQTT with Eclipse technologiesIoT Supercharged: Complex event processing for MQTT with Eclipse technologies
IoT Supercharged: Complex event processing for MQTT with Eclipse technologiesIstvan Rath
 
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
 
Xcore meets IncQuery: How the New Generation of DSLs are Made
Xcore meets IncQuery: How the New Generation of DSLs are MadeXcore meets IncQuery: How the New Generation of DSLs are Made
Xcore meets IncQuery: How the New Generation of DSLs are MadeIstvan Rath
 
EMF-IncQuery 0.7 Presentation for Itemis
EMF-IncQuery 0.7 Presentation for ItemisEMF-IncQuery 0.7 Presentation for Itemis
EMF-IncQuery 0.7 Presentation for ItemisIstvan Rath
 
Event-driven Model Transformations in Domain-specific Modeling Languages
Event-driven Model Transformations in Domain-specific Modeling LanguagesEvent-driven Model Transformations in Domain-specific Modeling Languages
Event-driven Model Transformations in Domain-specific Modeling LanguagesIstvan Rath
 
The SENSORIA Development Environment
The SENSORIA Development EnvironmentThe SENSORIA Development Environment
The SENSORIA Development EnvironmentIstvan Rath
 
Challenges for advanced domain-specific frameworks
Challenges for advanced domain-specific frameworksChallenges for advanced domain-specific frameworks
Challenges for advanced domain-specific frameworksIstvan Rath
 
Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben
Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésbenTranszformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben
Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésbenIstvan Rath
 

More from Istvan Rath (20)

Cloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool IntegrationCloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool Integration
 
Cloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool IntegrationCloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool Integration
 
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...
 
IncQuery Server for Teamwork Cloud - Talk at IW2019
IncQuery Server for Teamwork Cloud - Talk at IW2019IncQuery Server for Teamwork Cloud - Talk at IW2019
IncQuery Server for Teamwork Cloud - Talk at IW2019
 
VIATRA 2.0 Webinar
VIATRA 2.0 WebinarVIATRA 2.0 Webinar
VIATRA 2.0 Webinar
 
Easier smart home development with simulators and rule engines
Easier smart home development with simulators and rule enginesEasier smart home development with simulators and rule engines
Easier smart home development with simulators and rule engines
 
Eclipse VIATRA Overview 2017
Eclipse VIATRA Overview 2017Eclipse VIATRA Overview 2017
Eclipse VIATRA Overview 2017
 
Smarter internet of things with stream and event processing virtual io_t_meet...
Smarter internet of things with stream and event processing virtual io_t_meet...Smarter internet of things with stream and event processing virtual io_t_meet...
Smarter internet of things with stream and event processing virtual io_t_meet...
 
Modes3: Model-based Demonstrator for Smart and Safe Systems
Modes3: Model-based Demonstrator for Smart and Safe SystemsModes3: Model-based Demonstrator for Smart and Safe Systems
Modes3: Model-based Demonstrator for Smart and Safe Systems
 
Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016
Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016
Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016
 
Exploring the Future of Eclipse Modeling: Web and Semantic Collaboration
Exploring the Future of Eclipse Modeling: Web and Semantic CollaborationExploring the Future of Eclipse Modeling: Web and Semantic Collaboration
Exploring the Future of Eclipse Modeling: Web and Semantic Collaboration
 
Okosabb Internet of Things rendszerek komplex eseményfeldolgozás alkalmazásával
Okosabb Internet of Things rendszerek komplex eseményfeldolgozás alkalmazásával Okosabb Internet of Things rendszerek komplex eseményfeldolgozás alkalmazásával
Okosabb Internet of Things rendszerek komplex eseményfeldolgozás alkalmazásával
 
IoT Supercharged: Complex event processing for MQTT with Eclipse technologies
IoT Supercharged: Complex event processing for MQTT with Eclipse technologiesIoT Supercharged: Complex event processing for MQTT with Eclipse technologies
IoT Supercharged: Complex event processing for MQTT with Eclipse technologies
 
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
 
Xcore meets IncQuery: How the New Generation of DSLs are Made
Xcore meets IncQuery: How the New Generation of DSLs are MadeXcore meets IncQuery: How the New Generation of DSLs are Made
Xcore meets IncQuery: How the New Generation of DSLs are Made
 
EMF-IncQuery 0.7 Presentation for Itemis
EMF-IncQuery 0.7 Presentation for ItemisEMF-IncQuery 0.7 Presentation for Itemis
EMF-IncQuery 0.7 Presentation for Itemis
 
Event-driven Model Transformations in Domain-specific Modeling Languages
Event-driven Model Transformations in Domain-specific Modeling LanguagesEvent-driven Model Transformations in Domain-specific Modeling Languages
Event-driven Model Transformations in Domain-specific Modeling Languages
 
The SENSORIA Development Environment
The SENSORIA Development EnvironmentThe SENSORIA Development Environment
The SENSORIA Development Environment
 
Challenges for advanced domain-specific frameworks
Challenges for advanced domain-specific frameworksChallenges for advanced domain-specific frameworks
Challenges for advanced domain-specific frameworks
 
Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben
Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésbenTranszformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben
Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben
 

Recently uploaded

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 

Recently uploaded (20)

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 

Model transformations in the VIATRA2 framework

  • 1. Budapest University of Technology and Economics Model Transformations in the VIATRA2 Framework István Ráth Dániel Varró PhD candidate Associate professor Budapest University of Technology and Economics Dept. of Measurement and Information Systems Fault-tolerant Systems Research Group 1
  • 2. Budapest University of Technology and Economics Overview - Outline  Introduction − Motivation for model transformations − Main concepts of MTs  The VIATRA2 transformation language − Models and Metamodels − Graph Patterns and Graph transformation − Controlled transformations (Abstract state machines)  Advanced Transformation concepts − Synchronization with Event-driven Transformations − Constraint satisfaction problems over models − Model simulation  Applications in practice: Model-driven tool integration − SENSORIA − Embedded domain Fault-tolerant Systems Research Group 2
  • 3. Budapest University of Technology and Economics Challenges for Software Development Fault-tolerant Systems Research Group 3
  • 4. Budapest University of Technology and Economics Challenges for Software Development  A typical design process of a large system involves − Many stakeholders − Many development teams − Many manmonths − MANY TOOLS ● Requirements, Analysis, Design, Testing, Maintenance, … Fault-tolerant Systems Research Group 3
  • 5. Budapest University of Technology and Economics Challenges for Software Development  A typical design process of a large system involves − Many stakeholders − Many development teams − Many manmonths − MANY TOOLS ● Requirements, Analysis, Design, Testing, Maintenance, …  Tool integration is a major challenge − Design of Embedded / Critical systems: Cost of tool integration ≈ Cost of the tools themselves Fault-tolerant Systems Research Group 3
  • 6. Budapest University of Technology and Economics Challenges for Software Development  A typical design process of a large system involves − Many stakeholders − Many development teams − Many manmonths − MANY TOOLS ● Requirements, Analysis, Design, Testing, Maintenance, …  Tool integration is a major challenge − Design of Embedded / Critical systems: Cost of tool integration ≈ Cost of the tools themselves  Why? − Continuous evolution / changes of tools − Each having its own (modeling / programming) language − Difficult to build correct and robust bridges between them Fault-tolerant Systems Research Group 3
  • 7. Budapest University of Technology and Economics Challenges for Software Development  A typical design process of a large system involves − Many stakeholders − Many development teams − Many manmonths − MANY TOOLS ● Requirements, Analysis, Design, Testing, Maintenance, …  Tool integration is a major challenge − Design of Embedded / Critical systems: Cost of tool integration ≈ Cost of the tools themselves  Why? − Continuous evolution / changes of tools − Each having its own (modeling / programming) language − Difficult to build correct and robust bridges between them Fault-tolerant Systems Research Group 3
  • 8. Budapest University of Technology and Economics Model Transformation for Tool Integration System design High-level System Model (UML, BPM, DSL) Fault-tolerant Systems Research Group 4
  • 9. Budapest University of Technology and Economics Model Transformation for Tool Integration System design Model generation High-level System Model (UML, BPM, DSL) Fault-tolerant Systems Research Group 4
  • 10. Budapest University of Technology and Economics Model Transformation for Tool Integration System design Model generation High-level System Model (UML, BPM, DSL) List of inconsistencies Fault-tolerant Systems Research Group 4
  • 11. Budapest University of Technology and Economics Model Transformation for Tool Integration System design Model generation High-level System Refinement Model (UML, BPM, DSL) List of inconsistencies Fault-tolerant Systems Research Group 4
  • 12. Budapest University of Technology and Economics Model Transformation for Tool Integration System design Model generation High-level System Refinement Model (UML, BPM, DSL) List of inconsistencies Fault-tolerant Systems Research Group 4
  • 13. Budapest University of Technology and Economics Model Transformation for Tool Integration System design Mathematical analysis Model generation Mathematical High-level Refinement model System Model (UML, BPM, DSL) List of inconsistencies Analysis Fault-tolerant Systems Research Group 4
  • 14. Budapest University of Technology and Economics Model Transformation for Tool Integration System design VIATRA2 Mathematical analysis Model generation Mathematical High-level Refinement model System Model (UML, BPM, DSL) List of inconsistencies Analysis Fault-tolerant Systems Research Group 4
  • 15. Budapest University of Technology and Economics Model Transformation for Tool Integration System design VIATRA2 Mathematical analysis Model generation Mathematical High-level Refinement model System Model (UML, BPM, DSL) List of inconsistencies Analysis Code gen Implementation Fault-tolerant Systems Research Group 4
  • 16. Budapest University of Technology and Economics Model Transformation for Tool Integration System design VIATRA2 Mathematical analysis Model generation Mathematical High-level Refinement model System Model (UML, BPM, DSL) List of inconsistencies Analysis Auto- Deployment Code gen Implementation Deployment desc Dependable platform Fault-tolerant Systems Research Group 4
  • 17. Budapest University of Technology and Economics Model Transformation for Tool Integration System design VIATRA2 Mathematical analysis Model generation Mathematical High-level Refinement model System Model (UML, BPM, DSL) List of inconsistencies Analysis Auto- Monitor Deployment Code gen generation Implementation Runtime Deployment desc monitoring Dependable IT Monitoring platform System Fault-tolerant Systems Research Group 4
  • 18. Budapest University of Technology and Economics THE MODEL TRANSFORMATION PROBLEM Fault-tolerant Systems Research Group 5
  • 19. Budapest University of Technology and Economics Native (Ad Hoc) Model Transformations Native Manually written Native Source model native program Target model Vendor’s own tool Fault-tolerant Systems Research Group 6
  • 20. Budapest University of Technology and Economics Native (Ad Hoc) Model Transformations Native source models: • EMF • XML documents • Databases • Domain-specific models • UML Native Manually written Native Source model native program Target model Vendor’s own tool Fault-tolerant Systems Research Group 6
  • 21. Budapest University of Technology and Economics Native (Ad Hoc) Model Transformations Native source models: Native target models: • EMF • EMF • XML documents • App source code • Databases • XML deployment descript. • Domain-specific models • Databases • UML • Analysis tools Native Manually written Native Source model native program Target model Vendor’s own tool Fault-tolerant Systems Research Group 6
  • 22. Budapest University of Technology and Economics Models, Metamodels, Transformations VIATRA Model Space (VPM) Source Xform. rules Target metamodel (GT+ASM) metamodel Source Target model model Native Native Source model Target model Vendor’s own tool Fault-tolerant Systems Research Group 7
  • 23. Budapest University of Technology and Economics Models, Metamodels, Transformations VIATRA Model Space (VPM) Source Xform. rules Target metamodel (GT+ASM) metamodel Source Target model Model: Description of a model concrete system (see Eclipse EMF) Native Native Source model Target model Vendor’s own tool Fault-tolerant Systems Research Group 7
  • 24. Budapest University of Technology and Economics Models, Metamodels, Transformations Metamodel: Precise spec of a modeling language (see Eclipse EMF - Ecore) VIATRA Model Space (VPM) Source Xform. rules Target metamodel (GT+ASM) metamodel Source Target model Model: Description of a model concrete system (see Eclipse EMF) Native Native Source model Target model Vendor’s own tool Fault-tolerant Systems Research Group 7
  • 25. Budapest University of Technology and Economics Models, Metamodels, Transformations Metamodel: Precise spec of Transformation: a modeling language How to generate (see Eclipse EMF - Ecore) a target equivalent of an arbitrary source model VIATRA Model Space (VPM) Source Xform. rules Target metamodel (GT+ASM) metamodel Source Target model Model: Description of a model concrete system (see Eclipse EMF) Native Native Source model Target model Vendor’s own tool Fault-tolerant Systems Research Group 7
  • 26. Budapest University of Technology and Economics Transformation Engine Eclipse framework VIATRA2 Model Transformation Plug-in VIATRA Model Space (VPM) Source Xform. rules Target metamodel (GT+ASM) metamodel Source Target Xform engine model model Native Native Source model Target model Vendor’s own tool Fault-tolerant Systems Research Group 8
  • 27. Budapest University of Technology and Economics Transformation Engine Eclipse framework VIATRA2 Model Transformation Plug-in VIATRA Model Space (VPM) Source Xform. rules Target metamodel (GT+ASM) metamodel Source Target Xform engine model model Transformation engine: Support for querying and Native manipulating large models Native Source model Target model Vendor’s own tool Fault-tolerant Systems Research Group 8
  • 28. Budapest University of Technology and Economics Standalone Transformation Plugins Eclipse framework VIATRA2 Model Transformation Plug-in VIATRA Model Space (VPM) Source Xform. rules Target metamodel (GT+ASM) metamodel Source Target Xform engine model model Meta XForm Native Native Native Source model XForm Plugin Target model Vendor’s own tool Fault-tolerant Systems Research Group 9
  • 29. Budapest University of Technology and Economics Standalone Transformation Plugins Eclipse framework VIATRA2 Model Transformation Plug-in VIATRA Model Space (VPM) Source Xform. rules Target metamodel (GT+ASM) metamodel Source Target Xform engine model model Standalone transformation: Meta XForm Independent of transformation development environment Native Native Native Source model XForm Plugin Target model Vendor’s own tool Fault-tolerant Systems Research Group 9
  • 30. Budapest University of Technology and Economics The VIATRA2 framework Eclipse framework VIATRA2 Model Transformation Plug-in VPM Metamodeling Core PIM Xform. rules SCADE metamodel (UML/QVT) metamodel Source Xform engine Target PIM model (ASM+GraTra) SCADE model Transformation Design Meta XForm Native Native Native PIM model Transformation ExecutionSCADE model XForm Plugin Vendor’s own tool Fault-tolerant Systems Research Group 10
  • 31. Budapest University of Technology and Economics Traceability of Transformations VIATRA2 Model Transformation Service VIATRA Model Space (VPM) Source Reference Target metamodel metamodel metamodel Source Reference Target model model model Native Native Source model Target model Service Consumer Fault-tolerant Systems Research Group 11
  • 32. Budapest University of Technology and Economics Traceability of Transformations VIATRA2 Model Transformation Service VIATRA Model Space (VPM) Source Reference Target metamodel metamodel metamodel Source Reference Target model model model Traceability: • Show the source element Native for a target element Native Source model • Show the target element Target model for a source element Service Consumer Fault-tolerant Systems Research Group 11
  • 33. Budapest University of Technology and Economics Back-Annotation of Analysis Results VIATRA2 Model Transformation Service VIATRA Model Space (VPM) Source Reference Target metamodel metamodel metamodel Source Reference Target model model model Native Native Source model Result model Modeling Tool Analysis Tool Fault-tolerant Systems Research Group 12
  • 34. Budapest University of Technology and Economics Back-Annotation of Analysis Results VIATRA2 Model Transformation Service VIATRA Model Space (VPM) Source Reference Target metamodel metamodel metamodel Source Reference Target model model model Native Native Source model Result model Modeling Tool Analysis Tool Fault-tolerant Systems Research Group 12
  • 35. Budapest University of Technology and Economics The VIATRA2 Framework @ Eclipse http://www.eclipse.org/gmt/VIATRA2 Fault-tolerant Systems Research Group 13
  • 36. Budapest University of Technology and Economics The VIATRA2 Approach  Model management: − Model space: Unified, global view of models, metamodels and transformations ● Hierarchical graph model ● Complex type hierarchy ● Multilevel metamodeling  Model manipulation and transformations: integration of two mathematically precise, rule and pattern-based formalisms − Graph patterns (GP): structural conditions − Graph transformation (GT): elementary xform steps − Abstract state machines (ASM): complex xform programs  Code generation: − Special model transformations with − Code templates and code formatters Fault-tolerant Systems Research Group 14
  • 37. Budapest University of Technology and Economics The VIATRA2 Approach  Model management: − Model space: Unified, global view of models, metamodels and transformations ● Hierarchical graph model ● Complex type hierarchy ● Multilevel metamodeling  Model manipulation and transformations: integration of two mathematically precise, rule and pattern-based formalisms − Graph patterns (GP): structural conditions − Graph transformation (GT): elementary xform steps − Abstract state machines (ASM): complex xform programs  Code generation: − Special model transformations with − Code templates and code formatters Fault-tolerant Systems Research Group 14
  • 38. Budapest University of Technology and Economics Metamodeling in VIATRA2 (VTML) entity(family) { Entity relation(members, family, person); Entity isAggregation(members, true); Family Relation } familyName:String entity(person) { relation(parent,person,person); relation(father,person,man); father multiplicity(father, many_to_one); members * refines supertypeOf(parent,father); parent relation(firstname, person, Person datatypes.String); firstname:String } lastname:String mother entity(woman) { parent refines relation(husband, woman, man); parent multiplicity(husband, one_to_one); } husband Man Woman supertypeOf(person,woman); wife entity(man) { relation(wife, man, woman); Fault-tolerant Systems Research Group 15
  • 39. Budapest University of Technology and Economics Metamodeling in VIATRA2 (VTML) entity(family) { relation(members, family, person); Aggregation Relation isAggregation(members, true); Family } familyName:String entity(person) { Multiplicity Relation relation(parent,person,person); relation(father,person,man); father multiplicity(father, many_to_one); members * refines supertypeOf(parent,father); parent relation(firstname, person, Person datatypes.String); firstname:String } lastname:String mother entity(woman) { parent refines relation(husband, woman, man); parent multiplicity(husband, one_to_one); } husband Man Woman supertypeOf(person,woman); wife entity(man) { Supertype relation(wife, man, woman); Fault-tolerant Systems Research Group 16
  • 40. Budapest University of Technology and Economics Models in VIATRA2 (VTML) namespace people.models; mother Namespace, man import people.metamodel; father Imports woman wife/husband family('Varro1') { man('Gyozo') { Family Varro1 Instance man.wife(wf1, Gyozo, Maria); definition } Gyozo Maria woman('Maria') { woman.husband(hb1, Maria, Gyozo); } Explicit man('Daniel'); Daniel Gergely instance-of entity('Gergely'); instanceOf(Gergely, man); person.father(f1,'Gergely','Gyozo'); person.mother(m1,'Gergely','Maria'); family.members(mb1, 'Varro1', 'Gyozo'); Value family.members(mb2, 'Varro1', 'Maria'); OO datatype family.members(mb3, 'Varro1', 'Gergely'); family.members(mb4, 'Varro1', 'Daniel'); Fault-tolerant Systems Research Group 17
  • 41. Budapest University of Technology and Economics mother Graphical notation Containment View father Family Varro1 wife/ husband Gyozo Maria man woman Daniel Gergely m1:mother Gyozo:Man Maria:Woman f1:father m1:mother f1:father Daniel:Man Gergely:Man mb4:members mb3:members mb1:members mb2:members Varro1:Family fn:familyname str:String  "Varro" Graph view Fault-tolerant Systems Research Group 18
  • 42. Budapest University of Technology and Economics Comparison to EMF EMF VPM / VIATRA Namespace Only for Both models and metamodels metamodels Navigation As explicitly defined Always bidirectional Generalization Only for classes Boths for classes and references Containment Along references Independent from references Generics Uni-directional Bi-directional instance-of instance-of Fault-tolerant Systems Research Group 19
  • 43. Budapest University of Technology and Economics The VIATRA2 Approach  Model management: − Model space: Unified, global view of models, metamodels and transformations ● Hierarchical graph model ● Complex type hierarchy ● Multilevel metamodeling  Model manipulation and transformations: integration of two mathematically precise, rule and pattern-based formalisms − Graph patterns (GP): structural conditions − Graph transformation (GT): elementary xform steps − Abstract state machines (ASM): complex xform programs  Code generation: − Special model transformations with − Code templates and code formatters Fault-tolerant Systems Research Group 20
  • 44. Budapest University of Technology and Economics Pattern definition Graphical notation pattern brother(X,B) Family Varro1 mother P: Person father P Gyozo Maria wife/ P1:person P2:person husband man X: Person B: Man B X Daniel Gergely woman check (X != B) matching  Graph Pattern: m1:mother − Structural condition that have to be fulfilled by a part of the model space Gyozo:Man Maria:Woman  Graph pattern matching: f2:father f1:father m2:mother − A model (i.e. part of the model space) can satisfy a graph pattern, − if the pattern can be matched to a Daniel:Man Gergely:Man subgraph of the model Instance Model Fault-tolerant Systems Research Group 21
  • 45. Budapest University of Technology and Economics Graph patterns (VTCL) // B is a brother of X pattern brother(X,B) pattern brother(X, B) = { P: Person person(X); P1:person P2:person person.parent(P1, X, P); person(P); X: Person B: Man person.parent(P2, B, P); man(B); check (X != B) Fault-tolerant Systems Research Group 22
  • 46. Budapest University of Technology and Economics Graph patterns (VTCL) // B is a brother of X pattern brother(X,B) pattern brother(X, B) = { P: Person person(X); P1:person P2:person person.parent(P1, X, P); person(P); X: Person B: Man person.parent(P2, B, P); man(B); check (X != B) // S is a sister of X pattern sister(X,S, F) pattern sister(X, S, F) = { F: Man person(X) in F; person.father(P1, X, M); P1:father P2:father man(M) in F; OR pattern X: Person S:Woman person.father(P2, S, M); OR woman(S) in F; } or { M: Mother person(X) in F; P1:mother P2:mother person.mother(P1, X, W); woman(W) in F; X: Person S:Woman person.mother(P2, S, W); Fault-tolerant Systems Research Group 22
  • 47. Budapest University of Technology and Economics Negative patterns (VTCL) pattern mayMarry(M,W) pattern mayMarry(X, D) = { man(M); F1: Family F2: Family family(F1); MB1:members MB2:members family.members(MB1, F1, M); woman(W); M: Man W:Woman Negative family(F2); pattern family.members(MB2, F2, W); neg find married(M); X X neg find married(W); neg find neg find married married check (F1 != F2); } check (F1 != F2) pattern married(X) = pattern married(X) { man(X); X: Man W: Woman P1:person man.wife(WF, X, W); OR woman(W); M: Man X: Woman } or { P1:person woman(X); Fault-tolerant Systems Research Group 23
  • 48. Budapest University of Technology and Economics Recursive patterns (VTCL) pattern descendants(X, D) = { pattern descendants(X,D) person(X); X: Person person.parent(P2, Ch, X); OR pattern Recursive person(Ch); P1:father pattern find descendants(Ch, D) Ch: Person D:Person person(D); } or { X D person(X); find descendants person.parent(P1, D, X); OR person(D); P1:parent D: Person X: Person Fault-tolerant Systems Research Group 24
  • 49. Budapest University of Technology and Economics Graph transformation rules (VTCL) precondition pattern postcondition pattern lhs(M,W,F1,MB1,F2,MB2) rhs(M,W,F1,MB1,F2,MB2,F) F1: Family F2: Family F1: Family F2: Family Precondition MB1:members MB2:members pattern M: Man W:Woman M: Man W:Woman MB1:members MB4:members X X F: Family neg find neg find married married Postcondition pattern gtrule marry(in M, in W, out F) = precondition pattern postcondition pattern lhs(M,W,F1,MB1,F2,MB2) = { rhs(M,W,F1,MB1,F2,MB2) = { family(F1); family(F1); family.members(MB1, F1, M); man(M); man(M); family(F2); family(F2); woman(W); family.members(MB2, F2, W); family(F); woman(W); family.members(MB3, F, M); neg find married(M); family.members(MB4, F, W); Fault-tolerant Systems Research Group 25
  • 50. Budapest University of Technology and Economics Graph transformation rules (VTCL) precondition pattern lhs(M,W,F1,MB1,F2,MB2) F1: Family F2: Family Precondition MB1:members MB2:members pattern M: Man W:Woman X X neg find neg find married married Action Part gtrule marry(in M, in W, out F) = precondition pattern action lhs(M,W,F1,MB1,F2,MB2) = { { family(F1); family.members(MB1, F1, M); delete(MB1); man(M); delete(MB2); family(F2); new(family(F)); family.members(MB2, F2, W); new(family.members(MB3, F, M)); woman(W); new(family.members(MB4, F, W)); neg find married(M); Fault-tolerant Systems Research Group 26
  • 51. Budapest University of Technology and Economics Structure of GT rules NEG LHS RHS X Z X X Y  gtrule myRule(X,Y)  Interface with ASM − Input variables Input Output − Output variables − (in Prolog style) X Y  All parameters can be typed Fault-tolerant Systems Research Group 27
  • 52. Budapest University of Technology and Economics Generic GT rules (VTCL) gtrule parentIsAncR(Par,Child) precondition lhs(Par,Child) postcondition rhs(Par,Child) P1:parent E:anc Par:Class Child:Class Par:Class Child:Class P1:parent gtrule parentIsAncR(Par,Child,ClsE,ParR,AncR) precondition lhs(Par, Child, P1 postcondition rhs(Par, Child, P1 ClsE,ParR,AncR) ClsE,ParR,AncR) ParR: AncR: ParR: AncR: relation ClsE:entity relation relation ClsE:entity relation P1:relation P1:relation Par:entity Child:entity Par:entity Child:entity E:relation Fault-tolerant Systems Research Group 28
  • 53. Budapest University of Technology and Economics Abstract State Machines  ASM: high-level forall X below people.models, B below people.models specification language with find brother(X, B) do seq { − Control structure for xform print(name(X) + "->" + name(B)); − Integrated with GT rules }  Examples − update location = term; let X = people.models.Varro1.Daniel, − parallel {…} / seq {…} Y = people.models.Gyapay1.Szilvia, − let var = term in rule; F = undef, F2 = undef in − if (formula) rule1; else rule2; choose Z below people.models − iterate rule; apply marry(X, Y, F) do seq { − forall/choose variables rename(F, "Varro2"); with formula do rule; move(F, people.models); − forall/choose variables iterate apply gtrule do rule; choose M below people.models, W below GT extensions to ASMs people.models apply marry(M, • Permanent states (models) + elementary model manipulation Fault-tolerant Systems Research Group 29
  • 54. Budapest University of Technology and Economics Iterate choose vs. Forall  Executes a GT rule as  Executes a GT rule for long as possible each match one by one  Potential nontermination  Potentially conflicting effects // This may cause nontermination if the same // This may cause a conflict when X and B // match for X and B is enabled after the // are both man, and they are brothers // body of seq is executed iterate choose X, B with find brother(X, B) do forall X, B with find brother(X, B) do seq { seq { delete(X); } } Fault-tolerant Systems Research Group 30
  • 55. Budapest University of Technology and Economics The VIATRA2 Approach  Model management: − Model space: Unified, global view of models, metamodels and transformations ● Hierarchical graph model ● Complex type hierarchy ● Multilevel metamodeling  Model manipulation and transformations: integration of two mathematically precise, rule and pattern-based formalisms − Graph patterns (GP): structural conditions − Graph transformation (GT): elementary xform steps − Abstract state machines (ASM): complex xform programs  Code generation: − Special model transformations driven by graph patterns − Code templates and/or print rules Fault-tolerant Systems Research Group 31
  • 56. Budapest University of Technology and Economics Code templates (Ongoing)  Code generation template printClass(in C) = { − Code templates public class $C { − Code formatters #(forall At,Typ with attrib(C,At,Typ) do seq{)  Code templates (alpha) private $Typ $At; #(}) − Text block with references } to GTASM patterns, rules } − Compiled into GTASM programs with prints // Result ≈ Velocity templates rule printClass(in C) = seq { print("public class " + C + "{");  Code formatters forall At,Typ with attrib(C,At,Typ) do − Split output code into seq { multiple files print("private " + Typ + " " + At + ";"); − Pretty printing } print("}"); Fault-tolerant Systems Research Group 32
  • 57. Budapest University of Technology and Economics Other advanced MT issues  Reusability − Pattern composition (find) − Rule calls (call)  Traceability − Reference metamodels − Explicit storage of reference models  Extensibility − Native transformations: written in Java, called from MT programs − Integration of domain-specific models Fault-tolerant Systems Research Group 33
  • 58. Budapest University of Technology and Economics ADVANCED TRANSFORMATION CONCEPTS Fault-tolerant Systems Research Group 34
  • 59. Budapest University of Technology and Economics Incremental graph pattern matching  … previous talk Fault-tolerant Systems Research Group 35
  • 60. Budapest University of Technology and Economics What really is the incremental pattern matcher?  Graph patterns ~ complex constraint sets − Matching set: overlay of “valid” elements  RETE: a complex overlay cache of the model graph − Stores matching sets explicitly  A historical cache − Can store “previous” overlay states Fault-tolerant Systems Research Group 36
  • 61. Budapest University of Technology and Economics What really is the incremental pattern matcher?  Graph patterns ~ complex constraint sets − Matching set: overlay of “valid” elements  RETE: a complex overlay cache of the model graph − Stores matching sets explicitly  A historical cache − Can store “previous” overlay states Fault-tolerant Systems Research Group 36
  • 62. Budapest University of Technology and Economics Idea  Use the historical overlay to − Easily compute non-trivial change information (beyond elementary changes) ● Detect high-level “events” ● Detect (the net effect of) complex change sequences − Assign actions to these changes ● Event-Condition-Action formalism in rule-based systems ●  event-driven transformations − Or, easily track the validity set of constraints as the model is evolving ●  constraint satisfaction solving − Or, easily track enabledness conditions for simulation rules ●  stochastic model simulation Fault-tolerant Systems Research Group 37
  • 63. Budapest University of Technology and Economics Event-­‐driven  and  live  transforma1ons  Core  idea:  represent  events  as  changes  in  the  matching   set  of  a  pa3ern. − More  general  than  previous  approaches − Use  events  and  reac:ons  as  transforma:on  specifica:on  Live  transforma:ons − maintain  the  context  (variable  values,  global  variables,  …); − run  as  a  “daemon”,  react  whenever  necessary; − as  the  models  change,  the  system  can  react  instantly,  since   everything  needed  is  there  in  the  RETE  network:  no  re-­‐ computa/on  is  necessary.    Paper  at  ICMT2008:  Live  model  transforma:ons  driven   by  incremental  pa3ern  matching. Fault-tolerant Systems Research Group 38
  • 64. Budapest University of Technology and Economics Change-driven transformations  Generalization of the live transformation approach  New formalism supports more precise change queries − To distinguish between various execution trajectories that result in the same net change − A more complete adaptation of the ECA approach to graph transformations  Application scenarios − Incremental model synchronization for non-materialized models (paper at MODELS2009: Change-driven transformations) − Back-annotation of simulation traces (paper at SEFM2010) Fault-tolerant Systems Research Group 39
  • 65. Budapest University of Technology and Economics Constraint satisfaction over models  Motivation − Very pragmatic problem area: constraint evaluation, “quick fix” computation, design or configuration-space exploration etc. − CLP(FD) limited: only finite problems can be formulated ● Problematic: object birth-and-death − CLP(FD) difficult to use  GT-based approaches − Easier-to-use formalism − Infinite (dynamic) problems − “Traditional” problem: scalability   Our aim: combine ease-of-use and flexibility with performance Fault-tolerant Systems Research Group 40
  • 66. Budapest University of Technology and Economics CSP(M)  Described by (M0,C,G,L) Performance − M0 initial model (typed graph)  “Pure” and “Flexible” CSP(M) − C set of global constraints (graph − Execution times significantly faster patterns) than KORAT or GROOVE − G set of goals (graph patterns)  Dynamic CSP(M) − L set of labeling rules (GT rules) − We can even beat Prolog CLP(FD)  Goal: Find a model Ms which in some cases  satisfies all global constraints and  In general goals (One, All, Optimal solutions) − VERY problem specific results  Extensions − Lots of potential for future research − Flexible CSP ● Strong-weak constraints ● Quality metrics − Dynamic CSP: Add-remove constraints, goals, labeling rules on-the- fly ● Re-use already traversed state space Fault-tolerant Systems Research Group 41
  • 67. Budapest University of Technology and Economics Stochastic simulation by graph transformation  Joint work with prof. Reiko Heckel’s group (University of Leicester)  Conceptually similar to the CSP engine − Simulation rule: precondition + transformation − Assign probability distributions to simulation rules − Execute as-long-as-possible − Observe system state changes  Papers − FASE2010: P. Torrini, R. Heckel, I. Ráth: Stochastic simulation of graph transformation systems − GT-VMT2010: P. Torrini, R. Heckel, I. Ráth, G. Bergmann: Stochastic graph transformation with regions − ASMTA2010: A. Khan, P. Torrini, R. Heckel and I. Ráth: Model-based stochastic simulation of P2P VoIP using graph transformation Fault-tolerant Systems Research Group 42
  • 68. Budapest University of Technology and Economics Applications  VoIP P2P network behavioral simulation (Skype)  Other simulation scenarios − Social networks − Traffic networks − Crystal growth  Evaluation − +: Scales well (comparable to dedicated simulators) − +: GT is a high-level behavioral specification formalism that is easy-to-use − -: does not (yet) support certain topological constraints (e.g. transitive closure) Fault-tolerant Systems Research Group 43
  • 69. Budapest University of Technology and Economics Summary of VIATRA  VIATRA: provides a rule and pattern-based language for uni-directional model transformations  Main concepts − multi-level metamodeling + model space − transformation language ● graph transformation ● abstract state machines − template-based code generation.  Added value: − Rich specification language − Advanced and extensible execution strategies − Usable for tool integration problems in practice Fault-tolerant Systems Research Group 44
  • 70. Budapest University of Technology and Economics VIATRA2 IN TOOL INTEGRATION Fault-tolerant Systems Research Group 45
  • 71. Budapest University of Technology and Economics Main Application Fields  Analysis of Business Process Models  SOA − Verification by MC, Fault simulation, − Performance & Availability analysis Security analysis − Configuration generation (Bell-LaPadula) − Service Analysis and Deployment − Optimization (ILog Solver) descriptor generation  IBM Faculty Awards − Verification by MC (BPEL2SAL and  MDD in the Enterprise back) − Incremental correspondence  SA Forum + SENSORIA IP maintenance between Requirements  Embedded Systems models and − PIM & PSM for dependable embedded ● Architecture models systems ● Design models − PIM & PSM model store − Change impact analysis − PIM-to-PSM mapping  SecureChange IP − PIM & PSM validation  Domain-specific modeling languages − Middleware code generation − Design and transformation of domain − Test generation using SAL-ATG specific languages − Valid PSM generation based on − Model simulation and stochastic constraints ( CSP(M)) simulation ( GraSS)  DECOS, DIANA, MOGENTES IP − Model-based generation of graphical user interfaces Fault-tolerant Systems Research Group 46
  • 72. Budapest University of Technology and Economics Summary  Tool integration by precise model transformations: feasible in − Service-oriented applications − Dependable embedded systems − Enterprise applications  Transformations can be specified by a combination of formal techniques − Graph transformation − Abstract State Machines  MDD tools − Can be built on open tool platforms − Integrate a large set of tools  Our approach − Open, customizable − Highly adaptive (new modeling standards, platforms, V&V tools, …) Fault-tolerant Systems Research Group 47
  • 73. Budapest University of Technology and Economics Many thanks to D. Varró, G. Bergmann, Á. Horváth, Á. Hegedüs, Z. Ujhelyi, G. Varró A. Pataricza, A. Balogh, L. Gönczy, B. Polgár, D. Tóth Z. Balogh, A. Ökrös, Zs. Déri And many more students THANK YOU FOR YOUR ATTENTION Fault-tolerant Systems Research Group 48