Pragmatic agile model driven development using smart use cases

Post on 29-Nov-2014

282 views 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

@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

sander@ditisagile.nl

@aahoogendoorn

REFERENCES AND QUESTIONS