Introducing MDSD

Pedro J. Molina
Pedro J. MolinaFounder at Metadev en Metadev
Introducing
   Model Driven
   Software Development
                  Pedro J. Molina, PhD.
                              Software Engineer
                Capgemini Spain | Valencia
                             pjmolina@gmail.com
                   http://pjmolina.com/metalevel
Contents
   Objective
   What’s MDSD?
   Why are we doing it?
   How we can apply it?
   CG2011 Program review




                            2
Setting expectations
       What to expect from CG2011?
          The Europe leading conf. about Code
           Generation
          Focused on practical tools and industrial
           experiences
          A place to find and discuss with the Tool
           Makers
          Probably one of the best places to learn
           and share knowledge about Code
           Generation

       My objective with this session
          Provide an overview to Code Generation
          Provide clues to newcomers to select
           your own path in the conference


                                                  3
Motivation: Programmers needed!
 The impossible equation (Jean Bézivin)
    1.       Slow increase of professionals
                Same trend in next 25 years


    2.       Rapid increase of SW to be developped

    3.       No way to cope with it

    4.       End User Programming
                Example: Visical, Excel
                By DSL, abstraction
                Custom languages


    http://mymodelingblog.blogspot.com/2009/08/impossible-equation.html




                                                                          4
Abstraction Levels
                                                        The entire history of software engineering is
               Application                              one of rising levels of abstraction (abstraction
                Domain                                  is the primary way we as humans deal with
                                                        complexity).
                                                                                          Grady Booch


                             Models / Specs
Semantic Gap




                                              4GL




                                                                                                    Abstraction level
                                              COBOL / C / Basic / Java


                                                                Assembler


                                                                     Machine Code


                                                                                                   5
What’s a Domain?
          Real Time                              Management
           Systems                                Systems


        Air Traffic           Luggage
                                                     Insurance
         Control              Tracking
                                                      Systems
         Systems              Systems



   Focused on strict time                  Focused on structure, data
    constrains and tracking                  and transactions




                                                                          6
What’s a Language?
                                                    Declarative
       C(x)                 h2      2C(x)
    ih       = –
        t      2m                     x2
  a>b && c==d              John cookies        24   green
                           Phil      fish      32   blue

<CallRecord>
 <caller><number>07713248</number>


Textual                                             Employee
                                                      Name
                                                                       Position
                                                                      Description    Graphical
                                                     Address   0..*
                                                                        Salary
                                                     Promote           Assign


class Invoice: Document                                                             Record       Cost min.

{                                                                                                        
    public void Bill()                                                                        Duration

                                                    Imperative               Call        DB



                                                                                                    7
What’s a model?
 A model allows
    the description of a family of problems for a domain
    Having the abstraction level carefully selected to:
       Discard irrelevant details (reduce complexity)
                                                                     Source
       Discard constant details (reduce complexity)
       Explicit important details (variables part)      Class                 Relation

                                                             Properties          Cardinality
 What’s a meta-model?                                                Target
   A model describing model.

                                             Customer                           Credit Card
                                                         1                *



                                                                                          8
Some Acronyms
 MD* (MDD = MDE = MDSD  MDA)        MDSD
 MDSD = Model-Driven Software
  Development
                                    MDA   DSLs
 MDD = Model Driven Development
 MDE = Model Driven Engineering
 MDA = Model Driven Architecture
 OMG = Object Management Group

 DSL = Domain Specific Language
 AST = Abstract Syntactic Tree


                                                 9
MDD
      Model Driven Development

    Definition:
       The usage of Models as the main artefacts
       to Drive the software Development.




                                               10
Code Generation
                   Model     Code      Assets
                           Generator




Definition:
The automated synthesis of SW assets like
source code, documentation or models using
models as input.



                                                11
Novak’s rule
“Automatic Programming is defined as the
  synthesis of a program from an specification.

  If automatic programming is to be useful, the
  specification must be smaller and easier to
  write than the program would be if written in
  a conventional programming language.”

                                     G.S. Novak

                                                  12
Commonality / Variability
 Family of programs
  (D. Parnas)

   Common part
      Standard, Fixed.
      Implementable in common & shared base libraries

   Variable part
      Specify in the model
      Generable

                                                         13
Separation of Concerns (SoC)
Know-How captured in two separated buckets:
What                                How
 Business Know-How:                 Technological Know-How:
  captured in form of models          captured & encapsulated in form of
  (specifications): isolated from     best practices, frameworks,
  technological issues                templates & code patterns in code
                                      generators & interpreters.




                                                                      14
ROI

 Economies of Scale
 Economies of Scope
 Economics of MDSD

 Development Life Cycle Impact
 Quality



                             15
Economies of Scale
 Economies of Scale
    The condition where few inputs, as effort and time, are needed to
     produce big quantities of a unique output. [Wit96]




                                                             But: Can’t be applied to SW!
                                                             Once the SW is produced
                                                             Copy cost is = 0 £!




                 Japanese Cookie Factory. Production Line.



                                                                                       16
17
Economies of Scope
 Economies of Scope
   The condition where few inputs, as effort and time, are
    needed to produce a great variety of outputs. It is
    produced more added value producing in the same line
    different outputs. To produce each output independently
    creates an overcost in the common parts.

   Economy of Scope occurs when the cost of combining two
    or more products in a unique product line is lower than
    producing them independently. [Wit96]




                                                              18
MDSD: Economic Model
                               Investment
  Domain Engineering


                                 Feedback:
                                         Clients suggestions
Application Development                  Improvements for the
      Environment                         development environment




 Application Engineering




                           ROI (development cost saving)
      Applications


                                                              19
MDSD: Economic Model
                   Traditional Cost =       N * CT
                   MDD cost          = Inv + N * CF
                                                                            Saving AF = CT - CF

                    5 CT

                    4 CT
Accumulated costs




                    3 CT


                    2 CT
                                Inv

                      CT


                                         1         2   3        4       5
                                                       Family members
                                                                                        20
SW Life-cycle Impact
 More time in analysis and
  design tasks
 Less time in coding

 Less defect, more Quality
 Improved productivity
    Order of magnitude

 Continuous Integration
 Agile development cycles
 Less cost
                                 21
Defects Cost and Distribution
                            Traditional life cycle
                            MDD life cycle                   Exponential cost
% Defects                                               8€
                                                             of defects




                                                4€



                            2€

                   1€



                Analysis   Design            Coding   Maintenance

                            Snow ball effect
                                                                       22
Models: some Cases of Use
1. Validation   2. Interpretation   3. Code Generation

  Model             Model                Model




  Model                                 Code
                 Interpreter
 Checker                              Generation

                    Runtime                               Code
                 interpretation
                                                         Metadata

                                       Generated            Doc
  Report
                                         Code               Config.
                                                             Tests
                                                                 ...
                                                                       23
Conceptual Map for Code
                            Generation
Types




               Metamodel                           Templates
                              Transformations

                             Code Generator
Instances




                     Model                           Code



            Higher             Abstraction Level               Lower


                                                                       24
UML/MDA
 UML: Unified Modelling Language
   Origins: unified notation (from three
    sources, The Three Amigos)
   OCL: constraint language
   Great acceptation, common language
    for software engineering

 MDA: Model Driven Architecture
     MDA = MDSD with UML
     Proposed by OMG
     Profiles
     PIM/PSM
     MOF/XMI


                                            25
Code Generation with UML tools
Types




                      Metamodel                        Templates
                                  Transformations
Instances




                       Model                             Code



             Higher                Abstraction Level               Lower


                                                                           26
Code Generation with UML/MDA
 Usage of UML Models
 Extension mechanism:                       «persistent»
                                              Customer
   Stereotypes
   Profiles for specialized domains   «pk» string Id
                                       «derived» double Balance

 Good enough for:
   Structure: class and properties
   State transition diagrams
    (frequent in embedded systems)


                                                                  27
Code Generation with UML/MDA
 As rich/poor enough as you can express and maintain in UML
 “Only a 20% of UML is generally needed for SW development.” Ivar Jacobson
    But: What percent of my problem can such 20% of UML solve?

 Metamodel is highly closed
     Only extensible at certain points

 Shortcomings
    Symbol and concept overloading
    Not clear Semantics
    Action Language
    Domains not cover by UML: e.g. User Interfaces
    Abuse of profiles  Forces models and semantics (One size doesn’t fit
     all)
    Tools: many dialects of XMI  Babel’s Tower


                                                                         28
DSL
 A DSL approach to MDSD gives you
  full control on the development of
  your metamodel
    Powerful
    Better well suited to your needs
    “Do it yourself” approach

 Tools to be built
    Metamodels, editors, model checkers,
     compilers, code generators

                                        29
DSL
 Internal DSL: Sample LINQ
   var studentPassList = from student in students
                         where student.Score > 500
                         select student;



 External DSL: Sample SQL

   SELECT Name, Surname FROM STUDENT
          WHERE Score > 500;


                                                     30
Code Generation with EMF
Types




               EMF Metamodel                          Templates
                                 Transformations
Instances




                     EMF Model                          Code



            Higher                Abstraction Level               Lower


                                                                          31
Code Generation with MS DSL Tools
Types




                DSL Metamodel                               T4 Templates
                                                 Transformations
Instances




                      DSL Model                                    Code



             Higher               Abstraction Level                        Lower


                                                                                   32
Code generation techniques
1. Parse model                          Input Model



2. In-memory representation
                                             Template
   AST / Object Model        AST



3. Output building
   Free text concatenation
   XSL-T (ouch!)
   Text Template based
                                    Output code

                                                  33
Tools matters
                           Metamodel(s)
                                                          Reverse
Textual Model Editor
                                                        Engineering
                                                           Tools
Visual Model Editor
                                 Model(s)
  Model Checker

        IDE


                         Model Transformation

                         M2M                 M2T



                                             Code
                         Model
                                            Doc, etc.
                                                                34
Who are working in the area?
 Eclipse EMF/GMF        Microsoft
    IBM                     DSL Tools
    SAP                 MetaCase
    Obeo                    MetaEdit+

 Xtext                  JetBrains
    Itemis                  MPS

                         Intentional Software
 xUML / MDA                 Intentional Workbench
      Kennedy Carter
      Blue Age          WebRatio
      Artisan           Mendix
      AndroMDA          Many more
      Olivanova             …

                                      Presenting at CG2011 or LWC2011

                                                                   35
Language Workbenches
                          Competition 2011
                                  Tool                             Presenter
                                  MPS                              Markus Völter
                                  MetaEdit+                        Steven Kelly
                                  OOMEGA                           Christian Merenda
                                  Whole Platform                   Riccardo Solmi
                                  Rascal                           Jurgen Vinju
                                  Spoofax                          Lennart Kats
                                  Intentional                      Mats Helander
                                  Essential                        Pedro J. Molina
                                  Obeo Designer                    Mariot Chauvin
                                  Xtext                            Karsten Thoms
                                  Session Chair: Angelo Hulshout


Language Workbench: http://martinfowler.com/articles/languageWorkbench.html [Fowler2005]



                                                                                           36
Programme Guide
          Keynotes

            Terence Parr
                ANTLR
                StringTemplate


                        Thursday 26th 9:00 H


            Ed Merks
                Eclipse Modeling
                 Framework leader

                          Friday 27th 9:00 H



                                         37
Programme Guide
      Experience reports
         Lesson from real MDSD applications


      Tool tutorials and Hand on Labs
         Learn to use them


      Panels and Goldfish bowl
         Promote debate and participation
          about a reference topic


      Birds of a Feather
         Formation of informal interest groups
          on the fly                        38
CG2011 Tips
 Choose your path
     Parallel tracks
     Split your team
     Check for slides of missing session on the conference
      web, SlideShare or InfoQ.com

 Interact!
       Tweet about it using the tag #cg2011
       Install the CG2011 iPhone App
       Introduce yourself and involve in the community
       Ask whenever something is not clear to you
       Ask for each dark acronym you find
       Do not miss the traditional and relaxing punting trip!
       Continue the discussion on the social network:
        http://modeldrivensoftware.net/




                                                                 39
Conclusions
 A change in SW development is needed

 MDSD :
    Provide leverage points to reach new levels of productivity

    Offer a clear path to make better engineering in Computer
     Science




                                                                   40
Thank you!




Questions?
               @pmolinam
1 de 41

Recomendados

RMMM PlanRMMM Plan
RMMM PlanAnkit Bahuguna
19.5K vistas12 diapositivas
Generic process modelGeneric process model
Generic process modelMadhar Khan Pathan
2.5K vistas9 diapositivas
Spm tutorialsSpm tutorials
Spm tutorialsVinod Kumar
15.4K vistas33 diapositivas

Más contenido relacionado

La actualidad más candente(20)

Requirements engineering for agile methodsRequirements engineering for agile methods
Requirements engineering for agile methods
Syed Zaid Irshad2.1K vistas
Maintenance TestingMaintenance Testing
Maintenance Testing
Emi Rahmi547 vistas
Reuse landscapeReuse landscape
Reuse landscape
sommerville-videos4.4K vistas
Software project management- Software EngineeringSoftware project management- Software Engineering
Software project management- Software Engineering
Muhammad Yousuf Abdul Qadir6.1K vistas
Software engineering : Layered ArchitectureSoftware engineering : Layered Architecture
Software engineering : Layered Architecture
Muhammed Afsal Villan9.8K vistas
Learn software developmentLearn software development
Learn software development
Eduonix Learning Solutions945 vistas
Unified ProcessUnified Process
Unified Process
guy_davis46.2K vistas
Software designSoftware design
Software design
Syed Muhammad Hammad-ud-Din68.9K vistas
Software component reuse repositorySoftware component reuse repository
Software component reuse repository
Sandeep Singh2.6K vistas
Software Project Management pptSoftware Project Management ppt
Software Project Management ppt
Andreea Usatenco41.5K vistas
Unit 7 performing user interface designUnit 7 performing user interface design
Unit 7 performing user interface design
Preeti Mishra5.8K vistas
Software Project Management( lecture 1)Software Project Management( lecture 1)
Software Project Management( lecture 1)
Syed Muhammad Hammad5.6K vistas
Agile development, software engineeringAgile development, software engineering
Agile development, software engineering
Rupesh Vaishnav5K vistas
Bhashini (NLTM) ToolsBhashini (NLTM) Tools
Bhashini (NLTM) Tools
Aravinth Bheemaraj340 vistas
Characteristics of SoftwareCharacteristics of Software
Characteristics of Software
Upekha Vandebona8.3K vistas

Más de Pedro J. Molina

TerraformTerraform
TerraformPedro J. Molina
5 vistas1 diapositiva
Are Startups for me?Are Startups for me?
Are Startups for me?Pedro J. Molina
465 vistas18 diapositivas
Meow DemoMeow Demo
Meow DemoPedro J. Molina
228 vistas5 diapositivas

Más de Pedro J. Molina(20)

TerraformTerraform
Terraform
Pedro J. Molina5 vistas
Infrastructure as Code with TerraformInfrastructure as Code with Terraform
Infrastructure as Code with Terraform
Pedro J. Molina51 vistas
Are Startups for me?Are Startups for me?
Are Startups for me?
Pedro J. Molina465 vistas
Meow DemoMeow Demo
Meow Demo
Pedro J. Molina228 vistas
Essential as the base for Web DSLsEssential as the base for Web DSLs
Essential as the base for Web DSLs
Pedro J. Molina300 vistas
Esencia de Web ComponentsEsencia de Web Components
Esencia de Web Components
Pedro J. Molina313 vistas
Esencia de web componentsEsencia de web components
Esencia de web components
Pedro J. Molina323 vistas
OpenAPI 3.0.2OpenAPI 3.0.2
OpenAPI 3.0.2
Pedro J. Molina1.3K vistas
QuidQuid
Quid
Pedro J. Molina430 vistas
Securizando por construcción mediante MDESecurizando por construcción mediante MDE
Securizando por construcción mediante MDE
Pedro J. Molina237 vistas
Building APIs with the OpenApi SpecBuilding APIs with the OpenApi Spec
Building APIs with the OpenApi Spec
Pedro J. Molina1K vistas
Micro vs Nano (servicios)Micro vs Nano (servicios)
Micro vs Nano (servicios)
Pedro J. Molina2K vistas
Diseño de APIs con OpenAPIDiseño de APIs con OpenAPI
Diseño de APIs con OpenAPI
Pedro J. Molina2.3K vistas
SVQDC 2017 Tecnologías para MicroserviciosSVQDC 2017 Tecnologías para Microservicios
SVQDC 2017 Tecnologías para Microservicios
Pedro J. Molina1.1K vistas
Introducción a AngularIntroducción a Angular
Introducción a Angular
Pedro J. Molina3.2K vistas
Tecnologías para microserviciosTecnologías para microservicios
Tecnologías para microservicios
Pedro J. Molina3.6K vistas
Microservicios sobre MEAN StackMicroservicios sobre MEAN Stack
Microservicios sobre MEAN Stack
Pedro J. Molina1.7K vistas
Hivepod: Casos de uso en OpenDataHivepod: Casos de uso en OpenData
Hivepod: Casos de uso en OpenData
Pedro J. Molina797 vistas

Introducing MDSD

  • 1. Introducing Model Driven Software Development Pedro J. Molina, PhD. Software Engineer Capgemini Spain | Valencia pjmolina@gmail.com http://pjmolina.com/metalevel
  • 2. Contents  Objective  What’s MDSD?  Why are we doing it?  How we can apply it?  CG2011 Program review 2
  • 3. Setting expectations  What to expect from CG2011?  The Europe leading conf. about Code Generation  Focused on practical tools and industrial experiences  A place to find and discuss with the Tool Makers  Probably one of the best places to learn and share knowledge about Code Generation  My objective with this session  Provide an overview to Code Generation  Provide clues to newcomers to select your own path in the conference 3
  • 4. Motivation: Programmers needed!  The impossible equation (Jean Bézivin) 1. Slow increase of professionals  Same trend in next 25 years 2. Rapid increase of SW to be developped 3. No way to cope with it 4. End User Programming  Example: Visical, Excel  By DSL, abstraction  Custom languages http://mymodelingblog.blogspot.com/2009/08/impossible-equation.html 4
  • 5. Abstraction Levels The entire history of software engineering is Application one of rising levels of abstraction (abstraction Domain is the primary way we as humans deal with complexity). Grady Booch Models / Specs Semantic Gap 4GL Abstraction level COBOL / C / Basic / Java Assembler Machine Code 5
  • 6. What’s a Domain? Real Time Management Systems Systems Air Traffic Luggage Insurance Control Tracking Systems Systems Systems  Focused on strict time  Focused on structure, data constrains and tracking and transactions 6
  • 7. What’s a Language? Declarative C(x) h2 2C(x) ih = – t 2m  x2 a>b && c==d John cookies 24 green Phil fish 32 blue <CallRecord> <caller><number>07713248</number> Textual Employee Name Position Description Graphical Address 0..* Salary Promote Assign class Invoice: Document Record Cost min. {  public void Bill() Duration Imperative Call DB 7
  • 8. What’s a model?  A model allows  the description of a family of problems for a domain  Having the abstraction level carefully selected to:  Discard irrelevant details (reduce complexity) Source  Discard constant details (reduce complexity)  Explicit important details (variables part) Class Relation Properties Cardinality  What’s a meta-model? Target  A model describing model. Customer Credit Card 1 * 8
  • 9. Some Acronyms  MD* (MDD = MDE = MDSD  MDA) MDSD  MDSD = Model-Driven Software Development MDA DSLs  MDD = Model Driven Development  MDE = Model Driven Engineering  MDA = Model Driven Architecture  OMG = Object Management Group  DSL = Domain Specific Language  AST = Abstract Syntactic Tree 9
  • 10. MDD  Model Driven Development Definition: The usage of Models as the main artefacts to Drive the software Development. 10
  • 11. Code Generation Model Code Assets Generator Definition: The automated synthesis of SW assets like source code, documentation or models using models as input. 11
  • 12. Novak’s rule “Automatic Programming is defined as the synthesis of a program from an specification. If automatic programming is to be useful, the specification must be smaller and easier to write than the program would be if written in a conventional programming language.” G.S. Novak 12
  • 13. Commonality / Variability  Family of programs (D. Parnas)  Common part  Standard, Fixed.  Implementable in common & shared base libraries  Variable part  Specify in the model  Generable 13
  • 14. Separation of Concerns (SoC) Know-How captured in two separated buckets: What How  Business Know-How:  Technological Know-How: captured in form of models captured & encapsulated in form of (specifications): isolated from best practices, frameworks, technological issues templates & code patterns in code generators & interpreters. 14
  • 15. ROI  Economies of Scale  Economies of Scope  Economics of MDSD  Development Life Cycle Impact  Quality 15
  • 16. Economies of Scale  Economies of Scale  The condition where few inputs, as effort and time, are needed to produce big quantities of a unique output. [Wit96] But: Can’t be applied to SW! Once the SW is produced Copy cost is = 0 £! Japanese Cookie Factory. Production Line. 16
  • 17. 17
  • 18. Economies of Scope  Economies of Scope  The condition where few inputs, as effort and time, are needed to produce a great variety of outputs. It is produced more added value producing in the same line different outputs. To produce each output independently creates an overcost in the common parts.  Economy of Scope occurs when the cost of combining two or more products in a unique product line is lower than producing them independently. [Wit96] 18
  • 19. MDSD: Economic Model Investment Domain Engineering Feedback:  Clients suggestions Application Development  Improvements for the Environment development environment Application Engineering ROI (development cost saving) Applications 19
  • 20. MDSD: Economic Model  Traditional Cost = N * CT  MDD cost = Inv + N * CF Saving AF = CT - CF 5 CT 4 CT Accumulated costs 3 CT 2 CT Inv CT 1 2 3 4 5 Family members 20
  • 21. SW Life-cycle Impact  More time in analysis and design tasks  Less time in coding  Less defect, more Quality  Improved productivity  Order of magnitude  Continuous Integration  Agile development cycles  Less cost 21
  • 22. Defects Cost and Distribution Traditional life cycle MDD life cycle Exponential cost % Defects 8€ of defects 4€ 2€ 1€ Analysis Design Coding Maintenance Snow ball effect 22
  • 23. Models: some Cases of Use 1. Validation 2. Interpretation 3. Code Generation Model Model Model Model Code Interpreter Checker Generation Runtime Code interpretation Metadata Generated Doc Report Code Config. Tests ... 23
  • 24. Conceptual Map for Code Generation Types Metamodel Templates Transformations Code Generator Instances Model Code Higher Abstraction Level Lower 24
  • 25. UML/MDA  UML: Unified Modelling Language  Origins: unified notation (from three sources, The Three Amigos)  OCL: constraint language  Great acceptation, common language for software engineering  MDA: Model Driven Architecture  MDA = MDSD with UML  Proposed by OMG  Profiles  PIM/PSM  MOF/XMI 25
  • 26. Code Generation with UML tools Types Metamodel Templates Transformations Instances Model Code Higher Abstraction Level Lower 26
  • 27. Code Generation with UML/MDA  Usage of UML Models  Extension mechanism: «persistent» Customer  Stereotypes  Profiles for specialized domains «pk» string Id «derived» double Balance  Good enough for:  Structure: class and properties  State transition diagrams (frequent in embedded systems) 27
  • 28. Code Generation with UML/MDA  As rich/poor enough as you can express and maintain in UML  “Only a 20% of UML is generally needed for SW development.” Ivar Jacobson  But: What percent of my problem can such 20% of UML solve?  Metamodel is highly closed  Only extensible at certain points  Shortcomings  Symbol and concept overloading  Not clear Semantics  Action Language  Domains not cover by UML: e.g. User Interfaces  Abuse of profiles  Forces models and semantics (One size doesn’t fit all)  Tools: many dialects of XMI  Babel’s Tower 28
  • 29. DSL  A DSL approach to MDSD gives you full control on the development of your metamodel  Powerful  Better well suited to your needs  “Do it yourself” approach  Tools to be built  Metamodels, editors, model checkers, compilers, code generators 29
  • 30. DSL  Internal DSL: Sample LINQ var studentPassList = from student in students where student.Score > 500 select student;  External DSL: Sample SQL SELECT Name, Surname FROM STUDENT WHERE Score > 500; 30
  • 31. Code Generation with EMF Types EMF Metamodel Templates Transformations Instances EMF Model Code Higher Abstraction Level Lower 31
  • 32. Code Generation with MS DSL Tools Types DSL Metamodel T4 Templates Transformations Instances DSL Model Code Higher Abstraction Level Lower 32
  • 33. Code generation techniques 1. Parse model Input Model 2. In-memory representation Template  AST / Object Model AST 3. Output building  Free text concatenation  XSL-T (ouch!)  Text Template based Output code 33
  • 34. Tools matters Metamodel(s) Reverse Textual Model Editor Engineering Tools Visual Model Editor Model(s) Model Checker IDE Model Transformation M2M M2T Code Model Doc, etc. 34
  • 35. Who are working in the area?  Eclipse EMF/GMF  Microsoft  IBM  DSL Tools  SAP  MetaCase  Obeo  MetaEdit+  Xtext  JetBrains  Itemis  MPS  Intentional Software  xUML / MDA  Intentional Workbench  Kennedy Carter  Blue Age  WebRatio  Artisan  Mendix  AndroMDA  Many more  Olivanova  … Presenting at CG2011 or LWC2011 35
  • 36. Language Workbenches Competition 2011 Tool Presenter MPS Markus Völter MetaEdit+ Steven Kelly OOMEGA Christian Merenda Whole Platform Riccardo Solmi Rascal Jurgen Vinju Spoofax Lennart Kats Intentional Mats Helander Essential Pedro J. Molina Obeo Designer Mariot Chauvin Xtext Karsten Thoms Session Chair: Angelo Hulshout Language Workbench: http://martinfowler.com/articles/languageWorkbench.html [Fowler2005] 36
  • 37. Programme Guide Keynotes  Terence Parr  ANTLR  StringTemplate Thursday 26th 9:00 H  Ed Merks  Eclipse Modeling Framework leader Friday 27th 9:00 H 37
  • 38. Programme Guide  Experience reports  Lesson from real MDSD applications  Tool tutorials and Hand on Labs  Learn to use them  Panels and Goldfish bowl  Promote debate and participation about a reference topic  Birds of a Feather  Formation of informal interest groups on the fly 38
  • 39. CG2011 Tips  Choose your path  Parallel tracks  Split your team  Check for slides of missing session on the conference web, SlideShare or InfoQ.com  Interact!  Tweet about it using the tag #cg2011  Install the CG2011 iPhone App  Introduce yourself and involve in the community  Ask whenever something is not clear to you  Ask for each dark acronym you find  Do not miss the traditional and relaxing punting trip!  Continue the discussion on the social network: http://modeldrivensoftware.net/ 39
  • 40. Conclusions  A change in SW development is needed  MDSD :  Provide leverage points to reach new levels of productivity  Offer a clear path to make better engineering in Computer Science 40