asas 2014 - sander hoogendoorn

77
@aahoogendoorn Sander Hoogendoorn Principal Technology Officer, Global Agile Thought Leader Capgemini PRAGMATIC AGILE MODEL DRIVEN DEVELOPMENT USING SMART USE CASES

Upload: avisi-bv

Post on 12-Jun-2015

303 views

Category:

Technology


1 download

DESCRIPTION

ASAS 2014 - Pragmatic agile model driven development using smart use cases

TRANSCRIPT

Page 1: ASAS 2014 - Sander Hoogendoorn

@aahoogendoorn

Sander HoogendoornPrincipal Technology Officer, Global Agile Thought Leader Capgemini

PRAGMATIC AGILE MODEL DRIVEN DEVELOPMENT USING SMART USE CASES

Page 2: ASAS 2014 - Sander Hoogendoorn

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

Page 3: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

Page 4: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

4On being a developer...

Page 5: ASAS 2014 - Sander Hoogendoorn

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

Page 6: ASAS 2014 - Sander Hoogendoorn

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

Page 7: ASAS 2014 - Sander Hoogendoorn

@aahoogendoorn

AGILE. HOW DOES IT WORK?

Page 8: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

8Agile. Backlog

Page 9: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

9Agile. Iterations

Page 10: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

10Agile. In iteration

Page 11: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

11Agile. Iteration backlog

Page 12: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

12Agile. Working in iterations

Page 13: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

13Agile. New work items

Page 14: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

14Agile. Remaining work items

Page 15: ASAS 2014 - Sander Hoogendoorn

@aahoogendoorn

WHAT ABOUT AGILE REQUIREMENTS AND MODELING?

Page 16: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

16Scrum

Page 17: ASAS 2014 - Sander Hoogendoorn

@aahoogendoorn

THE BACKLOG.WHERE DOES IT COME FROM?

Page 18: ASAS 2014 - Sander Hoogendoorn

@aahoogendoorn

AND ON THE SEVENTH DAY KEN CREATED THE BACKLOG

Page 19: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

19The automagical backlog

Page 20: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

20The automagical backlog

Page 21: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

21Agile. Where does the backlog come from?

Page 22: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

22Preliminary iterations

Page 23: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

23Preliminary iterations

Page 24: ASAS 2014 - Sander Hoogendoorn

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

Page 25: ASAS 2014 - Sander Hoogendoorn

@aahoogendoorn

An agile requirements anti-patternUSER STORIES

Page 26: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

26User stories

Page 27: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

27User stories. The approach

Page 28: ASAS 2014 - Sander Hoogendoorn

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

Page 29: ASAS 2014 - Sander Hoogendoorn

@aahoogendoorn

Part I. From scope to smart use casesSMART USE CASES

Page 30: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

30Levels of requirements

Page 31: ASAS 2014 - Sander Hoogendoorn

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

Page 32: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

32Identifying scope at cloud level

Page 33: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

33Cloud level

Page 34: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

34Kite level

Page 35: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

35Modeling smart use cases. Sea and fish level

Page 36: ASAS 2014 - Sander Hoogendoorn

@aahoogendoorn

Modeling at different levels of granularitySMART USE CASES

Page 37: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

37Different levels of use cases

User goal

Sub function

Page 38: ASAS 2014 - Sander Hoogendoorn

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

Page 39: ASAS 2014 - Sander Hoogendoorn

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

Page 40: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

41Smart use cases. Stereotyped

Page 41: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

42Smart use cases. Service orientation

Page 42: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

43Identifying reuse

Page 43: ASAS 2014 - Sander Hoogendoorn

@aahoogendoorn

Thinking in stereotypesSMART USE CASES

Page 44: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

45Smart use case stereotypes

Page 45: ASAS 2014 - Sander Hoogendoorn

@aahoogendoorn

Using www.speedbird9.com

DEMO THE BACKLOG REVISITED.WHERE DOES IT COME FROM?

Page 46: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

47Filling the backlog (www.speedbird9.com)

Page 47: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

48www.speedbird9.com

Page 48: ASAS 2014 - Sander Hoogendoorn

@aahoogendoorn

ESTIMATING SMART USE CASES

Page 49: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

50Estimating smart use cases

Page 50: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

51Estimating smart use cases

4

32

3

84

3

3

Page 51: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

52Standardizing estimationEstimating smart use cases

while modeling

Page 52: ASAS 2014 - Sander Hoogendoorn

@aahoogendoorn

Using Enterprise Architect, Tobago MDA

DEMO GENERATINGYOUR ESTIMATES

Page 53: ASAS 2014 - Sander Hoogendoorn

@aahoogendoorn

Part II. Implementing smart use casesSMART USE CASES

Page 54: ASAS 2014 - Sander Hoogendoorn

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

Page 55: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

56Analysis & Design. Writing use cases

Page 56: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

57Test Design. Test scenarios for smart use cases

Page 57: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

58Test Design. Testing smart use cases

Page 58: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

59Test Design. Test cases for smart use cases

Page 59: ASAS 2014 - Sander Hoogendoorn

@aahoogendoorn

Using Sparx’ Enterprise Architect

DEMO AUTOMATING SMART USE CASE TEST DESIGN

Page 60: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

62Writing smart use cases. Using Enterprise Architect

Page 61: ASAS 2014 - Sander Hoogendoorn

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

Page 62: ASAS 2014 - Sander Hoogendoorn

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

Page 63: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

65Test scenarios for a smart use case

Page 64: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

66Testing a smart use case. Using Enterprise Architect

Page 65: ASAS 2014 - Sander Hoogendoorn

@aahoogendoorn

CAN WE GENERATE CODE FROM (AGILE) REQUIREMENTS?

Page 66: ASAS 2014 - Sander Hoogendoorn

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

Page 67: ASAS 2014 - Sander Hoogendoorn

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

Page 68: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

70Using Tobago MDA

Page 69: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

71Model driven development - Templates

Page 70: ASAS 2014 - Sander Hoogendoorn

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

Page 71: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

73Generated code in ASP.NET

Page 72: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

74Generated code Windows 8

Page 73: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

75Generating code. Twitter Bootstrap & JSF

Page 74: ASAS 2014 - Sander Hoogendoorn

@aahoogendoorn

Using Enterprise Architect, Tobago MDA, Visual Studio 2013

DEMO GENERATING CODE FROM SMART USE CASES

Page 75: ASAS 2014 - Sander Hoogendoorn

@aahoogendoorn

IN RETROSPECTIVE?

Page 76: ASAS 2014 - Sander Hoogendoorn

UML AND SMART USE CASES©2001 - 2014 Sander Hoogendoorn. All Rights Reserved@aahoogendoorn

Page 77: ASAS 2014 - Sander Hoogendoorn

@aahoogendoorn

www.sanderhoogendoorn.comwww.smartusecase.comwww.speedbird9.com

[email protected]

@aahoogendoorn

REFERENCES AND QUESTIONS