Process, techniques, architecture and patterns
for implementing smart use cases in agile projects
              www.accele...
Sander Hoogendoorn

Capgemini
      Principal technology officer
      Capgemini global agile thought leader
      Certifi...
UML      ASP.NET                            Enterprise Architect
                             Aspect Oriented Programming
...
A short story of what went wrong
Studies conducted over the last years show that 66% of all IT projects fail. This
means that they are 20% or more over bud...
Why waterfall won’t work
          Help!
Waterfall?




                    WWW.SANDERHOOGENDOORN.COM                          7
             © 2008 Copyright Sand...
Waterfall

Characteristics
    Fixed date, fixed price, fixed features
    Single-pass model
    Milestones
    Different ...
Waterfall

Winston Royce
   Managing the Development of Large
   Software Systems, Proceedings of IEEE
   Westcon, 1970
  ...
Waterfall?




                    WWW.SANDERHOOGENDOORN.COM                          10
             © 2008 Copyright San...
Waterfall?

Research on project failure
    Of 1027 UK projects 87% failed. Waterfall
    related causes where mentioned i...
Waterfall?

Why does use of waterfall continue?
    Few people read the original white paper,
    and even less people int...
Agile software development
        Key characteristics
WWW.SANDERHOOGENDOORN.COM                          14
© 2008 Copyright Sander Hoogendoorn All Rights Reserved
Agile software development

Key characteristics
    Close collaboration of different roles
    Apply short iterations –
  ...
Considerations
Agile software development




                                    WWW.SANDERHOOGENDOORN.COM                          17
 ...
Agile software development

Benefits
     Project risks become manageable by prioritizing
     high risk work items first
...
Agile software development




                                    WWW.SANDERHOOGENDOORN.COM                          19
 ...
Agile software development

Key misconceptions
    Agile is unsuited for big projects –
    most large companies start usi...
Agile software development




                                    WWW.SANDERHOOGENDOORN.COM                          21
 ...
Agile software development

Major revolution to software development
    Different ways of collaboration
    Shortened dev...
Agile methodologies
  Overview and comparison
Extreme programming




                             WWW.SANDERHOOGENDOORN.COM                          24
               ...
Scrum




               WWW.SANDERHOOGENDOORN.COM                          25
        © 2008 Copyright Sander Hoogendoorn...
DSDM




              WWW.SANDERHOOGENDOORN.COM                          26
       © 2008 Copyright Sander Hoogendoorn Al...
Accelerated Delivery Platform


                               Process


       Agile        Smart        Smart         Ag...
Smart
Smart




  Create
                                 Round up
  project
                                 software
 proposal...
Characteristics Smart

Stages
    Propose
    Define scope and size of project, results in
    proposal
    Scope
    Elab...
Smart Iterations



                        Prioritize
                        use cases




           Evaluate
         ...
Smart Use Case Cycle
                                               Plan and
                                             ...
Smart

Typically
    Efficient synergy between project
    management and technical practices
    Applies Smart use cases
...
Smart use cases
What makes a use cases smart?
Different levels of use cases
                                    Merge
                                  companies

 Clou...
Different levels of use cases

‘Regular’ use cases
                                                                      R...
Approach
Where do smart use cases come from?
Approach
          Cloud Level               Kite Level      Sea Level                            Fish Level




         ...
Business process hierarchy




                                    WWW.SANDERHOOGENDOORN.COM                          39
 ...
Smart use cases




                         WWW.SANDERHOOGENDOORN.COM                          40
                  © 200...
Describing use cases




                              WWW.SANDERHOOGENDOORN.COM                          41
             ...
Smart estimation
Weight of smart use cases

1. Piece of cake
     Simple selection, simple maintenance
2. Moderate
     Normal selection
3....
Weight of smart use cases



                            2



                                    8



           4
      ...
Smart use case stereotypes




                                    WWW.SANDERHOOGENDOORN.COM                          45
 ...
Smart estimation poker

Goal
       Estimate complexity of individual smart use cases
Technique
       Organize workshop w...
Smart estimation poker




                                WWW.SANDERHOOGENDOORN.COM                          47
         ...
Smart estimation poker




                                WWW.SANDERHOOGENDOORN.COM                          48
         ...
Using an agile dashboard
      Pragmatic progress
Using an agile dashboard

What is a project dashboard?
     A project dashboard clearly visualizes scope and
     progress...
Agile dashboarding
                                     Easy to
                                   understand
            ...
Available
                                   Project
  everywhere
                                  progress



Estimate t...
Negative velocity,
possibly new use
      cases




                     Velocity
                      varies


   Regist...
Implementing smart use cases
     Just-enough software architecture
quot;When preparing to travel, lay out
      all your clothes and all your money.
Then take half the clothes and twice the...
WWW.SANDERHOOGENDOORN.COM                          56
© 2008 Copyright Sander Hoogendoorn All Rights Reserved
WWW.SANDERHOOGENDOORN.COM                          57
© 2008 Copyright Sander Hoogendoorn All Rights Reserved
WWW.SANDERHOOGENDOORN.COM                          58
© 2008 Copyright Sander Hoogendoorn All Rights Reserved
WHO Needs software architecture anyway?




                                                 WWW.SANDERHOOGENDOORN.COM    ...
Just-
Just-enough software architecture
Back in the Old days … client server



               if (startdate < enddate)
                  (startdate enddate)
    ...
Back in the Old days … client server



                if ifstartdate <= enddate))
                   (startdate <enddate...
Back in the Old days … Multi tier




       if (startdate <= enddate)
          (startdate enddate)
       {…}




      ...
Back to the future … soa



               if (startdate < enddate)
                  (startdate enddate)
               {...
Back to the future … silverlight




                                          WWW.SANDERHOOGENDOORN.COM                  ...
Back to the future … Multi tier SOA




       if (startdate <= enddate)
          (startdate enddate)
       {…}




    ...
Just-
Just-enough software architecture
             Three flavors
Pages
                                                                                UserControls
Presentation
          ...
Use cases in code




                           WWW.SANDERHOOGENDOORN.COM                          69
                   ...
Pages
                                                        UserControls
Presentation
                                  ...
Domain Objects




                        WWW.SANDERHOOGENDOORN.COM                          71
                 © 2008 C...
Domain object factories




                                 WWW.SANDERHOOGENDOORN.COM                          72
       ...
Service contracts
Presentation                              Operation contracts




                                Servic...
Service interfaces




                            WWW.SANDERHOOGENDOORN.COM                          74
                 ...
Smart use cases in code
Applying smart use cases to software development

Make requirements traceable in code
    Use cases become primary citizen...
Smart Use cases in code




                                 WWW.SANDERHOOGENDOORN.COM                          77
       ...
Smart Use cases in code




                                 WWW.SANDERHOOGENDOORN.COM                          78
       ...
smart use cases in code




                                 WWW.SANDERHOOGENDOORN.COM                          79
       ...
Generating code
An introduction to model driven development
User interface            Software Architecture
                                       specification
                     ...
Model driven development – Template engines

Characteristics
    Load UML model (expressed in XMI)
    Load templates (fro...
Model driven development - Template engines



                   Properties can
                     be used in
         ...
Model driven development - Templates




                                              WWW.SANDERHOOGENDOORN.COM          ...
Generate many things e.g. Table create scripts




                                                        WWW.SANDERHOOGE...
Generating code
   A quick example
A simple smart use case model




                                       WWW.SANDERHOOGENDOORN.COM                        ...
A simple domain model




                               WWW.SANDERHOOGENDOORN.COM                          88
           ...
Using Tobago MDA




                          WWW.SANDERHOOGENDOORN.COM                          89
                   © ...
Generated code in ASP.NET




                                   WWW.SANDERHOOGENDOORN.COM                          90
   ...
Generated code in Silverlight




                                       WWW.SANDERHOOGENDOORN.COM                        ...
How light can we travel?




                                  WWW.SANDERHOOGENDOORN.COM                          92
     ...
Open community
www.accelerateddeliveryplatform.com




                                             WWW.SANDERHOOGENDOORN.COM            ...
forum.trinidadplatform.org




                                    WWW.SANDERHOOGENDOORN.COM                          95
 ...
References and questions
 www.accelerateddeliveryplatform.com
     blog.sanderhoogendoorn.org
                 or
 sander....
Upcoming SlideShare
Loading in …5
×

20081027 Smart Use Cases Hogeschool Arnhem Nijmegen

2,329 views

Published on

Slide deck for guest lecture I did at the Hogeschool Arnhem Nijmegen (HAN) in December. Uploaded on request. Topics: Waterfall, Agile, Scrum, Smart, XP, Smart use cases, Software Architecture, Domain driven design, Model driven development, Code generation, Frameworks.

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,329
On SlideShare
0
From Embeds
0
Number of Embeds
665
Actions
Shares
0
Downloads
0
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

20081027 Smart Use Cases Hogeschool Arnhem Nijmegen

  1. 1. Process, techniques, architecture and patterns for implementing smart use cases in agile projects www.accelerateddeliveryplatform.com
  2. 2. Sander Hoogendoorn Capgemini Principal technology officer Capgemini global agile thought leader Certified global software engineer (SE4) Accelerated Delivery Platform Other Author books (UML, agile) and +200 articles Speaker at international conferences Microsoft Visual Studio Advisory Board Columnist Software Release Magazine Columnist SDN Magazine Editorial board Software Release Magazine Editorial board Tijdschrift IT Management Advisory board @Portunity Web www.sanderhoogendoorn.com www.accelerateddeliveryplatform.com WWW.SANDERHOOGENDOORN.COM 2 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  3. 3. UML ASP.NET Enterprise Architect Aspect Oriented Programming Design patterns MCV Frameworks Dependency injection Smart use cases Blogs WinForms Silverlight WCF WPF Object orientation Smart Software architecture Agile ADP Service oriented architecture Model driven development Stand up meetings DSL Burn down charts Visual Studio RUP Class diagrams Value objects Blend ADF Activity diagrams Testing Requirements Tobago MDA Domain driven design Waterfall User interface design PowerPoint WWW.SANDERHOOGENDOORN.COM 3 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  4. 4. A short story of what went wrong
  5. 5. Studies conducted over the last years show that 66% of all IT projects fail. This means that they are 20% or more over budget, 20% or more late, and fail to meet 20% or more of the business requirements for the system. 15% of projects fail completely and are canceled prior completion. The average cost overrun is 43%. 82% of the challenged projects experience time overruns. Further, only 52% of required features and functions make it into the released product. Although we see some improvements, the impact of the problem is still significant. The Standish Group estimates a total waste in the United States alone of $82 billion in 2003 (the total project spending is about $382 billion). Annually $290 billion is spent on cancelled software development project globally. WWW.SANDERHOOGENDOORN.COM 5 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  6. 6. Why waterfall won’t work Help!
  7. 7. Waterfall? WWW.SANDERHOOGENDOORN.COM 7 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  8. 8. Waterfall Characteristics Fixed date, fixed price, fixed features Single-pass model Milestones Different phases, different roles Rock solid documentation Why waterfall won’t work Fatal loss of knowledge in phase shifts Proper lack of communication No feedback Does not allow change during project Long cycles “Waterfall works perfectly, as long as you don’t allow changes during the project” WWW.SANDERHOOGENDOORN.COM 8 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  9. 9. Waterfall Winston Royce Managing the Development of Large Software Systems, Proceedings of IEEE Westcon, 1970 Do-it-twice approach “If the computer program in question is being developed for the first time, arrange matters so that the version finally delivered to the customer is actually the second version.” A 30-month project may have a 10-month throw-away pilot Necessary if there are novel elements and unknown factors Misinterpreted in DOD-STD-2167 WWW.SANDERHOOGENDOORN.COM 9 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  10. 10. Waterfall? WWW.SANDERHOOGENDOORN.COM 10 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  11. 11. Waterfall? Research on project failure Of 1027 UK projects 87% failed. Waterfall related causes where mentioned in 82% of these failed projects [Thomas01] DoD reports a failure rate of over 75% on DOD-STD-2167 projects [Jarzombek99] In 6700 projects 4 out of 5 key factors contributing to project failure relate to waterfall practices [Jones95] In 400 waterfall-oriented projects only 10% of the code was deployed, and from that, only 20% was actually used [CLW01] The Standish Group estimates a total waste in the United States alone of $82 billion in 2003 (the total project spending is about $382 billion). Annually $290 billion is spent on cancelled software development project globally. WWW.SANDERHOOGENDOORN.COM 11 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  12. 12. Waterfall? Why does use of waterfall continue? Few people read the original white paper, and even less people interpret it correctly The waterfall model is easy to explain and to remember Wrong paradigm from manufacturing (predicatable) is still used to describe software development Illusion of orderly, predicatable and accountable and even measurable process Requirements engineering continue to promote big up-front design Project managers kling to what they’ve learned in the past “Waterfall works perfectly, as long as you don’t allow changes during the project” WWW.SANDERHOOGENDOORN.COM 12 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  13. 13. Agile software development Key characteristics
  14. 14. WWW.SANDERHOOGENDOORN.COM 14 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  15. 15. Agile software development Key characteristics Close collaboration of different roles Apply short iterations – two to four weeks Apply logical and small units of work – smart use cases, user stories, features Plan and measure continuously – preferably continuously Test early and frequently Deliver working software early and frequently Additional techniques – dashboading, burn down charts, pair programming, planning games WWW.SANDERHOOGENDOORN.COM 15 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  16. 16. Considerations
  17. 17. Agile software development WWW.SANDERHOOGENDOORN.COM 17 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  18. 18. Agile software development Benefits Project risks become manageable by prioritizing high risk work items first Better fit with customers needs by allowing change and prioritizing work items continuously Complexity becomes manageable by applying small (structured) work items Trust grows rapidly due to visualizing success immediately Increased predictability by completing individual work items Higher quality software by integrated testing and close cooperation Improved communication allows for better feedback Continuously improve software development processes WWW.SANDERHOOGENDOORN.COM 18 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  19. 19. Agile software development WWW.SANDERHOOGENDOORN.COM 19 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  20. 20. Agile software development Key misconceptions Agile is unsuited for big projects – most large companies start using it Agile is unstructured – requires highly disciplined teams Agile does not deal with architecture and design Agile is for developers only – most methodologies also apply project management best practices Agile projects easily go out of scope – normally executed fixed date Allowing for changes creates overruns Agile projects are more difficult to manage WWW.SANDERHOOGENDOORN.COM 20 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  21. 21. Agile software development WWW.SANDERHOOGENDOORN.COM 21 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  22. 22. Agile software development Major revolution to software development Different ways of collaboration Shortened development cycles – iterations Fast and frequent delivery of working software Responsiveness to change Different testing strategies – early and frequent Agile methodologies Many agile methodologies exist Scrum, XP, Smart, DSDM, Evo, OpenUP MSF Agile, FDD, Crystal (Clear) Methodologies don’t do your work Tune your projects towards being agile Adopt principles, characteristics , best practices But only adopt motivated by challenges WWW.SANDERHOOGENDOORN.COM 22 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  23. 23. Agile methodologies Overview and comparison
  24. 24. Extreme programming WWW.SANDERHOOGENDOORN.COM 24 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  25. 25. Scrum WWW.SANDERHOOGENDOORN.COM 25 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  26. 26. DSDM WWW.SANDERHOOGENDOORN.COM 26 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  27. 27. Accelerated Delivery Platform Process Agile Smart Smart Agile Unified Testing Lifecycle Use Cases Estimation Dashboards Technology People Reference Model driven Open Coaching Frameworks Architectures development Community Learning WWW.SANDERHOOGENDOORN.COM 27 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  28. 28. Smart
  29. 29. Smart Create Round up project software proposal Deliver Write Maintain working project software software plan WWW.SANDERHOOGENDOORN.COM 29 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  30. 30. Characteristics Smart Stages Propose Define scope and size of project, results in proposal Scope Elaborate scope of project, results in project plan Realize Plan, design, build, test and deploy individual use-cases in short iterations, resulting in working software Finalize Code and project round up, final deployment and evaluation Manage Plan, design, build, test and deploy application maintenance in short iterations WWW.SANDERHOOGENDOORN.COM 30 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  31. 31. Smart Iterations Prioritize use cases Evaluate iteration Build use cases WWW.SANDERHOOGENDOORN.COM 31 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  32. 32. Smart Use Case Cycle Plan and prioritize Accept use cases use case Define use case Adjust logic logic Write Run test cases test cases Generate and build use case WWW.SANDERHOOGENDOORN.COM 32 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  33. 33. Smart Typically Efficient synergy between project management and technical practices Applies Smart use cases Combines well with Scrum, XP and RUP Integrates modeling and testing best practices Uses pragmatic dashboard techniques Applied in many types of projects, including .Net, Java, RIA, BI, SAP WWW.SANDERHOOGENDOORN.COM 33 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  34. 34. Smart use cases What makes a use cases smart?
  35. 35. 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 WWW.SANDERHOOGENDOORN.COM 35 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  36. 36. 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 WWW.SANDERHOOGENDOORN.COM 36 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  37. 37. Approach Where do smart use cases come from?
  38. 38. Approach Cloud Level Kite Level Sea Level Fish Level B D Hierarchical E A D A D Processes B C F Use Cases Smart Hierarchical Project C Use Cases Processes Scope D Chronological Processes WWW.SANDERHOOGENDOORN.COM 38 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  39. 39. Business process hierarchy WWW.SANDERHOOGENDOORN.COM 39 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  40. 40. Smart use cases WWW.SANDERHOOGENDOORN.COM 40 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  41. 41. Describing use cases WWW.SANDERHOOGENDOORN.COM 41 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  42. 42. Smart estimation
  43. 43. Weight of smart use cases 1. Piece of cake Simple selection, simple maintenance 2. Moderate Normal selection 3. Average Normal maintenance, normal search 4. Hard Reporting, one-many 5. Very difficult Graphs, extensive reporting, interfacing 8. Extreme, but known Complex interfacing 10. Extreme and unknown Distributed interfacing, calculations WWW.SANDERHOOGENDOORN.COM 43 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  44. 44. Weight of smart use cases 2 8 4 3 8 4 WWW.SANDERHOOGENDOORN.COM 44 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  45. 45. Smart use case stereotypes WWW.SANDERHOOGENDOORN.COM 45 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  46. 46. Smart estimation poker Goal Estimate complexity of individual smart use cases Technique Organize workshop with customer and team Owner presents individual smart use cases Participants vote Participants with most deviating scores motivate their choice Participants vote again Benefits Whole team get understanding of use cases Business and team understand and support final agreed complexity Business sometimes re-evaluates priorities based on agreed complexity WWW.SANDERHOOGENDOORN.COM 46 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  47. 47. Smart estimation poker WWW.SANDERHOOGENDOORN.COM 47 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  48. 48. Smart estimation poker WWW.SANDERHOOGENDOORN.COM 48 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  49. 49. Using an agile dashboard Pragmatic progress
  50. 50. Using an agile dashboard What is a project dashboard? A project dashboard clearly visualizes scope and progress of projects A project dashboard is used by all project members Why do projects need a dashboard? A project dashboard helps stakeholders to monitor and manage a projects progress A project dashboard can assist in gathering metrics and decide on project velocity Introducing an agile dashboard On the wall: easy-to-use wall Online: easy to distribute Visualizes progress in realizing work items Pick your stage plan, e.g. New, In Iteration, Working, Testing, Rework and Accepted Reporting on different levels WWW.SANDERHOOGENDOORN.COM 50 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  51. 51. Agile dashboarding Easy to understand categories Who is doing what? Visualize progress immediately In this case: legging behind on testing WWW.SANDERHOOGENDOORN.COM 51 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  52. 52. Available Project everywhere progress Estimate time to complete Combined with estimates Import from modeling tool Keep track of hours spent Keep track of history WWW.SANDERHOOGENDOORN.COM 52 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  53. 53. Negative velocity, possibly new use cases Velocity varies Registered Projected real time end date WWW.SANDERHOOGENDOORN.COM 53 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  54. 54. Implementing smart use cases Just-enough software architecture
  55. 55. quot;When preparing to travel, lay out all your clothes and all your money. Then take half the clothes and twice the money.quot;
  56. 56. WWW.SANDERHOOGENDOORN.COM 56 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  57. 57. WWW.SANDERHOOGENDOORN.COM 57 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  58. 58. WWW.SANDERHOOGENDOORN.COM 58 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  59. 59. WHO Needs software architecture anyway? WWW.SANDERHOOGENDOORN.COM 59 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  60. 60. Just- Just-enough software architecture
  61. 61. Back in the Old days … client server if (startdate < enddate) (startdate enddate) {…} if (startdate < enddate) (startdate enddate) {…} if (startdate < enddate) (startdate enddate) {…} if (startdate < enddate) (startdate enddate) {…} WWW.SANDERHOOGENDOORN.COM 61 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  62. 62. Back in the Old days … client server if ifstartdate <= enddate)) (startdate <enddate) ( (startdate enddate) (startdate enddate { …… } {} if (startdate < enddate) (startdate enddate) {…} if ifstartdate <= enddate)) (startdate <enddate) ( (startdate enddate) (startdate enddate { …… } {} There is no centralized location for domain logic if (startdate < enddate) (startdate enddate) {…} WWW.SANDERHOOGENDOORN.COM 62 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  63. 63. Back in the Old days … Multi tier if (startdate <= enddate) (startdate enddate) {…} if (startdate <= enddate) (startdate enddate) {…} WWW.SANDERHOOGENDOORN.COM 63 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  64. 64. Back to the future … soa if (startdate < enddate) (startdate enddate) {…} if (startdate < enddate) (startdate enddate) {…} if (startdate < enddate) (startdate enddate) {…} Exact SAP BizTalk Java WWW.SANDERHOOGENDOORN.COM 64 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  65. 65. Back to the future … silverlight WWW.SANDERHOOGENDOORN.COM 65 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  66. 66. Back to the future … Multi tier SOA if (startdate <= enddate) (startdate enddate) {…} Exact SAP BizTalk Java WWW.SANDERHOOGENDOORN.COM 66 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  67. 67. Just- Just-enough software architecture Three flavors
  68. 68. Pages UserControls Presentation Panels Use cases Process Workflow Domain objects Factories Domain Enums / Value objects / Smart references Mapping Services Service references Exact SAP BizTalk Java Outside world Services WWW.SANDERHOOGENDOORN.COM 68 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  69. 69. Use cases in code WWW.SANDERHOOGENDOORN.COM 69 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  70. 70. Pages UserControls Presentation Panels Use cases Process Workflow Domain objects Factories Domain Enums / Value objects / Smart references Mapping Table Gateways Services Queries Outside world Database WWW.SANDERHOOGENDOORN.COM 70 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  71. 71. Domain Objects WWW.SANDERHOOGENDOORN.COM 71 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  72. 72. Domain object factories WWW.SANDERHOOGENDOORN.COM 72 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  73. 73. Service contracts Presentation Operation contracts Service implementations Process Domain objects Factories Domain Enums / Value objects / Smart references Mapping Table Gateways Services Queries Outside world Database WWW.SANDERHOOGENDOORN.COM 73 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  74. 74. Service interfaces WWW.SANDERHOOGENDOORN.COM 74 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  75. 75. Smart use cases in code
  76. 76. Applying smart use cases to software development Make requirements traceable in code Use cases become primary citizens in your model and in your code, not just a sheet of paper Functional testing becomes easier Application maintenance becomes easier Re-use of requirements is possible Implement use-cases independently Implement directly in tasks Create navigation mechanism Define a navigation mechanism Handle navigation separately Execute individual tasks Use a model view controllers implementation WWW.SANDERHOOGENDOORN.COM 76 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  77. 77. Smart Use cases in code WWW.SANDERHOOGENDOORN.COM 77 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  78. 78. Smart Use cases in code WWW.SANDERHOOGENDOORN.COM 78 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  79. 79. smart use cases in code WWW.SANDERHOOGENDOORN.COM 79 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  80. 80. Generating code An introduction to model driven development
  81. 81. 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 your code using Tobago a text template Frameworks MDA engine Specifications Domain Domain objects Model Data / Service Business classes models 2. Set up your Test 3. Establish scenario’s domain model your software Databases architecture(s) WWW.SANDERHOOGENDOORN.COM 81 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  82. 82. Model driven development – Template engines Characteristics Load UML model (expressed in XMI) Load templates (from flat files) Combine elements from UML model with templates to generate deliverables Templates Templates contains code that runs in template engine Templates might use a folder model Generation process Ability to generate all or individual UML model elements Which UML model elements are supported? Generated deliverables can be code but also any other document type WWW.SANDERHOOGENDOORN.COM 82 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  83. 83. Model driven development - Template engines Properties can be used in templates Template engine knows (part of) the UML meta model WWW.SANDERHOOGENDOORN.COM 83 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  84. 84. Model driven development - Templates WWW.SANDERHOOGENDOORN.COM 84 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  85. 85. Generate many things e.g. Table create scripts WWW.SANDERHOOGENDOORN.COM 85 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  86. 86. Generating code A quick example
  87. 87. A simple smart use case model WWW.SANDERHOOGENDOORN.COM 87 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  88. 88. A simple domain model WWW.SANDERHOOGENDOORN.COM 88 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  89. 89. Using Tobago MDA WWW.SANDERHOOGENDOORN.COM 89 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  90. 90. Generated code in ASP.NET WWW.SANDERHOOGENDOORN.COM 90 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  91. 91. Generated code in Silverlight WWW.SANDERHOOGENDOORN.COM 91 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  92. 92. How light can we travel? WWW.SANDERHOOGENDOORN.COM 92 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  93. 93. Open community
  94. 94. www.accelerateddeliveryplatform.com WWW.SANDERHOOGENDOORN.COM 94 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  95. 95. forum.trinidadplatform.org WWW.SANDERHOOGENDOORN.COM 95 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  96. 96. References and questions www.accelerateddeliveryplatform.com blog.sanderhoogendoorn.org or sander.hoogendoorn@capgemini.com aahoogendoorn@gmail.com

×