pragmatic agile model driven development using smart use cases

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

Upload: sander-hoogendoorn

Post on 29-Nov-2014

283 views

Category:

Software


3 download

DESCRIPTION

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.

TRANSCRIPT

Page 1: Pragmatic agile model driven development using smart use cases

@aahoogendoorn

Sander HoogendoornPrincipal Technology Officer, Global Agile Thought Leader Capgemini

PRAGMATIC AGILE MODEL DRIVEN DEVELOPMENT USING SMART USE CASES

Page 2: 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

Page 3: Pragmatic agile model driven development using smart use cases

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

Page 4: Pragmatic agile model driven development using smart use cases

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

4On being a developer...

Page 5: Pragmatic agile model driven development using smart use cases

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: Pragmatic agile model driven development using smart use cases

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: Pragmatic agile model driven development using smart use cases

@aahoogendoorn

AGILE. HOW DOES IT WORK?

Page 8: Pragmatic agile model driven development using smart use cases

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

8Agile. Backlog

Page 9: Pragmatic agile model driven development using smart use cases

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

9Agile. Iterations

Page 10: Pragmatic agile model driven development using smart use cases

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

10Agile. In iteration

Page 11: Pragmatic agile model driven development using smart use cases

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

11Agile. Iteration backlog

Page 12: Pragmatic agile model driven development using smart use cases

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

12Agile. Working in iterations

Page 13: Pragmatic agile model driven development using smart use cases

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

13Agile. New work items

Page 14: Pragmatic agile model driven development using smart use cases

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

14Agile. Remaining work items

Page 15: Pragmatic agile model driven development using smart use cases

@aahoogendoorn

WHAT ABOUT AGILE REQUIREMENTS AND MODELING?

Page 16: Pragmatic agile model driven development using smart use cases

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

16Scrum

Page 17: Pragmatic agile model driven development using smart use cases

@aahoogendoorn

THE BACKLOG.WHERE DOES IT COME FROM?

Page 18: Pragmatic agile model driven development using smart use cases

@aahoogendoorn

AND ON THE SEVENTH DAY KEN CREATED THE BACKLOG

Page 19: Pragmatic agile model driven development using smart use cases

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

19The automagical backlog

Page 20: Pragmatic agile model driven development using smart use cases

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

20The automagical backlog

Page 21: Pragmatic agile model driven development using smart use cases

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

21Agile. Where does the backlog come from?

Page 22: Pragmatic agile model driven development using smart use cases

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

22Preliminary iterations

Page 23: Pragmatic agile model driven development using smart use cases

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

23Preliminary iterations

Page 24: Pragmatic agile model driven development using smart use cases

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: Pragmatic agile model driven development using smart use cases

@aahoogendoorn

An agile requirements anti-patternUSER STORIES

Page 26: Pragmatic agile model driven development using smart use cases

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

26User stories

Page 27: Pragmatic agile model driven development using smart use cases

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

27User stories. The approach

Page 28: Pragmatic agile model driven development using smart use cases

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: Pragmatic agile model driven development using smart use cases

@aahoogendoorn

Part I. From scope to smart use casesSMART USE CASES

Page 30: Pragmatic agile model driven development using smart use cases

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

30Levels of requirements

Page 31: Pragmatic agile model driven development using smart use cases

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: Pragmatic agile model driven development using smart use cases

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

32Identifying scope at cloud level

Page 33: Pragmatic agile model driven development using smart use cases

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

33Cloud level

Page 34: Pragmatic agile model driven development using smart use cases

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

34Kite level

Page 35: Pragmatic agile model driven development using smart use cases

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

35Modeling smart use cases. Sea and fish level

Page 36: Pragmatic agile model driven development using smart use cases

@aahoogendoorn

Modeling at different levels of granularitySMART USE CASES

Page 37: Pragmatic agile model driven development using smart use cases

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

37Different levels of use cases

User goal

Sub function

Page 38: Pragmatic agile model driven development using smart use cases

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: Pragmatic agile model driven development using smart use cases

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: Pragmatic agile model driven development using smart use cases

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

41Smart use cases. Stereotyped

Page 41: Pragmatic agile model driven development using smart use cases

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

42Smart use cases. Service orientation

Page 42: Pragmatic agile model driven development using smart use cases

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

43Identifying reuse

Page 43: Pragmatic agile model driven development using smart use cases

@aahoogendoorn

Thinking in stereotypesSMART USE CASES

Page 44: Pragmatic agile model driven development using smart use cases

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

45Smart use case stereotypes

Page 45: Pragmatic agile model driven development using smart use cases

@aahoogendoorn

Using www.speedbird9.com

DEMO THE BACKLOG REVISITED.WHERE DOES IT COME FROM?

Page 46: Pragmatic agile model driven development using smart use cases

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

47Filling the backlog (www.speedbird9.com)

Page 47: Pragmatic agile model driven development using smart use cases

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

48www.speedbird9.com

Page 48: Pragmatic agile model driven development using smart use cases

@aahoogendoorn

ESTIMATING SMART USE CASES

Page 49: Pragmatic agile model driven development using smart use cases

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

50Estimating smart use cases

Page 50: Pragmatic agile model driven development using 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

Page 51: Pragmatic agile model driven development using smart use cases

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

52Standardizing estimationEstimating smart use cases

while modeling

Page 52: Pragmatic agile model driven development using smart use cases

@aahoogendoorn

Using Enterprise Architect, Tobago MDA

DEMO GENERATINGYOUR ESTIMATES

Page 53: Pragmatic agile model driven development using smart use cases

@aahoogendoorn

Part II. Implementing smart use casesSMART USE CASES

Page 54: Pragmatic agile model driven development using smart 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

Page 55: Pragmatic agile model driven development using smart use cases

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

56Analysis & Design. Writing use cases

Page 56: Pragmatic agile model driven development using smart use cases

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

57Test Design. Test scenarios for smart use cases

Page 57: Pragmatic agile model driven development using smart use cases

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

58Test Design. Testing smart use cases

Page 58: Pragmatic agile model driven development using smart use cases

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

59Test Design. Test cases for smart use cases

Page 59: Pragmatic agile model driven development using smart use cases

@aahoogendoorn

Using Sparx’ Enterprise Architect

DEMO AUTOMATING SMART USE CASE TEST DESIGN

Page 60: Pragmatic agile model driven development using smart use cases

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

62Writing smart use cases. Using Enterprise Architect

Page 61: Pragmatic agile model driven development using smart use cases

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: Pragmatic agile model driven development using smart use cases

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: Pragmatic agile model driven development using smart use cases

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

65Test scenarios for a smart use case

Page 64: Pragmatic agile model driven development using smart use cases

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

66Testing a smart use case. Using Enterprise Architect

Page 65: Pragmatic agile model driven development using smart use cases

@aahoogendoorn

CAN WE GENERATE CODE FROM (AGILE) REQUIREMENTS?

Page 66: Pragmatic agile model driven development using smart use cases

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: Pragmatic agile model driven development using smart use cases

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: Pragmatic agile model driven development using smart use cases

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

70Using Tobago MDA

Page 69: Pragmatic agile model driven development using smart use cases

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

71Model driven development - Templates

Page 70: Pragmatic agile model driven development using smart use cases

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: Pragmatic agile model driven development using smart use cases

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

73Generated code in ASP.NET

Page 72: Pragmatic agile model driven development using smart use cases

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

74Generated code Windows 8

Page 73: Pragmatic agile model driven development using smart use cases

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

75Generating code. Twitter Bootstrap & JSF

Page 74: Pragmatic agile model driven development using smart use cases

@aahoogendoorn

Using Enterprise Architect, Tobago MDA, Visual Studio 2013

DEMO GENERATING CODE FROM SMART USE CASES

Page 75: Pragmatic agile model driven development using smart use cases

@aahoogendoorn

IN RETROSPECTIVE?

Page 76: Pragmatic agile model driven development using smart use cases

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

Page 77: Pragmatic agile model driven development using smart use cases

@aahoogendoorn

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

[email protected]

@aahoogendoorn

REFERENCES AND QUESTIONS