Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Pragmatic agile model driven development using smart use cases

1,617 views

Published on

Smart use cases provide a unique, and structured way to deliver requirements in agile, Kanban and even in traditional projects. This talk demonstrates the proven approach to how smart use cases can be identified from the project's scope and business processes, modeled and estimated. It will also show how smart use cases nicely fit your software architecture, how code is generated from them, and how testing can be automated as well. This interactive talk contains live demos.

Published in: Software

Pragmatic agile model driven development using smart use cases

  1. 1. @aahoogendoorn Sander Hoogendoorn Principal Technology Officer, Global Agile Thought Leader Capgemini PRAGMATIC AGILE MODEL DRIVEN DEVELOPMENT USING SMART USE CASES
  2. 2. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 2 Sander Hoogendoorn Me Dad (3) Programmer, trainer, coach, architect Books (3) Articles (+250) International conferences (+100) Capgemini Principal technology officer Global design authority agile Web www.sanderhoogendoorn.com www.smartusecase.com www.speedbird9.com @aahoogendoorn
  3. 3. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn
  4. 4. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 4 On being a developer...
  5. 5. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 5 Agenda Agile. How does it work? Agile requirements and modeling? The backlog. Where does it come from? User stories. An agile requirements anti-pattern Smart use cases Different levels of use cases Standardizing and stereotypes Estimating smart use cases The backlog revisited. Where does it come from? Automating test design Generating code from agile requirements In retrospective
  6. 6. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 6 Agenda. Demo’s Agile. How does it work? Agile requirements and modeling? The backlog. Where does it come from? User stories. An agile requirements anti-pattern Smart use cases Different levels of use cases Standardizing and stereotypes Estimating smart use cases The backlog revisited. Where does it come from? Automating test design Generating code from agile requirements In retrospective
  7. 7. @aahoogendoorn AGILE. HOW DOES IT WORK?
  8. 8. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 8 Agile. Backlog
  9. 9. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 9 Agile. Iterations
  10. 10. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 10 Agile. In iteration
  11. 11. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 11 Agile. Iteration backlog
  12. 12. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 12 Agile. Working in iterations
  13. 13. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 13 Agile. New work items
  14. 14. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 14 Agile. Remaining work items
  15. 15. @aahoogendoorn WHAT ABOUT AGILE REQUIREMENTS AND MODELING?
  16. 16. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 16 Scrum
  17. 17. @aahoogendoorn THE BACKLOG. WHERE DOES IT COME FROM?
  18. 18. @aahoogendoorn AND ON THE SEVENTH DAY KEN CREATED THE BACKLOG
  19. 19. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 19 The automagical backlog
  20. 20. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 20 The automagical backlog
  21. 21. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 21 Agile. Where does the backlog come from?
  22. 22. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 22 Preliminary iterations
  23. 23. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 23 Preliminary iterations
  24. 24. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 24 SmartCreateproject proposalWriteproject planDeliverworkingsoftwareStabilizesoftware
  25. 25. @aahoogendoorn An agile requirements anti-pattern USER STORIES
  26. 26. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 26 User stories
  27. 27. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 27 User stories. The approach
  28. 28. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 28 User stories in complex system landscapes Often too unstructured Unsuitable in complex environments
  29. 29. @aahoogendoorn Part I. From scope to smart use cases SMART USE CASES
  30. 30. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 30 Levels of requirements
  31. 31. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 31 Agile requirements. Approach D E F SmartUse Cases A ProjectScope D Use Cases A B C HierarchicalProcesses B D D HierarchicalProcesses ChronologicalProcesses Cloud Level Kite Level Sea Level Fish Level C
  32. 32. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 32 Identifying scope at cloud level
  33. 33. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 33 Cloud level
  34. 34. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 34 Kite level
  35. 35. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 35 Modeling smart use cases. Sea and fish level
  36. 36. @aahoogendoorn Modeling at different levels of granularity SMART USE CASES
  37. 37. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 37 Different levels of use cases User goal Sub function
  38. 38. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 38 Different levels of use cases Traditionaluse cases Smartuse cases Format Textual Visual Granularity Different Unified Estimate Hard Easy Unit of work Lousy Good Reuse Incidental Normal Traceability Possible Normal Testability Poor Good
  39. 39. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 39 Identifying sub-function level use cases Guidelines for identifying sub-function level use cases Identify re-use Model one form per use case Model one use case per functional web part Isolate unknown functionality Identify complex functionality Show reporting Model complex calculations Isolate interaction with others Avoid low level (database) interaction
  40. 40. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 41 Smart use cases. Stereotyped
  41. 41. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 42 Smart use cases. Service orientation
  42. 42. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 43 Identifying reuse
  43. 43. @aahoogendoorn Thinking in stereotypes SMART USE CASES
  44. 44. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 45 Smart use case stereotypes
  45. 45. @aahoogendoorn Using www.speedbird9.com DEMO THE BACKLOG REVISITED. WHERE DOES IT COME FROM?
  46. 46. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 47 Filling the backlog (www.speedbird9.com)
  47. 47. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 48 www.speedbird9.com
  48. 48. @aahoogendoorn ESTIMATING SMART USE CASES
  49. 49. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 50 Estimating smart use cases
  50. 50. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 51 Estimating smart use cases 4 3 2 3 8 4 3 3
  51. 51. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 52 Standardizing estimation Estimating smart use caseswhile modeling
  52. 52. @aahoogendoorn Using Enterprise Architect, Tobago MDA DEMO GENERATINGYOUR ESTIMATES
  53. 53. @aahoogendoorn Part II. Implementing smart use cases SMART USE CASES
  54. 54. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 55 The smart use case life cycleDefine work on use caseWritetest casesGenerateand builduse caseRuntest casesAdjustuse caseDescribeuse caseAcceptuse case
  55. 55. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 56 Analysis & Design. Writing use cases
  56. 56. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 57 Test Design. Test scenarios for smart use cases
  57. 57. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 58 Test Design. Testing smart use cases
  58. 58. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 59 Test Design. Test cases for smart use cases
  59. 59. @aahoogendoorn Using Sparx’ Enterprise Architect DEMO AUTOMATING SMART USE CASE TEST DESIGN
  60. 60. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 62 Writing smart use cases. Using Enterprise Architect
  61. 61. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 63 Writing smart use cases. Using Enterprise ArchitectAlternative flowsException flowsBasic flow
  62. 62. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 64 Writing smart use cases. Using Enterprise ArchitectFields on formwith smart use casesSmart use casespecific business rulesand validations
  63. 63. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 65 Test scenarios for a smart use case
  64. 64. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 66 Testing a smart use case. Using Enterprise Architect
  65. 65. @aahoogendoorn CAN WE GENERATE CODE FROM (AGILE) REQUIREMENTS?
  66. 66. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 68 Can we generate code from (agile) requirements? Why generate code? Higher productivity? Higher quality? Get rid of repetitive work? Prototyping? Prerequisites to generating code Standardize, standardize, standardize A decent and pragmatic model A simple code generator A straightforward templating language Templates! Clear and present software architecture Frameworks to back up your software architecture
  67. 67. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn Presentation Process Domain Data / Services Outside world PagesUserControlsPanels Use casesWorkflow Domain objects / Entities Factories / Repositories Enums / Value objects / Smart references Data / Service gateways Service locators [Mapping] DatabasesServices / ESB Exact SAP BizTalk Java
  68. 68. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 70 Using Tobago MDA
  69. 69. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 71 Model driven development -Templates
  70. 70. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn Forms Use cases Domain objects Data / Serviceclasses Databases Software Architecture TobagoMDA Testscenario’s Frameworks Specifications ExistingApplications Businessmodels DomainModel Smartuse cases User interfacespecification1. Mapbusiness processes to smart use cases2. Set up domain model3. Refinesoftware architecture(s) 4. Generate code using a text template engine5. Finalize application
  71. 71. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 73 Generated code in ASP.NET
  72. 72. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 74 Generated code Windows 8
  73. 73. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn 75 Generating code. Twitter Bootstrap & JSF
  74. 74. @aahoogendoorn Using Enterprise Architect, Tobago MDA, Visual Studio 2013 DEMO GENERATING CODE FROM SMART USE CASES
  75. 75. @aahoogendoorn IN RETROSPECTIVE?
  76. 76. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved @aahoogendoorn
  77. 77. @aahoogendoorn www.sanderhoogendoorn.comwww.smartusecase.comwww.speedbird9.com sander@ditisagile.nl @aahoogendoorn REFERENCES AND QUESTIONS

×