asas 2014 - sander hoogendoorn
DESCRIPTION
ASAS 2014 - Pragmatic agile model driven development using smart use casesTRANSCRIPT
@aahoogendoorn
Sander HoogendoornPrincipal Technology Officer, Global Agile Thought Leader Capgemini
PRAGMATIC AGILE MODEL DRIVEN DEVELOPMENT USING SMART USE CASES
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
2Sander HoogendoornMe
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
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
4On being a developer...
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
5Agenda 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
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
6Agenda. 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
@aahoogendoorn
AGILE. HOW DOES IT WORK?
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
8Agile. Backlog
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
9Agile. Iterations
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
10Agile. In iteration
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
11Agile. Iteration backlog
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
12Agile. Working in iterations
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
13Agile. New work items
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
14Agile. Remaining work items
@aahoogendoorn
WHAT ABOUT AGILE REQUIREMENTS AND MODELING?
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
16Scrum
@aahoogendoorn
THE BACKLOG.WHERE DOES IT COME FROM?
@aahoogendoorn
AND ON THE SEVENTH DAY KEN CREATED THE BACKLOG
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
19The automagical backlog
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
20The automagical backlog
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
21Agile. Where does the backlog come from?
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
22Preliminary iterations
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
23Preliminary iterations
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
24Smart
Create
project
proposal
Write
project plan
Deliver
working
software
Stabilize
software
@aahoogendoorn
An agile requirements anti-patternUSER STORIES
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
26User stories
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
27User stories. The approach
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
28User stories in complex system landscapes
Often too unstructured
Unsuitable in complex environments
@aahoogendoorn
Part I. From scope to smart use casesSMART USE CASES
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
30Levels of requirements
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
31Agile requirements. Approach
D
E
F
SmartUse Cases
A
Project
Scope
D
Use Cases
A
B C
Hierarchical
Processes
B
D
D
Hierarchical
Processes
Chronological
Processes
Cloud Level Kite Level Sea Level Fish Level
C
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
32Identifying scope at cloud level
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
33Cloud level
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
34Kite level
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
35Modeling smart use cases. Sea and fish level
@aahoogendoorn
Modeling at different levels of granularitySMART USE CASES
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
37Different levels of use cases
User goal
Sub function
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
38Different levels of use casesTraditional
use cases
Smart
use cases
Format Textual Visual
Granularity Different Unified
Estimate Hard Easy
Unit of work Lousy Good
Reuse Incidental Normal
Traceability Possible Normal
Testability Poor Good
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
39Identifying sub-function level use casesGuidelines 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
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
41Smart use cases. Stereotyped
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
42Smart use cases. Service orientation
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
43Identifying reuse
@aahoogendoorn
Thinking in stereotypesSMART USE CASES
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
45Smart use case stereotypes
@aahoogendoorn
Using www.speedbird9.com
DEMO THE BACKLOG REVISITED.WHERE DOES IT COME FROM?
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
47Filling the backlog (www.speedbird9.com)
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
48www.speedbird9.com
@aahoogendoorn
ESTIMATING SMART USE CASES
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
50Estimating smart use cases
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
51Estimating smart use cases
4
32
3
84
3
3
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
52Standardizing estimationEstimating smart use cases
while modeling
@aahoogendoorn
Using Enterprise Architect, Tobago MDA
DEMO GENERATINGYOUR ESTIMATES
@aahoogendoorn
Part II. Implementing smart use casesSMART USE CASES
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
55The smart use case life cycle
Define work
on use case
Write
test cases
Generate
and build
use case
Run
test cases
Adjust
use case
Describe
use case
Accept
use case
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
56Analysis & Design. Writing use cases
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
57Test Design. Test scenarios for smart use cases
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
58Test Design. Testing smart use cases
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
59Test Design. Test cases for smart use cases
@aahoogendoorn
Using Sparx’ Enterprise Architect
DEMO AUTOMATING SMART USE CASE TEST DESIGN
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
62Writing smart use cases. Using Enterprise Architect
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
63Writing smart use cases. Using Enterprise Architect
Alternative flows
Exception flows
Basic flow
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
64Writing smart use cases. Using Enterprise Architect
Fields on form
with smart use cases
Smart use case
specific business rules
and validations
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
65Test scenarios for a smart use case
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
66Testing a smart use case. Using Enterprise Architect
@aahoogendoorn
CAN WE GENERATE CODE FROM (AGILE) REQUIREMENTS?
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
68Can 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
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
Presentation
Process
Domain
Data / Services
Outside world
Pages
UserControls
Panels
Use cases
Workflow
Domain objects / Entities
Factories / Repositories
Enums / Value objects / Smart references
Data / Service gateways
Service locators
[Mapping]
Databases
Services / ESB
Exact SAP BizTalk Java
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
70Using Tobago MDA
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
71Model driven development - Templates
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
Forms
Use cases
Domain
objects
Data / Serviceclasses
Databases
Software Architecture
TobagoMDA
Test
scenario’s
FrameworksSpecifications
Existing
Applications
Businessmodels
DomainModel
Smartuse cases
User interface
specification
1. Map
business processes
to smart use cases
2. Set up
domain model3. Refine
software
architecture(s)
4. Generate
code using
a text template engine
5. Finalize
application
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
73Generated code in ASP.NET
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
74Generated code Windows 8
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
75Generating code. Twitter Bootstrap & JSF
@aahoogendoorn
Using Enterprise Architect, Tobago MDA, Visual Studio 2013
DEMO GENERATING CODE FROM SMART USE CASES
@aahoogendoorn
IN RETROSPECTIVE?
UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn
@aahoogendoorn
www.sanderhoogendoorn.comwww.smartusecase.comwww.speedbird9.com
@aahoogendoorn
REFERENCES AND QUESTIONS