Mais conteúdo relacionado Semelhante a ASAS 2014 - Sander Hoogendoorn (20) ASAS 2014 - Sander Hoogendoorn1. @aahoogendoorn
Sander Hoogendoorn
Principal Technology Officer, Global Agile Thought Leader Capgemini
PRAGMATIC AGILE MODEL DRIVEN DEVELOPMENT USING SMART USE CASES 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. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn 4. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
4
On being a developer... 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. 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 8. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
8
Agile. Backlog 9. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
9
Agile. Iterations 10. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
10
Agile. In iteration 11. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
11
Agile. Iteration backlog 12. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
12
Agile. Working in iterations 13. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
13
Agile. New work items 14. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
14
Agile. Remaining work items 16. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
16
Scrum 19. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
19
The automagical backlog 20. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
20
The automagical backlog 21. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
21
Agile. Where does the backlog come from? 22. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
22
Preliminary iterations 23. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
23
Preliminary iterations 24. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
24
SmartCreateproject proposalWriteproject planDeliverworkingsoftwareStabilizesoftware 26. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
26
User stories 27. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
27
User stories. The approach 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 30. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
30
Levels of requirements 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. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
32
Identifying scope at cloud level 33. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
33
Cloud level 34. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
34
Kite level 35. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
35
Modeling smart use cases. Sea and fish level 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. 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. 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. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
41
Smart use cases. Stereotyped 41. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
42
Smart use cases. Service orientation 42. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
43
Identifying reuse 44. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
45
Smart use case stereotypes 46. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
47
Filling the backlog (www.speedbird9.com) 47. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
48
www.speedbird9.com 49. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
50
Estimating smart use cases 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. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
52
Standardizing estimation
Estimating smart use caseswhile modeling 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. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
56
Analysis & Design. Writing use cases 56. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
57
Test Design. Test scenarios for smart use cases 57. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
58
Test Design. Testing smart use cases 58. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
59
Test Design. Test cases for smart use cases 60. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
62
Writing smart use cases. Using Enterprise Architect 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. 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. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
65
Test scenarios for a smart use case 64. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
66
Testing a smart use case. Using Enterprise Architect 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. 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. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
70
Using Tobago MDA 69. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
71
Model driven development -Templates 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. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
73
Generated code in ASP.NET 72. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
74
Generated code Windows 8 73. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn
75
Generating code. Twitter Bootstrap & JSF 76. UML AND SMART USE CASES ©2001 -2014 Sander Hoogendoorn. All Rights Reserved
@aahoogendoorn