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?

Usp友の会勉強会、ジャクソン構造図の巻(前編)
Usp友の会勉強会、ジャクソン構造図の巻(前編)Usp友の会勉強会、ジャクソン構造図の巻(前編)
Usp友の会勉強会、ジャクソン構造図の巻(前編)
umidori
 
Argentesting 2018 - Patrones de diseño en la automatización: ¿PageObject o Sc...
Argentesting 2018 - Patrones de diseño en la automatización: ¿PageObject o Sc...Argentesting 2018 - Patrones de diseño en la automatización: ¿PageObject o Sc...
Argentesting 2018 - Patrones de diseño en la automatización: ¿PageObject o Sc...
Argentesting
 

Was ist angesagt? (20)

Adverbit
AdverbitAdverbit
Adverbit
 
自作LLM作ろうとして 爆散した話 (1).pdf
自作LLM作ろうとして 爆散した話 (1).pdf自作LLM作ろうとして 爆散した話 (1).pdf
自作LLM作ろうとして 爆散した話 (1).pdf
 
ドメイン駆動設計 複雑さに立ち向かう
ドメイン駆動設計 複雑さに立ち向かうドメイン駆動設計 複雑さに立ち向かう
ドメイン駆動設計 複雑さに立ち向かう
 
How Node.js Works | Node.js Tutorial for Beginners
How Node.js Works | Node.js Tutorial for BeginnersHow Node.js Works | Node.js Tutorial for Beginners
How Node.js Works | Node.js Tutorial for Beginners
 
挫折しないRedmine
挫折しないRedmine挫折しないRedmine
挫折しないRedmine
 
Python for Linux System Administration
Python for Linux System AdministrationPython for Linux System Administration
Python for Linux System Administration
 
Usp友の会勉強会、ジャクソン構造図の巻(前編)
Usp友の会勉強会、ジャクソン構造図の巻(前編)Usp友の会勉強会、ジャクソン構造図の巻(前編)
Usp友の会勉強会、ジャクソン構造図の巻(前編)
 
Substantiivien taivutus, ruotsin kieli
Substantiivien taivutus, ruotsin kieliSubstantiivien taivutus, ruotsin kieli
Substantiivien taivutus, ruotsin kieli
 
Lauseenjäsennys
LauseenjäsennysLauseenjäsennys
Lauseenjäsennys
 
人と人の相性を考慮したシフトスケジューラ
人と人の相性を考慮したシフトスケジューラ人と人の相性を考慮したシフトスケジューラ
人と人の相性を考慮したシフトスケジューラ
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Async await完全に理解した
Async await完全に理解したAsync await完全に理解した
Async await完全に理解した
 
製造業向け量子コンピュータ時代のDXセミナー~ 最適化の中身を覗いてみよう~
製造業向け量子コンピュータ時代のDXセミナー~ 最適化の中身を覗いてみよう~製造業向け量子コンピュータ時代のDXセミナー~ 最適化の中身を覗いてみよう~
製造業向け量子コンピュータ時代のDXセミナー~ 最適化の中身を覗いてみよう~
 
Astevaihtelu
AstevaihteluAstevaihtelu
Astevaihtelu
 
V6 unix in okinawa
V6 unix in okinawaV6 unix in okinawa
V6 unix in okinawa
 
2018/1/30 Django勉強会
2018/1/30 Django勉強会2018/1/30 Django勉強会
2018/1/30 Django勉強会
 
Apuverbit 1
Apuverbit 1Apuverbit 1
Apuverbit 1
 
金勘定のためのBigDecimalそしてMoney and Currency API
金勘定のためのBigDecimalそしてMoney and Currency API金勘定のためのBigDecimalそしてMoney and Currency API
金勘定のためのBigDecimalそしてMoney and Currency API
 
IBM WebSphere Liberty and Docker Deep Dive
IBM WebSphere Liberty and Docker Deep DiveIBM WebSphere Liberty and Docker Deep Dive
IBM WebSphere Liberty and Docker Deep Dive
 
Argentesting 2018 - Patrones de diseño en la automatización: ¿PageObject o Sc...
Argentesting 2018 - Patrones de diseño en la automatización: ¿PageObject o Sc...Argentesting 2018 - Patrones de diseño en la automatización: ¿PageObject o Sc...
Argentesting 2018 - Patrones de diseño en la automatización: ¿PageObject o Sc...
 

Andere mochten auch

Plataformasweb
PlataformaswebPlataformasweb
Plataformasweb
urbibhi
 
Interneten Sartzeko Konexio Motak
Interneten Sartzeko Konexio MotakInterneten Sartzeko Konexio Motak
Interneten Sartzeko Konexio Motak
urbibhi
 
Ict Curriculum Ideas
Ict   Curriculum IdeasIct   Curriculum Ideas
Ict Curriculum Ideas
helenhayward
 

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

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
elliando dias
 
M3 Modernization Case Study
M3 Modernization Case StudyM3 Modernization Case Study
M3 Modernization Case Study
ADC Austin Tech
 
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
Xavier Warzee
 
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
Aras
 

Ähnlich wie Pragmatic Model Driven Development In Java Using Smart Use Cases (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

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

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Kürzlich hochgeladen (20)

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 

Pragmatic Model Driven Development In Java Using Smart Use Cases

  • 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