Your SlideShare is downloading. ×
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

20081027 Smart Use Cases Hogeschool Arnhem Nijmegen

2,027

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 …

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,027
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Process, techniques, architecture and patterns for implementing smart use cases in agile projects www.accelerateddeliveryplatform.com
  • 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. 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. A short story of what went wrong
  • 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. Why waterfall won’t work Help!
  • 7. Waterfall? WWW.SANDERHOOGENDOORN.COM 7 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 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. 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. Waterfall? WWW.SANDERHOOGENDOORN.COM 10 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 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. 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. Agile software development Key characteristics
  • 14. WWW.SANDERHOOGENDOORN.COM 14 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 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. Considerations
  • 17. Agile software development WWW.SANDERHOOGENDOORN.COM 17 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 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. Agile software development WWW.SANDERHOOGENDOORN.COM 19 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 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. Agile software development WWW.SANDERHOOGENDOORN.COM 21 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 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. Agile methodologies Overview and comparison
  • 24. Extreme programming WWW.SANDERHOOGENDOORN.COM 24 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 25. Scrum WWW.SANDERHOOGENDOORN.COM 25 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 26. DSDM WWW.SANDERHOOGENDOORN.COM 26 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 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. Smart
  • 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. 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. Smart Iterations Prioritize use cases Evaluate iteration Build use cases WWW.SANDERHOOGENDOORN.COM 31 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 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. 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. Smart use cases What makes a use cases smart?
  • 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. 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. Approach Where do smart use cases come from?
  • 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. Business process hierarchy WWW.SANDERHOOGENDOORN.COM 39 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 40. Smart use cases WWW.SANDERHOOGENDOORN.COM 40 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 41. Describing use cases WWW.SANDERHOOGENDOORN.COM 41 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 42. Smart estimation
  • 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. Weight of smart use cases 2 8 4 3 8 4 WWW.SANDERHOOGENDOORN.COM 44 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 45. Smart use case stereotypes WWW.SANDERHOOGENDOORN.COM 45 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 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. Smart estimation poker WWW.SANDERHOOGENDOORN.COM 47 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 48. Smart estimation poker WWW.SANDERHOOGENDOORN.COM 48 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 49. Using an agile dashboard Pragmatic progress
  • 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. 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. 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. 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. Implementing smart use cases Just-enough software architecture
  • 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. WWW.SANDERHOOGENDOORN.COM 56 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 57. WWW.SANDERHOOGENDOORN.COM 57 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 58. WWW.SANDERHOOGENDOORN.COM 58 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 59. WHO Needs software architecture anyway? WWW.SANDERHOOGENDOORN.COM 59 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 60. Just- Just-enough software architecture
  • 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. 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. 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. 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. Back to the future … silverlight WWW.SANDERHOOGENDOORN.COM 65 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 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. Just- Just-enough software architecture Three flavors
  • 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. Use cases in code WWW.SANDERHOOGENDOORN.COM 69 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 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. Domain Objects WWW.SANDERHOOGENDOORN.COM 71 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 72. Domain object factories WWW.SANDERHOOGENDOORN.COM 72 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 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. Service interfaces WWW.SANDERHOOGENDOORN.COM 74 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 75. Smart use cases in code
  • 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. Smart Use cases in code WWW.SANDERHOOGENDOORN.COM 77 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 78. Smart Use cases in code WWW.SANDERHOOGENDOORN.COM 78 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 79. smart use cases in code WWW.SANDERHOOGENDOORN.COM 79 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 80. Generating code An introduction to model driven development
  • 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. 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. 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. Model driven development - Templates WWW.SANDERHOOGENDOORN.COM 84 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 85. Generate many things e.g. Table create scripts WWW.SANDERHOOGENDOORN.COM 85 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 86. Generating code A quick example
  • 87. A simple smart use case model WWW.SANDERHOOGENDOORN.COM 87 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 88. A simple domain model WWW.SANDERHOOGENDOORN.COM 88 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 89. Using Tobago MDA WWW.SANDERHOOGENDOORN.COM 89 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 90. Generated code in ASP.NET WWW.SANDERHOOGENDOORN.COM 90 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 91. Generated code in Silverlight WWW.SANDERHOOGENDOORN.COM 91 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 92. How light can we travel? WWW.SANDERHOOGENDOORN.COM 92 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 93. Open community
  • 94. www.accelerateddeliveryplatform.com WWW.SANDERHOOGENDOORN.COM 94 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 95. forum.trinidadplatform.org WWW.SANDERHOOGENDOORN.COM 95 © 2008 Copyright Sander Hoogendoorn All Rights Reserved
  • 96. References and questions www.accelerateddeliveryplatform.com blog.sanderhoogendoorn.org or sander.hoogendoorn@capgemini.com aahoogendoorn@gmail.com

×