SlideShare a Scribd company logo
1 of 72
Gestión Avanzada de Datos
            @Santander – 21 July, 2011



          Model-Driven Engineering:
a first glance at a ¿new? way of conceiving
            software development


               Juan M. Vara
                juanmanuel.vara@urjc.es


           Kybele Research Group
          University Rey Juan Carlos
               (Madrid - Spain)
Agenda


    Motivation


    (Meta)Modeling


    MDA


    Putting MDE to work


    Conclusion


2    Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
Motivation
                                  Software Complexity

    • Many modern software systems are reaching levels of complexity
      encountered in biological systems
       – Systems of systems each of which may include of millions of lines of code
       – … any one of which might be the culprit that brings down the entire system

                                         Mariner (1962)
                     • 18.5$ millions
                     • Programmer incorrectly transcribed a handwritten
                       formula (period instead of comma in FORTRAN loop)
    • Furthermore, we can only see an increase in complexity of
      software systems due to:
       – Growing demand for greater and more sophisticated functionality
    • Given our current track record, how will we cope with this rise in
      complexity?
3                      Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
Motivation
                                  Software Complexity

       Essential                                                                                            Accidental
                         First, distinguising what can be simplified
      Complexity                                                                                            Complexity

    • Essential complexity: we have a hard problem
      – Inherent to the problem
      – Cannot be sidestepped or eliminated by technology or method
      – E.g., geospatial applications are inherently more “complex” than standard
         “forms over data” applications
    • Accidental complexity: we have made a problem hard
      – Due to the use of inappropriate technologies or methods
      – It happens because someone didn't find the simplest way to implement a
        specified set of features
      – Might be eliminated by good design, or good redesign.
      – E.g., banks legacy systems programmed in COBOL
4                      Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
Motivation
                     Software Complexity



    Modern software development
     suffers from an excess of
      accidental complexity

    How can we deal with this rise
          in complexity?

5         Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
Motivation
                          Software Complexity




    Can you see the
    underlying
    structure???




6                 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
Motivation
                          Software Complexity




    Can you see the
    underlying
    structure???




               Much better,
                isn’t it???




7                 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
Motivation
                  Software Complexity


      Clearly, models help on
        simplifying software
     development by raising the
    level of abstraction at which
        software is conceived

8         Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
Motivation
                    Modeling in other disciplines
    • Modeling has been widely
      used in Engineering
      – Whith specification
        purposes
          Structure and behavior                                                                      Architecture
          Interacting with stakeholders
      – For reasoning about the                                   Avionics
        system
          Detecting design errors
          Infer and test properties
          Prototyping (simulation)
      – As a guide towards
        implementation …
9                    Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
Motivation
              What happens with models in Software Engineering??


           Used (at best) with documentation purposes

               There is a big gap between the models and the
                         underlying implementation

       Models are not                    No way of ensuring                                          No tools or
     updated with design             programmers followed the
      changes made by               design decissions captured in                                   languages to
        programmers                            models                                              handle models



           Are we really doing Software Engineering??

10                    Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
Motivation
                                                                                                              Let’s put models to work in Software Engineering
                                                                                                                                             The Remarkable Thing About Software
                                “Software has the rare property that it allows us to
                                     directly evolve models into full-fledged
                                implementations without changing the engineering
                                            medium, tools, or methods”
                                                                                                                                                                                                                           [John Hogg, 2003]

                                 Registrar Pago                  Seleccionar Imágenes                                   Guardar Resultado
                                                                                                  Mostrar Resultados
    (SIW)
    LAIM




              Validar Usuario      <<WS>>                                                         Del Procesamiento
                                 Validar Tarjeta                            Recibir Criterios
                                  de Crédito                                 de Búsqueda
                                                        Imágenes
                                                                                 Criterios

                                                        <<WS>>
    SACim




                                                    Recibir Imágenes
                                                                              <<WS>>
                                                                          Obtener Imágenes
                                                                                                       Resultados
                                                        Imágenes                Imágenes               Obtenidos


                                                                              <<<WS>>
    SPim




                                                                                                                                                        “from (models) human-readable to
                                                                        Realizar Procesamiento
                                                                             de Imágenes




                                Registrar Pago               Seleccionar Imágenes
                                                                                                 Mostrar Resultados
                                                                                                                       Guardar Resultado

                                                                                                                                                            computer-understandable”
(SIW)
LAIM




             Validar Usuario                                                                     Del Procesamiento
                                Validar Tarjeta
                                 de Crédito                               Recibir Criterios

                                                      Imágenes
                                                                           de Búsqueda

                                                                               Criterios                                                                                                            [J. Bézivin]
                                                   Recibir Imágenes
SACim




                                                                        Obtener Imágenes

                                                                                                     Resultados
                                                      Imágenes                Imágenes               Obtenidos
SPim




                                                                      Realizar Procesamiento
                                                                           de Imágenes




        11                                                                                                                                  Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
Motivation
                       Model-Driven Engineering (and related disciplines)


          MDA      DSL ADM                                                                         Boost the role of models and
                                                                                                     modelling activities at the
               MIC       MDSD                                                                             different steps of the
                     MSE                                                                                     development cycle




                                     FROM CODING to
                                       MODELLING



                                                                                                                             Model-Driven
                                                                                         Component-based                     Engineering
                                                                                        Software Engineering
                                                          Structured
                                                        Programming         Object-Oriented                       Aspect-Oriented
                                                                             Programming                           Programming
                                                Assembly
         Raising the abstraction               Languages
     level in Software Development


12                              Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
Motivation
                       Model-Driven Engineering (and related disciplines)


          MDA      DSL ADM                                                                         Boost the role of models and
                                                                                                     modelling activities at the
               MIC       MDSD                                                                             different steps of the
                     MSE                                                                                     development cycle




                               ROLE CODING to
                                FROM of         LEVEL of
                                  MODELLING
                               MODELS         AUTOMATION

                                                                                                                             Model-Driven
                                                                                         Component-based                     Engineering
                                                                                        Software Engineering
                                                          Structured
                                                        Programming         Object-Oriented                       Aspect-Oriented
                                                                             Programming                           Programming
                                                Assembly
         Raising the abstraction               Languages
     level in Software Development


13                              Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
Agenda


     Motivation


     (Meta)Modeling


     MDA


     Putting MDE to work


     Conclusion


14    Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
Modeling
                                 What’s in a model?
     • What is a model?
       – A model is a simplification of a system
         built with an intended goal in mind.
       – A model is a description of a system
         written in a well-defined language
           It should be able to answer questions in place of the actual system
           It allows us to use something that is simpler, safer or cheaper than
            reality instead of reality for some purpose.
           Thus, it allows us to deal with the world in a simplified manner, avoiding
            the complexity, danger and irreversibility of reality
           A model represents reality for the given purpose; the model is an
            abstraction of reality in the sense that it cannot represent all aspects of
            reality


15                     Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
Modeling
                              What’s in a model?
     • A model is the simplified image of a system
        – MDE is recent but the idea of modeling is old



              System                                  repOf                                   Model




        – Plato (427-347 before JC), in Timeus compares
          vertebras to door hinges (74a) or blood vessels to
          irrigation channels
16                  Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
Modelling
         How are models understood, interpreted, defined … ??

            Every map has a legend
             (implicit or explicit)




                       We cannot “get” the
                       map without its legend



     The legend is the
       metamodel


17                 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
Modelling
         How are models understood, interpreted, defined … ??

            Every map has a legend
             (implicit or explicit)

        A model has no meaning when
        separated from its metamodel,
               We cannot “get” the
         that acts asitsthe filter for the
              map without legend
            reality to be modelled

     The legend is the
       metamodel


18                 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
Modelling
            Metamodels act as filters for reality




      A (very simplistic )
           metamodel
     for modelling Meetings




19            Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
Modelling
     Metamodels act as filters for reality




20     Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
Modelling
          The OMG modelling stack (abstract)


                           A metamodel is the model of a modelling
                           language: it makes statements about what
                            can be expressed in the valid models of a
                                  certain modelling language.



                                 Metamodel
                                             c2                                          Terminology
     c2
                                                                                         Assertions
                                          Model
                                        (Terminal Model)



21           Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
Modelling
          The OMG modelling stack (abstract)

     c2

                                 Metamodel
                                              c2


                                 Metamodel
                                                                                         Being a model, a
                                             c2                                          metamodel has to
                                                                                          conform to its
     c2                                                                                   corresponding
                                          Model                                            metamodel
                                        (Terminal Model)



22           Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
Modelling
          The OMG modelling stack (abstract)

                                                                                c2
     c2

                          Metamodel
                         Metametamodel
                                              c2


                                 Metamodel
                                                                                     The metamodel
                                                                                   might be expressed
                                             c2
                                                                                     using the same
     c2
                                                                                   modelling language
                                          Model                                      that it defines.
                                        (Terminal Model)                             Then it’s called
                                                                                    metametamodel

23           Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
Modelling
                       Don't confuse the model and the system
     •   Principle of limited substitutability.
          – A model M is said to be a representation of a system S for a given set of questions Q
             if, for each question of this set Q, the model M will provide exactly the same answer
             that the system S would have provided in answering the same question.
                           e.g. the globe is a model of the
                                       earth ….                                                    What is the temperature at the
                                                                                                bottom if I dig a 100 km deep hole at
                                                                                                      the surface of the earth ?


                                               repOf




                            … allowing to ask
                           certain questions …
                     Could I travel from Paris to New York
                        without using a boat or a plane?                                             … but not others …

24                            Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
Modelling
             Aspects of a system represented by models




              Ma Mb                                                                       A given system may

     M1                                                Mc                                    have plenty of
                                                                                           different models


                                                                                            Each model
     isRepresentedBy
                                                                                         represents a given
                                                                                        aspect of the system
     M0
                 S
25                     Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
Modelling
                 Different Models ↔ Different Languages


     Plumber's                                                                                         Electrician's
       view                                                                                               view
                                                    Architect's
                                                       view




                                                                                                Decorator's
      Carpenter's                                                                                  view
         view
                                                Phone Installer's
                                                      view
26                   Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
Modelling
                       Domain Specific Languages (DSLs)

     • Domain Specific Languages (DSLs) are
                                                                                     SELECT  soh.[SalesOrderID]
       languages tailored to a specific                                                           ,soh.[OrderDate]
                                                                                                 ,soh.[ShipDate]
       application domain                                                                        ,sod.[ProductID]
                                                                                                 ,sod.[OrderQty]
                                                                                                 ,sod.[UnitPrice]
        – They offer substantial gains in expressiveness                                         ,soh.[CustomerID]
                                                                                     FROM [Sales].[SalesOrderHeader] AS soh
          and ease of use compared with general-                                     JOIN [Sales].[SalesOrderDetail] AS sod
                                                                                     ON soh.[SalesOrderID] =
          purpose programming languages in their                                                 sod.[SalesOrderID]
                                                                                     WHERE soh.[CustomerID] = 29559;
          domain of application
        – Higher-level abstraction than general
          purpose languages
        – Closer to the problem domain than
          to the implementation domain
        – Closer to domain experts


       Metamodels define (partially) Domain Specific Languages (DSLs)

27                       Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
Modelling
                   Abstract syntax VS Concrete Syntax




                                                                                             Speaker(Mary)
                                                                                             Attendant(John)
                                                                                             Attendant(Peter)
                                                                                             Chair(c1)
                                                                                             Chair(c2)
        Same Model                    Same Abstractions                                      sat_on(John, c1)
     Different notations              Different syntaxes                                     sat_on(Peter, c2)

28                   Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
Modelling
                          Abstract Syntax VS Concrete Syntax

                                                                                Abstract Syntax
                                                  • There are two types of objects: Furniture and
                                                    Person
                                                  • In turn, each Furniture object could be a Chair or a
                                                    Desk and each Person an Attendant or a Speaker
                                                  • Each Person can be sat on one (and only one) piece
                                                    of Furniture




                       Concrete Syntax
     – A box represents each Furniture or Person object
     – The name of the object is included into an inner box
     – Each occurrence of the relationship between
       Furniture and Person objects is represented by an
       arrow pointing to the Person object



29                           Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
Modelling
                        Abstract Syntax VS Concrete Syntax

                                                                             Abstract Syntax
                                               • There are two types of objects: Furniture and
                                                 Person
                                               • In turn, each Furniture object could be a Chair or a
                                                 Desk and each Person an Attendant or a Speaker
                                               • Each Person can be sat on one (and only one) piece
                                                 of Furniture




                (Another) Concrete Syntax                                                    Speaker(Mary)
     – Each object is represented by the reserved word                                       Attendant(John)
       that designates the type of the object plus the name                                  Attendant(Peter)
       of the object between brackets
                                                                                             Chair(c1)
     – Each occurrence of the sat_on relationship is
       represented by the reserved work sat_on plus the
                                                                                             Chair(c2)
       name of the objects between brackets and                                              sat_on(John, c1)
       separated by commas                                                                   sat_on(John, c2)

30                        Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
Agenda


     Motivation


     (Meta)Modeling


     MDA


     Putting MDE to work


     Conclusion


31    Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
MDA
                                   A way of doing MDE

               Sometimes MDA is referred to as
                   “MDE with standards”
      Role of models                      MDE principles                                                Automation




     Standards to formalize                                                   Categorization of
        MDE principles                                                        Abstraction Levels

                                        QVT
                                        OCL
                                       SPEM
                                       KDM
                                        …

32                     Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
MDA
                   Categorization of Abstraction Levels: CIM
                                                                                                                CIM      •Computer Independent Model

     • System requirements are modelled by Computer                                                             PIM      •Platform Independent Model

                                                                                                                PSM
       Independent Models (CIMs)                                                                               CODE
                                                                                                                         •Platform Specific Model

                                                                                                                         •Running system

        – The CIM model is a view of the business processes
        – … ellaborated by domain experts
        – … is not always mandatory, it depends on the specific domain
           addressed
                              Requirements Model
                        (use case and activity diagrams)




     • … serve as a bridge between domain experts
       and business analysts

33                        Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
MDA
                     Categorization of Abstraction Levels: PIM
                                                                                                                                                                                                                                                                                                                                                                                                                                                                 CIM                                                      •Computer Independent Model

     • The PIM models the system without considering                                                                                                                                                                                                                                                                                                                                                                                                              PIM                                                     •Platform Independent Model

                                                                                                                                                                                                                                                                                                                                                                                                                                                                 PSM
       specific platform technological details                                                                                                                                                                                                                                                                                                                                                                                                           CODE
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          •Platform Specific Model

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          •Running system

        – … allows the mapping to any technological platform
        – … think of a neutral virtual machine where each operation will be later implemented
          in the targetted platform
        – … is always mandatory and may result into one or more PSMs

                                                                                                                                                  CIM

                                                                                                                                                                                                                                                                                                                                                                     Huge gap between CIM
                                                                                                                                                                                                                                                                                                                                                                        and PIM levels
                                                                                                                                                                                Requirements Model                                                                                                                                                                             ↓
                                                                                                                                                                           (use case and activity diagrams)                                                                                                                                                             Traces at best
            PIM                   <<Interface>>
                                   PaymentFe
                             addPayment()
                             cancelPayment()
                             getPayments()
                             getPaymentActivity()
                             updatePayment()
                                                                                            <<Interface>>
                                                                                         PaymentFeExtended
                                                                                  addPaymentNoteExtended()
                                                                                  completePaymentExtended()
                                                                                  failPaymentExtended()
                                                                                  getPaymentsExtended()
                                                                                  pendPaymentExtended()
                                                                                                                                 <<Interface>>
                                                                                                                                 PaymentUtility
                                                                                                                             prepare()
                                                                                                                             getRouting()
                                                                                                                             checkForDuplicate()
                                                                                                                                                                                 : Consumer

                                                                                                                                                                                                1. Create payment
                                                                                                                                                                                                                   : ConsumerFrontEnd



                                                                                                                                                                                                                              1.1. Enter payment
                                                                                                                                                                                                                                                   : XmlConnector              : PaymentService

                                                                                                                                                                                                                                                        Sequence Diagram: InteliWorks
                                                                                                                                                                                                                                                        Consumer: Payment Realizations /
                                                                                                                                                                                                                                                        Consumer: Payment - Enter
                                                                                                                                                                                                                                                                                                                     : FinancialTransactionService




                                                                                  resubmitPaymentExtended()                                                                                   1.2. Display confirmation                                                                                                                                                                                                                                                                                  CreationData
                                                                                                                                                                                                                                                                                                                                                                                                                                           FinancialTransactionBase
                                                                                  reversePaymentExtended()                                                                                                                                                                                                                                                                                                                                                                        +creationData
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   1

                                  <<Interface>>                                                                                   <<Interface>>                                                                                                                                            Sequence Diagram: InteliWorks
                                                                                                                                  PaymentEvent                                                         2. Ok                                                                               Consumer: Financial Transaction
                                    Payment                                                                                                                                                                                                                                                Realizations / Consumer: Financial                                                                                                          FinancialTransactionConsumerData
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  +displayStatus         DisplayStatus
                                                                                                                              processPayments()                                                                                 2.1. addPaymentRq
                            handlePayeeChange()                                                                                                                                                                                                                                            Transaction - Add                                                                                                                                                                  1                1

                                                                                                                                                                                                                                                               2.1.1. addPayment( )
                                                                                                                                                                                                                                                                                             2.1.1.1. addFinancialTransaction( )
                                                                                                                                                                                                                                                                                                                                                                                                                                           FinancialTransactionData           +processingData          ProcessingData
                                                                                                                                                                                                                                                                                               2.1.1.1.1. financialTransaction                                                                                                                                            1                    1

                               Notification                                                                                         FinancialTransactionCommon                                                                                                                                                                                                                                                                                                                                                   0..1
                             (from eMessenger)                                             PaymentService                           (from Financial Transaction Service)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       +status   1
                                                                                                                                                                                                                                                                2.1.1.2. payment                                                                               <<enumeration>>
                                                                                                                                                                                                                                                                                                                                                         FinancialTransactionTypeCode                    FinancialTransaction            FinancialTransactionExtended                                  ProcessingStatus
                                                                                                                                                                                                                                                                                                                                                      PAYMENT
                                                                                                                                                                                                                                                                                                                                                      FUNDS_TRANSFER
                                                                                                                                                                                                                               2.1.2. addPaymentRs                                                                                                                                                            0..1                                0..1           0..1                                  +status   1
                                                                                                                                    FinancialTransactionUtility                                                                                                                                                                                                                                1
                                                                                                                                                                                                                                                                                                                                                                           +transactionType                                                                                             +previousStep
                            SchedulingEvent                                                                                        (from Financial Transaction Service)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 0..1
                                                                                                                                                                                                                                                                                                                                                                                                                1    +specification                 *    +note                        *
                             (from Scheduler)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   {ordered}
                                                                                                                                                                                                                                                                                                                                                                              +amount
                                                                                                                                                                                                                                                                                                                                                         CurrencyAmount                            FinancialTransactionSpecification                 Note                                               ProcessingStep
                                                                                                                                                                                                   3. Close view                                       Sequence Diagram: InteliWorks                                                                                          1         0..1
                                                                                                                                                                                                                              3.1. View payments       Consumer: Payment Realizations /
                                                                                                                                     FinancialTransaction                                                                                              Consumer: Payment - View Payments
                                                                                                                               (from Financial Transaction Service)
                              PayeeUtility




                                        AccountUtility


                                                     OperationalDirectory
                                                (from Operational Directory Service)

                                                                             PaymentRead                FinancialTransactionRead

                                                                                       FinancialTransactionWrite




                    Navigation Maps                User Interface                                                                                                                                                                                                                                                                                    Conceptual Data Model
           (Class diagrams + Activity diagrams) (Sequence diagrams)                                                                                                                                                                                                                                                                                     (E/R diagrams)

34                                Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance
MDE first glance

More Related Content

What's hot

Analyze your software assets with Modisco par Frédéric Madiot
Analyze your software assets with Modisco par Frédéric MadiotAnalyze your software assets with Modisco par Frédéric Madiot
Analyze your software assets with Modisco par Frédéric MadiotEclipseDayParis
 
Context-Oriented Programming
Context-Oriented ProgrammingContext-Oriented Programming
Context-Oriented Programmingkim.mens
 
Detailed design: Nailing it Down
Detailed design: Nailing it DownDetailed design: Nailing it Down
Detailed design: Nailing it Downjsokohl
 
Software Architecture: Design Decisions
Software Architecture: Design DecisionsSoftware Architecture: Design Decisions
Software Architecture: Design DecisionsHenry Muccini
 
Animated Transitions between User Interface Views
Animated Transitions between User Interface ViewsAnimated Transitions between User Interface Views
Animated Transitions between User Interface ViewsJean Vanderdonckt
 
V Code And V Data Illustrating A New Framework For Supporting The Video Annot...
V Code And V Data Illustrating A New Framework For Supporting The Video Annot...V Code And V Data Illustrating A New Framework For Supporting The Video Annot...
V Code And V Data Illustrating A New Framework For Supporting The Video Annot...GoogleTecTalks
 
Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization  Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization Ivano Malavolta
 
Lecture 1 Software Engineering and Design Introduction
Lecture 1 Software Engineering and Design Introduction Lecture 1 Software Engineering and Design Introduction
Lecture 1 Software Engineering and Design Introduction op205
 
Daniel.dvorak
Daniel.dvorakDaniel.dvorak
Daniel.dvorakNASAPMC
 
Information System Development
Information System DevelopmentInformation System Development
Information System DevelopmentSamudin Kassan
 
Exploration Production Portals
Exploration Production Portals Exploration Production Portals
Exploration Production Portals Infosys
 
Third Serenoa Newsletter
Third Serenoa NewsletterThird Serenoa Newsletter
Third Serenoa NewsletterSerenoa Project
 
System engineering
System engineeringSystem engineering
System engineeringSlideshare
 
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
 
Modeling: the holy grail for designing complex systems?
Modeling: the holy grail for designing complex systems?Modeling: the holy grail for designing complex systems?
Modeling: the holy grail for designing complex systems?xmoneva
 

What's hot (18)

Analyze your software assets with Modisco par Frédéric Madiot
Analyze your software assets with Modisco par Frédéric MadiotAnalyze your software assets with Modisco par Frédéric Madiot
Analyze your software assets with Modisco par Frédéric Madiot
 
7 5-94-101
7 5-94-1017 5-94-101
7 5-94-101
 
Context-Oriented Programming
Context-Oriented ProgrammingContext-Oriented Programming
Context-Oriented Programming
 
Detailed design: Nailing it Down
Detailed design: Nailing it DownDetailed design: Nailing it Down
Detailed design: Nailing it Down
 
Software Architecture: Design Decisions
Software Architecture: Design DecisionsSoftware Architecture: Design Decisions
Software Architecture: Design Decisions
 
Animated Transitions between User Interface Views
Animated Transitions between User Interface ViewsAnimated Transitions between User Interface Views
Animated Transitions between User Interface Views
 
V Code And V Data Illustrating A New Framework For Supporting The Video Annot...
V Code And V Data Illustrating A New Framework For Supporting The Video Annot...V Code And V Data Illustrating A New Framework For Supporting The Video Annot...
V Code And V Data Illustrating A New Framework For Supporting The Video Annot...
 
Unit4
Unit4Unit4
Unit4
 
Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization  Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization
 
Lecture 1 Software Engineering and Design Introduction
Lecture 1 Software Engineering and Design Introduction Lecture 1 Software Engineering and Design Introduction
Lecture 1 Software Engineering and Design Introduction
 
Daniel.dvorak
Daniel.dvorakDaniel.dvorak
Daniel.dvorak
 
Information System Development
Information System DevelopmentInformation System Development
Information System Development
 
Exploration Production Portals
Exploration Production Portals Exploration Production Portals
Exploration Production Portals
 
Third Serenoa Newsletter
Third Serenoa NewsletterThird Serenoa Newsletter
Third Serenoa Newsletter
 
System engineering
System engineeringSystem engineering
System engineering
 
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
 
Action-Driven Design of User Interfaces
Action-Driven Design of User InterfacesAction-Driven Design of User Interfaces
Action-Driven Design of User Interfaces
 
Modeling: the holy grail for designing complex systems?
Modeling: the holy grail for designing complex systems?Modeling: the holy grail for designing complex systems?
Modeling: the holy grail for designing complex systems?
 

Viewers also liked

Scrum i+d. Agile and nanotechnology, research and development
Scrum i+d. Agile and nanotechnology, research and developmentScrum i+d. Agile and nanotechnology, research and development
Scrum i+d. Agile and nanotechnology, research and developmentJose Ramón Díaz
 
James Christie CAST 2014 Standards – promoting quality or restricting competi...
James Christie CAST 2014 Standards – promoting quality or restricting competi...James Christie CAST 2014 Standards – promoting quality or restricting competi...
James Christie CAST 2014 Standards – promoting quality or restricting competi...James Christie Christie
 
Cas 2011 Integración continua vs controlada
Cas 2011 Integración continua vs controladaCas 2011 Integración continua vs controlada
Cas 2011 Integración continua vs controladapsluaces
 
Technical Debt
Technical DebtTechnical Debt
Technical DebtGary Short
 
The Technical Debt Trap - Michael "Doc" Norton
The Technical Debt Trap - Michael "Doc" NortonThe Technical Debt Trap - Michael "Doc" Norton
The Technical Debt Trap - Michael "Doc" NortonLeanDog
 
5 Arguments Against Kanban
5 Arguments Against Kanban5 Arguments Against Kanban
5 Arguments Against KanbanNick Oostvogels
 
Agile Maintenance
Agile MaintenanceAgile Maintenance
Agile MaintenanceNaresh Jain
 
Managing technical debt
Managing technical debtManaging technical debt
Managing technical debtFadi Stephan
 

Viewers also liked (11)

Scrum i+d. Agile and nanotechnology, research and development
Scrum i+d. Agile and nanotechnology, research and developmentScrum i+d. Agile and nanotechnology, research and development
Scrum i+d. Agile and nanotechnology, research and development
 
James Christie CAST 2014 Standards – promoting quality or restricting competi...
James Christie CAST 2014 Standards – promoting quality or restricting competi...James Christie CAST 2014 Standards – promoting quality or restricting competi...
James Christie CAST 2014 Standards – promoting quality or restricting competi...
 
Cas 2011 Integración continua vs controlada
Cas 2011 Integración continua vs controladaCas 2011 Integración continua vs controlada
Cas 2011 Integración continua vs controlada
 
Mob Programming
Mob ProgrammingMob Programming
Mob Programming
 
Technical Debt
Technical DebtTechnical Debt
Technical Debt
 
Mob Programming
Mob ProgrammingMob Programming
Mob Programming
 
The Technical Debt Trap - Michael "Doc" Norton
The Technical Debt Trap - Michael "Doc" NortonThe Technical Debt Trap - Michael "Doc" Norton
The Technical Debt Trap - Michael "Doc" Norton
 
5 Arguments Against Kanban
5 Arguments Against Kanban5 Arguments Against Kanban
5 Arguments Against Kanban
 
Managing Technical Debt
Managing Technical DebtManaging Technical Debt
Managing Technical Debt
 
Agile Maintenance
Agile MaintenanceAgile Maintenance
Agile Maintenance
 
Managing technical debt
Managing technical debtManaging technical debt
Managing technical debt
 

Similar to MDE first glance

Software engineering
Software engineeringSoftware engineering
Software engineeringh2eEdgar
 
Software engineering note
Software engineering noteSoftware engineering note
Software engineering noteNeelamani Samal
 
software engineering notes for cse/it fifth semester
software engineering notes for cse/it fifth semestersoftware engineering notes for cse/it fifth semester
software engineering notes for cse/it fifth semesterrajesh199155
 
04 designing architectures
04 designing architectures04 designing architectures
04 designing architecturesMajong DevJfu
 
Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)stanbridge
 
Software Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsSoftware Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsNishu Rastogi
 
Model driven process for real time embedded
Model driven process for real time embeddedModel driven process for real time embedded
Model driven process for real time embeddedcaijjournal
 
A New Software Engineeering Approach
A New Software Engineeering ApproachA New Software Engineeering Approach
A New Software Engineeering ApproachArunit Gupta
 
SDA 01.pptx
SDA 01.pptxSDA 01.pptx
SDA 01.pptxJuttG6
 
Devnology back toschool software reengineering
Devnology back toschool software reengineeringDevnology back toschool software reengineering
Devnology back toschool software reengineeringDevnology
 
Managing Agile Software Development Projects
Managing Agile Software Development ProjectsManaging Agile Software Development Projects
Managing Agile Software Development ProjectsMartina Šimičić
 
Software Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptxSoftware Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptxomgadekar25
 
Introduction to Software Reverse Engineering
Introduction to Software Reverse EngineeringIntroduction to Software Reverse Engineering
Introduction to Software Reverse EngineeringTeodoro Cipresso
 
ccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdfccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdfVijayakumarKadumbadi
 
Software lifecycle model report
Software lifecycle model reportSoftware lifecycle model report
Software lifecycle model reportAshutosh Singh
 
Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelssaurabhshertukde
 
Lecture-1-Introduction.pdf
Lecture-1-Introduction.pdfLecture-1-Introduction.pdf
Lecture-1-Introduction.pdfAkilaGamage2
 
General process Frame work
General process Frame workGeneral process Frame work
General process Frame worklyingfromyou1
 
Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelszeal123123
 

Similar to MDE first glance (20)

Software engineering
Software engineeringSoftware engineering
Software engineering
 
Software engineering note
Software engineering noteSoftware engineering note
Software engineering note
 
software engineering notes for cse/it fifth semester
software engineering notes for cse/it fifth semestersoftware engineering notes for cse/it fifth semester
software engineering notes for cse/it fifth semester
 
04 designing architectures
04 designing architectures04 designing architectures
04 designing architectures
 
Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)
 
Software Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsSoftware Engineering- Crisis and Process Models
Software Engineering- Crisis and Process Models
 
Model driven process for real time embedded
Model driven process for real time embeddedModel driven process for real time embedded
Model driven process for real time embedded
 
A New Software Engineeering Approach
A New Software Engineeering ApproachA New Software Engineeering Approach
A New Software Engineeering Approach
 
SDA 01.pptx
SDA 01.pptxSDA 01.pptx
SDA 01.pptx
 
Devnology back toschool software reengineering
Devnology back toschool software reengineeringDevnology back toschool software reengineering
Devnology back toschool software reengineering
 
Managing Agile Software Development Projects
Managing Agile Software Development ProjectsManaging Agile Software Development Projects
Managing Agile Software Development Projects
 
Software Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptxSoftware Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptx
 
Introduction to Software Reverse Engineering
Introduction to Software Reverse EngineeringIntroduction to Software Reverse Engineering
Introduction to Software Reverse Engineering
 
ccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdfccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdf
 
Software lifecycle model report
Software lifecycle model reportSoftware lifecycle model report
Software lifecycle model report
 
Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-models
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
 
Lecture-1-Introduction.pdf
Lecture-1-Introduction.pdfLecture-1-Introduction.pdf
Lecture-1-Introduction.pdf
 
General process Frame work
General process Frame workGeneral process Frame work
General process Frame work
 
Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-models
 

Recently uploaded

Practical Research 1: Lesson 8 Writing the Thesis Statement.pptx
Practical Research 1: Lesson 8 Writing the Thesis Statement.pptxPractical Research 1: Lesson 8 Writing the Thesis Statement.pptx
Practical Research 1: Lesson 8 Writing the Thesis Statement.pptxKatherine Villaluna
 
5 charts on South Africa as a source country for international student recrui...
5 charts on South Africa as a source country for international student recrui...5 charts on South Africa as a source country for international student recrui...
5 charts on South Africa as a source country for international student recrui...CaraSkikne1
 
Easter in the USA presentation by Chloe.
Easter in the USA presentation by Chloe.Easter in the USA presentation by Chloe.
Easter in the USA presentation by Chloe.EnglishCEIPdeSigeiro
 
The basics of sentences session 10pptx.pptx
The basics of sentences session 10pptx.pptxThe basics of sentences session 10pptx.pptx
The basics of sentences session 10pptx.pptxheathfieldcps1
 
Philosophy of Education and Educational Philosophy
Philosophy of Education  and Educational PhilosophyPhilosophy of Education  and Educational Philosophy
Philosophy of Education and Educational PhilosophyShuvankar Madhu
 
Patterns of Written Texts Across Disciplines.pptx
Patterns of Written Texts Across Disciplines.pptxPatterns of Written Texts Across Disciplines.pptx
Patterns of Written Texts Across Disciplines.pptxMYDA ANGELICA SUAN
 
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptxClinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptxraviapr7
 
2024.03.23 What do successful readers do - Sandy Millin for PARK.pptx
2024.03.23 What do successful readers do - Sandy Millin for PARK.pptx2024.03.23 What do successful readers do - Sandy Millin for PARK.pptx
2024.03.23 What do successful readers do - Sandy Millin for PARK.pptxSandy Millin
 
Human-AI Co-Creation of Worked Examples for Programming Classes
Human-AI Co-Creation of Worked Examples for Programming ClassesHuman-AI Co-Creation of Worked Examples for Programming Classes
Human-AI Co-Creation of Worked Examples for Programming ClassesMohammad Hassany
 
How to Manage Cross-Selling in Odoo 17 Sales
How to Manage Cross-Selling in Odoo 17 SalesHow to Manage Cross-Selling in Odoo 17 Sales
How to Manage Cross-Selling in Odoo 17 SalesCeline George
 
3.21.24 The Origins of Black Power.pptx
3.21.24  The Origins of Black Power.pptx3.21.24  The Origins of Black Power.pptx
3.21.24 The Origins of Black Power.pptxmary850239
 
Ultra structure and life cycle of Plasmodium.pptx
Ultra structure and life cycle of Plasmodium.pptxUltra structure and life cycle of Plasmodium.pptx
Ultra structure and life cycle of Plasmodium.pptxDr. Asif Anas
 
M-2- General Reactions of amino acids.pptx
M-2- General Reactions of amino acids.pptxM-2- General Reactions of amino acids.pptx
M-2- General Reactions of amino acids.pptxDr. Santhosh Kumar. N
 
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRA
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRADUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRA
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRATanmoy Mishra
 
CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...
CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...
CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...Nguyen Thanh Tu Collection
 
Drug Information Services- DIC and Sources.
Drug Information Services- DIC and Sources.Drug Information Services- DIC and Sources.
Drug Information Services- DIC and Sources.raviapr7
 
Practical Research 1 Lesson 9 Scope and delimitation.pptx
Practical Research 1 Lesson 9 Scope and delimitation.pptxPractical Research 1 Lesson 9 Scope and delimitation.pptx
Practical Research 1 Lesson 9 Scope and delimitation.pptxKatherine Villaluna
 
How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17Celine George
 
The Singapore Teaching Practice document
The Singapore Teaching Practice documentThe Singapore Teaching Practice document
The Singapore Teaching Practice documentXsasf Sfdfasd
 
Quality Assurance_GOOD LABORATORY PRACTICE
Quality Assurance_GOOD LABORATORY PRACTICEQuality Assurance_GOOD LABORATORY PRACTICE
Quality Assurance_GOOD LABORATORY PRACTICESayali Powar
 

Recently uploaded (20)

Practical Research 1: Lesson 8 Writing the Thesis Statement.pptx
Practical Research 1: Lesson 8 Writing the Thesis Statement.pptxPractical Research 1: Lesson 8 Writing the Thesis Statement.pptx
Practical Research 1: Lesson 8 Writing the Thesis Statement.pptx
 
5 charts on South Africa as a source country for international student recrui...
5 charts on South Africa as a source country for international student recrui...5 charts on South Africa as a source country for international student recrui...
5 charts on South Africa as a source country for international student recrui...
 
Easter in the USA presentation by Chloe.
Easter in the USA presentation by Chloe.Easter in the USA presentation by Chloe.
Easter in the USA presentation by Chloe.
 
The basics of sentences session 10pptx.pptx
The basics of sentences session 10pptx.pptxThe basics of sentences session 10pptx.pptx
The basics of sentences session 10pptx.pptx
 
Philosophy of Education and Educational Philosophy
Philosophy of Education  and Educational PhilosophyPhilosophy of Education  and Educational Philosophy
Philosophy of Education and Educational Philosophy
 
Patterns of Written Texts Across Disciplines.pptx
Patterns of Written Texts Across Disciplines.pptxPatterns of Written Texts Across Disciplines.pptx
Patterns of Written Texts Across Disciplines.pptx
 
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptxClinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptx
 
2024.03.23 What do successful readers do - Sandy Millin for PARK.pptx
2024.03.23 What do successful readers do - Sandy Millin for PARK.pptx2024.03.23 What do successful readers do - Sandy Millin for PARK.pptx
2024.03.23 What do successful readers do - Sandy Millin for PARK.pptx
 
Human-AI Co-Creation of Worked Examples for Programming Classes
Human-AI Co-Creation of Worked Examples for Programming ClassesHuman-AI Co-Creation of Worked Examples for Programming Classes
Human-AI Co-Creation of Worked Examples for Programming Classes
 
How to Manage Cross-Selling in Odoo 17 Sales
How to Manage Cross-Selling in Odoo 17 SalesHow to Manage Cross-Selling in Odoo 17 Sales
How to Manage Cross-Selling in Odoo 17 Sales
 
3.21.24 The Origins of Black Power.pptx
3.21.24  The Origins of Black Power.pptx3.21.24  The Origins of Black Power.pptx
3.21.24 The Origins of Black Power.pptx
 
Ultra structure and life cycle of Plasmodium.pptx
Ultra structure and life cycle of Plasmodium.pptxUltra structure and life cycle of Plasmodium.pptx
Ultra structure and life cycle of Plasmodium.pptx
 
M-2- General Reactions of amino acids.pptx
M-2- General Reactions of amino acids.pptxM-2- General Reactions of amino acids.pptx
M-2- General Reactions of amino acids.pptx
 
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRA
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRADUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRA
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRA
 
CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...
CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...
CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...
 
Drug Information Services- DIC and Sources.
Drug Information Services- DIC and Sources.Drug Information Services- DIC and Sources.
Drug Information Services- DIC and Sources.
 
Practical Research 1 Lesson 9 Scope and delimitation.pptx
Practical Research 1 Lesson 9 Scope and delimitation.pptxPractical Research 1 Lesson 9 Scope and delimitation.pptx
Practical Research 1 Lesson 9 Scope and delimitation.pptx
 
How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17
 
The Singapore Teaching Practice document
The Singapore Teaching Practice documentThe Singapore Teaching Practice document
The Singapore Teaching Practice document
 
Quality Assurance_GOOD LABORATORY PRACTICE
Quality Assurance_GOOD LABORATORY PRACTICEQuality Assurance_GOOD LABORATORY PRACTICE
Quality Assurance_GOOD LABORATORY PRACTICE
 

MDE first glance

  • 1. Gestión Avanzada de Datos @Santander – 21 July, 2011 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development Juan M. Vara juanmanuel.vara@urjc.es Kybele Research Group University Rey Juan Carlos (Madrid - Spain)
  • 2. Agenda Motivation (Meta)Modeling MDA Putting MDE to work Conclusion 2 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 3. Motivation Software Complexity • Many modern software systems are reaching levels of complexity encountered in biological systems – Systems of systems each of which may include of millions of lines of code – … any one of which might be the culprit that brings down the entire system Mariner (1962) • 18.5$ millions • Programmer incorrectly transcribed a handwritten formula (period instead of comma in FORTRAN loop) • Furthermore, we can only see an increase in complexity of software systems due to: – Growing demand for greater and more sophisticated functionality • Given our current track record, how will we cope with this rise in complexity? 3 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 4. Motivation Software Complexity Essential Accidental First, distinguising what can be simplified Complexity Complexity • Essential complexity: we have a hard problem – Inherent to the problem – Cannot be sidestepped or eliminated by technology or method – E.g., geospatial applications are inherently more “complex” than standard “forms over data” applications • Accidental complexity: we have made a problem hard – Due to the use of inappropriate technologies or methods – It happens because someone didn't find the simplest way to implement a specified set of features – Might be eliminated by good design, or good redesign. – E.g., banks legacy systems programmed in COBOL 4 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 5. Motivation Software Complexity Modern software development suffers from an excess of accidental complexity How can we deal with this rise in complexity? 5 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 6. Motivation Software Complexity Can you see the underlying structure??? 6 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 7. Motivation Software Complexity Can you see the underlying structure??? Much better, isn’t it??? 7 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 8. Motivation Software Complexity Clearly, models help on simplifying software development by raising the level of abstraction at which software is conceived 8 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 9. Motivation Modeling in other disciplines • Modeling has been widely used in Engineering – Whith specification purposes  Structure and behavior Architecture  Interacting with stakeholders – For reasoning about the Avionics system  Detecting design errors  Infer and test properties  Prototyping (simulation) – As a guide towards implementation … 9 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 10. Motivation What happens with models in Software Engineering?? Used (at best) with documentation purposes There is a big gap between the models and the underlying implementation Models are not No way of ensuring No tools or updated with design programmers followed the changes made by design decissions captured in languages to programmers models handle models Are we really doing Software Engineering?? 10 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 11. Motivation Let’s put models to work in Software Engineering The Remarkable Thing About Software “Software has the rare property that it allows us to directly evolve models into full-fledged implementations without changing the engineering medium, tools, or methods” [John Hogg, 2003] Registrar Pago Seleccionar Imágenes Guardar Resultado Mostrar Resultados (SIW) LAIM Validar Usuario <<WS>> Del Procesamiento Validar Tarjeta Recibir Criterios de Crédito de Búsqueda Imágenes Criterios <<WS>> SACim Recibir Imágenes <<WS>> Obtener Imágenes Resultados Imágenes Imágenes Obtenidos <<<WS>> SPim “from (models) human-readable to Realizar Procesamiento de Imágenes Registrar Pago Seleccionar Imágenes Mostrar Resultados Guardar Resultado computer-understandable” (SIW) LAIM Validar Usuario Del Procesamiento Validar Tarjeta de Crédito Recibir Criterios Imágenes de Búsqueda Criterios [J. Bézivin] Recibir Imágenes SACim Obtener Imágenes Resultados Imágenes Imágenes Obtenidos SPim Realizar Procesamiento de Imágenes 11 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 12. Motivation Model-Driven Engineering (and related disciplines) MDA DSL ADM Boost the role of models and modelling activities at the MIC MDSD different steps of the MSE development cycle FROM CODING to MODELLING Model-Driven Component-based Engineering Software Engineering Structured Programming Object-Oriented Aspect-Oriented Programming Programming Assembly Raising the abstraction Languages level in Software Development 12 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 13. Motivation Model-Driven Engineering (and related disciplines) MDA DSL ADM Boost the role of models and modelling activities at the MIC MDSD different steps of the MSE development cycle ROLE CODING to FROM of LEVEL of MODELLING MODELS AUTOMATION Model-Driven Component-based Engineering Software Engineering Structured Programming Object-Oriented Aspect-Oriented Programming Programming Assembly Raising the abstraction Languages level in Software Development 13 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 14. Agenda Motivation (Meta)Modeling MDA Putting MDE to work Conclusion 14 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 15. Modeling What’s in a model? • What is a model? – A model is a simplification of a system built with an intended goal in mind. – A model is a description of a system written in a well-defined language  It should be able to answer questions in place of the actual system  It allows us to use something that is simpler, safer or cheaper than reality instead of reality for some purpose.  Thus, it allows us to deal with the world in a simplified manner, avoiding the complexity, danger and irreversibility of reality  A model represents reality for the given purpose; the model is an abstraction of reality in the sense that it cannot represent all aspects of reality 15 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 16. Modeling What’s in a model? • A model is the simplified image of a system – MDE is recent but the idea of modeling is old System repOf Model – Plato (427-347 before JC), in Timeus compares vertebras to door hinges (74a) or blood vessels to irrigation channels 16 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 17. Modelling How are models understood, interpreted, defined … ?? Every map has a legend (implicit or explicit) We cannot “get” the map without its legend The legend is the metamodel 17 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 18. Modelling How are models understood, interpreted, defined … ?? Every map has a legend (implicit or explicit) A model has no meaning when separated from its metamodel, We cannot “get” the that acts asitsthe filter for the map without legend reality to be modelled The legend is the metamodel 18 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 19. Modelling Metamodels act as filters for reality A (very simplistic ) metamodel for modelling Meetings 19 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 20. Modelling Metamodels act as filters for reality 20 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 21. Modelling The OMG modelling stack (abstract) A metamodel is the model of a modelling language: it makes statements about what can be expressed in the valid models of a certain modelling language. Metamodel c2 Terminology c2 Assertions Model (Terminal Model) 21 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 22. Modelling The OMG modelling stack (abstract) c2 Metamodel c2 Metamodel Being a model, a c2 metamodel has to conform to its c2 corresponding Model metamodel (Terminal Model) 22 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 23. Modelling The OMG modelling stack (abstract) c2 c2 Metamodel Metametamodel c2 Metamodel The metamodel might be expressed c2 using the same c2 modelling language Model that it defines. (Terminal Model) Then it’s called metametamodel 23 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 24. Modelling Don't confuse the model and the system • Principle of limited substitutability. – A model M is said to be a representation of a system S for a given set of questions Q if, for each question of this set Q, the model M will provide exactly the same answer that the system S would have provided in answering the same question. e.g. the globe is a model of the earth …. What is the temperature at the bottom if I dig a 100 km deep hole at the surface of the earth ? repOf … allowing to ask certain questions … Could I travel from Paris to New York without using a boat or a plane? … but not others … 24 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 25. Modelling Aspects of a system represented by models Ma Mb A given system may M1 Mc have plenty of different models Each model isRepresentedBy represents a given aspect of the system M0 S 25 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 26. Modelling Different Models ↔ Different Languages Plumber's Electrician's view view Architect's view Decorator's Carpenter's view view Phone Installer's view 26 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 27. Modelling Domain Specific Languages (DSLs) • Domain Specific Languages (DSLs) are SELECT soh.[SalesOrderID] languages tailored to a specific ,soh.[OrderDate] ,soh.[ShipDate] application domain ,sod.[ProductID] ,sod.[OrderQty] ,sod.[UnitPrice] – They offer substantial gains in expressiveness ,soh.[CustomerID] FROM [Sales].[SalesOrderHeader] AS soh and ease of use compared with general- JOIN [Sales].[SalesOrderDetail] AS sod ON soh.[SalesOrderID] = purpose programming languages in their sod.[SalesOrderID] WHERE soh.[CustomerID] = 29559; domain of application – Higher-level abstraction than general purpose languages – Closer to the problem domain than to the implementation domain – Closer to domain experts Metamodels define (partially) Domain Specific Languages (DSLs) 27 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 28. Modelling Abstract syntax VS Concrete Syntax Speaker(Mary) Attendant(John) Attendant(Peter) Chair(c1) Chair(c2) Same Model Same Abstractions sat_on(John, c1) Different notations Different syntaxes sat_on(Peter, c2) 28 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 29. Modelling Abstract Syntax VS Concrete Syntax Abstract Syntax • There are two types of objects: Furniture and Person • In turn, each Furniture object could be a Chair or a Desk and each Person an Attendant or a Speaker • Each Person can be sat on one (and only one) piece of Furniture Concrete Syntax – A box represents each Furniture or Person object – The name of the object is included into an inner box – Each occurrence of the relationship between Furniture and Person objects is represented by an arrow pointing to the Person object 29 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 30. Modelling Abstract Syntax VS Concrete Syntax Abstract Syntax • There are two types of objects: Furniture and Person • In turn, each Furniture object could be a Chair or a Desk and each Person an Attendant or a Speaker • Each Person can be sat on one (and only one) piece of Furniture (Another) Concrete Syntax Speaker(Mary) – Each object is represented by the reserved word Attendant(John) that designates the type of the object plus the name Attendant(Peter) of the object between brackets Chair(c1) – Each occurrence of the sat_on relationship is represented by the reserved work sat_on plus the Chair(c2) name of the objects between brackets and sat_on(John, c1) separated by commas sat_on(John, c2) 30 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 31. Agenda Motivation (Meta)Modeling MDA Putting MDE to work Conclusion 31 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 32. MDA A way of doing MDE Sometimes MDA is referred to as “MDE with standards” Role of models MDE principles Automation Standards to formalize Categorization of MDE principles Abstraction Levels QVT OCL SPEM KDM … 32 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 33. MDA Categorization of Abstraction Levels: CIM CIM •Computer Independent Model • System requirements are modelled by Computer PIM •Platform Independent Model PSM Independent Models (CIMs) CODE •Platform Specific Model •Running system – The CIM model is a view of the business processes – … ellaborated by domain experts – … is not always mandatory, it depends on the specific domain addressed Requirements Model (use case and activity diagrams) • … serve as a bridge between domain experts and business analysts 33 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011
  • 34. MDA Categorization of Abstraction Levels: PIM CIM •Computer Independent Model • The PIM models the system without considering PIM •Platform Independent Model PSM specific platform technological details CODE •Platform Specific Model •Running system – … allows the mapping to any technological platform – … think of a neutral virtual machine where each operation will be later implemented in the targetted platform – … is always mandatory and may result into one or more PSMs CIM Huge gap between CIM and PIM levels Requirements Model ↓ (use case and activity diagrams) Traces at best PIM <<Interface>> PaymentFe addPayment() cancelPayment() getPayments() getPaymentActivity() updatePayment() <<Interface>> PaymentFeExtended addPaymentNoteExtended() completePaymentExtended() failPaymentExtended() getPaymentsExtended() pendPaymentExtended() <<Interface>> PaymentUtility prepare() getRouting() checkForDuplicate() : Consumer 1. Create payment : ConsumerFrontEnd 1.1. Enter payment : XmlConnector : PaymentService Sequence Diagram: InteliWorks Consumer: Payment Realizations / Consumer: Payment - Enter : FinancialTransactionService resubmitPaymentExtended() 1.2. Display confirmation CreationData FinancialTransactionBase reversePaymentExtended() +creationData 1 <<Interface>> <<Interface>> Sequence Diagram: InteliWorks PaymentEvent 2. Ok Consumer: Financial Transaction Payment Realizations / Consumer: Financial FinancialTransactionConsumerData +displayStatus DisplayStatus processPayments() 2.1. addPaymentRq handlePayeeChange() Transaction - Add 1 1 2.1.1. addPayment( ) 2.1.1.1. addFinancialTransaction( ) FinancialTransactionData +processingData ProcessingData 2.1.1.1.1. financialTransaction 1 1 Notification FinancialTransactionCommon 0..1 (from eMessenger) PaymentService (from Financial Transaction Service) +status 1 2.1.1.2. payment <<enumeration>> FinancialTransactionTypeCode FinancialTransaction FinancialTransactionExtended ProcessingStatus PAYMENT FUNDS_TRANSFER 2.1.2. addPaymentRs 0..1 0..1 0..1 +status 1 FinancialTransactionUtility 1 +transactionType +previousStep SchedulingEvent (from Financial Transaction Service) 0..1 1 +specification * +note * (from Scheduler) {ordered} +amount CurrencyAmount FinancialTransactionSpecification Note ProcessingStep 3. Close view Sequence Diagram: InteliWorks 1 0..1 3.1. View payments Consumer: Payment Realizations / FinancialTransaction Consumer: Payment - View Payments (from Financial Transaction Service) PayeeUtility AccountUtility OperationalDirectory (from Operational Directory Service) PaymentRead FinancialTransactionRead FinancialTransactionWrite Navigation Maps User Interface Conceptual Data Model (Class diagrams + Activity diagrams) (Sequence diagrams) (E/R diagrams) 34 Model-Driven Engineering: a first glance at a ¿new? way of conceiving software development @Santander ~ 21 July, 2011