SlideShare une entreprise Scribd logo
1  sur  50
Télécharger pour lire hors ligne
Pragmatic model driven development in Java using
 smart use cases and domain driven development
               Sander Hoogendoorn, Capgemini
                   Rody Middelkoop, Avisi



                                                                                   <TITLE>      1
                                               © Copyright Capgemini 2008 All Rights Reserved
Sander Hoogendoorn

Capgemini
      Principal technology officer
      Capgemini agile thought leader
      Certified global 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


                                                                                              <TITLE>      2
                                                          © Copyright Capgemini 2008 All Rights Reserved
Rody Middelkoop

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



                                                                                        <TITLE>      3
                                                    © Copyright Capgemini 2008 All Rights Reserved
Agenda

Introduction
     Model driven development
     Pragmatic model driven development
     Our approach
     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



                                                                              <TITLE>      4
                                          © Copyright Capgemini 2008 All Rights Reserved
Model driven development
        An introduction




                                                               <TITLE>      5
                           © Copyright Capgemini 2008 All Rights Reserved
Model driven development                                                                     SH


Why?
    Bridge gap between design and code
    Improve quality of delivered software
    Raise productivity
    Achieve platform and framework independency
    Increase testability
How?
    Proprietary techniques
    DSL’s (textual and graphical)
    UML
    Database
    India
What?
    Modeling tool code generation
    Development tool code generation
    Intermediate code generation




                                                                                      <TITLE>      6
                                                  © Copyright Capgemini 2008 All Rights Reserved
A pragmatic approach
  To model driven development




                                                                    <TITLE>      7
                                © Copyright Capgemini 2008 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)

                                                                                                                      <TITLE>      8
                                                                                  © Copyright Capgemini 2008 All Rights Reserved
Smart use cases
What makes a use cases smart?




                                                                    <TITLE>      9
                                © Copyright Capgemini 2008 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
                                                                                    <TITLE>      10
                                                © Copyright Capgemini 2008 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’
                                                       Format         Textual                    Visual
     A single use case describes
     a single elementary business process
                                                                      Very
     Differ in granularity too much                    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



                                                                                                                    <TITLE>      11
                                                                                © Copyright Capgemini 2008 All Rights Reserved
Modeling smart use cases



                                                               <TITLE>      12
                           © Copyright Capgemini 2008 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




                                                                                    <TITLE>      13
                                                © Copyright Capgemini 2008 All Rights Reserved
Identifying sub-function level use cases
            sub-

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



                                                                                 <TITLE>      14
                                             © Copyright Capgemini 2008 All Rights Reserved
Modeling smart use cases




                                                               <TITLE>      15
                           © Copyright Capgemini 2008 All Rights Reserved
Smart use case stereotypes
       Decorating the model




                                                                  <TITLE>      16
                              © Copyright Capgemini 2008 All Rights Reserved
Smart use case stereotypes                                                         RM


What?
   Classify model elements
   Do not add meaning to model
   Define custom stereotypes
Why?
   Speed up analysis and design
   Map design to software architecture
   Generate lots of code!
   Standarize functional testing




                                                                             <TITLE>      17
                                         © Copyright Capgemini 2008 All Rights Reserved
Adding stereotypes                                              SH




                                                         <TITLE>      18
                     © Copyright Capgemini 2008 All Rights Reserved
Adding stereotypes




                                                         <TITLE>      19
                     © Copyright Capgemini 2008 All Rights Reserved
Smart use case stereotypes




                                                                 <TITLE>      20
                             © Copyright Capgemini 2008 All Rights Reserved
Mapping to software architecture
      Smart use cases and domain design




                                                                              <TITLE>      21
                                          © Copyright Capgemini 2008 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
Data / Services                                        Queries
                                                      [Mapping]




Outside world                                               Database



                                                                          <TITLE>      22
                                      © Copyright Capgemini 2008 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
Data / Services                                                      Service locators
                                                                          [Mapping]


                  Exact   SAP   BizTalk        Java
Outside world                                                              Services / ESB



                                                                                                  <TITLE>      23
                                                              © Copyright Capgemini 2008 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]



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


                  Exact   SAP   BizTalk      Java
                                                                           Database
Outside world
                                                                       Services / ESB



                                                                                              <TITLE>      24
                                                          © Copyright Capgemini 2008 All Rights Reserved
Domain driven design
     A brief introduction




                                                                <TITLE>      25
                            © Copyright Capgemini 2008 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




                                                                                             <TITLE>      26
                                                         © Copyright Capgemini 2008 All Rights Reserved
Domain driven design

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



                                                                 <TITLE>      27
                             © Copyright Capgemini 2008 All Rights Reserved
Example – Class diagram




                                                              <TITLE>      28
                          © Copyright Capgemini 2008 All Rights Reserved
Defining classes
Properties and property types




                                                                    <TITLE>      29
                                © Copyright Capgemini 2008 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




                                                                                           <TITLE>      30
                                                       © Copyright Capgemini 2008 All Rights Reserved
Value object



                                                   <TITLE>      31
               © Copyright Capgemini 2008 All Rights Reserved
Value object - Implementing




                                                                  <TITLE>      32
                              © Copyright Capgemini 2008 All Rights Reserved
Value object – In use




                                                            <TITLE>      33
                        © Copyright Capgemini 2008 All Rights Reserved
Smart reference



                                                      <TITLE>      34
                  © Copyright Capgemini 2008 All Rights Reserved
Smart reference - Table




                                                              <TITLE>      35
                          © Copyright Capgemini 2008 All Rights Reserved
Smart reference - In entity




                                                                  <TITLE>      36
                              © Copyright Capgemini 2008 All Rights Reserved
Smart reference – In use




                                                               <TITLE>      37
                           © Copyright Capgemini 2008 All Rights Reserved
Text templating



                                                      <TITLE>      38
                  © Copyright Capgemini 2008 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 withour losing code
     Partial classes
     Inherited classes
     Marking code



                                                                                  <TITLE>      39
                                              © Copyright Capgemini 2008 All Rights Reserved
Tobago MDA – www.accelerateddeliveryplatform.com




                                                                                <TITLE>      40
                                            © Copyright Capgemini 2008 All Rights Reserved
Tobago MDA




                                                 <TITLE>      41
             © Copyright Capgemini 2008 All Rights Reserved
Tobago MDA




                                                 <TITLE>      42
             © Copyright Capgemini 2008 All Rights Reserved
Model driven development - Template engines                                             RM




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




                                                                                    <TITLE>      43
                                                © Copyright Capgemini 2008 All Rights Reserved
Freemarker
                                                   Sitemesh
Presentation
                                                  DisplayTag



                                               Struts2
Process                                   XWork Actions


                  Spring
                                     EJB3 Services
Data / Services            EJB3 DataAccessObjects


                  Spring
                               JPA Domain objects
                                           Enums
Domain
                                     Value objects
                                 Smart references



Outside world                                             MySQL



                                                                   <TITLE>      44
                               © Copyright Capgemini 2008 All Rights Reserved
Model driven development - Templates




                                                                           <TITLE>      45
                                       © Copyright Capgemini 2008 All Rights Reserved
Generate many things e.g. Table create scripts




                                                                                     <TITLE>      46
                                                 © Copyright Capgemini 2008 All Rights Reserved
Generate many things e.g. Table create scripts




                                                                                     <TITLE>      47
                                                 © Copyright Capgemini 2008 All Rights Reserved
Generating code
     Demo!




                                                      <TITLE>      48
                  © Copyright Capgemini 2008 All Rights Reserved
www.accelerateddeliveryplatform.com                                              SH




                                                                          <TITLE>      49
                                      © Copyright Capgemini 2008 All Rights Reserved
References and questions
        www.accelerateddeliveryplatform.com

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

Twitter: aahoogendoorn LinkedIn: aahoogendoorn rodym


                                                                                     <TITLE>      50
                                                 © Copyright Capgemini 2008 All Rights Reserved

Contenu connexe

Tendances

Branding extract propose design strategy style design 2 powerpoint ppt slides.
Branding extract propose design strategy style design 2 powerpoint ppt slides.Branding extract propose design strategy style design 2 powerpoint ppt slides.
Branding extract propose design strategy style design 2 powerpoint ppt slides.SlideTeam.net
 
Branding extract propose design process style design 2 powerpoint ppt templates.
Branding extract propose design process style design 2 powerpoint ppt templates.Branding extract propose design process style design 2 powerpoint ppt templates.
Branding extract propose design process style design 2 powerpoint ppt templates.SlideTeam.net
 
Branding extract propose design strategy style design 2 powerpoint presentati...
Branding extract propose design strategy style design 2 powerpoint presentati...Branding extract propose design strategy style design 2 powerpoint presentati...
Branding extract propose design strategy style design 2 powerpoint presentati...SlideTeam.net
 
Branding extract propose design strategy style design 2 powerpoint presentati...
Branding extract propose design strategy style design 2 powerpoint presentati...Branding extract propose design strategy style design 2 powerpoint presentati...
Branding extract propose design strategy style design 2 powerpoint presentati...SlideTeam.net
 
Branding extract propose design strategy design 2 powerpoint presentation tem...
Branding extract propose design strategy design 2 powerpoint presentation tem...Branding extract propose design strategy design 2 powerpoint presentation tem...
Branding extract propose design strategy design 2 powerpoint presentation tem...SlideTeam.net
 
Branding extract propose design process style design 2 powerpoint presentatio...
Branding extract propose design process style design 2 powerpoint presentatio...Branding extract propose design process style design 2 powerpoint presentatio...
Branding extract propose design process style design 2 powerpoint presentatio...SlideTeam.net
 
Branding extract propose design strategy design 2 powerpoint ppt templates.
Branding extract propose design strategy design 2 powerpoint ppt templates.Branding extract propose design strategy design 2 powerpoint ppt templates.
Branding extract propose design strategy design 2 powerpoint ppt templates.SlideTeam.net
 
Branding extract propose design strategy design 2 powerpoint presentation sli...
Branding extract propose design strategy design 2 powerpoint presentation sli...Branding extract propose design strategy design 2 powerpoint presentation sli...
Branding extract propose design strategy design 2 powerpoint presentation sli...SlideTeam.net
 
Branding extract propose design strategy style design 2 powerpoint ppt templa...
Branding extract propose design strategy style design 2 powerpoint ppt templa...Branding extract propose design strategy style design 2 powerpoint ppt templa...
Branding extract propose design strategy style design 2 powerpoint ppt templa...SlideTeam.net
 
Branding extract propose design process design 2 powerpoint presentation slides.
Branding extract propose design process design 2 powerpoint presentation slides.Branding extract propose design process design 2 powerpoint presentation slides.
Branding extract propose design process design 2 powerpoint presentation slides.SlideTeam.net
 
Branding extract propose design process design 2 powerpoint ppt templates.
Branding extract propose design process design 2 powerpoint ppt templates.Branding extract propose design process design 2 powerpoint ppt templates.
Branding extract propose design process design 2 powerpoint ppt templates.SlideTeam.net
 
Branding extract propose design strategy design 2 powerpoint ppt slides.
Branding extract propose design strategy design 2 powerpoint ppt slides.Branding extract propose design strategy design 2 powerpoint ppt slides.
Branding extract propose design strategy design 2 powerpoint ppt slides.SlideTeam.net
 
Branding extract propose design process design 2 powerpoint presentation temp...
Branding extract propose design process design 2 powerpoint presentation temp...Branding extract propose design process design 2 powerpoint presentation temp...
Branding extract propose design process design 2 powerpoint presentation temp...SlideTeam.net
 
Silverlight 4 & Windows Phone 7 at Zup Zip Black Coffee#5
Silverlight 4 & Windows Phone 7 at Zup Zip Black Coffee#5Silverlight 4 & Windows Phone 7 at Zup Zip Black Coffee#5
Silverlight 4 & Windows Phone 7 at Zup Zip Black Coffee#5SoftEngine
 
Mee go是您的新机遇
Mee go是您的新机遇Mee go是您的新机遇
Mee go是您的新机遇OpenSourceCamp
 
Wc Mand Connectors2
Wc Mand Connectors2Wc Mand Connectors2
Wc Mand Connectors2day
 
The current architecture of TYPO3 5.0
The current architecture of TYPO3 5.0The current architecture of TYPO3 5.0
The current architecture of TYPO3 5.0Robert Lemke
 
08 Ace 2010 Aras Roadmap
08 Ace 2010 Aras Roadmap08 Ace 2010 Aras Roadmap
08 Ace 2010 Aras RoadmapProdeos
 
03.egovFrame Runtime Environment Training Book
03.egovFrame Runtime Environment Training Book03.egovFrame Runtime Environment Training Book
03.egovFrame Runtime Environment Training BookChuong Nguyen
 

Tendances (20)

Branding extract propose design strategy style design 2 powerpoint ppt slides.
Branding extract propose design strategy style design 2 powerpoint ppt slides.Branding extract propose design strategy style design 2 powerpoint ppt slides.
Branding extract propose design strategy style design 2 powerpoint ppt slides.
 
Branding extract propose design process style design 2 powerpoint ppt templates.
Branding extract propose design process style design 2 powerpoint ppt templates.Branding extract propose design process style design 2 powerpoint ppt templates.
Branding extract propose design process style design 2 powerpoint ppt templates.
 
Branding extract propose design strategy style design 2 powerpoint presentati...
Branding extract propose design strategy style design 2 powerpoint presentati...Branding extract propose design strategy style design 2 powerpoint presentati...
Branding extract propose design strategy style design 2 powerpoint presentati...
 
Branding extract propose design strategy style design 2 powerpoint presentati...
Branding extract propose design strategy style design 2 powerpoint presentati...Branding extract propose design strategy style design 2 powerpoint presentati...
Branding extract propose design strategy style design 2 powerpoint presentati...
 
Branding extract propose design strategy design 2 powerpoint presentation tem...
Branding extract propose design strategy design 2 powerpoint presentation tem...Branding extract propose design strategy design 2 powerpoint presentation tem...
Branding extract propose design strategy design 2 powerpoint presentation tem...
 
Branding extract propose design process style design 2 powerpoint presentatio...
Branding extract propose design process style design 2 powerpoint presentatio...Branding extract propose design process style design 2 powerpoint presentatio...
Branding extract propose design process style design 2 powerpoint presentatio...
 
Branding extract propose design strategy design 2 powerpoint ppt templates.
Branding extract propose design strategy design 2 powerpoint ppt templates.Branding extract propose design strategy design 2 powerpoint ppt templates.
Branding extract propose design strategy design 2 powerpoint ppt templates.
 
Branding extract propose design strategy design 2 powerpoint presentation sli...
Branding extract propose design strategy design 2 powerpoint presentation sli...Branding extract propose design strategy design 2 powerpoint presentation sli...
Branding extract propose design strategy design 2 powerpoint presentation sli...
 
Branding extract propose design strategy style design 2 powerpoint ppt templa...
Branding extract propose design strategy style design 2 powerpoint ppt templa...Branding extract propose design strategy style design 2 powerpoint ppt templa...
Branding extract propose design strategy style design 2 powerpoint ppt templa...
 
Branding extract propose design process design 2 powerpoint presentation slides.
Branding extract propose design process design 2 powerpoint presentation slides.Branding extract propose design process design 2 powerpoint presentation slides.
Branding extract propose design process design 2 powerpoint presentation slides.
 
Branding extract propose design process design 2 powerpoint ppt templates.
Branding extract propose design process design 2 powerpoint ppt templates.Branding extract propose design process design 2 powerpoint ppt templates.
Branding extract propose design process design 2 powerpoint ppt templates.
 
Branding extract propose design strategy design 2 powerpoint ppt slides.
Branding extract propose design strategy design 2 powerpoint ppt slides.Branding extract propose design strategy design 2 powerpoint ppt slides.
Branding extract propose design strategy design 2 powerpoint ppt slides.
 
Branding extract propose design process design 2 powerpoint presentation temp...
Branding extract propose design process design 2 powerpoint presentation temp...Branding extract propose design process design 2 powerpoint presentation temp...
Branding extract propose design process design 2 powerpoint presentation temp...
 
Silverlight 4 & Windows Phone 7 at Zup Zip Black Coffee#5
Silverlight 4 & Windows Phone 7 at Zup Zip Black Coffee#5Silverlight 4 & Windows Phone 7 at Zup Zip Black Coffee#5
Silverlight 4 & Windows Phone 7 at Zup Zip Black Coffee#5
 
Mee go是您的新机遇
Mee go是您的新机遇Mee go是您的新机遇
Mee go是您的新机遇
 
Tps company profile
Tps company profileTps company profile
Tps company profile
 
Wc Mand Connectors2
Wc Mand Connectors2Wc Mand Connectors2
Wc Mand Connectors2
 
The current architecture of TYPO3 5.0
The current architecture of TYPO3 5.0The current architecture of TYPO3 5.0
The current architecture of TYPO3 5.0
 
08 Ace 2010 Aras Roadmap
08 Ace 2010 Aras Roadmap08 Ace 2010 Aras Roadmap
08 Ace 2010 Aras Roadmap
 
03.egovFrame Runtime Environment Training Book
03.egovFrame Runtime Environment Training Book03.egovFrame Runtime Environment Training Book
03.egovFrame Runtime Environment Training Book
 

En vedette

MODEL-DRIVEN ENGINEERING (MDE) in Practice
MODEL-DRIVEN ENGINEERING (MDE) in PracticeMODEL-DRIVEN ENGINEERING (MDE) in Practice
MODEL-DRIVEN ENGINEERING (MDE) in PracticeHussein Alshkhir
 
Query Views Transformations (QVT)
Query Views Transformations (QVT)Query Views Transformations (QVT)
Query Views Transformations (QVT)Hussein Alshkhir
 
Promise 2011: "Are Change Metrics Good Predictors for an Evolving Software Pr...
Promise 2011: "Are Change Metrics Good Predictors for an Evolving Software Pr...Promise 2011: "Are Change Metrics Good Predictors for an Evolving Software Pr...
Promise 2011: "Are Change Metrics Good Predictors for an Evolving Software Pr...CS, NcState
 
Industrializing Software Product Line Development for Small Companies (short ...
Industrializing Software Product Line Development for Small Companies (short ...Industrializing Software Product Line Development for Small Companies (short ...
Industrializing Software Product Line Development for Small Companies (short ...Anton Khritankov
 
MindManager Users: Spotlight on Project Management
MindManager Users: Spotlight on Project ManagementMindManager Users: Spotlight on Project Management
MindManager Users: Spotlight on Project ManagementMindjet
 
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...Jordi Cabot
 
Software Product Line
Software Product LineSoftware Product Line
Software Product LineHimanshu
 
Mindjet MindManager Features
Mindjet MindManager FeaturesMindjet MindManager Features
Mindjet MindManager Featureskiwiscanfly
 
Software product line
Software product lineSoftware product line
Software product lineHimanshu
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product lineMajong DevJfu
 

En vedette (13)

MODEL-DRIVEN ENGINEERING (MDE) in Practice
MODEL-DRIVEN ENGINEERING (MDE) in PracticeMODEL-DRIVEN ENGINEERING (MDE) in Practice
MODEL-DRIVEN ENGINEERING (MDE) in Practice
 
Query Views Transformations (QVT)
Query Views Transformations (QVT)Query Views Transformations (QVT)
Query Views Transformations (QVT)
 
Promise 2011: "Are Change Metrics Good Predictors for an Evolving Software Pr...
Promise 2011: "Are Change Metrics Good Predictors for an Evolving Software Pr...Promise 2011: "Are Change Metrics Good Predictors for an Evolving Software Pr...
Promise 2011: "Are Change Metrics Good Predictors for an Evolving Software Pr...
 
Using MindManager 2012 for decision trees
Using MindManager 2012 for decision treesUsing MindManager 2012 for decision trees
Using MindManager 2012 for decision trees
 
Industrializing Software Product Line Development for Small Companies (short ...
Industrializing Software Product Line Development for Small Companies (short ...Industrializing Software Product Line Development for Small Companies (short ...
Industrializing Software Product Line Development for Small Companies (short ...
 
MindManager Users: Spotlight on Project Management
MindManager Users: Spotlight on Project ManagementMindManager Users: Spotlight on Project Management
MindManager Users: Spotlight on Project Management
 
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...
 
Software Product Line
Software Product LineSoftware Product Line
Software Product Line
 
Mindjetmindmanager8
Mindjetmindmanager8 Mindjetmindmanager8
Mindjetmindmanager8
 
Mindjet MindManager Features
Mindjet MindManager FeaturesMindjet MindManager Features
Mindjet MindManager Features
 
Software product line
Software product lineSoftware product line
Software product line
 
Mind Mapping for CPAs
Mind Mapping for CPAsMind Mapping for CPAs
Mind Mapping for CPAs
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product line
 

Similaire à 20090410 J Spring Pragmatic Model Driven Development In Java Using Smart

Model Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & FutureModel Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & Futureelliando dias
 
M3 Modernization Case Study
M3 Modernization Case StudyM3 Modernization Case Study
M3 Modernization Case StudyADC Austin Tech
 
Lucid IT & UXC Consulting: The Cloud Opportunity: Building on Your Investment...
Lucid IT & UXC Consulting: The Cloud Opportunity: Building on Your Investment...Lucid IT & UXC Consulting: The Cloud Opportunity: Building on Your Investment...
Lucid IT & UXC Consulting: The Cloud Opportunity: Building on Your Investment...j_white
 
Aras ALM Workshop for PLM Configuration Management
Aras ALM Workshop for PLM Configuration ManagementAras ALM Workshop for PLM Configuration Management
Aras ALM Workshop for PLM Configuration ManagementAras
 
Romulus Project start version en
Romulus Project start version enRomulus Project start version en
Romulus Project start version enGrupo Gesfor I+D+i
 
Aras PLM Roadmap
Aras PLM RoadmapAras PLM Roadmap
Aras PLM RoadmapAras
 
Grails At Linked
Grails At LinkedGrails At Linked
Grails At LinkedLinkedIn
 
Lucid IT & UXC Consulting: The Cloud Opportunity: Building on Your Investment...
Lucid IT & UXC Consulting: The Cloud Opportunity: Building on Your Investment...Lucid IT & UXC Consulting: The Cloud Opportunity: Building on Your Investment...
Lucid IT & UXC Consulting: The Cloud Opportunity: Building on Your Investment...j_white
 
Aras Innovator PLM Deployment Methodology
Aras Innovator PLM Deployment MethodologyAras Innovator PLM Deployment Methodology
Aras Innovator PLM Deployment MethodologyAras
 
Web 2.0 And The End Of DITA
Web 2.0 And The End Of DITAWeb 2.0 And The End Of DITA
Web 2.0 And The End Of DITAJoe Gollner
 
Aras Vision and Roadmap with Aras Innovator PLM Software
Aras Vision and Roadmap with Aras Innovator PLM SoftwareAras Vision and Roadmap with Aras Innovator PLM Software
Aras Vision and Roadmap with Aras Innovator PLM SoftwareAras
 
Adopting Agile Tools & Methods In A Legacy Context
Adopting Agile Tools & Methods In A Legacy ContextAdopting Agile Tools & Methods In A Legacy Context
Adopting Agile Tools & Methods In A Legacy ContextXavier Warzee
 
Build, train and deploy ML models with SageMaker (October 2019)
Build, train and deploy ML models with SageMaker (October 2019)Build, train and deploy ML models with SageMaker (October 2019)
Build, train and deploy ML models with SageMaker (October 2019)Julien SIMON
 
Framework Engineering
Framework EngineeringFramework Engineering
Framework EngineeringYoungSu Son
 
Content Oriented Architectures: Putting Content at the Center of CM Projects
Content Oriented Architectures: Putting Content at the Center of CM ProjectsContent Oriented Architectures: Putting Content at the Center of CM Projects
Content Oriented Architectures: Putting Content at the Center of CM ProjectsScott Abel
 
Codecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San JoseCodecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San JoseFabian Lange
 

Similaire à 20090410 J Spring Pragmatic Model Driven Development In Java Using Smart (20)

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
 
M3 Modernization Case Study
M3 Modernization Case StudyM3 Modernization Case Study
M3 Modernization Case Study
 
Lucid IT & UXC Consulting: The Cloud Opportunity: Building on Your Investment...
Lucid IT & UXC Consulting: The Cloud Opportunity: Building on Your Investment...Lucid IT & UXC Consulting: The Cloud Opportunity: Building on Your Investment...
Lucid IT & UXC Consulting: The Cloud Opportunity: Building on Your Investment...
 
Understanding Mda
Understanding MdaUnderstanding Mda
Understanding Mda
 
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
 
Romulus Project start version en
Romulus Project start version enRomulus Project start version en
Romulus Project start version en
 
Aras PLM Roadmap
Aras PLM RoadmapAras PLM Roadmap
Aras PLM Roadmap
 
Grails At Linked
Grails At LinkedGrails At Linked
Grails At Linked
 
Grails at Linkedin
Grails at LinkedinGrails at Linkedin
Grails at Linkedin
 
Lucid IT & UXC Consulting: The Cloud Opportunity: Building on Your Investment...
Lucid IT & UXC Consulting: The Cloud Opportunity: Building on Your Investment...Lucid IT & UXC Consulting: The Cloud Opportunity: Building on Your Investment...
Lucid IT & UXC Consulting: The Cloud Opportunity: Building on Your Investment...
 
Aras Innovator PLM Deployment Methodology
Aras Innovator PLM Deployment MethodologyAras Innovator PLM Deployment Methodology
Aras Innovator PLM Deployment Methodology
 
Web 2.0 And The End Of DITA
Web 2.0 And The End Of DITAWeb 2.0 And The End Of DITA
Web 2.0 And The End Of DITA
 
CV
CVCV
CV
 
Aras Vision and Roadmap with Aras Innovator PLM Software
Aras Vision and Roadmap with Aras Innovator PLM SoftwareAras Vision and Roadmap with Aras Innovator PLM Software
Aras Vision and Roadmap with Aras Innovator PLM Software
 
Evento SugarCRM 2008 - Corporate Overview
Evento SugarCRM 2008 - Corporate OverviewEvento SugarCRM 2008 - Corporate Overview
Evento SugarCRM 2008 - Corporate Overview
 
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
 
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)
 
Framework Engineering
Framework EngineeringFramework Engineering
Framework Engineering
 
Content Oriented Architectures: Putting Content at the Center of CM Projects
Content Oriented Architectures: Putting Content at the Center of CM ProjectsContent Oriented Architectures: Putting Content at the Center of CM Projects
Content Oriented Architectures: Putting Content at the Center of CM Projects
 
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
 

Plus de Sander Hoogendoorn

Flow. The official worst software development approach in history
Flow. The official worst software development approach in historyFlow. The official worst software development approach in history
Flow. The official worst software development approach in historySander Hoogendoorn
 
It's a small world after all. How thinking small changes software big time
It's a small world after all. How thinking small changes software big timeIt's a small world after all. How thinking small changes software big time
It's a small world after all. How thinking small changes software big timeSander Hoogendoorn
 
Welcome to the world of micro-apps
Welcome to the world of micro-appsWelcome to the world of micro-apps
Welcome to the world of micro-appsSander Hoogendoorn
 
Welcome to the world of micro-applications
Welcome to the world of micro-applicationsWelcome to the world of micro-applications
Welcome to the world of micro-applicationsSander Hoogendoorn
 
Wat is agile en wat betekent het voor mij?
Wat is agile en wat betekent het voor mij?Wat is agile en wat betekent het voor mij?
Wat is agile en wat betekent het voor mij?Sander Hoogendoorn
 
20180509 - It's a small world after all. How thinking small is changing softw...
20180509 - It's a small world after all. How thinking small is changing softw...20180509 - It's a small world after all. How thinking small is changing softw...
20180509 - It's a small world after all. How thinking small is changing softw...Sander Hoogendoorn
 
W-JAX 2017 Keynote. It's a small world after all. How thinking small is chang...
W-JAX 2017 Keynote. It's a small world after all. How thinking small is chang...W-JAX 2017 Keynote. It's a small world after all. How thinking small is chang...
W-JAX 2017 Keynote. It's a small world after all. How thinking small is chang...Sander Hoogendoorn
 
Swanseacon 2017 Keynote - It's a small world after all.
Swanseacon 2017 Keynote - It's a small world after all.Swanseacon 2017 Keynote - It's a small world after all.
Swanseacon 2017 Keynote - It's a small world after all.Sander Hoogendoorn
 
Geecon Prague 2016 - Thirty months of microservices
Geecon Prague 2016 - Thirty months of microservicesGeecon Prague 2016 - Thirty months of microservices
Geecon Prague 2016 - Thirty months of microservicesSander Hoogendoorn
 
Thirty months of microservices. Stairway to heaven or highway to hell
Thirty months of microservices. Stairway to heaven or highway to hellThirty months of microservices. Stairway to heaven or highway to hell
Thirty months of microservices. Stairway to heaven or highway to hellSander Hoogendoorn
 
Beyond breaking bad. The current state of agile in ten easy lessons
Beyond breaking bad. The current state of agile in ten easy lessonsBeyond breaking bad. The current state of agile in ten easy lessons
Beyond breaking bad. The current state of agile in ten easy lessonsSander Hoogendoorn
 
Beyond breaking bad. The current state of agile in ten easy lessons
Beyond breaking bad. The current state of agile in ten easy lessonsBeyond breaking bad. The current state of agile in ten easy lessons
Beyond breaking bad. The current state of agile in ten easy lessonsSander Hoogendoorn
 
Microservices. Stairway to heaven or highway to hell
Microservices. Stairway to heaven or highway to hellMicroservices. Stairway to heaven or highway to hell
Microservices. Stairway to heaven or highway to hellSander Hoogendoorn
 
Microservices. The good, the bad and the ugly.
Microservices. The good, the bad and the ugly.Microservices. The good, the bad and the ugly.
Microservices. The good, the bad and the ugly.Sander Hoogendoorn
 
Designing and building a micro-services architecture. Stairway to heaven or a...
Designing and building a micro-services architecture. Stairway to heaven or a...Designing and building a micro-services architecture. Stairway to heaven or a...
Designing and building a micro-services architecture. Stairway to heaven or a...Sander Hoogendoorn
 
Microservices. The good the bad and the ugly
Microservices. The good the bad and the uglyMicroservices. The good the bad and the ugly
Microservices. The good the bad and the uglySander Hoogendoorn
 
Scaling agile from the ground up
Scaling agile from the ground upScaling agile from the ground up
Scaling agile from the ground upSander Hoogendoorn
 
Growing a microservices landscape (with smart use cases)
Growing a microservices landscape (with smart use cases)Growing a microservices landscape (with smart use cases)
Growing a microservices landscape (with smart use cases)Sander Hoogendoorn
 

Plus de Sander Hoogendoorn (20)

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

Dernier

Graphene Quantum Dots-Based Composites for Biomedical Applications
Graphene Quantum Dots-Based Composites for  Biomedical ApplicationsGraphene Quantum Dots-Based Composites for  Biomedical Applications
Graphene Quantum Dots-Based Composites for Biomedical Applicationsnooralam814309
 
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptxEmil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptxNeo4j
 
LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0DanBrown980551
 
Where developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingWhere developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingFrancesco Corti
 
Scenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenariosScenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenariosErol GIRAUDY
 
How to release an Open Source Dataweave Library
How to release an Open Source Dataweave LibraryHow to release an Open Source Dataweave Library
How to release an Open Source Dataweave Libraryshyamraj55
 
Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...DianaGray10
 
My key hands-on projects in Quantum, and QAI
My key hands-on projects in Quantum, and QAIMy key hands-on projects in Quantum, and QAI
My key hands-on projects in Quantum, and QAIVijayananda Mohire
 
Automation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projectsAutomation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projectsDianaGray10
 
.NET 8 ChatBot with Azure OpenAI Services.pptx
.NET 8 ChatBot with Azure OpenAI Services.pptx.NET 8 ChatBot with Azure OpenAI Services.pptx
.NET 8 ChatBot with Azure OpenAI Services.pptxHansamali Gamage
 
Patch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 updatePatch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 updateadam112203
 
IT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingIT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingMAGNIntelligence
 
Introduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its applicationIntroduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its applicationKnoldus Inc.
 
AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024Brian Pichman
 
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveKeep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveIES VE
 
2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdf2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdfThe Good Food Institute
 
UiPath Studio Web workshop series - Day 1
UiPath Studio Web workshop series  - Day 1UiPath Studio Web workshop series  - Day 1
UiPath Studio Web workshop series - Day 1DianaGray10
 
The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)IES VE
 
Flow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First FrameFlow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First FrameKapil Thakar
 
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - TechWebinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - TechProduct School
 

Dernier (20)

Graphene Quantum Dots-Based Composites for Biomedical Applications
Graphene Quantum Dots-Based Composites for  Biomedical ApplicationsGraphene Quantum Dots-Based Composites for  Biomedical Applications
Graphene Quantum Dots-Based Composites for Biomedical Applications
 
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptxEmil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
 
LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0
 
Where developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingWhere developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is going
 
Scenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenariosScenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenarios
 
How to release an Open Source Dataweave Library
How to release an Open Source Dataweave LibraryHow to release an Open Source Dataweave Library
How to release an Open Source Dataweave Library
 
Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...
 
My key hands-on projects in Quantum, and QAI
My key hands-on projects in Quantum, and QAIMy key hands-on projects in Quantum, and QAI
My key hands-on projects in Quantum, and QAI
 
Automation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projectsAutomation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projects
 
.NET 8 ChatBot with Azure OpenAI Services.pptx
.NET 8 ChatBot with Azure OpenAI Services.pptx.NET 8 ChatBot with Azure OpenAI Services.pptx
.NET 8 ChatBot with Azure OpenAI Services.pptx
 
Patch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 updatePatch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 update
 
IT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingIT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced Computing
 
Introduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its applicationIntroduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its application
 
AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024
 
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveKeep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
 
2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdf2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdf
 
UiPath Studio Web workshop series - Day 1
UiPath Studio Web workshop series  - Day 1UiPath Studio Web workshop series  - Day 1
UiPath Studio Web workshop series - Day 1
 
The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)
 
Flow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First FrameFlow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First Frame
 
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - TechWebinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
 

20090410 J Spring Pragmatic Model Driven Development In Java Using Smart

  • 1. Pragmatic model driven development in Java using smart use cases and domain driven development Sander Hoogendoorn, Capgemini Rody Middelkoop, Avisi <TITLE> 1 © Copyright Capgemini 2008 All Rights Reserved
  • 2. Sander Hoogendoorn Capgemini Principal technology officer Capgemini agile thought leader Certified global 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 <TITLE> 2 © Copyright Capgemini 2008 All Rights Reserved
  • 3. Rody Middelkoop Avisi Technical consultant Hogeschool Arnhem Nijmegen (HAN) Lecturer Software Engineering Other Sun Certified Java Programmer / Developer Author of several articles Contributor Livre Speaker at conferences Web www.avisi.nl rodymiddelkoop.blogspot.com <TITLE> 3 © Copyright Capgemini 2008 All Rights Reserved
  • 4. Agenda Introduction Model driven development Pragmatic model driven development Our approach 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 <TITLE> 4 © Copyright Capgemini 2008 All Rights Reserved
  • 5. Model driven development An introduction <TITLE> 5 © Copyright Capgemini 2008 All Rights Reserved
  • 6. Model driven development SH Why? Bridge gap between design and code Improve quality of delivered software Raise productivity Achieve platform and framework independency Increase testability How? Proprietary techniques DSL’s (textual and graphical) UML Database India What? Modeling tool code generation Development tool code generation Intermediate code generation <TITLE> 6 © Copyright Capgemini 2008 All Rights Reserved
  • 7. A pragmatic approach To model driven development <TITLE> 7 © Copyright Capgemini 2008 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) <TITLE> 8 © Copyright Capgemini 2008 All Rights Reserved
  • 9. Smart use cases What makes a use cases smart? <TITLE> 9 © Copyright Capgemini 2008 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 <TITLE> 10 © Copyright Capgemini 2008 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’ Format Textual Visual A single use case describes a single elementary business process Very Differ in granularity too much 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 <TITLE> 11 © Copyright Capgemini 2008 All Rights Reserved
  • 12. Modeling smart use cases <TITLE> 12 © Copyright Capgemini 2008 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 <TITLE> 13 © Copyright Capgemini 2008 All Rights Reserved
  • 14. Identifying sub-function level use cases sub- 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 <TITLE> 14 © Copyright Capgemini 2008 All Rights Reserved
  • 15. Modeling smart use cases <TITLE> 15 © Copyright Capgemini 2008 All Rights Reserved
  • 16. Smart use case stereotypes Decorating the model <TITLE> 16 © Copyright Capgemini 2008 All Rights Reserved
  • 17. Smart use case stereotypes RM What? Classify model elements Do not add meaning to model Define custom stereotypes Why? Speed up analysis and design Map design to software architecture Generate lots of code! Standarize functional testing <TITLE> 17 © Copyright Capgemini 2008 All Rights Reserved
  • 18. Adding stereotypes SH <TITLE> 18 © Copyright Capgemini 2008 All Rights Reserved
  • 19. Adding stereotypes <TITLE> 19 © Copyright Capgemini 2008 All Rights Reserved
  • 20. Smart use case stereotypes <TITLE> 20 © Copyright Capgemini 2008 All Rights Reserved
  • 21. Mapping to software architecture Smart use cases and domain design <TITLE> 21 © Copyright Capgemini 2008 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 Data / Services Queries [Mapping] Outside world Database <TITLE> 22 © Copyright Capgemini 2008 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 Data / Services Service locators [Mapping] Exact SAP BizTalk Java Outside world Services / ESB <TITLE> 23 © Copyright Capgemini 2008 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] Table Gateways / Service Gateways Data / Services Queries / Service Locators [Mapping] Exact SAP BizTalk Java Database Outside world Services / ESB <TITLE> 24 © Copyright Capgemini 2008 All Rights Reserved
  • 25. Domain driven design A brief introduction <TITLE> 25 © Copyright Capgemini 2008 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 <TITLE> 26 © Copyright Capgemini 2008 All Rights Reserved
  • 27. Domain driven design Vocabulary Entity / Domain object Association Value object Aggregate Repository Factory Service Additional vocabulary Enumeration Smart reference <TITLE> 27 © Copyright Capgemini 2008 All Rights Reserved
  • 28. Example – Class diagram <TITLE> 28 © Copyright Capgemini 2008 All Rights Reserved
  • 29. Defining classes Properties and property types <TITLE> 29 © Copyright Capgemini 2008 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 <TITLE> 30 © Copyright Capgemini 2008 All Rights Reserved
  • 31. Value object <TITLE> 31 © Copyright Capgemini 2008 All Rights Reserved
  • 32. Value object - Implementing <TITLE> 32 © Copyright Capgemini 2008 All Rights Reserved
  • 33. Value object – In use <TITLE> 33 © Copyright Capgemini 2008 All Rights Reserved
  • 34. Smart reference <TITLE> 34 © Copyright Capgemini 2008 All Rights Reserved
  • 35. Smart reference - Table <TITLE> 35 © Copyright Capgemini 2008 All Rights Reserved
  • 36. Smart reference - In entity <TITLE> 36 © Copyright Capgemini 2008 All Rights Reserved
  • 37. Smart reference – In use <TITLE> 37 © Copyright Capgemini 2008 All Rights Reserved
  • 38. Text templating <TITLE> 38 © Copyright Capgemini 2008 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 withour losing code Partial classes Inherited classes Marking code <TITLE> 39 © Copyright Capgemini 2008 All Rights Reserved
  • 40. Tobago MDA – www.accelerateddeliveryplatform.com <TITLE> 40 © Copyright Capgemini 2008 All Rights Reserved
  • 41. Tobago MDA <TITLE> 41 © Copyright Capgemini 2008 All Rights Reserved
  • 42. Tobago MDA <TITLE> 42 © Copyright Capgemini 2008 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 <TITLE> 43 © Copyright Capgemini 2008 All Rights Reserved
  • 44. Freemarker Sitemesh Presentation DisplayTag Struts2 Process XWork Actions Spring EJB3 Services Data / Services EJB3 DataAccessObjects Spring JPA Domain objects Enums Domain Value objects Smart references Outside world MySQL <TITLE> 44 © Copyright Capgemini 2008 All Rights Reserved
  • 45. Model driven development - Templates <TITLE> 45 © Copyright Capgemini 2008 All Rights Reserved
  • 46. Generate many things e.g. Table create scripts <TITLE> 46 © Copyright Capgemini 2008 All Rights Reserved
  • 47. Generate many things e.g. Table create scripts <TITLE> 47 © Copyright Capgemini 2008 All Rights Reserved
  • 48. Generating code Demo! <TITLE> 48 © Copyright Capgemini 2008 All Rights Reserved
  • 49. www.accelerateddeliveryplatform.com SH <TITLE> 49 © Copyright Capgemini 2008 All Rights Reserved
  • 50. References and questions www.accelerateddeliveryplatform.com sander.hoogendoorn@capgemini.com r.r.middelkoop@avisi.nl Twitter: aahoogendoorn LinkedIn: aahoogendoorn rodym <TITLE> 50 © Copyright Capgemini 2008 All Rights Reserved