SlideShare une entreprise Scribd logo
1  sur  78
MDE 2.0 – Pragmatic formal model verification
             and other stories



                  Jordi Cabot

                     HdR

         http://modeling-languages.com



                                           1
Index

   Introducing MDE

   Research in MDE

   A Research Agenda for MDE 2.0

    – Models & Quality

    – Legacy systems

    – Social aspects

    – Very Large models

   Dissemination and technology transfer

   Credits

   Conclusions
Software is everywhere

                   Medicine




    Power grid
                              Software
Aerospace




                         Automotive
but software development is still a challenge
Model-driven Engineering

   MDE tries to improve this situation by promoting engineering
    principles in Software Engineering

   MDE advocates the rigorous use of software models as the main
    artifacts in all software engineering activities.

   This in fact is common practice in many other professions

   Does anybody imagine building a house without plans?
The MDEequation
Many MDE applications


                             Code
                          Generation




                          Software
                        Modernization



                          Systems
                        interoperability
MDE = Model-Driven Everything



          MDSD
        (software
      development)

                     MDE
                 (engineering)




                 MDSD


               MDE



                                 8
What is MDE?

      UML                 Profile                     OMG
                                           OCL
  Ecore         Code-Generation           QVT
                         Marte                TGG
   Model Evolution              Metamodel
MOF         DSLs           SBVR
                                                  EMF
  Profiles                  Model-driven Rev. Eng
              MDD
                                          ATL
      M2M          Multi-modeling
                                                MDA
                                    M2T            Graph
Model-Based Testing
                                                BPMN
      T2M            Model Quality
There’s hope - Order in the Chaos

   Basic principle: Everything is a model (J. Bézivin)

   Models are designed/built/generated to be
     –Observed
     –Transformed

   The MDE Equation:
            Models + transformations = Software

where of course transformations can also be regarded as models

          Models + transformation models = Software

           Models + Models = Software
           2 x Models = Software

           Models = 1/2 Software ???????
What is a model


City of Nantes =
  “system” to be
     modeled
A map is a model of
    this system

Its legend (what
   elements can
 appear, how they
 can be combined,
      …) is the
     grammar/
     metamodel
                    © AtlanMod - atlanmod-contact@mines-
     13/09/12                     nantes.fr                11
Models & Metamodels

A model is the result, of the observation
    of a system considering a given
   metamodel with specific objectives
              or purposes.


                               System S                 Metamodel
                    .
                                                           MM



                                                      conforms to
                    representation of



                                            Model M




                                                                    12
The 3-level Modeling Stack

conforms to

                Metametamodel
                     M3



       conforms to


                  Metamodel
                     M2



       conforms to



                  Model M1




                              © AtlanMod - atlanmod-contact@mines-
     13/09/12                               nantes.fr                13
Btw, same approach as other Technical Spaces



            MDE           Grammarware



            MOF             EBNF.g
       (metametamodel)


            UML             Java.g
         (metamodel)


         ABank.uml       MyProgram.java
MDE Core Technique/Operation:
                      Model Transformation

   Model-to-Model Transformation (M2M)




         Java                                                             UML2
       Metamodel                                                        Metamodel




                                                    Conforms to
                   Conforms to




                                                                                    Conforms to
                                        Transformation
                                         Java-to-UML2

         Model a                                                         Model b




                                 © AtlanMod - atlanmod-contact@mines-
       13/09/12                                nantes.fr                                          15
Index

   Introducing MDE

   Research in MDE

   A Research Agenda for MDE 2.0

    – Models & Quality

    – Legacy systems

    – Social aspects

    – Very Large models

   Dissemination and technology transfer

   Credits

   Conclusions
Research in MDE
We have advanced a lot on the core techniques

   UML and profiles

   DSLs & Language workbenches

   Model-to-model and model-to-text transformations

   Model management and evolution

   …
with some contributions: Conceptual Modeling




J Cabot, R Raventós: Conceptual Modelling Patterns for Roles. Journal on
   Data Semantics
with some contributions: Rule modeling




J Cabot, E Teniente: Transformation Techniques for OCL Constraints.
   Science of Computer Programming Journal
with some contributions: Code Generation




Albert, Cabot, Gómez, Pelechano: Automatic Generation of Basic Behavior Schemas from
    UML Class Diagrams. Software and Systems Modeling
Albert,Cabot, Gómez,Pelechano. Generating operation specifications from UML class
    diagrams: A model transformation approach. Data & Knowledge Engineering
with some personal contributions: Code
                  Generation




J Cabot, E Teniente: Incremental Integrity Checking of UML/OCL
   Conceptual Schemas. Journal of Systems and Software
with some contributions: UML Validation


                        Validate
                                               English Text
   Stakeholder


         Explains
                                                                             Transf M2T:
                                                                           SBVR to Natural
                                                                             Language

               Models   UML
                        CASE                   Transf. M2M:                Structured
                                                                           English
                                   UML Model                  SBVR Model
                        Tool                   UML to SBVR

    Designer                                                               RuleSpeak



                                                                             ...
                                                                             ...




J Cabot, R Pau, R Raventós: From UML/OCL to SBVR Specifications:
   a Challenging Transformation. Information Systems
with some contributions: API integration




J Cánovas, F Jouault, J Cabot, J García Molina. API2MoL: Automating
the building of bridges between APIs and Model-Driven Engineering.
Information and Software Technology.
But it’s clearly not enough

   Modeling will be commonplace in 3 years time – S. Mellor
     Though he is giving the same answer for the last 20 years
Index

   Introducing MDE

   Research in MDE

   A Research Agenda for MDE 2.0

    – Models & Quality

    – Legacy systems

    – Social aspects

    – Very Large models

   Dissemination and technology transfer

   Credits

   Conclusions
What else do we need?
       MDE 2.0
Four main challenges

1. Quality of models

2. Support for legacy systems

3. Social aspects of MDE

4. Very large models / Scalability
Quality
Quality

        Quality is a very broad concept




       We focus on the verification of models (are we building the models right?)
        and, partially, on their validation (are we building the right models?)
Importance of Quality in models



     MDE-based software development process
Original              1st refinement         nth refinement
 model                                                                         Source
                                                                                Code



                                       ...
               Model                                              Model
           Transformation                                     Transformation




           Errors in models will lead to errors in
                    the resulting software
           31
                                                                                        ©
A Basic quality property: Satisfiability

   Satisfiability is the most basic correctness property for static models.
    Liveliness, redundancy,… can be expressed in terms of this one
   A model is satisfiable if it is possible to create a valid instantiation of that
    model. Otherwise it is useless, users won’t be able to work with the model
   A instantiation is valid if it satisfies all model constraints




                                    name = “Peter”
                                                     e1: Employee
                               *                     WorksIn                                       1




                                                                    WorksIn
           Employee                                                                                          Dept

    name: String
                              workers                                                            dept   id: String
                              1     Boss                                                  0..1
                              manager                                                 managed

                                                                          id = “HR”
                                                                                      d1: Dept
                                    Boss
                                    name
Example: Is it satisfiable?



               2      parent

          Person
       name: string       children
                         *



+ constraint : Nobody can be his own ancestor
How models are verified?




                …..
         Strong Satisfiability
34
                                 ©
But Quality classified as a Grand Challenge


             MDE




                          1E+18 scenarios for small
                             models (classes=10)



                            More than cells in the
                                human body!!!
Finding the right trade-off
   No perfect solution exists




            Automation                     Efficiency




                            Verification



       Expressiveness                      Complete
Our “pragmatic” approach


               EMF/UML model
                                                        Property?
1. Class diagram / metamodel
2. OCL constraints


                       Translate                      Deduce
    Constraint Satisfaction Problem
1. Variables    – basic types + struct/list
2. Domains      – finite
                                              Solve
3. Constraints – Prolog                                  Solution?

4. Property -> Additional Constraint
Translation of OCL invariants


    context Paper inv: self.wordCount < 10000


                                OperationCallExp
 OCL invariant =                      <

  instance of OCL
  metamodel
                           AttribCallExp     IntLiteralExp
 Invariant becomes a       wordCount            10000
  constraint of the CSP

                           VariableExp
                               self
Translation of OCL invariants



                                         Result


                                   OperationCallExp
LessThan(Vars, Result):-                  <
 // Evaluate subexpressions
                                   X                  Y
 Attribute(Vars, X),
 Constant(Y),                  AttribCallExp IntLiteralExp
 // Compute result              wordCount        10000

 #<(X,Y, Result).                 Z


                               VariableExp
                                   self
Translation of OCL invariants

                                             Result
attribute(Vars, X) :-
 // Evaluate subexpressions            OperationCallExp
 self(Vars, Z),                               <
 arg(Z, “wordCount”, X).
                                    X                        Y


                                AttribCallExp         IntLiteralExp
                                 wordCount                10000
                                   Z


      self(Vars, Z) :-          VariableExp
                                    self        constant (Y):-
 // Z is the only visible var
     nth1(1, Vars, Z).                            Y = 10000.
Translation of OCL invariants


context Paper inv: self.wordCount < 10000



      invariant(Papers):-
      // Expression must be true
      // for each Paper
      ( for (Paper, Papers)
         do
         LessThan([Paper],Result),
         Result #= 1 ) .
OCL Prolog library

   To analyze OCL constraints, it is necessary to provide a translation for
    all OCL constructs in terms of the Prolog-based language used by the
    ECLiPSe solver.

   We have extended ECLiPSe with a new library dedicated to the
    translation of OCL constraints

   The library makes use of the ECLiPSe support for higher-order
    predicates
    e.g. ocl_set_collect(Instances, Vars, Set, Predicate, Result),


   Removal of symmetries and the suspension mechanism are used to
    optimize the performance of the library
Resolution of the CSP

Define cardinality variables
Constraints on cardinalities


Assign cardinalities



Define attribute variables
Constraints on attributes



Assign attributes
                                               Proof
Trade-offs in verification


   Decidability: is automation possible?   Yes

   Completeness: proof for any input?
        No, bounded verification
        (but Small Scope hypothesis – D. Jackson )

   Expressiveness: full OCL support?       Yes

   Efficiency:   Controlled by the user




   Validation is also possible: we can generate valid instances from
    partial models
Other applications (1): Operation contracts

   Verification of contracts: Applicability and executability of
                     operations, determinism,…
Other applications(2): Graph Transformation to OCL
                             work
                         NAC:         LHS:      RHS:
                                op1                    op2


                         machine      machine    machine




context System::work()
                                                LHS
                                                             NAC
pre: Machine::allInstances()−>exists(m|
 not ( Operator::allInstances()−>exists(op1|m.operator−> includes(op1)))

post: Machine::allInstances()@pre−>exists(m| not
 ( Operator::allInstances@pre()−>exists(op1|m.operator->includes(p1)))
 and op2.oclIsNew() and op2.oclIsTypeOf(Operator) and m.operator−>includes(op2

                                                                           RHS

Cabot, Clarisó, Guerra, de Lara: A UML/OCL framework for the analysis
    of graph transformation rules. Software and System Modeling
Other applications(3): TGG / QVT / ATL to OCL
                                   work

            {new}                                      {new}
                          {new}                {new}
           c :Class               c2t :Cl2Tb           t :Table

            name                  {new}                 name
          persistent


            ATTR COND: c.name=t.name and c.persistent=true

    Invariants:

context Cl2Tb Inv:
  self.class.size()=1 and self.table.size()=1 and self.class.name=self.table.name

context Class Inv:
  self.persistent=true implies self.Cl2Tb.size() >=1

context Table Inv:
  self.Cl2Tb.size() >=1
                                           Cabot, Clariso, Guerra, de Lara: Verification
                                           and validation of declarative model-to-model
                                          transformations through invariants. Journal of
                                                      Systems and Software
Challenges / Work in Progress

   Incremental verification

   Combine CSPs with SMT solvers to provide a complete verification approach
    when possible.

   More meaningful feedback (e.g. the subset of constraints that cause the
    inconsistency)

   Model slicing for parallel verification
Model-driven Reverse Engineering
MoDISCO: a MDRE framerwork
                                                      Modernization
              Legacy                                    helpers
              Systems                                            •Documentation
                                                                 •Impact analysis


Source code                                                       •Models
                                                                  •Viewpoints

 Databases
                                                                 •Restructured code
                                                                 •Migrated code
Configuration
    files
                                                                 •Metrics
                                    MoDisco                      •Norms checking


                            Eclipse Modeling


        Instead of adhoc Rev. Eng. Solutions, we use an intermediate
         model-based representation of the legacy system
MDRE phases in MoDisco




                         Discove     Understan      Transform
                            r            d
   Legacy artifacts :
     - source code
 - configuration files
         - tests                                          New
                          Models       Viewpoints
      - databases                                   Software Artifacts
          - etc.

 Why? Models provide an homogeneous and
  interrelated representation of all legacy components.
     No information loss: initial models have a 1:1
     correspondance with the code
              51
Challenges / Work in Progress

   Extraction of business rules
     – Getting a model of the code helps but it’s still too low-level for a
       stakeholder to look at it
     – Semi-automatic approach with IBM.

   Rev Eng of the whole software system
     – We know how to extract a model from a single component but we
       don’t take into account its relationship with other components (esp. in
       other layers)
     – Companies are interested in knowing the enterprise architecture (e.g.
       TOGAF) of a system
Challenges / Work in Progress

   Reverse Engineering of security policies
Social aspects of MDE
Social aspects of MDE

    We need a better understanding of the needs of users (technical and non-
     technical) to make sure we solve their actual problems (and not the ones
     we think they have).

    One example: Huge amount of research on providing methods for the
     specification, validation, etc of non-functional requirements:
      – Nontechnical constraints (like cost, type of license, specific providers)
        are as prominent as technical requirements like performance or security
      – Modern technology platforms already cover many applications’ quality
        requirements so explicit NFR management not so useful
      – NFRs are hardly ever documented and poorly validated


    Architecture Quality Revisited. Buschmann, Frank; Ameller, David; Ayala,
       Claudia P.; Cabot, Jordi; Franch, Xavier. IEEE Software, vol. 29 (4)
Dealing with users is not easy




56
                                      ©
Collaborative development of DSLs

   Participation of end-users is specially relevant when creating DSLs since we
    are creating a language for them
Collaborative development of DSLs
Collaborative development of DSLs

   Collaboro: process + DSL + tool to enable the collaborative development of
    DSLs

   Users suggest changes to both abstract and concrete syntax levels

   The community comments and votes changes and solutions

   Once an agreement is reached (based on a given decision policy, e.g.
    unanimity) the solution is added to the current language version

   We get:
     – Languages that better satisfy the users’ needs
     – Traceability to justify the rational behind the language design decisions
Challenges / Work in progress

 Gamification techniques to promote more user interaction

 What constitutes a good concrete syntax for DSLs?


 Learning from web designers: AB testing for DSLs
   –E.g. evolve the concrete syntax based on which
   alternative gets more “conversions”).
Very large models
Scalability

   MDE tools fail when dealing with very large models
     – E.g. reverse engineering of the Eclipse platform generates a model of
       more than 5M instances
     – EMF just crashes with these volumes

   Scalability important both at the model (loading very large
    models) and model manipulation level (executing complex
    transformations on large models)

   Key problem in industrial scenarios but far from a trivial one
     – Very Large DataBases is the main conf. in the database domain with
       37 editions and still looking for solutions
Modeling in the cloud

   Can the Cloud be used to handle VLMs?

   Two key aspects:
     – Model storage in the Cloud for efficiently storing and loading VLMs
     – Model transformation in the Cloud for distributing the computation of
        the transformation
          • Each virtual node executes the full transformation on a subset of
            the model
          • Each virtual node executes part of the transformation on the full
            model
Cloud Virtual Model
Cloud Virtual Model
Parallel Transformation Overview
Challenges / Work in Progress

   Optimal way to split the models and transformations
     – And when not to split them

   Best technology for the backend?
     – Hadoop for storing the models plus MapReduce for the transformations?

   Reactive transformation engine:
     – Automaticaly activate only the strictly needed computation in response
       to updates or requests of model elements.
     – Incremental, minimal set of recalculations
Index

   Introducing MDE

   Research in MDE

   A Research Agenda for MDE 2.0

    – Models & Quality

    – Legacy systems

    – Social aspects

    – Very Large models

   Dissemination and technology transfer

   Credits

   Conclusions
Always with technology transfer in mind
How do we bridge the gap?

    Traditional direct approach



        Research Labs
          (Scientific               Technology
           Experts)                  Transfer
       Innovation
                                            Companies
                                            (End Users)

    Direct technology transfer doesn’t work!: Our tools are
      not good and they won’t magically become great
           70
                                                              ©
We need a new business model

   Three-entity approach

   Introduction of a third entity in the     Labs (scientific experts)
    process
    – A SME as Technology Provider
                                                                            Research
                               Industrializ                                challenges
    – Play the role of            ation
    Interface between                           Open
    researchers and users                      source
                                     SME                                  Big Companies
                                                                            / end-users

                                                  Services




         71
                                                                                          ©
Dissemination
The Modeling Languages portal

   Dissemination of MDE news, tutorials, tools,… for people:
    – Researchers and practitioners
    – Novices or experts

   Goal: to explore and discuss when, where and how MDE
    can improve current software engineering practices

   modeling-languages.com
Credits
Credits

   Research is always a team activity
     – Works on conceptual modeling and code-generation together with colleagues
       from Technical University of Catalonia and Politecnico di Milano
     – Quality line started together with R. Clariso (Open University of Catalonia) and J.
       de Lara and E. Guerra (Autonomous university of Madrid)
     – Univ. of Toronto taught me the importance of social and organizational aspects of
       Software Engineering
     – … thanks also to and many more co-authors that I can’t list here


   Current research lines possible thanks to the members of the AtlanMod
    team (EMN / INRIA / LINA )

   AtlanMod was created in 2008 by Jean Bézivin. He is the “father” of
    MoDisco and of the technology transfer model we are following.
Wrapping up
Conclusions

 MDE is changing the way we build software
   – Though this “we” is still limited

 We have explored some of the (IMHO) promising research
  directions to improve MDE (and its adoption):
   – Quality, scalability, human aspects, legacy systems


 MDE as a means to an end  Better Software Engineering

 It is ok to renounce to perfect solutions in exchange of
  useful ones
   – The good-enough revolution (Wired – 09/2009)

Contenu connexe

Tendances

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
 
Model-Driven Software Development
Model-Driven Software DevelopmentModel-Driven Software Development
Model-Driven Software Developmentelliando dias
 
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented Programmingmukhtarhudaya
 
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015Luca Berardinelli
 
Software Architecture: Styles
Software Architecture: StylesSoftware Architecture: Styles
Software Architecture: StylesHenry Muccini
 
MoDisco Eclipse-OMG Symp 2010
MoDisco Eclipse-OMG Symp 2010MoDisco Eclipse-OMG Symp 2010
MoDisco Eclipse-OMG Symp 2010fmadiot
 
Metamodeling - Advanced Software Engineering Course 2014/2015
Metamodeling - Advanced Software Engineering Course 2014/2015Metamodeling - Advanced Software Engineering Course 2014/2015
Metamodeling - Advanced Software Engineering Course 2014/2015Luca Berardinelli
 
Modelling and code generation in .NET at Icinetic
Modelling and code generation in .NET at IcineticModelling and code generation in .NET at Icinetic
Modelling and code generation in .NET at IcineticPedro J. Molina
 
UML: Once More with Meaning
UML: Once More with MeaningUML: Once More with Meaning
UML: Once More with MeaningEd Seidewitz
 
PhD Thesis defense: Lightweight and Static verification of UML Executable Models
PhD Thesis defense: Lightweight and Static verification of UML Executable ModelsPhD Thesis defense: Lightweight and Static verification of UML Executable Models
PhD Thesis defense: Lightweight and Static verification of UML Executable ModelsElena Planas
 
Software Architecture for Robotics
Software Architecture for RoboticsSoftware Architecture for Robotics
Software Architecture for RoboticsLorran Pegoretti
 

Tendances (12)

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
 
Model-Driven Software Development
Model-Driven Software DevelopmentModel-Driven Software Development
Model-Driven Software Development
 
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented Programming
 
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
 
Software Architecture: Styles
Software Architecture: StylesSoftware Architecture: Styles
Software Architecture: Styles
 
MoDisco Eclipse-OMG Symp 2010
MoDisco Eclipse-OMG Symp 2010MoDisco Eclipse-OMG Symp 2010
MoDisco Eclipse-OMG Symp 2010
 
Metamodeling - Advanced Software Engineering Course 2014/2015
Metamodeling - Advanced Software Engineering Course 2014/2015Metamodeling - Advanced Software Engineering Course 2014/2015
Metamodeling - Advanced Software Engineering Course 2014/2015
 
Modelling and code generation in .NET at Icinetic
Modelling and code generation in .NET at IcineticModelling and code generation in .NET at Icinetic
Modelling and code generation in .NET at Icinetic
 
Course brochure
Course brochureCourse brochure
Course brochure
 
UML: Once More with Meaning
UML: Once More with MeaningUML: Once More with Meaning
UML: Once More with Meaning
 
PhD Thesis defense: Lightweight and Static verification of UML Executable Models
PhD Thesis defense: Lightweight and Static verification of UML Executable ModelsPhD Thesis defense: Lightweight and Static verification of UML Executable Models
PhD Thesis defense: Lightweight and Static verification of UML Executable Models
 
Software Architecture for Robotics
Software Architecture for RoboticsSoftware Architecture for Robotics
Software Architecture for Robotics
 

Similaire à MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture

Eclipse Modeling & MoDisco - An Introduction to Modeling and (Model Driven) R...
Eclipse Modeling & MoDisco - An Introduction to Modeling and (Model Driven) R...Eclipse Modeling & MoDisco - An Introduction to Modeling and (Model Driven) R...
Eclipse Modeling & MoDisco - An Introduction to Modeling and (Model Driven) R...Hugo Bruneliere
 
Mda introduction and common research problems
Mda   introduction and common research problemsMda   introduction and common research problems
Mda introduction and common research problemsLai Ha
 
Model Transformation from BPMN to DEVS in a Prototype Implementation of the M...
Model Transformation from BPMN to DEVS in a Prototype Implementation of the M...Model Transformation from BPMN to DEVS in a Prototype Implementation of the M...
Model Transformation from BPMN to DEVS in a Prototype Implementation of the M...Daniele Gianni
 
Modeling With Eclipse @SoftShake 2011
Modeling With Eclipse @SoftShake 2011Modeling With Eclipse @SoftShake 2011
Modeling With Eclipse @SoftShake 2011Mickael Istria
 
Spy On Your Models, Standard talk at EclipseCon 2011
Spy On Your Models, Standard talk at EclipseCon 2011Spy On Your Models, Standard talk at EclipseCon 2011
Spy On Your Models, Standard talk at EclipseCon 2011Hugo Bruneliere
 
MDD with Executable UML Models
MDD with Executable UML ModelsMDD with Executable UML Models
MDD with Executable UML ModelsRafael Chaves
 
Trasnformation Design Patterns - Sandeep Katoch
Trasnformation Design Patterns - Sandeep KatochTrasnformation Design Patterns - Sandeep Katoch
Trasnformation Design Patterns - Sandeep KatochRoopa Nadkarni
 
2 trasnformation design_patterns-sandeep_katoch
2 trasnformation design_patterns-sandeep_katoch2 trasnformation design_patterns-sandeep_katoch
2 trasnformation design_patterns-sandeep_katochIBM
 
Modelling and code generation in .NET at Icinetic
Modelling and code generation in .NET at IcineticModelling and code generation in .NET at Icinetic
Modelling and code generation in .NET at IcineticIcinetic
 
Evolution in the Large and in the Small in Model-Driven Development
Evolution in the Large and in the Small in Model-Driven DevelopmentEvolution in the Large and in the Small in Model-Driven Development
Evolution in the Large and in the Small in Model-Driven DevelopmentAlfonso Pierantonio
 
Web technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringPiero Fraternali
 
Model-Driven Software Engineering in Practice - Chapter 2 - MDSE Principles
Model-Driven Software Engineering in Practice - Chapter 2 - MDSE PrinciplesModel-Driven Software Engineering in Practice - Chapter 2 - MDSE Principles
Model-Driven Software Engineering in Practice - Chapter 2 - MDSE PrinciplesMarco Brambilla
 

Similaire à MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture (20)

Eclipse Modeling & MoDisco - An Introduction to Modeling and (Model Driven) R...
Eclipse Modeling & MoDisco - An Introduction to Modeling and (Model Driven) R...Eclipse Modeling & MoDisco - An Introduction to Modeling and (Model Driven) R...
Eclipse Modeling & MoDisco - An Introduction to Modeling and (Model Driven) R...
 
ALT
ALTALT
ALT
 
Mda introduction and common research problems
Mda   introduction and common research problemsMda   introduction and common research problems
Mda introduction and common research problems
 
Model Transformation from BPMN to DEVS in a Prototype Implementation of the M...
Model Transformation from BPMN to DEVS in a Prototype Implementation of the M...Model Transformation from BPMN to DEVS in a Prototype Implementation of the M...
Model Transformation from BPMN to DEVS in a Prototype Implementation of the M...
 
5
55
5
 
Sig A&D - MDA
Sig A&D - MDASig A&D - MDA
Sig A&D - MDA
 
Megamodeling
MegamodelingMegamodeling
Megamodeling
 
Introduction to MDA
Introduction to MDAIntroduction to MDA
Introduction to MDA
 
Modeling With Eclipse @SoftShake 2011
Modeling With Eclipse @SoftShake 2011Modeling With Eclipse @SoftShake 2011
Modeling With Eclipse @SoftShake 2011
 
Epsilon
EpsilonEpsilon
Epsilon
 
Spy On Your Models, Standard talk at EclipseCon 2011
Spy On Your Models, Standard talk at EclipseCon 2011Spy On Your Models, Standard talk at EclipseCon 2011
Spy On Your Models, Standard talk at EclipseCon 2011
 
ERP_Up_Down.ppt
ERP_Up_Down.pptERP_Up_Down.ppt
ERP_Up_Down.ppt
 
MDD with Executable UML Models
MDD with Executable UML ModelsMDD with Executable UML Models
MDD with Executable UML Models
 
Trasnformation Design Patterns - Sandeep Katoch
Trasnformation Design Patterns - Sandeep KatochTrasnformation Design Patterns - Sandeep Katoch
Trasnformation Design Patterns - Sandeep Katoch
 
2 trasnformation design_patterns-sandeep_katoch
2 trasnformation design_patterns-sandeep_katoch2 trasnformation design_patterns-sandeep_katoch
2 trasnformation design_patterns-sandeep_katoch
 
Modelling and code generation in .NET at Icinetic
Modelling and code generation in .NET at IcineticModelling and code generation in .NET at Icinetic
Modelling and code generation in .NET at Icinetic
 
Evolution in the Large and in the Small in Model-Driven Development
Evolution in the Large and in the Small in Model-Driven DevelopmentEvolution in the Large and in the Small in Model-Driven Development
Evolution in the Large and in the Small in Model-Driven Development
 
Web technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven Engineering
 
Model-Driven Software Engineering in Practice - Chapter 2 - MDSE Principles
Model-Driven Software Engineering in Practice - Chapter 2 - MDSE PrinciplesModel-Driven Software Engineering in Practice - Chapter 2 - MDSE Principles
Model-Driven Software Engineering in Practice - Chapter 2 - MDSE Principles
 
java
javajava
java
 

Plus de Jordi Cabot

AI and Software consultants: friends or foes?
AI and Software consultants: friends or foes?AI and Software consultants: friends or foes?
AI and Software consultants: friends or foes?Jordi Cabot
 
Model-driven engineering for Industrial IoT architectures
Model-driven engineering for Industrial IoT architecturesModel-driven engineering for Industrial IoT architectures
Model-driven engineering for Industrial IoT architecturesJordi Cabot
 
Smart modeling of smart software
Smart modeling of smart softwareSmart modeling of smart software
Smart modeling of smart softwareJordi Cabot
 
Modeling should be an independent scientific discipline
Modeling should be an independent scientific disciplineModeling should be an independent scientific discipline
Modeling should be an independent scientific disciplineJordi Cabot
 
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...Jordi Cabot
 
How to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortHow to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortJordi Cabot
 
All Researchers Should Become Entrepreneurs
All Researchers Should Become EntrepreneursAll Researchers Should Become Entrepreneurs
All Researchers Should Become EntrepreneursJordi Cabot
 
The Software Challenges of Building Smart Chatbots - ICSE'21
The Software Challenges of Building Smart Chatbots - ICSE'21The Software Challenges of Building Smart Chatbots - ICSE'21
The Software Challenges of Building Smart Chatbots - ICSE'21Jordi Cabot
 
Low-code vs Model-Driven Engineering
Low-code vs Model-Driven EngineeringLow-code vs Model-Driven Engineering
Low-code vs Model-Driven EngineeringJordi Cabot
 
Lessons learned from building a commercial bot development platform
Lessons learned from building a commercial bot development platformLessons learned from building a commercial bot development platform
Lessons learned from building a commercial bot development platformJordi Cabot
 
Future Trends on Software and Systems Modeling
Future Trends on Software and Systems ModelingFuture Trends on Software and Systems Modeling
Future Trends on Software and Systems ModelingJordi Cabot
 
Ingeniería del Software dirigida por modelos -Versión para incrédulos
Ingeniería del Software dirigida por modelos -Versión para incrédulosIngeniería del Software dirigida por modelos -Versión para incrédulos
Ingeniería del Software dirigida por modelos -Versión para incrédulosJordi Cabot
 
Chatbot Tutorial - Create your first bot with Xatkit
Chatbot Tutorial - Create your first bot with Xatkit Chatbot Tutorial - Create your first bot with Xatkit
Chatbot Tutorial - Create your first bot with Xatkit Jordi Cabot
 
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...Jordi Cabot
 
An LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model TransformationsAn LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model TransformationsJordi Cabot
 
WAPIml: Towards a Modeling Infrastructure for Web APIs
WAPIml: Towards a Modeling Infrastructure for Web APIsWAPIml: Towards a Modeling Infrastructure for Web APIs
WAPIml: Towards a Modeling Infrastructure for Web APIsJordi Cabot
 
Is there a future for Model Transformation Languages?
Is there a future for Model Transformation Languages?Is there a future for Model Transformation Languages?
Is there a future for Model Transformation Languages?Jordi Cabot
 
Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?Jordi Cabot
 
Temporal EMF: A temporal metamodeling platform
Temporal EMF: A temporal metamodeling platformTemporal EMF: A temporal metamodeling platform
Temporal EMF: A temporal metamodeling platformJordi Cabot
 
UMLtoNoSQL : From UML domain models to NoSQL Databases
UMLtoNoSQL : From UML domain models to NoSQL DatabasesUMLtoNoSQL : From UML domain models to NoSQL Databases
UMLtoNoSQL : From UML domain models to NoSQL DatabasesJordi Cabot
 

Plus de Jordi Cabot (20)

AI and Software consultants: friends or foes?
AI and Software consultants: friends or foes?AI and Software consultants: friends or foes?
AI and Software consultants: friends or foes?
 
Model-driven engineering for Industrial IoT architectures
Model-driven engineering for Industrial IoT architecturesModel-driven engineering for Industrial IoT architectures
Model-driven engineering for Industrial IoT architectures
 
Smart modeling of smart software
Smart modeling of smart softwareSmart modeling of smart software
Smart modeling of smart software
 
Modeling should be an independent scientific discipline
Modeling should be an independent scientific disciplineModeling should be an independent scientific discipline
Modeling should be an independent scientific discipline
 
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
 
How to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortHow to sustain a tool building community-driven effort
How to sustain a tool building community-driven effort
 
All Researchers Should Become Entrepreneurs
All Researchers Should Become EntrepreneursAll Researchers Should Become Entrepreneurs
All Researchers Should Become Entrepreneurs
 
The Software Challenges of Building Smart Chatbots - ICSE'21
The Software Challenges of Building Smart Chatbots - ICSE'21The Software Challenges of Building Smart Chatbots - ICSE'21
The Software Challenges of Building Smart Chatbots - ICSE'21
 
Low-code vs Model-Driven Engineering
Low-code vs Model-Driven EngineeringLow-code vs Model-Driven Engineering
Low-code vs Model-Driven Engineering
 
Lessons learned from building a commercial bot development platform
Lessons learned from building a commercial bot development platformLessons learned from building a commercial bot development platform
Lessons learned from building a commercial bot development platform
 
Future Trends on Software and Systems Modeling
Future Trends on Software and Systems ModelingFuture Trends on Software and Systems Modeling
Future Trends on Software and Systems Modeling
 
Ingeniería del Software dirigida por modelos -Versión para incrédulos
Ingeniería del Software dirigida por modelos -Versión para incrédulosIngeniería del Software dirigida por modelos -Versión para incrédulos
Ingeniería del Software dirigida por modelos -Versión para incrédulos
 
Chatbot Tutorial - Create your first bot with Xatkit
Chatbot Tutorial - Create your first bot with Xatkit Chatbot Tutorial - Create your first bot with Xatkit
Chatbot Tutorial - Create your first bot with Xatkit
 
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
 
An LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model TransformationsAn LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model Transformations
 
WAPIml: Towards a Modeling Infrastructure for Web APIs
WAPIml: Towards a Modeling Infrastructure for Web APIsWAPIml: Towards a Modeling Infrastructure for Web APIs
WAPIml: Towards a Modeling Infrastructure for Web APIs
 
Is there a future for Model Transformation Languages?
Is there a future for Model Transformation Languages?Is there a future for Model Transformation Languages?
Is there a future for Model Transformation Languages?
 
Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?
 
Temporal EMF: A temporal metamodeling platform
Temporal EMF: A temporal metamodeling platformTemporal EMF: A temporal metamodeling platform
Temporal EMF: A temporal metamodeling platform
 
UMLtoNoSQL : From UML domain models to NoSQL Databases
UMLtoNoSQL : From UML domain models to NoSQL DatabasesUMLtoNoSQL : From UML domain models to NoSQL Databases
UMLtoNoSQL : From UML domain models to NoSQL Databases
 

Dernier

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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
[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
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
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
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
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
 
🐬 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
 

Dernier (20)

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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
[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
 
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...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
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
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
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
 
🐬 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)
 

MDE 2.0.: pragmatic model verification and other stories - Habilitation public lecture

  • 1. MDE 2.0 – Pragmatic formal model verification and other stories Jordi Cabot HdR http://modeling-languages.com 1
  • 2. Index  Introducing MDE  Research in MDE  A Research Agenda for MDE 2.0 – Models & Quality – Legacy systems – Social aspects – Very Large models  Dissemination and technology transfer  Credits  Conclusions
  • 3. Software is everywhere Medicine Power grid Software Aerospace Automotive
  • 4. but software development is still a challenge
  • 5. Model-driven Engineering  MDE tries to improve this situation by promoting engineering principles in Software Engineering  MDE advocates the rigorous use of software models as the main artifacts in all software engineering activities.  This in fact is common practice in many other professions  Does anybody imagine building a house without plans?
  • 7. Many MDE applications Code Generation Software Modernization Systems interoperability
  • 8. MDE = Model-Driven Everything MDSD (software development) MDE (engineering) MDSD MDE 8
  • 9. What is MDE? UML Profile OMG OCL Ecore Code-Generation QVT Marte TGG Model Evolution Metamodel MOF DSLs SBVR EMF Profiles Model-driven Rev. Eng MDD ATL M2M Multi-modeling MDA M2T Graph Model-Based Testing BPMN T2M Model Quality
  • 10. There’s hope - Order in the Chaos  Basic principle: Everything is a model (J. Bézivin)  Models are designed/built/generated to be –Observed –Transformed  The MDE Equation: Models + transformations = Software where of course transformations can also be regarded as models Models + transformation models = Software Models + Models = Software 2 x Models = Software Models = 1/2 Software ???????
  • 11. What is a model City of Nantes = “system” to be modeled A map is a model of this system Its legend (what elements can appear, how they can be combined, …) is the grammar/ metamodel © AtlanMod - atlanmod-contact@mines- 13/09/12 nantes.fr 11
  • 12. Models & Metamodels A model is the result, of the observation of a system considering a given metamodel with specific objectives or purposes. System S Metamodel . MM conforms to representation of Model M 12
  • 13. The 3-level Modeling Stack conforms to Metametamodel M3 conforms to Metamodel M2 conforms to Model M1 © AtlanMod - atlanmod-contact@mines- 13/09/12 nantes.fr 13
  • 14. Btw, same approach as other Technical Spaces MDE Grammarware MOF EBNF.g (metametamodel) UML Java.g (metamodel) ABank.uml MyProgram.java
  • 15. MDE Core Technique/Operation: Model Transformation  Model-to-Model Transformation (M2M) Java UML2 Metamodel Metamodel Conforms to Conforms to Conforms to Transformation Java-to-UML2 Model a Model b © AtlanMod - atlanmod-contact@mines- 13/09/12 nantes.fr 15
  • 16. Index  Introducing MDE  Research in MDE  A Research Agenda for MDE 2.0 – Models & Quality – Legacy systems – Social aspects – Very Large models  Dissemination and technology transfer  Credits  Conclusions
  • 18. We have advanced a lot on the core techniques  UML and profiles  DSLs & Language workbenches  Model-to-model and model-to-text transformations  Model management and evolution  …
  • 19. with some contributions: Conceptual Modeling J Cabot, R Raventós: Conceptual Modelling Patterns for Roles. Journal on Data Semantics
  • 20. with some contributions: Rule modeling J Cabot, E Teniente: Transformation Techniques for OCL Constraints. Science of Computer Programming Journal
  • 21. with some contributions: Code Generation Albert, Cabot, Gómez, Pelechano: Automatic Generation of Basic Behavior Schemas from UML Class Diagrams. Software and Systems Modeling Albert,Cabot, Gómez,Pelechano. Generating operation specifications from UML class diagrams: A model transformation approach. Data & Knowledge Engineering
  • 22. with some personal contributions: Code Generation J Cabot, E Teniente: Incremental Integrity Checking of UML/OCL Conceptual Schemas. Journal of Systems and Software
  • 23. with some contributions: UML Validation Validate English Text Stakeholder Explains Transf M2T: SBVR to Natural Language Models UML CASE Transf. M2M: Structured English UML Model SBVR Model Tool UML to SBVR Designer RuleSpeak ... ... J Cabot, R Pau, R Raventós: From UML/OCL to SBVR Specifications: a Challenging Transformation. Information Systems
  • 24. with some contributions: API integration J Cánovas, F Jouault, J Cabot, J García Molina. API2MoL: Automating the building of bridges between APIs and Model-Driven Engineering. Information and Software Technology.
  • 25. But it’s clearly not enough  Modeling will be commonplace in 3 years time – S. Mellor Though he is giving the same answer for the last 20 years
  • 26. Index  Introducing MDE  Research in MDE  A Research Agenda for MDE 2.0 – Models & Quality – Legacy systems – Social aspects – Very Large models  Dissemination and technology transfer  Credits  Conclusions
  • 27. What else do we need? MDE 2.0
  • 28. Four main challenges 1. Quality of models 2. Support for legacy systems 3. Social aspects of MDE 4. Very large models / Scalability
  • 30. Quality  Quality is a very broad concept  We focus on the verification of models (are we building the models right?) and, partially, on their validation (are we building the right models?)
  • 31. Importance of Quality in models MDE-based software development process Original 1st refinement nth refinement model Source Code ... Model Model Transformation Transformation Errors in models will lead to errors in the resulting software 31 ©
  • 32. A Basic quality property: Satisfiability  Satisfiability is the most basic correctness property for static models. Liveliness, redundancy,… can be expressed in terms of this one  A model is satisfiable if it is possible to create a valid instantiation of that model. Otherwise it is useless, users won’t be able to work with the model  A instantiation is valid if it satisfies all model constraints name = “Peter” e1: Employee * WorksIn 1 WorksIn Employee Dept name: String workers dept id: String 1 Boss 0..1 manager managed id = “HR” d1: Dept Boss name
  • 33. Example: Is it satisfiable? 2 parent Person name: string children * + constraint : Nobody can be his own ancestor
  • 34. How models are verified? ….. Strong Satisfiability 34 ©
  • 35. But Quality classified as a Grand Challenge MDE 1E+18 scenarios for small models (classes=10) More than cells in the human body!!!
  • 36. Finding the right trade-off  No perfect solution exists Automation Efficiency Verification Expressiveness Complete
  • 37. Our “pragmatic” approach EMF/UML model Property? 1. Class diagram / metamodel 2. OCL constraints Translate Deduce Constraint Satisfaction Problem 1. Variables – basic types + struct/list 2. Domains – finite Solve 3. Constraints – Prolog Solution? 4. Property -> Additional Constraint
  • 38. Translation of OCL invariants context Paper inv: self.wordCount < 10000 OperationCallExp  OCL invariant = < instance of OCL metamodel AttribCallExp IntLiteralExp  Invariant becomes a wordCount 10000 constraint of the CSP VariableExp self
  • 39. Translation of OCL invariants Result OperationCallExp LessThan(Vars, Result):- < // Evaluate subexpressions X Y Attribute(Vars, X), Constant(Y), AttribCallExp IntLiteralExp // Compute result wordCount 10000 #<(X,Y, Result). Z VariableExp self
  • 40. Translation of OCL invariants Result attribute(Vars, X) :- // Evaluate subexpressions OperationCallExp self(Vars, Z), < arg(Z, “wordCount”, X). X Y AttribCallExp IntLiteralExp wordCount 10000 Z self(Vars, Z) :- VariableExp self constant (Y):- // Z is the only visible var nth1(1, Vars, Z). Y = 10000.
  • 41. Translation of OCL invariants context Paper inv: self.wordCount < 10000 invariant(Papers):- // Expression must be true // for each Paper ( for (Paper, Papers) do LessThan([Paper],Result), Result #= 1 ) .
  • 42. OCL Prolog library  To analyze OCL constraints, it is necessary to provide a translation for all OCL constructs in terms of the Prolog-based language used by the ECLiPSe solver.  We have extended ECLiPSe with a new library dedicated to the translation of OCL constraints  The library makes use of the ECLiPSe support for higher-order predicates e.g. ocl_set_collect(Instances, Vars, Set, Predicate, Result),  Removal of symmetries and the suspension mechanism are used to optimize the performance of the library
  • 43. Resolution of the CSP Define cardinality variables Constraints on cardinalities Assign cardinalities Define attribute variables Constraints on attributes Assign attributes Proof
  • 44. Trade-offs in verification  Decidability: is automation possible? Yes  Completeness: proof for any input? No, bounded verification (but Small Scope hypothesis – D. Jackson )  Expressiveness: full OCL support? Yes  Efficiency: Controlled by the user  Validation is also possible: we can generate valid instances from partial models
  • 45. Other applications (1): Operation contracts  Verification of contracts: Applicability and executability of operations, determinism,…
  • 46. Other applications(2): Graph Transformation to OCL work NAC: LHS: RHS: op1 op2 machine machine machine context System::work() LHS NAC pre: Machine::allInstances()−>exists(m| not ( Operator::allInstances()−>exists(op1|m.operator−> includes(op1))) post: Machine::allInstances()@pre−>exists(m| not ( Operator::allInstances@pre()−>exists(op1|m.operator->includes(p1))) and op2.oclIsNew() and op2.oclIsTypeOf(Operator) and m.operator−>includes(op2 RHS Cabot, Clarisó, Guerra, de Lara: A UML/OCL framework for the analysis of graph transformation rules. Software and System Modeling
  • 47. Other applications(3): TGG / QVT / ATL to OCL work {new} {new} {new} {new} c :Class c2t :Cl2Tb t :Table name {new} name persistent ATTR COND: c.name=t.name and c.persistent=true Invariants: context Cl2Tb Inv: self.class.size()=1 and self.table.size()=1 and self.class.name=self.table.name context Class Inv: self.persistent=true implies self.Cl2Tb.size() >=1 context Table Inv: self.Cl2Tb.size() >=1 Cabot, Clariso, Guerra, de Lara: Verification and validation of declarative model-to-model transformations through invariants. Journal of Systems and Software
  • 48. Challenges / Work in Progress  Incremental verification  Combine CSPs with SMT solvers to provide a complete verification approach when possible.  More meaningful feedback (e.g. the subset of constraints that cause the inconsistency)  Model slicing for parallel verification
  • 50. MoDISCO: a MDRE framerwork Modernization Legacy helpers Systems •Documentation •Impact analysis Source code •Models •Viewpoints Databases •Restructured code •Migrated code Configuration files •Metrics MoDisco •Norms checking Eclipse Modeling  Instead of adhoc Rev. Eng. Solutions, we use an intermediate model-based representation of the legacy system
  • 51. MDRE phases in MoDisco Discove Understan Transform r d Legacy artifacts : - source code - configuration files - tests New Models Viewpoints - databases Software Artifacts - etc.  Why? Models provide an homogeneous and interrelated representation of all legacy components. No information loss: initial models have a 1:1 correspondance with the code 51
  • 52. Challenges / Work in Progress  Extraction of business rules – Getting a model of the code helps but it’s still too low-level for a stakeholder to look at it – Semi-automatic approach with IBM.  Rev Eng of the whole software system – We know how to extract a model from a single component but we don’t take into account its relationship with other components (esp. in other layers) – Companies are interested in knowing the enterprise architecture (e.g. TOGAF) of a system
  • 53. Challenges / Work in Progress  Reverse Engineering of security policies
  • 55. Social aspects of MDE  We need a better understanding of the needs of users (technical and non- technical) to make sure we solve their actual problems (and not the ones we think they have).  One example: Huge amount of research on providing methods for the specification, validation, etc of non-functional requirements: – Nontechnical constraints (like cost, type of license, specific providers) are as prominent as technical requirements like performance or security – Modern technology platforms already cover many applications’ quality requirements so explicit NFR management not so useful – NFRs are hardly ever documented and poorly validated Architecture Quality Revisited. Buschmann, Frank; Ameller, David; Ayala, Claudia P.; Cabot, Jordi; Franch, Xavier. IEEE Software, vol. 29 (4)
  • 56. Dealing with users is not easy 56 ©
  • 57. Collaborative development of DSLs  Participation of end-users is specially relevant when creating DSLs since we are creating a language for them
  • 59. Collaborative development of DSLs  Collaboro: process + DSL + tool to enable the collaborative development of DSLs  Users suggest changes to both abstract and concrete syntax levels  The community comments and votes changes and solutions  Once an agreement is reached (based on a given decision policy, e.g. unanimity) the solution is added to the current language version  We get: – Languages that better satisfy the users’ needs – Traceability to justify the rational behind the language design decisions
  • 60. Challenges / Work in progress  Gamification techniques to promote more user interaction  What constitutes a good concrete syntax for DSLs?  Learning from web designers: AB testing for DSLs –E.g. evolve the concrete syntax based on which alternative gets more “conversions”).
  • 62. Scalability  MDE tools fail when dealing with very large models – E.g. reverse engineering of the Eclipse platform generates a model of more than 5M instances – EMF just crashes with these volumes  Scalability important both at the model (loading very large models) and model manipulation level (executing complex transformations on large models)  Key problem in industrial scenarios but far from a trivial one – Very Large DataBases is the main conf. in the database domain with 37 editions and still looking for solutions
  • 63. Modeling in the cloud  Can the Cloud be used to handle VLMs?  Two key aspects: – Model storage in the Cloud for efficiently storing and loading VLMs – Model transformation in the Cloud for distributing the computation of the transformation • Each virtual node executes the full transformation on a subset of the model • Each virtual node executes part of the transformation on the full model
  • 67. Challenges / Work in Progress  Optimal way to split the models and transformations – And when not to split them  Best technology for the backend? – Hadoop for storing the models plus MapReduce for the transformations?  Reactive transformation engine: – Automaticaly activate only the strictly needed computation in response to updates or requests of model elements. – Incremental, minimal set of recalculations
  • 68. Index  Introducing MDE  Research in MDE  A Research Agenda for MDE 2.0 – Models & Quality – Legacy systems – Social aspects – Very Large models  Dissemination and technology transfer  Credits  Conclusions
  • 69. Always with technology transfer in mind
  • 70. How do we bridge the gap?  Traditional direct approach Research Labs (Scientific Technology Experts) Transfer Innovation Companies (End Users) Direct technology transfer doesn’t work!: Our tools are not good and they won’t magically become great 70 ©
  • 71. We need a new business model  Three-entity approach  Introduction of a third entity in the Labs (scientific experts) process – A SME as Technology Provider Research Industrializ challenges – Play the role of ation Interface between Open researchers and users source SME Big Companies / end-users Services 71 ©
  • 73. The Modeling Languages portal  Dissemination of MDE news, tutorials, tools,… for people: – Researchers and practitioners – Novices or experts  Goal: to explore and discuss when, where and how MDE can improve current software engineering practices  modeling-languages.com
  • 74.
  • 76. Credits  Research is always a team activity – Works on conceptual modeling and code-generation together with colleagues from Technical University of Catalonia and Politecnico di Milano – Quality line started together with R. Clariso (Open University of Catalonia) and J. de Lara and E. Guerra (Autonomous university of Madrid) – Univ. of Toronto taught me the importance of social and organizational aspects of Software Engineering – … thanks also to and many more co-authors that I can’t list here  Current research lines possible thanks to the members of the AtlanMod team (EMN / INRIA / LINA )  AtlanMod was created in 2008 by Jean Bézivin. He is the “father” of MoDisco and of the technology transfer model we are following.
  • 78. Conclusions  MDE is changing the way we build software – Though this “we” is still limited  We have explored some of the (IMHO) promising research directions to improve MDE (and its adoption): – Quality, scalability, human aspects, legacy systems  MDE as a means to an end  Better Software Engineering  It is ok to renounce to perfect solutions in exchange of useful ones – The good-enough revolution (Wired – 09/2009)

Notes de l'éditeur

  1. This is an strange presentation: it is not about the topics you are working in. B
  2. Including many crytical systems
  3. Chaos report 2009
  4. Rigorous= precise semantics
  5. This is an strange presentation: it is not about the topics you are working in. B
  6. To present you a method that helps the designer during the specification of the software system by automatically generating a set of operations for a given class diagram.
  7. Simple is more or less as public
  8. This is an strange presentation: it is not about the topics you are working in. B
  9. To present you a method that helps the designer during the specification of the software system by automatically generating a set of operations for a given class diagram.
  10. The actions are specified in the actions package
  11. The actions are specified in the actions package
  12. The actions are specified in the actions package
  13. Avisar de què la semàntica de l’operació és una mica estranya. Ho fem per simplificar podríem fer que la regla agafés un operador lliure però llavors caldria modificar la LHS i la NAC
  14. Avisar de què la semàntica de l’operació és una mica estranya. Ho fem per simplificar podríem fer que la regla agafés un operador lliure però llavors caldria modificar la LHS i la NAC
  15. The actions are specified in the actions package
  16. The actions are specified in the actions package
  17. The actions are specified in the actions package
  18. The actions are specified in the actions package
  19. The actions are specified in the actions package
  20. The actions are specified in the actions package
  21. This is an strange presentation: it is not about the topics you are working in. B
  22. The actions are specified in the actions package