SlideShare a Scribd company logo
MODEL DRIVEN DEVELOPMENT
With smart use cases, domain driven design and Tobago MDA
SANDER HOOGENDOORN

Capgemini
      Principal technology officer
      Chief architect Accelerated Delivery Platform (ADP)
      Global agile thought leader
Other
      Author books and articles
      Speaker at international conferences
      Microsoft Partner Advisory Council .NET
      Capping IT Off Blog
      Magazine columns
      Editorial boards & Advisory boards
Web
      www.sanderhoogendoorn.com
      www.smartusecase.com
      Twitter: @aahoogendoorn
      LinkedIn: aahoogendoorn



                                                                INTRODUCTION TO AGILE              2
                                                            ©2011 Capgemini. All Rights Reserved
AGENDA

Today’s topics
    Smart use cases
    Domain driven design
    Software architecture
    Model driven development
    with Tobago MDA
    Generating code
    with Tobago MDA
    Demo(s)!




                                   INTRODUCTION TO AGILE              3
                               ©2011 Capgemini. All Rights Reserved
SMART USE CASES
A YAGNI approach to requirements
AGILE REQUIREMENTS - APPROACH
          Cloud Level               Kite Level      Sea Level                       Fish Level




                                       B

                                            D


                        A
                                  Hierarchical                                                         E
  A                                                    D                                    D
                                   Processes
                        B   C                                                                          F

                                                    Use Cases                      Smart
Project            Hierarchical                 C
                                                                                  Use Cases
Scope               Processes
                                           D

                                  Chronological
                                   Processes


                                                                    INTRODUCTION TO AGILE                  5
                                                                ©2011 Capgemini. All Rights Reserved
CLOUD LEVEL




                  INTRODUCTION TO AGILE              6
              ©2011 Capgemini. All Rights Reserved
KITE LEVEL




                 INTRODUCTION TO AGILE              7
             ©2011 Capgemini. All Rights Reserved
MODELING SMART USE CASES – SEA AND FISH LEVEL




                                                INTRODUCTION TO AGILE              8
                                            ©2011 Capgemini. All Rights Reserved
SMART USE CASES
Stereotypes
DOMAIN DRIVEN DEVELOPMENT
A brief introduction
DOMAIN DRIVEN DEVELOPMENT - VOCABULARY

 Entity
      Object in the domain model not defined by its attributes,
      but by a thread of continuity and identity
 Value object
      Has no conceptual identity.
      Describe a characteristic of a thing
 Repository
      Methods for retrieving domain objects should delegate to a
      specialized 'repository' object such that alternative
      implementations may be easily interchanged.
 Factory
      Methods for creating domain objects should delegate to a
      specialized 'factory' object such that alternative
      implementations may be easily interchanged.
 Service
      Implement if an operation does not conceptually belong to
      any entity
      Implement these operations in services




                                                                       INTRODUCTION TO AGILE              11
                                                                   ©2011 Capgemini. All Rights Reserved
DOMAIN DRIVEN DEVELOPMENT – EXTENDED VOCABULARY

 Enumeration *
     Restricted and limited set of possible values
     Apply only when set of values never changes

 Smart reference *
     Generic reference entity
     Restricted but unlimited list of possible
     values
     Apply when only reference matters, not
     additional values, like in reports or drop
     downs




                                                         INTRODUCTION TO AGILE              12
                                                     ©2011 Capgemini. All Rights Reserved
ENTITY ATTRIBUTES
ENTITY ATTRIBUTES – TYPES OF ATTRIBUTES

 Basic types
     string, integer, DateTime
     Including nullable wrapping
 Enumerations
     Genders, Categories
 Value objects
     No specific instances
     Isbn, Postcode, Bsn
 Simple references
     Smart references, such as Language, County
 Associations
     Other entities such as Customer, Product
     Within or outside aggregate



                                                      INTRODUCTION TO AGILE              14
                                                  ©2011 Capgemini. All Rights Reserved
VALUE OBJECT – IN USE




                            INTRODUCTION TO AGILE              15
                        ©2011 Capgemini. All Rights Reserved
SMART REFERENCE - TABLE




                              INTRODUCTION TO AGILE              16
                          ©2011 Capgemini. All Rights Reserved
SMART REFERENCE – IN USE




                               INTRODUCTION TO AGILE              17
                           ©2011 Capgemini. All Rights Reserved
SOFTWARE ARCHITECTURE
A true requirements for model driven development
Pages
Presentation                                        UserControls
                                                         Panels



                                                           Use cases
Process                                                    Workflow



                                 Domain objects / Entities
Domain                            Factories / Repositories
                  Enums / Value objects / Smart references
                                                [Mapping]


                                              Table Gateways
Data / Services                                       Queries
                                                     [Mapping]




Outside world                                               Database



                                          INTRODUCTION TO AGILE              19
                                      ©2011 Capgemini. All Rights Reserved
MODEL DRIVEN DEVELOPMENT
With Tobago MDA
User interface            Software Architecture
                                       specification
                     1. Map your                                                 5. Finalize your
                 business processes                                                application
  Existing       to smart use cases
Applications               Smart
                          use cases
                                                                Forms

                                                                               Use cases
                                                           4. Generate
                                                         your code using
                                                Tobago
                                                 MDA     a text template                                           Frameworks
Specifications                                                engine
                                                                                 Domain
                             Domain
                             Model                                               objects




                                                                         Data / Service
  Business
                                                                            classes
  models


                      2. Set up your         Test
                                                                                             3. Establish
                                          scenario’s
                      domain model                                                         your software
                                                                   Databases
                                                                                           architecture(s)

                                                                                       INTRODUCTION TO AGILE              21
                                                                                   ©2011 Capgemini. All Rights Reserved
MODEL DRIVEN DEVELOPMENT – TEMPLATE ENGINES

 Characteristics
     Load UML model (expressed in XMI)
     Load templates (from flat files)
     Combine elements from UML model with
     templates to generate deliverables
 Templates
     Templates contains code that runs in template
     engine
     Templates might use a folder model
 Generation process
     Ability to generate all or individual UML model
     elements
     Which UML model elements are supported?
     Generated deliverables can be code but also
     any other document type



                                                           INTRODUCTION TO AGILE              22
                                                       ©2011 Capgemini. All Rights Reserved
MODEL DRIVEN DEVELOPMENT - TEMPLATE ENGINES


                   Properties can
                     be used in
                     templates
Template engine
 knows (part of)
 the UML meta
     model




                                               INTRODUCTION TO AGILE              23
                                           ©2011 Capgemini. All Rights Reserved
MODEL DRIVEN DEVELOPMENT - TEMPLATES




                                           INTRODUCTION TO AGILE              24
                                       ©2011 Capgemini. All Rights Reserved
GENERATE MANY THINGS E.G. TABLE CREATE SCRIPTS




                                                INTRODUCTION TO AGILE              25
                                            ©2011 Capgemini. All Rights Reserved
GENERATING CODE
A quick example
A SIMPLE SMART USE CASE MODEL

       uc Manage Customer



                                                               «search»
                                                            Select Customer


                                          «incl ude»




                             «master detail»
                            Manage Customer
       Site Administrator
         (from A ctors)
                                                 «extend»

                                                                 «define»
                                                               Define Contact




                                                                                    INTRODUCTION TO AGILE              27
                                                                                ©2011 Capgemini. All Rights Reserved
A SIMPLE DOMAIN MODEL

      class Budapest.Business

              «business class»                  «business class»
                 Cust omer                          Cont act
         +   Name: string              +   Name: string
         +   Address: string         * +   Email: Email [0..1]
         +   Postcode: Postcode        +   Phone: PhoneNumber [0..1]
         +   City: string              +   Department: Departments
         +   Country: SmartRef
         +   Website: Url [0..1]




                                   «enumeration»
                                    Depart ments
                                   Sal es
                                   Purchasing
                                   Helpdesk
                                   Management




                                                                           INTRODUCTION TO AGILE              28
                                                                       ©2011 Capgemini. All Rights Reserved
USING TOBAGO MDA




                       INTRODUCTION TO AGILE              29
                   ©2011 Capgemini. All Rights Reserved
GENERATED CODE IN ASP.NET




                                INTRODUCTION TO AGILE              30
                            ©2011 Capgemini. All Rights Reserved
GENERATED CODE IN SILVERLIGHT




                                    INTRODUCTION TO AGILE              31
                                ©2011 Capgemini. All Rights Reserved
WWW.SMARTUSECASE.COM
www.accelerateddeliveryplatform.com
REFERENCES AND QUESTIONS
sander.hoogendoorn@capgemini.com
www.sanderhoogendoorn.com | www.smartusecase.com | www.accelerateddeliveryplatform.com
@aahoogendoorn

More Related Content

PDF
An introduction to smart use cases
PPTX
Sprint Contract
PDF
20090410 J Spring Pragmatic Model Driven Development In Java Using Smart
PPTX
Beyond manifestos
PDF
Iipcc 2012 ip valuation
PPTX
Boeing rocketdyne radical innovation case study
PDF
Hike (hpkb integrated knowledge environment)
An introduction to smart use cases
Sprint Contract
20090410 J Spring Pragmatic Model Driven Development In Java Using Smart
Beyond manifestos
Iipcc 2012 ip valuation
Boeing rocketdyne radical innovation case study
Hike (hpkb integrated knowledge environment)

What's hot (11)

PDF
01 Concept Discovery
PDF
New Zealand Premiere! A first look at Rational Insight
PDF
Ops cockpit sitnl
PPTX
Kanban for sw projects v1.5 final
PDF
Obelisk Profile
PDF
Kanban by Mayur Gupta
PDF
Business Patterns presentation @ Oredev 2012
PDF
Upk presentation insync
PDF
A Graphical Language for Real-Time Critical Robot Commands
PPTX
A balanced metrics set for software business
PPTX
Riverbed - Maximizing Your Cloud Applications Performance and Availability
01 Concept Discovery
New Zealand Premiere! A first look at Rational Insight
Ops cockpit sitnl
Kanban for sw projects v1.5 final
Obelisk Profile
Kanban by Mayur Gupta
Business Patterns presentation @ Oredev 2012
Upk presentation insync
A Graphical Language for Real-Time Critical Robot Commands
A balanced metrics set for software business
Riverbed - Maximizing Your Cloud Applications Performance and Availability
Ad

Viewers also liked (9)

PPTX
From Programming to Modeling And Back Again
PDF
Domain-Driven Design at ZendCon 2012
KEY
An Introduction to Domain Driven Design for Product Managers
PDF
Hexagonal symfony
PPTX
Model driven development and code generation of software systems
PDF
Hexagonal architecture - message-oriented software design
PDF
Kata: Hexagonal Architecture / Ports and Adapters
PDF
The framework as an implementation detail
PDF
Use Case Driven Development in Symfony
From Programming to Modeling And Back Again
Domain-Driven Design at ZendCon 2012
An Introduction to Domain Driven Design for Product Managers
Hexagonal symfony
Model driven development and code generation of software systems
Hexagonal architecture - message-oriented software design
Kata: Hexagonal Architecture / Ports and Adapters
The framework as an implementation detail
Use Case Driven Development in Symfony
Ad

Similar to Model driven development using smart use cases and domain driven design (20)

PPTX
Pragmatic Model Driven Development In Java Using Smart Use Cases
PDF
Agile at The Open Group Conference
PPTX
Freenet project ralf_sigmund_opitz_activiti_days_2012
PDF
Framework Engineering_Final
PDF
New Features of OBIEE 11.1.1.6.x
PDF
LSM 2011 AdaLabs presentation slides: How to make my business opensource & vi...
PDF
Begroten als het model = de applicatie = de documentatie - Gerard Ohm - NESMA...
PDF
20101007 how smart use cases drive web development
PDF
Blue Ruby SDN Webinar
PDF
SAP NetWeaver Portal Portfolio (2012)
PDF
Distributed Software Development with Scrum and Social Coding
PDF
In sync10 nadiabendjedou-10things-final
PDF
In sync10 nadiabendjedou-10things-final
PDF
Imaginea - Ideas to Life - About Us
PPTX
Siebel 8.1.1.0 innovation pack 2013 spring release
PDF
Intel IT OpenStack Journey - OpenStack Fall 2012 Summit.pdf
PDF
ABAP Course Content
PPTX
Enterprise Integration of Disruptive Technologies
PDF
Tata steel sap bpm espresso session
PDF
Framework Engineering
Pragmatic Model Driven Development In Java Using Smart Use Cases
Agile at The Open Group Conference
Freenet project ralf_sigmund_opitz_activiti_days_2012
Framework Engineering_Final
New Features of OBIEE 11.1.1.6.x
LSM 2011 AdaLabs presentation slides: How to make my business opensource & vi...
Begroten als het model = de applicatie = de documentatie - Gerard Ohm - NESMA...
20101007 how smart use cases drive web development
Blue Ruby SDN Webinar
SAP NetWeaver Portal Portfolio (2012)
Distributed Software Development with Scrum and Social Coding
In sync10 nadiabendjedou-10things-final
In sync10 nadiabendjedou-10things-final
Imaginea - Ideas to Life - About Us
Siebel 8.1.1.0 innovation pack 2013 spring release
Intel IT OpenStack Journey - OpenStack Fall 2012 Summit.pdf
ABAP Course Content
Enterprise Integration of Disruptive Technologies
Tata steel sap bpm espresso session
Framework Engineering

More from Sander Hoogendoorn (20)

PDF
Flow. The official worst software development approach in history
PDF
It's a small world after all. How thinking small changes software big time
PDF
Welcome to the world of micro-apps
PDF
Welcome to the world of micro-applications
PDF
Wat is agile en wat betekent het voor mij?
PDF
20180509 - It's a small world after all. How thinking small is changing softw...
PDF
W-JAX 2017 Keynote. It's a small world after all. How thinking small is chang...
PDF
Swanseacon 2017 Keynote - It's a small world after all.
PDF
Building Better Software Faster
PDF
Geecon Prague 2016 - Thirty months of microservices
PDF
Thirty months of microservices. Stairway to heaven or highway to hell
PDF
Beyond breaking bad. The current state of agile in ten easy lessons
PDF
Beyond breaking bad. The current state of agile in ten easy lessons
PDF
Microservices. Stairway to heaven or highway to hell
PDF
Microservices. The good, the bad and the ugly.
PDF
Modeling Microservices
PDF
Designing and building a micro-services architecture. Stairway to heaven or a...
PDF
Microservices. The good the bad and the ugly
PDF
Scaling agile from the ground up
PDF
Growing a microservices landscape (with smart use cases)
Flow. The official worst software development approach in history
It's a small world after all. How thinking small changes software big time
Welcome to the world of micro-apps
Welcome to the world of micro-applications
Wat is agile en wat betekent het voor mij?
20180509 - It's a small world after all. How thinking small is changing softw...
W-JAX 2017 Keynote. It's a small world after all. How thinking small is chang...
Swanseacon 2017 Keynote - It's a small world after all.
Building Better Software Faster
Geecon Prague 2016 - Thirty months of microservices
Thirty months of microservices. Stairway to heaven or highway to hell
Beyond breaking bad. The current state of agile in ten easy lessons
Beyond breaking bad. The current state of agile in ten easy lessons
Microservices. Stairway to heaven or highway to hell
Microservices. The good, the bad and the ugly.
Modeling Microservices
Designing and building a micro-services architecture. Stairway to heaven or a...
Microservices. The good the bad and the ugly
Scaling agile from the ground up
Growing a microservices landscape (with smart use cases)

Model driven development using smart use cases and domain driven design

  • 1. MODEL DRIVEN DEVELOPMENT With smart use cases, domain driven design and Tobago MDA
  • 2. SANDER HOOGENDOORN Capgemini Principal technology officer Chief architect Accelerated Delivery Platform (ADP) Global agile thought leader Other Author books and articles Speaker at international conferences Microsoft Partner Advisory Council .NET Capping IT Off Blog Magazine columns Editorial boards & Advisory boards Web www.sanderhoogendoorn.com www.smartusecase.com Twitter: @aahoogendoorn LinkedIn: aahoogendoorn INTRODUCTION TO AGILE 2 ©2011 Capgemini. All Rights Reserved
  • 3. AGENDA Today’s topics Smart use cases Domain driven design Software architecture Model driven development with Tobago MDA Generating code with Tobago MDA Demo(s)! INTRODUCTION TO AGILE 3 ©2011 Capgemini. All Rights Reserved
  • 4. SMART USE CASES A YAGNI approach to requirements
  • 5. AGILE REQUIREMENTS - APPROACH Cloud Level Kite Level Sea Level Fish Level B D A Hierarchical E A D D Processes B C F Use Cases Smart Project Hierarchical C Use Cases Scope Processes D Chronological Processes INTRODUCTION TO AGILE 5 ©2011 Capgemini. All Rights Reserved
  • 6. CLOUD LEVEL INTRODUCTION TO AGILE 6 ©2011 Capgemini. All Rights Reserved
  • 7. KITE LEVEL INTRODUCTION TO AGILE 7 ©2011 Capgemini. All Rights Reserved
  • 8. MODELING SMART USE CASES – SEA AND FISH LEVEL INTRODUCTION TO AGILE 8 ©2011 Capgemini. All Rights Reserved
  • 10. DOMAIN DRIVEN DEVELOPMENT A brief introduction
  • 11. DOMAIN DRIVEN DEVELOPMENT - VOCABULARY Entity Object in the domain model not defined by its attributes, but by a thread of continuity and identity Value object Has no conceptual identity. Describe a characteristic of a thing Repository Methods for retrieving domain objects should delegate to a specialized 'repository' object such that alternative implementations may be easily interchanged. Factory Methods for creating domain objects should delegate to a specialized 'factory' object such that alternative implementations may be easily interchanged. Service Implement if an operation does not conceptually belong to any entity Implement these operations in services INTRODUCTION TO AGILE 11 ©2011 Capgemini. All Rights Reserved
  • 12. DOMAIN DRIVEN DEVELOPMENT – EXTENDED VOCABULARY Enumeration * Restricted and limited set of possible values Apply only when set of values never changes Smart reference * Generic reference entity Restricted but unlimited list of possible values Apply when only reference matters, not additional values, like in reports or drop downs INTRODUCTION TO AGILE 12 ©2011 Capgemini. All Rights Reserved
  • 14. ENTITY ATTRIBUTES – TYPES OF ATTRIBUTES Basic types string, integer, DateTime Including nullable wrapping Enumerations Genders, Categories Value objects No specific instances Isbn, Postcode, Bsn Simple references Smart references, such as Language, County Associations Other entities such as Customer, Product Within or outside aggregate INTRODUCTION TO AGILE 14 ©2011 Capgemini. All Rights Reserved
  • 15. VALUE OBJECT – IN USE INTRODUCTION TO AGILE 15 ©2011 Capgemini. All Rights Reserved
  • 16. SMART REFERENCE - TABLE INTRODUCTION TO AGILE 16 ©2011 Capgemini. All Rights Reserved
  • 17. SMART REFERENCE – IN USE INTRODUCTION TO AGILE 17 ©2011 Capgemini. All Rights Reserved
  • 18. SOFTWARE ARCHITECTURE A true requirements for model driven development
  • 19. Pages Presentation UserControls Panels Use cases Process Workflow Domain objects / Entities Domain Factories / Repositories Enums / Value objects / Smart references [Mapping] Table Gateways Data / Services Queries [Mapping] Outside world Database INTRODUCTION TO AGILE 19 ©2011 Capgemini. All Rights Reserved
  • 21. User interface Software Architecture specification 1. Map your 5. Finalize your business processes application Existing to smart use cases Applications Smart use cases Forms Use cases 4. Generate your code using Tobago MDA a text template Frameworks Specifications engine Domain Domain Model objects Data / Service Business classes models 2. Set up your Test 3. Establish scenario’s domain model your software Databases architecture(s) INTRODUCTION TO AGILE 21 ©2011 Capgemini. All Rights Reserved
  • 22. MODEL DRIVEN DEVELOPMENT – TEMPLATE ENGINES Characteristics Load UML model (expressed in XMI) Load templates (from flat files) Combine elements from UML model with templates to generate deliverables Templates Templates contains code that runs in template engine Templates might use a folder model Generation process Ability to generate all or individual UML model elements Which UML model elements are supported? Generated deliverables can be code but also any other document type INTRODUCTION TO AGILE 22 ©2011 Capgemini. All Rights Reserved
  • 23. MODEL DRIVEN DEVELOPMENT - TEMPLATE ENGINES Properties can be used in templates Template engine knows (part of) the UML meta model INTRODUCTION TO AGILE 23 ©2011 Capgemini. All Rights Reserved
  • 24. MODEL DRIVEN DEVELOPMENT - TEMPLATES INTRODUCTION TO AGILE 24 ©2011 Capgemini. All Rights Reserved
  • 25. GENERATE MANY THINGS E.G. TABLE CREATE SCRIPTS INTRODUCTION TO AGILE 25 ©2011 Capgemini. All Rights Reserved
  • 27. A SIMPLE SMART USE CASE MODEL uc Manage Customer «search» Select Customer «incl ude» «master detail» Manage Customer Site Administrator (from A ctors) «extend» «define» Define Contact INTRODUCTION TO AGILE 27 ©2011 Capgemini. All Rights Reserved
  • 28. A SIMPLE DOMAIN MODEL class Budapest.Business «business class» «business class» Cust omer Cont act + Name: string + Name: string + Address: string * + Email: Email [0..1] + Postcode: Postcode + Phone: PhoneNumber [0..1] + City: string + Department: Departments + Country: SmartRef + Website: Url [0..1] «enumeration» Depart ments Sal es Purchasing Helpdesk Management INTRODUCTION TO AGILE 28 ©2011 Capgemini. All Rights Reserved
  • 29. USING TOBAGO MDA INTRODUCTION TO AGILE 29 ©2011 Capgemini. All Rights Reserved
  • 30. GENERATED CODE IN ASP.NET INTRODUCTION TO AGILE 30 ©2011 Capgemini. All Rights Reserved
  • 31. GENERATED CODE IN SILVERLIGHT INTRODUCTION TO AGILE 31 ©2011 Capgemini. All Rights Reserved
  • 33. REFERENCES AND QUESTIONS sander.hoogendoorn@capgemini.com www.sanderhoogendoorn.com | www.smartusecase.com | www.accelerateddeliveryplatform.com @aahoogendoorn