• No results found

How To Model In An Agile World

N/A
N/A
Protected

Academic year: 2021

Share "How To Model In An Agile World"

Copied!
15
0
0

Loading.... (view fulltext now)

Full text

(1)

© 2003 fastnloose ltd

www.fastnloose.com

Modelling in an Agile World

John Daniels

Fastnloose Limited

John Daniels

Co-founder of Fastnloose Ltd

– Software development by dispersed teams

Co-author of “UML Components” & “Designing

Object Systems”

Co-creator of the Syntropy method

– Highly influential on UML (esp. OCL)

(2)

© 2003 fastnloose ltd

Agenda

About agile

Is UML the spawn of Satan?

Where modelling can help

About agile

“Agility is the ability to both create and respond

to change in order to profit in a turbulent

business environment”

Jim Highsmith, Agile Software Development Ecosystems

“Agile” is the new “Object”

– “agile” is hip

(3)

© 2003 fastnloose ltd

The Agile Manifesto

“We are uncovering better ways of developing

software by doing it and helping others do it.

Through this work we have come to value:

Individuals and interactions

over processes and tools

Working software

over comprehensive documentation

Customer collaboration

over contract negotiation

Responding to change

over following a plan

That is, while there is value in the items on

the right, we value the items on the left more.”

Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick – February 2001

Agility in practice

What does it mean to follow those values?

– Acceptance and explicit incorporation of the things we

all know, deep down:

• A skilled, motivated, enabled team can be extremely productive

• Every project is different • The Devil’s in the details

• It’s hard to keep documentation up to date • The customer often doesn’t know what they want

• Detailed project plans going out more than a few weeks aren’t usually worth the paper they are written on

(4)

© 2003 fastnloose ltd

Agile methods

XP

– “No big design up front”, “You ain’t gonna need it”

SCRUM

DSDM

Crystal

etc….

Example practices (from XP)

The planning game

– define stories, estimate, prioritise, schedule

Continuous automated testing

– test-driven development

Continuous integration

Refactoring

Collective ownership

Pair programming

(5)

© 2003 fastnloose ltd

Is UML the spawn of Satan?

Individuals and interactions over processes and tools Working software over comprehensive documentation

Customer collaboration over contract negotiation Responding to change over following a plan

Is UML the spawn of Satan?

Individuals and interactions over processes and tools Working software over comprehensive documentation

Customer collaboration over contract negotiation Responding to change over following a plan

UML and its supporting tools are the cornerstone of my detailed and rigorous development process

Individuals and interactions over processes and tools Working software over comprehensive documentation

Customer collaboration over contract negotiation Responding to change over following a plan

(6)

© 2003 fastnloose ltd

Is UML the spawn of Satan?

Individuals and interactions over processes and tools Working software over comprehensive documentation

Customer collaboration over contract negotiation Responding to change over following a plan

UML and its supporting tools are the cornerstone of my detailed and rigorous development process

With UML I can spend years documenting my software

Individuals and interactions over processes and tools Working software over comprehensive documentation

Customer collaboration over contract negotiation Responding to change over following a plan Individuals and interactions over processes and tools Working software over comprehensive documentation

Customer collaboration over contract negotiation Responding to change over following a plan

Is UML the spawn of Satan?

Individuals and interactions over processes and tools Working software over comprehensive documentation

Customer collaboration over contract negotiation Responding to change over following a plan

UML and its supporting tools are the cornerstone of my detailed and rigorous development process

With UML I can spend years documenting my software

UML lets me freeze the requirements early

Individuals and interactions over processes and tools Working software over comprehensive documentation

Customer collaboration over contract negotiation Responding to change over following a plan Individuals and interactions over processes and tools Working software over comprehensive documentation

Customer collaboration over contract negotiation Responding to change over following a plan Individuals and interactions over processes and tools Working software over comprehensive documentation

Customer collaboration over contract negotiation Responding to change over following a plan

(7)

© 2003 fastnloose ltd

Is UML the spawn of Satan?

Individuals and interactions over processes and tools Working software over comprehensive documentation

Customer collaboration over contract negotiation Responding to change over following a plan

UML and its supporting tools are the cornerstone of my detailed and rigorous development process

With UML I can spend years documenting my software

UML lets me freeze the requirements early

Argh! I’ll have to redraw all those nice UML diagrams

Individuals and interactions over processes and tools Working software over comprehensive documentation

Customer collaboration over contract negotiation Responding to change over following a plan Individuals and interactions over processes and tools Working software over comprehensive documentation

Customer collaboration over contract negotiation Responding to change over following a plan Individuals and interactions over processes and tools Working software over comprehensive documentation

Customer collaboration over contract negotiation Responding to change over following a plan Individuals and interactions over processes and tools Working software over comprehensive documentation

Customer collaboration over contract negotiation Responding to changeover following a plan

UML – it’s just a language!

UML is a language which can be used for many

different purposes

We all use UML profiles all the time, even if we

don’t realise it

(8)

© 2003 fastnloose ltd

Conceptual model

Model of the world

The World Built to understand Interpreted as statements of fact Specification model The Specification Abstract model of software Built to specify Interpreted as constraints on behaviour The Software Implementation model Model of software Built to explain Interpreted as descriptions of behaviour systematic correspondence

Model perspectives

So where can modelling help?

Aiding customer collaboration

Aiding interactions between developers

Aiding the creation of working software

(9)

© 2003 fastnloose ltd

Aiding customer collaboration

How do you get the stories straight?

– Models of the business, not the software

• Use of models to understand what the business does / should do

• Nothing to do (directly) with the software systems that support the business

– Models that specify the software scope

– Models that can expose conflicts or omissions

How do you manage hundreds of separate

stories? (esp. if they are written on index cards!)

Need tools that can support abstract models

Direct customer interaction

Small-ish projects

Developer acts as

analyst-designer

Any models are private

to developer

“Pure XP”

Customer

Fast Software Ltd

Software Developer stories queries
(10)

© 2003 fastnloose ltd

Explicit requirements model

Large-ish

projects

Analyst and

designer roles

separated

Requirements

model is explicit

communication

tool

Customer

Brilliant Software Ltd

Analyst

queries, animations, scenarios stories

Software

Designer requirements

queries

demonstrations of working software Requirements

Model

The Analysts’ Loop provides value only if

it cleans up the requirements by

raising questions about inconsistencies and gaps

The Analysts’ Loop provides value only if

it cleans up the requirements by

raising questions about inconsistencies and gaps

Customer Brilliant Software Ltd Software Designer Analyst stories requirements queries Requirements Model questions

(11)

© 2003 fastnloose ltd

Finding more use-cases: CRUD

Inspect class diagrams; ask:

– what changes this association or attribute?

– what creates/deletes this object or association?

Supplier Thing Customer pocket: Money stock 0..* possessions 0..* sale refund restock open theft close

Finding more usecases: states

Unoccupied Occupied Dirty Maintenance reinstate withdraw withdraw clean check in check out Room build

(12)

© 2003 fastnloose ltd

Use-cases and objects – consistency

what else

do they do/

happens to them ?

-- CRUD; statecharts

who/what

is affected?

-- write postconditions, look at terms used

Use cases

borrow

Objects,

attributes & associations Member Library Book use case

borrow(member, library, book) post

book is on loan to member Book

Member

onLoanTo 0..1 *

what happens?

--tasks, jobs, use-cases

what objects are there?

--things, concepts, relationships

Aiding

developer

interactions

Use of models to allow developers to visualise, share and discuss code design ideas, solutions

Use of models to allow newcomers to see the big picture quickly Need tools that can move quickly and easily between code and

Design Model Design Model Software Developer Design Model ideas understanding Developer abstractions

(13)

© 2003 fastnloose ltd

Aiding working software

Generation of test cases from requirements (ie

specification) models

Understanding the good test cases

Need tools that can generate tests

From requirements to tests

Set-up test scenario Execute test Check invariants and post-conditions Running a test

A requirements model will define the structural invariants and the A requirements model provides a

catalogue of test points when testing is at the external event level

The structural constraints in a requirements model define the interesting edge and normal conditions, and hence informs the

(14)

© 2003 fastnloose ltd

Tests as specification

Traditional textual functional specification

– broad, covering all aspects of the problem

– lacking depth, precision

– big picture is often all you get

Tests-as-specification

– precise where you have them

– but nothing where you don’t

– hard to see the big picture

Models can bridge this gap

Agility and the MDA

Model Driven Architecture

– “A complete MDA specification consists of a definitive independent base UML model (PIM), plus one or more platform-specific models (PSM) and interface definition sets, each describing how the base model is implemented on a different middleware platform.” OMG web site!

Assuming MDA can be made to work, it is

compatible with a high level of agility

The modelling language becomes the

“programming” language, but the same principles

apply

(15)

© 2003 fastnloose ltd

Summary

Modelling is compatible with agile methods

Models can help:

– manage complex requirements

– improve communication between developers

– with the creation of good tests

References

Related documents

In response to a proposed rule to require all the point sources in the Rock River watershed to adopt phosphorus controls, a group of point source dischargers called the Rock

This posting is based on current operations and is EGTS's best esimate of the capacity that will likely be available for the coming day for all transport and storage servicesD.

The method utilises a combination of case based reasoning and probability theory to identify similarities between historical data records and the product under assessment, to

In a PDF/VT workflow, variable data printing processes can benefit from blind exchange of final-form variable content, along with preview, preflight and calibrated color rendering

Image:Arabic music notation half flat.svg  Source: https://en.wikipedia.org/w/index.php?title=File:Arabic_music_notation_half_flat.svg  License: Public Domain  Contributors:

disgust-sensitivity, individual differences, moral attitudes, consequentialism, retributive punishment ABSTRACT  日本の大学生 237 人に

Two measures of students’ school effort are statistically significant if other factors are equal: a one-unit increase in academic self-efficacy increases English scores by 0.19, and

This effect is gation, which precludes folding in solution, but surpris- most dramatic for RuBisCo, which generates a folding ingly, mere confinement of protein in the cage can