SlideShare ist ein Scribd-Unternehmen logo
1 von 52
Pragmatic model driven development in Java using
 smart use cases and domain driven development
               Sander Hoogendoorn, Capgemini
                   Rody Middelkoop, Avisi



                                    TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 1
                                                                       © Copyright Capgemini2008 All Rights Reserved
Sander Hoogendoorn

Capgemini
   Principal technology officer
   Capgemini agile thought leader
   Certifiedglobal software engineer (SE4)
   Chief architect Accelerated Delivery Platform
Other
   Author books (UML, agile) and articles
   Speaker at conferences
   Microsoft Partner Advisory Council .NET
   Columnist Software Release Magazine, SDN Magazine
   Editorial board Software Release Magazine
   Editorial board Tijdschrift IT Management
   Advisory board @Portunity
   Member expert panel Computable
Web
   www.sanderhoogendoorn.com
   www.accelerateddeliveryplatform.com


                                                        TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 2
                                                                                           © Copyright Capgemini2008 All Rights Reserved
Rody Middelkoop

Avisi
   Technical consultant
Hogeschool Arnhem Nijmegen (HAN)
   Lecturer Software Engineering
Other
   Sun Certified Java Programmer / Developer
   Author of severalarticles
   ContributorLivre
   Speaker at conferences
Web
   www.avisi.nl
   rodymiddelkoop.blogspot.com



                                                TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 3
                                                                                   © Copyright Capgemini2008 All Rights Reserved
Agenda

Introduction
    Model driven development
    Pragmatic model driven development
    Ourapproach
    Benefite
Smart use cases
    Modeling smart use cases
    Smart use cases in code
Domain driven design
    Domain objects
    Smart references
    Value objects
Generating code
    Text templating
    Using Tobago MDA
Demo’s



                                          TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 4
                                                                             © Copyright Capgemini2008 All Rights Reserved
Model driven development
        An introduction




                          TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 5
                                                             © Copyright Capgemini2008 All Rights Reserved
Model driven development                                                                                                       SH


Why?
   Bridge gap between design and code
   Improvequality of delivered software
   Raiseproductivity
   Achieve platform and framework independency
   Increasetestability
How?
   Proprietarytechniques
   DSL’s (textual and graphical)
   UML
   Database
   India
What?
   Modeling tool code generation
   Development tool code generation
   Intermediate code generation



                                                  TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 6
                                                                                     © Copyright Capgemini2008 All Rights Reserved
A pragmaticapproach
  To model driven development




                      TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 7
                                                         © Copyright Capgemini2008 All Rights Reserved
User interface                Software Architecture
                                       specification
                     1. Map your                                                         5. Finalize your
                 business processes                                                        application
                 to smart use cases
  Existing
Applications               Smart
                          use cases
                                                                    Forms

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




                                                                                Data / Service
  Business
                                                                                   classes
  models


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

                                                          TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 8
                                                                                             © Copyright Capgemini2008 All Rights Reserved
Smart use cases
What makes a use cases smart?




                      TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 9
                                                         © Copyright Capgemini2008 All Rights Reserved
Different levels of use cases
                                           Merge
                                         companies

 Cloud level                                                      High summary

                    Merge
               mortgage systems
 Kite level                                                                   Summary

                                                  Place
                                                  order
 Sea level                                                                    User goal



 Fish level                                                          Sub-function
                  Select
                 product

 Clam level                                                                        Too low
                                         Insert
                                        orderline
                                  TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 10
                                                                     © Copyright Capgemini2008 All Rights Reserved
Different levels of use cases

‘Regular’ use cases
                                                                            Regular                      Smart
   Only user goal level use cases                                          use case                     use case
   Use cases ‘as they are intended’
   A single use case describes                       Format                Textual                      Visual
     a single elementary business process
   Differ in granularity too much                                          Very
                                                      Granularity                                        Unified
                                                                            different
   Law of Large Numbers does not apply
Smart use cases                                       Estimates             Hard                         Easier
   User goal and sub function level use cases
   Good unit of work and estimation                  Unit of work          Lousy                        Good
   A single elementary business process is modeled
     in a single use case diagram
                                                      Re-use                Incidental                   Normal
   A single user goal level use case
     + auxiliary use cases at sub-function level
   Very similar granularity                          Traceability
                                                                            Possible                     Likely
                                                      in code



                                                      TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 11
                                                                                         © Copyright Capgemini2008 All Rights Reserved
Modeling smart use cases



                TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 12
                                                   © Copyright Capgemini2008 All Rights Reserved
Modeling smart use cases

Approach
  Create a use case diagram for each
   elementary business process
  Model a (user goal level) use case that
   maps to the elementary business process
  Name it after the elementary business
   process
  Identify the actors executing the use case
  Identify the sub-function level use cases
  Model include and extend relationships
  Identify supporting actors




                                                TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 13
                                                                                   © Copyright Capgemini2008 All Rights Reserved
Identifying sub-function level use cases

Guidelines
   Identify re-use
   Model one form per use case
   Model one use case per functional web
    part
   Isolate unknown functionality
   Identify complex functionality
   Show extensive reporting
   Model complex calculations
   Isolate interaction with others
   Avoid low level (database) interaction



                                             TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 14
                                                                                © Copyright Capgemini2008 All Rights Reserved
Modeling smart use cases




                           TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 15
                                                              © Copyright Capgemini2008 All Rights Reserved
Smart use case stereotypes
       Decorating the model




                        TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 16
                                                           © Copyright Capgemini2008 All Rights Reserved
Smart use case stereotypes                                                                                           RM


What?
  Classify model elements
  Do notaddmeaning to model
  Definecustom stereotypes
Why?
  Speed up analysis and design
  Map design to software architecture
  Generatelots of code!
  Standardizefunctional testing




                                         TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 17
                                                                            © Copyright Capgemini2008 All Rights Reserved
Adding stereotypes                                                                                SH




                     TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 18
                                                        © Copyright Capgemini2008 All Rights Reserved
Adding stereotypes




                     TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 19
                                                        © Copyright Capgemini2008 All Rights Reserved
Smart use case stereotypes




                             TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 20
                                                                © Copyright Capgemini2008 All Rights Reserved
Mapping to software architecture
      Smart use cases and domain design




                              TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 21
                                                                 © Copyright Capgemini2008 All Rights Reserved
Pages
                                                                   UserControls
Presentation
                                                                        Panels



                                                                          Use cases
Process                                                                   Workflow



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


                                                             Table Gateways
                                                                     Queries
Data / Services
                                                                    [Mapping]




Outside world                                                             Database



                  TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 22
                                                     © Copyright Capgemini2008 All Rights Reserved
Pages
                                                                                           UserControls
Presentation
                                                                                                Panels



                                                                                                  Use cases
Process                                                                                           Workflow



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


                                                                                  Service gateways
                                                                                   Service locators
Data / Services
                                                                                        [Mapping]


                  Exact   SAP   BizTalk              Java
Outside world                                                                            Services / ESB



                                          TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 23
                                                                             © Copyright Capgemini2008 All Rights Reserved
Service contracts
Presentation                                                         Operation contracts
                                                                         Data contracts



                                                                                           Use cases
Process                                                                                     Services



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



                                                TableGateways / Service Gateways
Data / Services                                         Queries / Service Locators
                                                                        [Mapping]


                  Exact   SAP   BizTalk           Java
                                                                                      Database
Outside world
                                                                                  Services / ESB



                                   TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 24
                                                                      © Copyright Capgemini2008 All Rights Reserved
Domain driven design
     A brief introduction




                       TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 25
                                                          © Copyright Capgemini2008 All Rights Reserved
Domain driven design

Definition
   Base complex domain designs on the model
   Primary focus is on the domain and domain logic
In practice
   Model the domain
   Apply the extended domain driven vocabulary
   Build the domain layer
   Hook in process layer
   Plug in data / services layer
Useful when
   The domain of your application is core
   Two tier is not (never?) desirable
   Application needs to function independent of back
     office, data sources or services




                                                        TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 26
                                                                                           © Copyright Capgemini2008 All Rights Reserved
Domain driven design

Vocabulary
   Entity / Domain object
   Association
   Value object
   Aggregate
   Repository
   Factory
   Service
Additional vocabulary
   Enumeration
   Smart reference


                             TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 27
                                                                © Copyright Capgemini2008 All Rights Reserved
Example – Class diagram




                          TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 28
                                                             © Copyright Capgemini2008 All Rights Reserved
Defining classes
Properties and property types




                      TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 29
                                                         © Copyright Capgemini2008 All Rights Reserved
Properties and property types                                                                                                     RM


Basic types
   string, integer, DateTime
   Include nullable wrapping
Enumerations
   Set up at design time, unchangeable at run-time
   Genders, Categories
Value objects
   No specific instances
   Isbn, Email, Url, Money
Smart references
   Changeable at run-time, such as ContractType
Associations
   Cached domain objects such as Country,
     Nationality
   First level citizens such as Customer, Product



                                                      TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 30
                                                                                         © Copyright Capgemini2008 All Rights Reserved
Value object



          TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 31
                                             © Copyright Capgemini2008 All Rights Reserved
Value object - Implementing




                              TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 32
                                                                 © Copyright Capgemini2008 All Rights Reserved
Value object – In use




                        TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 33
                                                           © Copyright Capgemini2008 All Rights Reserved
Smart reference



           TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 34
                                              © Copyright Capgemini2008 All Rights Reserved
Smart reference - Table




                          TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 35
                                                             © Copyright Capgemini2008 All Rights Reserved
Smart reference - In entity




                              TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 36
                                                                 © Copyright Capgemini2008 All Rights Reserved
Smart reference – In use




                           TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 37
                                                              © Copyright Capgemini2008 All Rights Reserved
Text templating



           TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 38
                                              © Copyright Capgemini2008 All Rights Reserved
Model driven development – Template engines                                                                          SH


How?
   Define project
   Define patterns
   Import model
   Generate deliverable
   Finalize code
Additional features
   Combine model elements
   Combine types of model elements
   Remember location
Changing the model withourlosing code
   Partial classes
   Inherited classes
   Marking code



                                        TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 39
                                                                           © Copyright Capgemini2008 All Rights Reserved
Tobago MDA – www.accelerateddeliveryplatform.com




                                 TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 40
                                                                    © Copyright Capgemini2008 All Rights Reserved
Tobago MDA




             TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 41
                                                © Copyright Capgemini2008 All Rights Reserved
Tobago MDA




             TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 42
                                                © Copyright Capgemini2008 All Rights Reserved
Model driven development - Template engines                                                                   RM




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




                                    TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 43
                                                                       © Copyright Capgemini2008 All Rights Reserved
Freemarker
                                                                                 Sitemesh
Presentation
                                                                                DisplayTag



                                                                              Struts2
Process                                                                  XWorkActions


                  Spring
                                                                 EJB3 Services
                                                       EJB3 DataAccessObjects
Data / Services


                  Spring
                                                              JPA Domain objects
                                                                          Enums
Domain
                                                                    Value objects
                                                                Smart references



Outside world                                                                           MySQL



                           TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 44
                                                              © Copyright Capgemini2008 All Rights Reserved
Model driven development - Templates




                                  TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 45
                                                                     © Copyright Capgemini2008 All Rights Reserved
Generate many things e.g. Table create scripts




                                     TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 46
                                                                        © Copyright Capgemini2008 All Rights Reserved
Generate many things e.g. Table create scripts




                                     TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 47
                                                                        © Copyright Capgemini2008 All Rights Reserved
FAQ
You




      TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 48
                                         © Copyright Capgemini2008 All Rights Reserved
FAQ                                                                                                    SH



Yes
No
I don’t know
I am not allowed to go
into details about this



                          TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 49
                                                             © Copyright Capgemini2008 All Rights Reserved
Generating code
     Demo!




             TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 50
                                                © Copyright Capgemini2008 All Rights Reserved
www.accelerateddeliveryplatform.com                                                                           SH




                                 TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 51
                                                                    © Copyright Capgemini2008 All Rights Reserved
References and questions
        www.accelerateddeliveryplatform.com

        sander.hoogendoorn@capgemini.com
               r.r.middelkoop@avisi.nl

Twitter: aahoogendoorn LinkedIn: aahoogendoornrodym


                                TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES                 52
                                                                   © Copyright Capgemini2008 All Rights Reserved

Weitere ähnliche Inhalte

Was ist angesagt?

Git 101 Presentation
Git 101 PresentationGit 101 Presentation
Git 101 PresentationScott Chacon
 
Spring 2.0 技術手冊第一章 - 認識 Spring
Spring 2.0 技術手冊第一章 - 認識 SpringSpring 2.0 技術手冊第一章 - 認識 Spring
Spring 2.0 技術手冊第一章 - 認識 SpringJustin Lin
 
Launching a BPT Process on Entity Update
Launching a BPT Process on Entity UpdateLaunching a BPT Process on Entity Update
Launching a BPT Process on Entity UpdateOutSystems
 
Testing With OutSystems
Testing With OutSystemsTesting With OutSystems
Testing With OutSystemsOutSystems
 

Was ist angesagt? (6)

Git 101 Presentation
Git 101 PresentationGit 101 Presentation
Git 101 Presentation
 
Robot framework and selenium2 library
Robot framework and selenium2 libraryRobot framework and selenium2 library
Robot framework and selenium2 library
 
Spring 2.0 技術手冊第一章 - 認識 Spring
Spring 2.0 技術手冊第一章 - 認識 SpringSpring 2.0 技術手冊第一章 - 認識 Spring
Spring 2.0 技術手冊第一章 - 認識 Spring
 
Hexagonal architecture
Hexagonal architectureHexagonal architecture
Hexagonal architecture
 
Launching a BPT Process on Entity Update
Launching a BPT Process on Entity UpdateLaunching a BPT Process on Entity Update
Launching a BPT Process on Entity Update
 
Testing With OutSystems
Testing With OutSystemsTesting With OutSystems
Testing With OutSystems
 

Andere mochten auch

JavaScript on the server - Node.js
JavaScript on the server - Node.jsJavaScript on the server - Node.js
JavaScript on the server - Node.jsRody Middelkoop
 
Plataformasweb
PlataformaswebPlataformasweb
Plataformasweburbibhi
 
Interneten Sartzeko Konexio Motak
Interneten Sartzeko Konexio MotakInterneten Sartzeko Konexio Motak
Interneten Sartzeko Konexio Motakurbibhi
 
Ict Curriculum Ideas
Ict   Curriculum IdeasIct   Curriculum Ideas
Ict Curriculum Ideashelenhayward
 
Scrum in informaticaonderwijs
Scrum in informaticaonderwijsScrum in informaticaonderwijs
Scrum in informaticaonderwijsRody Middelkoop
 
Softwarekwaliteit in een ontwikkelstraat
Softwarekwaliteit in een ontwikkelstraatSoftwarekwaliteit in een ontwikkelstraat
Softwarekwaliteit in een ontwikkelstraatRody Middelkoop
 
Saas: Software AND Service
Saas: Software AND ServiceSaas: Software AND Service
Saas: Software AND ServiceRody Middelkoop
 
Student social media tips
Student social media tipsStudent social media tips
Student social media tipsJahnae Gumbs
 
Answering the Questions Nobody Asks (But Should): Using Social Listening to C...
Answering the Questions Nobody Asks (But Should): Using Social Listening to C...Answering the Questions Nobody Asks (But Should): Using Social Listening to C...
Answering the Questions Nobody Asks (But Should): Using Social Listening to C...Tara Hall
 
Scrum implemented in an educational context
Scrum implemented in an educational contextScrum implemented in an educational context
Scrum implemented in an educational contextRody Middelkoop
 
JavaFX - Next Generation Java UI
JavaFX - Next Generation Java UIJavaFX - Next Generation Java UI
JavaFX - Next Generation Java UIYoav Aharoni
 
Service Analysis And Design
Service Analysis And DesignService Analysis And Design
Service Analysis And DesignRody Middelkoop
 
DDOA = Software Craftmanship
DDOA = Software CraftmanshipDDOA = Software Craftmanship
DDOA = Software CraftmanshipRody Middelkoop
 

Andere mochten auch (20)

JavaScript on the server - Node.js
JavaScript on the server - Node.jsJavaScript on the server - Node.js
JavaScript on the server - Node.js
 
Plataformasweb
PlataformaswebPlataformasweb
Plataformasweb
 
Ajax And JSON
Ajax And JSONAjax And JSON
Ajax And JSON
 
Interneten Sartzeko Konexio Motak
Interneten Sartzeko Konexio MotakInterneten Sartzeko Konexio Motak
Interneten Sartzeko Konexio Motak
 
Ict Curriculum Ideas
Ict   Curriculum IdeasIct   Curriculum Ideas
Ict Curriculum Ideas
 
Scrum in informaticaonderwijs
Scrum in informaticaonderwijsScrum in informaticaonderwijs
Scrum in informaticaonderwijs
 
2 N General Presentation
2 N General Presentation2 N General Presentation
2 N General Presentation
 
Softwarekwaliteit in een ontwikkelstraat
Softwarekwaliteit in een ontwikkelstraatSoftwarekwaliteit in een ontwikkelstraat
Softwarekwaliteit in een ontwikkelstraat
 
Lydia
LydiaLydia
Lydia
 
Saas: Software AND Service
Saas: Software AND ServiceSaas: Software AND Service
Saas: Software AND Service
 
Work1
Work1 Work1
Work1
 
Rusija
RusijaRusija
Rusija
 
Folder_Yulius_Academie
Folder_Yulius_AcademieFolder_Yulius_Academie
Folder_Yulius_Academie
 
Student social media tips
Student social media tipsStudent social media tips
Student social media tips
 
Resumen Augusto Marín
Resumen Augusto MarínResumen Augusto Marín
Resumen Augusto Marín
 
Answering the Questions Nobody Asks (But Should): Using Social Listening to C...
Answering the Questions Nobody Asks (But Should): Using Social Listening to C...Answering the Questions Nobody Asks (But Should): Using Social Listening to C...
Answering the Questions Nobody Asks (But Should): Using Social Listening to C...
 
Scrum implemented in an educational context
Scrum implemented in an educational contextScrum implemented in an educational context
Scrum implemented in an educational context
 
JavaFX - Next Generation Java UI
JavaFX - Next Generation Java UIJavaFX - Next Generation Java UI
JavaFX - Next Generation Java UI
 
Service Analysis And Design
Service Analysis And DesignService Analysis And Design
Service Analysis And Design
 
DDOA = Software Craftmanship
DDOA = Software CraftmanshipDDOA = Software Craftmanship
DDOA = Software Craftmanship
 

Ähnlich wie Pragmatic model driven development in Java using smart use cases and domain driven design

20090410 J Spring Pragmatic Model Driven Development In Java Using Smart
20090410   J Spring Pragmatic Model Driven Development In Java Using Smart20090410   J Spring Pragmatic Model Driven Development In Java Using Smart
20090410 J Spring Pragmatic Model Driven Development In Java Using SmartSander Hoogendoorn
 
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...Prolifics
 
Cast Iron Overview Webinar 6.13
Cast Iron Overview Webinar 6.13Cast Iron Overview Webinar 6.13
Cast Iron Overview Webinar 6.13gaborvodics
 
Imaginea - Ideas to Life - About Us
Imaginea - Ideas to Life - About UsImaginea - Ideas to Life - About Us
Imaginea - Ideas to Life - About UsImaginea
 
Model Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & FutureModel Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & Futureelliando dias
 
Cast Iron Overview Webinar 6.13.12 Final(Jb)
Cast Iron Overview Webinar 6.13.12 Final(Jb)Cast Iron Overview Webinar 6.13.12 Final(Jb)
Cast Iron Overview Webinar 6.13.12 Final(Jb)Carolyn Crowe
 
Romulus Project start version en
Romulus Project start version enRomulus Project start version en
Romulus Project start version enGrupo Gesfor I+D+i
 
M3 Modernization Case Study
M3 Modernization Case StudyM3 Modernization Case Study
M3 Modernization Case StudyADC Austin Tech
 
XebiaLabs, CloudBees, Puppet Labs Webinar Slides - IT Automation for the Mode...
XebiaLabs, CloudBees, Puppet Labs Webinar Slides - IT Automation for the Mode...XebiaLabs, CloudBees, Puppet Labs Webinar Slides - IT Automation for the Mode...
XebiaLabs, CloudBees, Puppet Labs Webinar Slides - IT Automation for the Mode...XebiaLabs
 
42windmills: model driven cloud apps
42windmills: model driven cloud apps42windmills: model driven cloud apps
42windmills: model driven cloud apps42windmills
 
Adopting Agile Tools & Methods In A Legacy Context
Adopting Agile Tools & Methods In A Legacy ContextAdopting Agile Tools & Methods In A Legacy Context
Adopting Agile Tools & Methods In A Legacy ContextXavier Warzee
 
Build, train and deploy ML models with SageMaker (October 2019)
Build, train and deploy ML models with SageMaker (October 2019)Build, train and deploy ML models with SageMaker (October 2019)
Build, train and deploy ML models with SageMaker (October 2019)Julien SIMON
 
Aras ALM Workshop for PLM Configuration Management
Aras ALM Workshop for PLM Configuration ManagementAras ALM Workshop for PLM Configuration Management
Aras ALM Workshop for PLM Configuration ManagementAras
 
Codecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San JoseCodecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San JoseFabian Lange
 

Ähnlich wie Pragmatic model driven development in Java using smart use cases and domain driven design (20)

20090410 J Spring Pragmatic Model Driven Development In Java Using Smart
20090410   J Spring Pragmatic Model Driven Development In Java Using Smart20090410   J Spring Pragmatic Model Driven Development In Java Using Smart
20090410 J Spring Pragmatic Model Driven Development In Java Using Smart
 
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
 
CV
CVCV
CV
 
Hi tech it services
Hi tech it servicesHi tech it services
Hi tech it services
 
Evento SugarCRM 2008 - Corporate Overview
Evento SugarCRM 2008 - Corporate OverviewEvento SugarCRM 2008 - Corporate Overview
Evento SugarCRM 2008 - Corporate Overview
 
Cast Iron Overview Webinar 6.13
Cast Iron Overview Webinar 6.13Cast Iron Overview Webinar 6.13
Cast Iron Overview Webinar 6.13
 
Imaginea - Ideas to Life - About Us
Imaginea - Ideas to Life - About UsImaginea - Ideas to Life - About Us
Imaginea - Ideas to Life - About Us
 
Model Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & FutureModel Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & Future
 
Understanding Mda
Understanding MdaUnderstanding Mda
Understanding Mda
 
Cast Iron Overview Webinar 6.13.12 Final(Jb)
Cast Iron Overview Webinar 6.13.12 Final(Jb)Cast Iron Overview Webinar 6.13.12 Final(Jb)
Cast Iron Overview Webinar 6.13.12 Final(Jb)
 
Romulus Project start version en
Romulus Project start version enRomulus Project start version en
Romulus Project start version en
 
M3 Modernization Case Study
M3 Modernization Case StudyM3 Modernization Case Study
M3 Modernization Case Study
 
XebiaLabs, CloudBees, Puppet Labs Webinar Slides - IT Automation for the Mode...
XebiaLabs, CloudBees, Puppet Labs Webinar Slides - IT Automation for the Mode...XebiaLabs, CloudBees, Puppet Labs Webinar Slides - IT Automation for the Mode...
XebiaLabs, CloudBees, Puppet Labs Webinar Slides - IT Automation for the Mode...
 
42windmills: model driven cloud apps
42windmills: model driven cloud apps42windmills: model driven cloud apps
42windmills: model driven cloud apps
 
Adopting Agile Tools & Methods In A Legacy Context
Adopting Agile Tools & Methods In A Legacy ContextAdopting Agile Tools & Methods In A Legacy Context
Adopting Agile Tools & Methods In A Legacy Context
 
Visual Resume
Visual ResumeVisual Resume
Visual Resume
 
Build, train and deploy ML models with SageMaker (October 2019)
Build, train and deploy ML models with SageMaker (October 2019)Build, train and deploy ML models with SageMaker (October 2019)
Build, train and deploy ML models with SageMaker (October 2019)
 
Aras ALM Workshop for PLM Configuration Management
Aras ALM Workshop for PLM Configuration ManagementAras ALM Workshop for PLM Configuration Management
Aras ALM Workshop for PLM Configuration Management
 
Codecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San JoseCodecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San Jose
 
Portlet factory 101
Portlet factory 101Portlet factory 101
Portlet factory 101
 

Mehr von Rody Middelkoop

Integration and Unit Testing in Java using Test Doubles like mocks and stubs
Integration and Unit Testing in Java using Test Doubles like mocks and stubsIntegration and Unit Testing in Java using Test Doubles like mocks and stubs
Integration and Unit Testing in Java using Test Doubles like mocks and stubsRody Middelkoop
 
An agile mindset in education
An agile mindset in education An agile mindset in education
An agile mindset in education Rody Middelkoop
 
Eduscrum presentatie Scrum event 2016: Scrum als onderwijsaanpak
Eduscrum presentatie Scrum event 2016: Scrum als onderwijsaanpakEduscrum presentatie Scrum event 2016: Scrum als onderwijsaanpak
Eduscrum presentatie Scrum event 2016: Scrum als onderwijsaanpakRody Middelkoop
 
Pecha Kucha eduScrum Agile Education
Pecha Kucha eduScrum Agile EducationPecha Kucha eduScrum Agile Education
Pecha Kucha eduScrum Agile EducationRody Middelkoop
 
Unit Testing Android Applications
Unit Testing Android ApplicationsUnit Testing Android Applications
Unit Testing Android ApplicationsRody Middelkoop
 
Back to the Future: Onderwijs van 1991 tot 2031
Back to the Future: Onderwijs van 1991 tot 2031Back to the Future: Onderwijs van 1991 tot 2031
Back to the Future: Onderwijs van 1991 tot 2031Rody Middelkoop
 
Contract First Modeling Services Using Uml
Contract First Modeling Services Using UmlContract First Modeling Services Using Uml
Contract First Modeling Services Using UmlRody Middelkoop
 

Mehr von Rody Middelkoop (11)

Integration and Unit Testing in Java using Test Doubles like mocks and stubs
Integration and Unit Testing in Java using Test Doubles like mocks and stubsIntegration and Unit Testing in Java using Test Doubles like mocks and stubs
Integration and Unit Testing in Java using Test Doubles like mocks and stubs
 
An agile mindset in education
An agile mindset in education An agile mindset in education
An agile mindset in education
 
Themalunch scrum
Themalunch scrumThemalunch scrum
Themalunch scrum
 
Eduscrum presentatie Scrum event 2016: Scrum als onderwijsaanpak
Eduscrum presentatie Scrum event 2016: Scrum als onderwijsaanpakEduscrum presentatie Scrum event 2016: Scrum als onderwijsaanpak
Eduscrum presentatie Scrum event 2016: Scrum als onderwijsaanpak
 
Pecha Kucha eduScrum Agile Education
Pecha Kucha eduScrum Agile EducationPecha Kucha eduScrum Agile Education
Pecha Kucha eduScrum Agile Education
 
Unit Testing Android Applications
Unit Testing Android ApplicationsUnit Testing Android Applications
Unit Testing Android Applications
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Back to the Future: Onderwijs van 1991 tot 2031
Back to the Future: Onderwijs van 1991 tot 2031Back to the Future: Onderwijs van 1991 tot 2031
Back to the Future: Onderwijs van 1991 tot 2031
 
OO JavaScript
OO JavaScriptOO JavaScript
OO JavaScript
 
ORM JPA
ORM JPAORM JPA
ORM JPA
 
Contract First Modeling Services Using Uml
Contract First Modeling Services Using UmlContract First Modeling Services Using Uml
Contract First Modeling Services Using Uml
 

Kürzlich hochgeladen

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 

Kürzlich hochgeladen (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

Pragmatic model driven development in Java using smart use cases and domain driven design

  • 1. Pragmatic model driven development in Java using smart use cases and domain driven development Sander Hoogendoorn, Capgemini Rody Middelkoop, Avisi TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 1 © Copyright Capgemini2008 All Rights Reserved
  • 2. Sander Hoogendoorn Capgemini  Principal technology officer  Capgemini agile thought leader  Certifiedglobal software engineer (SE4)  Chief architect Accelerated Delivery Platform Other  Author books (UML, agile) and articles  Speaker at conferences  Microsoft Partner Advisory Council .NET  Columnist Software Release Magazine, SDN Magazine  Editorial board Software Release Magazine  Editorial board Tijdschrift IT Management  Advisory board @Portunity  Member expert panel Computable Web  www.sanderhoogendoorn.com  www.accelerateddeliveryplatform.com TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 2 © Copyright Capgemini2008 All Rights Reserved
  • 3. Rody Middelkoop Avisi  Technical consultant Hogeschool Arnhem Nijmegen (HAN)  Lecturer Software Engineering Other  Sun Certified Java Programmer / Developer  Author of severalarticles  ContributorLivre  Speaker at conferences Web  www.avisi.nl  rodymiddelkoop.blogspot.com TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 3 © Copyright Capgemini2008 All Rights Reserved
  • 4. Agenda Introduction  Model driven development  Pragmatic model driven development  Ourapproach  Benefite Smart use cases  Modeling smart use cases  Smart use cases in code Domain driven design  Domain objects  Smart references  Value objects Generating code  Text templating  Using Tobago MDA Demo’s TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 4 © Copyright Capgemini2008 All Rights Reserved
  • 5. Model driven development An introduction TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 5 © Copyright Capgemini2008 All Rights Reserved
  • 6. Model driven development SH Why?  Bridge gap between design and code  Improvequality of delivered software  Raiseproductivity  Achieve platform and framework independency  Increasetestability How?  Proprietarytechniques  DSL’s (textual and graphical)  UML  Database  India What?  Modeling tool code generation  Development tool code generation  Intermediate code generation TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 6 © Copyright Capgemini2008 All Rights Reserved
  • 7. A pragmaticapproach To model driven development TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 7 © Copyright Capgemini2008 All Rights Reserved
  • 8. User interface Software Architecture specification 1. Map your 5. Finalize your business processes application to smart use cases Existing Applications Smart use cases Forms Use cases 4. Generate code using a Tobago text template Frameworks MDA engine Specifications Domain Domain objects Model Data / Service Business classes models 2. Create the Test 3. Establish scenario’s domain model your software Databases architecture(s) TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 8 © Copyright Capgemini2008 All Rights Reserved
  • 9. Smart use cases What makes a use cases smart? TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 9 © Copyright Capgemini2008 All Rights Reserved
  • 10. Different levels of use cases Merge companies Cloud level High summary Merge mortgage systems Kite level Summary Place order Sea level User goal Fish level Sub-function Select product Clam level Too low Insert orderline TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 10 © Copyright Capgemini2008 All Rights Reserved
  • 11. Different levels of use cases ‘Regular’ use cases Regular Smart  Only user goal level use cases use case use case  Use cases ‘as they are intended’  A single use case describes Format Textual Visual a single elementary business process  Differ in granularity too much Very Granularity Unified different  Law of Large Numbers does not apply Smart use cases Estimates Hard Easier  User goal and sub function level use cases  Good unit of work and estimation Unit of work Lousy Good  A single elementary business process is modeled in a single use case diagram Re-use Incidental Normal  A single user goal level use case + auxiliary use cases at sub-function level  Very similar granularity Traceability Possible Likely in code TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 11 © Copyright Capgemini2008 All Rights Reserved
  • 12. Modeling smart use cases TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 12 © Copyright Capgemini2008 All Rights Reserved
  • 13. Modeling smart use cases Approach  Create a use case diagram for each elementary business process  Model a (user goal level) use case that maps to the elementary business process  Name it after the elementary business process  Identify the actors executing the use case  Identify the sub-function level use cases  Model include and extend relationships  Identify supporting actors TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 13 © Copyright Capgemini2008 All Rights Reserved
  • 14. Identifying sub-function level use cases Guidelines  Identify re-use  Model one form per use case  Model one use case per functional web part  Isolate unknown functionality  Identify complex functionality  Show extensive reporting  Model complex calculations  Isolate interaction with others  Avoid low level (database) interaction TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 14 © Copyright Capgemini2008 All Rights Reserved
  • 15. Modeling smart use cases TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 15 © Copyright Capgemini2008 All Rights Reserved
  • 16. Smart use case stereotypes Decorating the model TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 16 © Copyright Capgemini2008 All Rights Reserved
  • 17. Smart use case stereotypes RM What?  Classify model elements  Do notaddmeaning to model  Definecustom stereotypes Why?  Speed up analysis and design  Map design to software architecture  Generatelots of code!  Standardizefunctional testing TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 17 © Copyright Capgemini2008 All Rights Reserved
  • 18. Adding stereotypes SH TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 18 © Copyright Capgemini2008 All Rights Reserved
  • 19. Adding stereotypes TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 19 © Copyright Capgemini2008 All Rights Reserved
  • 20. Smart use case stereotypes TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 20 © Copyright Capgemini2008 All Rights Reserved
  • 21. Mapping to software architecture Smart use cases and domain design TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 21 © Copyright Capgemini2008 All Rights Reserved
  • 22. Pages UserControls Presentation Panels Use cases Process Workflow Domain objects / Entities Factories / Repositories Domain Enums / Value objects / Smart references [Mapping] Table Gateways Queries Data / Services [Mapping] Outside world Database TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 22 © Copyright Capgemini2008 All Rights Reserved
  • 23. Pages UserControls Presentation Panels Use cases Process Workflow Domain objects / Entities Factories / Repositories Domain Enums / Value objects / Smart references [Mapping] Service gateways Service locators Data / Services [Mapping] Exact SAP BizTalk Java Outside world Services / ESB TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 23 © Copyright Capgemini2008 All Rights Reserved
  • 24. Service contracts Presentation Operation contracts Data contracts Use cases Process Services Domain objects / Entities Factories / Repositories Domain Enums / Value objects / Smart references [Mapping] TableGateways / Service Gateways Data / Services Queries / Service Locators [Mapping] Exact SAP BizTalk Java Database Outside world Services / ESB TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 24 © Copyright Capgemini2008 All Rights Reserved
  • 25. Domain driven design A brief introduction TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 25 © Copyright Capgemini2008 All Rights Reserved
  • 26. Domain driven design Definition  Base complex domain designs on the model  Primary focus is on the domain and domain logic In practice  Model the domain  Apply the extended domain driven vocabulary  Build the domain layer  Hook in process layer  Plug in data / services layer Useful when  The domain of your application is core  Two tier is not (never?) desirable  Application needs to function independent of back office, data sources or services TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 26 © Copyright Capgemini2008 All Rights Reserved
  • 27. Domain driven design Vocabulary  Entity / Domain object  Association  Value object  Aggregate  Repository  Factory  Service Additional vocabulary  Enumeration  Smart reference TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 27 © Copyright Capgemini2008 All Rights Reserved
  • 28. Example – Class diagram TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 28 © Copyright Capgemini2008 All Rights Reserved
  • 29. Defining classes Properties and property types TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 29 © Copyright Capgemini2008 All Rights Reserved
  • 30. Properties and property types RM Basic types  string, integer, DateTime  Include nullable wrapping Enumerations  Set up at design time, unchangeable at run-time  Genders, Categories Value objects  No specific instances  Isbn, Email, Url, Money Smart references  Changeable at run-time, such as ContractType Associations  Cached domain objects such as Country, Nationality  First level citizens such as Customer, Product TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 30 © Copyright Capgemini2008 All Rights Reserved
  • 31. Value object TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 31 © Copyright Capgemini2008 All Rights Reserved
  • 32. Value object - Implementing TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 32 © Copyright Capgemini2008 All Rights Reserved
  • 33. Value object – In use TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 33 © Copyright Capgemini2008 All Rights Reserved
  • 34. Smart reference TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 34 © Copyright Capgemini2008 All Rights Reserved
  • 35. Smart reference - Table TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 35 © Copyright Capgemini2008 All Rights Reserved
  • 36. Smart reference - In entity TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 36 © Copyright Capgemini2008 All Rights Reserved
  • 37. Smart reference – In use TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 37 © Copyright Capgemini2008 All Rights Reserved
  • 38. Text templating TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 38 © Copyright Capgemini2008 All Rights Reserved
  • 39. Model driven development – Template engines SH How?  Define project  Define patterns  Import model  Generate deliverable  Finalize code Additional features  Combine model elements  Combine types of model elements  Remember location Changing the model withourlosing code  Partial classes  Inherited classes  Marking code TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 39 © Copyright Capgemini2008 All Rights Reserved
  • 40. Tobago MDA – www.accelerateddeliveryplatform.com TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 40 © Copyright Capgemini2008 All Rights Reserved
  • 41. Tobago MDA TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 41 © Copyright Capgemini2008 All Rights Reserved
  • 42. Tobago MDA TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 42 © Copyright Capgemini2008 All Rights Reserved
  • 43. Model driven development - Template engines RM Properties can be used in templates Template engine knows (part of) the UML meta model TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 43 © Copyright Capgemini2008 All Rights Reserved
  • 44. Freemarker Sitemesh Presentation DisplayTag Struts2 Process XWorkActions Spring EJB3 Services EJB3 DataAccessObjects Data / Services Spring JPA Domain objects Enums Domain Value objects Smart references Outside world MySQL TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 44 © Copyright Capgemini2008 All Rights Reserved
  • 45. Model driven development - Templates TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 45 © Copyright Capgemini2008 All Rights Reserved
  • 46. Generate many things e.g. Table create scripts TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 46 © Copyright Capgemini2008 All Rights Reserved
  • 47. Generate many things e.g. Table create scripts TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 47 © Copyright Capgemini2008 All Rights Reserved
  • 48. FAQ You TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 48 © Copyright Capgemini2008 All Rights Reserved
  • 49. FAQ SH Yes No I don’t know I am not allowed to go into details about this TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 49 © Copyright Capgemini2008 All Rights Reserved
  • 50. Generating code Demo! TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 50 © Copyright Capgemini2008 All Rights Reserved
  • 51. www.accelerateddeliveryplatform.com SH TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 51 © Copyright Capgemini2008 All Rights Reserved
  • 52. References and questions www.accelerateddeliveryplatform.com sander.hoogendoorn@capgemini.com r.r.middelkoop@avisi.nl Twitter: aahoogendoorn LinkedIn: aahoogendoornrodym TWO GUYS TRYING TO TALK REALLY FAST AND BUILD AN APP IN 45 MINUTES 52 © Copyright Capgemini2008 All Rights Reserved