Pragmatic Model Driven Development In Java Using Smart Use Cases

Rody Middelkoop
Rody MiddelkoopLecturer @HAN University em Hogeschool van Arnhem en Nijmegen
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
1 de 52

Recomendados

An introduction to smart use cases por
An introduction to smart use casesAn introduction to smart use cases
An introduction to smart use casesSander Hoogendoorn
7.8K visualizações34 slides
Karate for Complex Web-Service API Testing by Peter Thomas por
Karate for Complex Web-Service API Testing by Peter ThomasKarate for Complex Web-Service API Testing by Peter Thomas
Karate for Complex Web-Service API Testing by Peter Thomasintuit_india
6.2K visualizações18 slides
Modular Monoliths with Nx por
Modular Monoliths with NxModular Monoliths with Nx
Modular Monoliths with Nxstefanhaasprivat
292 visualizações43 slides
Best Practices NgRx for Scaling Your Angular Application por
Best Practices NgRx  for Scaling Your Angular ApplicationBest Practices NgRx  for Scaling Your Angular Application
Best Practices NgRx for Scaling Your Angular ApplicationVagner Oliveira
432 visualizações19 slides
FridaによるAndroidアプリの動的解析とフッキングの基礎 por
FridaによるAndroidアプリの動的解析とフッキングの基礎FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎ken_kitahara
7K visualizações35 slides
Entenda o ciclo de vida das entidades jpa por
Entenda o ciclo de vida das entidades jpaEntenda o ciclo de vida das entidades jpa
Entenda o ciclo de vida das entidades jpaMoisesInacio
1.1K visualizações5 slides

Mais conteúdo relacionado

Mais procurados

cn-series-se-presentation.pptx por
cn-series-se-presentation.pptxcn-series-se-presentation.pptx
cn-series-se-presentation.pptxeli lama sabachtani sinaga
37 visualizações26 slides
Accelerate Microservices Deployments with Automation por
Accelerate Microservices Deployments with AutomationAccelerate Microservices Deployments with Automation
Accelerate Microservices Deployments with AutomationNGINX, Inc.
75 visualizações36 slides
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc por
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_cccSpring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_cccYahoo!デベロッパーネットワーク
12.5K visualizações85 slides
Karate - Web-Service API Testing Made Simple por
Karate - Web-Service API Testing Made SimpleKarate - Web-Service API Testing Made Simple
Karate - Web-Service API Testing Made SimpleVodqaBLR
3.2K visualizações22 slides
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~ por
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~Yuki Hirano
15K visualizações16 slides
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~ por
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~Unity Technologies Japan K.K.
25.2K visualizações56 slides

Mais procurados(15)

Accelerate Microservices Deployments with Automation por NGINX, Inc.
Accelerate Microservices Deployments with AutomationAccelerate Microservices Deployments with Automation
Accelerate Microservices Deployments with Automation
NGINX, Inc.75 visualizações
Karate - Web-Service API Testing Made Simple por VodqaBLR
Karate - Web-Service API Testing Made SimpleKarate - Web-Service API Testing Made Simple
Karate - Web-Service API Testing Made Simple
VodqaBLR3.2K visualizações
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~ por Yuki Hirano
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
Yuki Hirano15K visualizações
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~ por Unity Technologies Japan K.K.
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~
Unity Technologies Japan K.K.25.2K visualizações
Building Cloud-Native Applications with Helidon por Dmitry Kornilov
Building Cloud-Native Applications with HelidonBuilding Cloud-Native Applications with Helidon
Building Cloud-Native Applications with Helidon
Dmitry Kornilov959 visualizações
JSX 速さの秘密 - 高速なJavaScriptを書く方法 por Kazuho Oku
JSX 速さの秘密 - 高速なJavaScriptを書く方法JSX 速さの秘密 - 高速なJavaScriptを書く方法
JSX 速さの秘密 - 高速なJavaScriptを書く方法
Kazuho Oku29.1K visualizações
Corso js and angular por Giuseppe Viggiano
Corso js and angularCorso js and angular
Corso js and angular
Giuseppe Viggiano77 visualizações
給初學者的Spark教學 por Chen-en Lu
給初學者的Spark教學給初學者的Spark教學
給初學者的Spark教學
Chen-en Lu18.2K visualizações
SOLID Principles por Surendra Shukla
SOLID PrinciplesSOLID Principles
SOLID Principles
Surendra Shukla936 visualizações
ECS: Streaming and Serialization - Unite LA por Unity Technologies
ECS: Streaming and Serialization - Unite LAECS: Streaming and Serialization - Unite LA
ECS: Streaming and Serialization - Unite LA
Unity Technologies3.1K visualizações
Java SE 8 best practices por Stephen Colebourne
Java SE 8 best practicesJava SE 8 best practices
Java SE 8 best practices
Stephen Colebourne100.8K visualizações
Mob testing por Llewellyn Falco
Mob testingMob testing
Mob testing
Llewellyn Falco5.4K visualizações
Github in Action por Morten Christensen
Github in ActionGithub in Action
Github in Action
Morten Christensen193 visualizações

Destaque

JavaScript on the server - Node.js por
JavaScript on the server - Node.jsJavaScript on the server - Node.js
JavaScript on the server - Node.jsRody Middelkoop
4.6K visualizações27 slides
Plataformasweb por
PlataformaswebPlataformasweb
Plataformasweburbibhi
873 visualizações11 slides
Ajax And JSON por
Ajax And JSONAjax And JSON
Ajax And JSONRody Middelkoop
1.1K visualizações39 slides
Interneten Sartzeko Konexio Motak por
Interneten Sartzeko Konexio MotakInterneten Sartzeko Konexio Motak
Interneten Sartzeko Konexio Motakurbibhi
588 visualizações16 slides
Ict Curriculum Ideas por
Ict   Curriculum IdeasIct   Curriculum Ideas
Ict Curriculum Ideashelenhayward
244 visualizações16 slides
Scrum in informaticaonderwijs por
Scrum in informaticaonderwijsScrum in informaticaonderwijs
Scrum in informaticaonderwijsRody Middelkoop
758 visualizações32 slides

Destaque(20)

JavaScript on the server - Node.js por Rody Middelkoop
JavaScript on the server - Node.jsJavaScript on the server - Node.js
JavaScript on the server - Node.js
Rody Middelkoop4.6K visualizações
Plataformasweb por urbibhi
PlataformaswebPlataformasweb
Plataformasweb
urbibhi873 visualizações
Ajax And JSON por Rody Middelkoop
Ajax And JSONAjax And JSON
Ajax And JSON
Rody Middelkoop1.1K visualizações
Interneten Sartzeko Konexio Motak por urbibhi
Interneten Sartzeko Konexio MotakInterneten Sartzeko Konexio Motak
Interneten Sartzeko Konexio Motak
urbibhi588 visualizações
Ict Curriculum Ideas por helenhayward
Ict   Curriculum IdeasIct   Curriculum Ideas
Ict Curriculum Ideas
helenhayward244 visualizações
Scrum in informaticaonderwijs por Rody Middelkoop
Scrum in informaticaonderwijsScrum in informaticaonderwijs
Scrum in informaticaonderwijs
Rody Middelkoop758 visualizações
2 N General Presentation por A. Richard Martinez
2 N General Presentation2 N General Presentation
2 N General Presentation
A. Richard Martinez345 visualizações
Softwarekwaliteit in een ontwikkelstraat por Rody Middelkoop
Softwarekwaliteit in een ontwikkelstraatSoftwarekwaliteit in een ontwikkelstraat
Softwarekwaliteit in een ontwikkelstraat
Rody Middelkoop1.8K visualizações
Lydia por helenhayward
LydiaLydia
Lydia
helenhayward235 visualizações
Saas: Software AND Service por Rody Middelkoop
Saas: Software AND ServiceSaas: Software AND Service
Saas: Software AND Service
Rody Middelkoop512 visualizações
Rusija por erikute858
RusijaRusija
Rusija
erikute858772 visualizações
Folder_Yulius_Academie por Yulius Academie
Folder_Yulius_AcademieFolder_Yulius_Academie
Folder_Yulius_Academie
Yulius Academie146 visualizações
Student social media tips por Jahnae Gumbs
Student social media tipsStudent social media tips
Student social media tips
Jahnae Gumbs163 visualizações
Answering the Questions Nobody Asks (But Should): Using Social Listening to C... por Tara Hall
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 Hall101 visualizações
Scrum implemented in an educational context por Rody Middelkoop
Scrum implemented in an educational contextScrum implemented in an educational context
Scrum implemented in an educational context
Rody Middelkoop2.1K visualizações
JavaFX - Next Generation Java UI por Yoav Aharoni
JavaFX - Next Generation Java UIJavaFX - Next Generation Java UI
JavaFX - Next Generation Java UI
Yoav Aharoni854 visualizações
Service Analysis And Design por Rody Middelkoop
Service Analysis And DesignService Analysis And Design
Service Analysis And Design
Rody Middelkoop3.6K visualizações
DDOA = Software Craftmanship por Rody Middelkoop
DDOA = Software CraftmanshipDDOA = Software Craftmanship
DDOA = Software Craftmanship
Rody Middelkoop748 visualizações

Similar a Pragmatic Model Driven Development In Java Using Smart Use Cases

20090410 J Spring Pragmatic Model Driven Development In Java Using Smart por
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
2.2K visualizações50 slides
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact... por
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
3K visualizações32 slides
CV por
CVCV
CVkenntrix
808 visualizações5 slides
Hi tech it services por
Hi tech it servicesHi tech it services
Hi tech it servicesNaresh Dhingra
459 visualizações19 slides
Evento SugarCRM 2008 - Corporate Overview por
Evento SugarCRM 2008 - Corporate OverviewEvento SugarCRM 2008 - Corporate Overview
Evento SugarCRM 2008 - Corporate OverviewDRI - Discovery/Reinvention/Integration/
341 visualizações7 slides
Cast Iron Overview Webinar 6.13 por
Cast Iron Overview Webinar 6.13Cast Iron Overview Webinar 6.13
Cast Iron Overview Webinar 6.13gaborvodics
2.3K visualizações25 slides

Similar a Pragmatic Model Driven Development In Java Using Smart Use Cases(20)

20090410 J Spring Pragmatic Model Driven Development In Java Using Smart por Sander Hoogendoorn
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
Sander Hoogendoorn 2.2K visualizações
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact... por Prolifics
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...
Prolifics3K visualizações
CV por kenntrix
CVCV
CV
kenntrix808 visualizações
Hi tech it services por Naresh Dhingra
Hi tech it servicesHi tech it services
Hi tech it services
Naresh Dhingra459 visualizações
Cast Iron Overview Webinar 6.13 por gaborvodics
Cast Iron Overview Webinar 6.13Cast Iron Overview Webinar 6.13
Cast Iron Overview Webinar 6.13
gaborvodics2.3K visualizações
Imaginea - Ideas to Life - About Us por Imaginea
Imaginea - Ideas to Life - About UsImaginea - Ideas to Life - About Us
Imaginea - Ideas to Life - About Us
Imaginea481 visualizações
Model Driven Architecture (MDA): Motivations, Status & Future por elliando dias
Model Driven Architecture (MDA): Motivations, Status & FutureModel Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & Future
elliando dias3K visualizações
Understanding Mda por Alberto Lagna
Understanding MdaUnderstanding Mda
Understanding Mda
Alberto Lagna562 visualizações
Cast Iron Overview Webinar 6.13.12 Final(Jb) por Carolyn Crowe
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 Crowe357 visualizações
Romulus Project start version en por Grupo Gesfor I+D+i
Romulus Project start version enRomulus Project start version en
Romulus Project start version en
Grupo Gesfor I+D+i308 visualizações
M3 Modernization Case Study por ADC Austin Tech
M3 Modernization Case StudyM3 Modernization Case Study
M3 Modernization Case Study
ADC Austin Tech552 visualizações
XebiaLabs, CloudBees, Puppet Labs Webinar Slides - IT Automation for the Mode... por XebiaLabs
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...
XebiaLabs1.2K visualizações
42windmills: model driven cloud apps por 42windmills
42windmills: model driven cloud apps42windmills: model driven cloud apps
42windmills: model driven cloud apps
42windmills697 visualizações
Adopting Agile Tools & Methods In A Legacy Context por Xavier Warzee
Adopting Agile Tools & Methods In A Legacy ContextAdopting Agile Tools & Methods In A Legacy Context
Adopting Agile Tools & Methods In A Legacy Context
Xavier Warzee1.9K visualizações
Visual Resume por Nader Yassa
Visual ResumeVisual Resume
Visual Resume
Nader Yassa1.5K visualizações
Build, train and deploy ML models with SageMaker (October 2019) por Julien SIMON
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 SIMON690 visualizações
Aras ALM Workshop for PLM Configuration Management por Aras
Aras ALM Workshop for PLM Configuration ManagementAras ALM Workshop for PLM Configuration Management
Aras ALM Workshop for PLM Configuration Management
Aras1.3K visualizações
Codecentric At Ajax World Conference San Jose por Fabian Lange
Codecentric At Ajax World Conference San JoseCodecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San Jose
Fabian Lange740 visualizações
Portlet factory 101 por Phillip de Ridder
Portlet factory 101Portlet factory 101
Portlet factory 101
Phillip de Ridder674 visualizações

Mais de Rody Middelkoop

Integration and Unit Testing in Java using Test Doubles like mocks and stubs por
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
591 visualizações38 slides
An agile mindset in education por
An agile mindset in education An agile mindset in education
An agile mindset in education Rody Middelkoop
443 visualizações36 slides
Themalunch scrum por
Themalunch scrumThemalunch scrum
Themalunch scrumRody Middelkoop
238 visualizações29 slides
Eduscrum presentatie Scrum event 2016: Scrum als onderwijsaanpak por
Eduscrum presentatie Scrum event 2016: Scrum als onderwijsaanpakEduscrum presentatie Scrum event 2016: Scrum als onderwijsaanpak
Eduscrum presentatie Scrum event 2016: Scrum als onderwijsaanpakRody Middelkoop
1.3K visualizações40 slides
Pecha Kucha eduScrum Agile Education por
Pecha Kucha eduScrum Agile EducationPecha Kucha eduScrum Agile Education
Pecha Kucha eduScrum Agile EducationRody Middelkoop
1.6K visualizações20 slides
Unit Testing Android Applications por
Unit Testing Android ApplicationsUnit Testing Android Applications
Unit Testing Android ApplicationsRody Middelkoop
1.2K visualizações24 slides

Mais de Rody Middelkoop(11)

Integration and Unit Testing in Java using Test Doubles like mocks and stubs por Rody Middelkoop
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
Rody Middelkoop591 visualizações
An agile mindset in education por Rody Middelkoop
An agile mindset in education An agile mindset in education
An agile mindset in education
Rody Middelkoop443 visualizações
Themalunch scrum por Rody Middelkoop
Themalunch scrumThemalunch scrum
Themalunch scrum
Rody Middelkoop238 visualizações
Eduscrum presentatie Scrum event 2016: Scrum als onderwijsaanpak por Rody Middelkoop
Eduscrum presentatie Scrum event 2016: Scrum als onderwijsaanpakEduscrum presentatie Scrum event 2016: Scrum als onderwijsaanpak
Eduscrum presentatie Scrum event 2016: Scrum als onderwijsaanpak
Rody Middelkoop1.3K visualizações
Pecha Kucha eduScrum Agile Education por Rody Middelkoop
Pecha Kucha eduScrum Agile EducationPecha Kucha eduScrum Agile Education
Pecha Kucha eduScrum Agile Education
Rody Middelkoop1.6K visualizações
Unit Testing Android Applications por Rody Middelkoop
Unit Testing Android ApplicationsUnit Testing Android Applications
Unit Testing Android Applications
Rody Middelkoop1.2K visualizações
Software Process Models por Rody Middelkoop
Software Process ModelsSoftware Process Models
Software Process Models
Rody Middelkoop1.3K visualizações
Back to the Future: Onderwijs van 1991 tot 2031 por Rody Middelkoop
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
Rody Middelkoop375 visualizações
OO JavaScript por Rody Middelkoop
OO JavaScriptOO JavaScript
OO JavaScript
Rody Middelkoop951 visualizações
ORM JPA por Rody Middelkoop
ORM JPAORM JPA
ORM JPA
Rody Middelkoop2.8K visualizações
Contract First Modeling Services Using Uml por Rody Middelkoop
Contract First Modeling Services Using UmlContract First Modeling Services Using Uml
Contract First Modeling Services Using Uml
Rody Middelkoop1.2K visualizações

Último

Voice Logger - Telephony Integration Solution at Aegis por
Voice Logger - Telephony Integration Solution at AegisVoice Logger - Telephony Integration Solution at Aegis
Voice Logger - Telephony Integration Solution at AegisNirmal Sharma
39 visualizações1 slide
Piloting & Scaling Successfully With Microsoft Viva por
Piloting & Scaling Successfully With Microsoft VivaPiloting & Scaling Successfully With Microsoft Viva
Piloting & Scaling Successfully With Microsoft VivaRichard Harbridge
12 visualizações160 slides
Future of AR - Facebook Presentation por
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook Presentationssuserb54b561
15 visualizações27 slides
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive por
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveNetwork Automation Forum
34 visualizações35 slides
Zero to Automated in Under a Year por
Zero to Automated in Under a YearZero to Automated in Under a Year
Zero to Automated in Under a YearNetwork Automation Forum
15 visualizações23 slides
SUPPLIER SOURCING.pptx por
SUPPLIER SOURCING.pptxSUPPLIER SOURCING.pptx
SUPPLIER SOURCING.pptxangelicacueva6
16 visualizações1 slide

Último(20)

Voice Logger - Telephony Integration Solution at Aegis por Nirmal Sharma
Voice Logger - Telephony Integration Solution at AegisVoice Logger - Telephony Integration Solution at Aegis
Voice Logger - Telephony Integration Solution at Aegis
Nirmal Sharma39 visualizações
Piloting & Scaling Successfully With Microsoft Viva por Richard Harbridge
Piloting & Scaling Successfully With Microsoft VivaPiloting & Scaling Successfully With Microsoft Viva
Piloting & Scaling Successfully With Microsoft Viva
Richard Harbridge12 visualizações
Future of AR - Facebook Presentation por ssuserb54b561
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook Presentation
ssuserb54b56115 visualizações
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive por Network Automation Forum
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Network Automation Forum34 visualizações
SUPPLIER SOURCING.pptx por angelicacueva6
SUPPLIER SOURCING.pptxSUPPLIER SOURCING.pptx
SUPPLIER SOURCING.pptx
angelicacueva616 visualizações
Special_edition_innovator_2023.pdf por WillDavies22
Special_edition_innovator_2023.pdfSpecial_edition_innovator_2023.pdf
Special_edition_innovator_2023.pdf
WillDavies2218 visualizações
Kyo - Functional Scala 2023.pdf por Flavio W. Brasil
Kyo - Functional Scala 2023.pdfKyo - Functional Scala 2023.pdf
Kyo - Functional Scala 2023.pdf
Flavio W. Brasil400 visualizações
PRODUCT LISTING.pptx por angelicacueva6
PRODUCT LISTING.pptxPRODUCT LISTING.pptx
PRODUCT LISTING.pptx
angelicacueva614 visualizações
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... por Bernd Ruecker
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
Bernd Ruecker40 visualizações
Igniting Next Level Productivity with AI-Infused Data Integration Workflows por Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software280 visualizações
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... por James Anderson
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
James Anderson92 visualizações
Business Analyst Series 2023 - Week 3 Session 5 por DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10300 visualizações
Case Study Copenhagen Energy and Business Central.pdf por Aitana
Case Study Copenhagen Energy and Business Central.pdfCase Study Copenhagen Energy and Business Central.pdf
Case Study Copenhagen Energy and Business Central.pdf
Aitana16 visualizações
HTTP headers that make your website go faster - devs.gent November 2023 por Thijs Feryn
HTTP headers that make your website go faster - devs.gent November 2023HTTP headers that make your website go faster - devs.gent November 2023
HTTP headers that make your website go faster - devs.gent November 2023
Thijs Feryn22 visualizações
Ransomware is Knocking your Door_Final.pdf por Security Bootcamp
Ransomware is Knocking your Door_Final.pdfRansomware is Knocking your Door_Final.pdf
Ransomware is Knocking your Door_Final.pdf
Security Bootcamp59 visualizações
Unit 1_Lecture 2_Physical Design of IoT.pdf por StephenTec
Unit 1_Lecture 2_Physical Design of IoT.pdfUnit 1_Lecture 2_Physical Design of IoT.pdf
Unit 1_Lecture 2_Physical Design of IoT.pdf
StephenTec12 visualizações
Uni Systems for Power Platform.pptx por Uni Systems S.M.S.A.
Uni Systems for Power Platform.pptxUni Systems for Power Platform.pptx
Uni Systems for Power Platform.pptx
Uni Systems S.M.S.A.56 visualizações

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