Agile UP Intro-Larman
Agile UP Intro-Larman
An
Agile UP:
Introduction
Craig Larman
www.craiglarman.com
www.valtech.com
Copyright © 2002 Craig Larman. All rights reserved.
speaker background
? www.craiglarman.com
? Roles at IntellAgile & Valtech. . .
Underway:
Agile and
Iterative
Development:
A Manager’s
Guide
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com 1
Agile UP 9/27/2002
UP
Overview
www.craiglarman.com
www.valtech.com
Copyright © 2002 Craig Larman. All rights reserved.
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com 2
Agile UP 9/27/2002
UP Practice #1:
Develop Iteratively
iteration
2-6 weeks phase
UP Practice #1:
Develop Iteratively
Throwaway
Prototype
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com 3
Agile UP 9/27/2002
UP Practice #2:
Continuously Verify Quality
UP Practice #3:
Build a Cohesive Architecture
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com 4
Agile UP 9/27/2002
UP Practice #6:
Model Visually
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com 5
Agile UP 9/27/2002
Requirements
Design
Implementation
Test
Iterations
Deployment
Discipline
Optional
Artifacts
11 Copyright © Craig Larman. www.craiglarman.com
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com 6
Agile UP 9/27/2002
Domain
Business Model
Modeling
Use-Case
Model
Requirements
Data
Design Model Model
Design
Software
Architecture Doc.
Design
Risk List
Project
Management
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com 7
Agile UP 9/27/2002
? Vision
? Supplementary Specification
Use-Case Model
: System
Process Sale : Cashier
make Process
1. Customer NewSale() Sale
system
Developer Subject arrives ... Cashier
events enterItem Developer
or Analyst Matter 2. Cashier
(id, quantity)
Expert makes new ...
sale.
3. ...
Developer makeNewSale()
Developer
create()
: Sale
enterItem(id, quantity)
spec := getSpecification( id )
the design
Register classes
ProductCatalog ...
discovered
... 1 1 while designing
...
UCRs can be
makeNewSale() summarized in
getSpecification(...) : ProductSpecification
enterItem(...) class diagrams
...
...
16 Copyright © Craig Larman. www.craiglarman.com
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com 8
Agile UP 9/27/2002
Use--Case Model
Use
Handle Returns
1. Customer
arrives ...
2. . . .
3. . . .
: System
Process Sale : Cashier
make Process
NewSale() Sale
1. Customer
system
arrives ... Cashier
events enterItem
2. Cashier
makes new (id, quantity)
...
sale.
3. ...
Records-sale-of
Domain Model
Described-by
1
Product
Product Specification
Catalog Contains
1 description
1..*
price
itemID
1
0..1 Used-by
* Describes
Sales * *
LineItem Store
Item
Stocks
quantity 1 address 1
name * 1..*
1..*
Logs- 1
Contained-in Houses
completed
1 ? 1.. *
Sale * Register
Manager
date Started-by
1 1
Captured-on
time 1 1
1
1 1
Paid-by Initiated-by ? Records-sales-on
1 1 1
amount
18 Copyright © Craig Larman. www.craiglarman.com
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com 9
Agile UP 9/27/2002
: Register
Design Model
: ProductCatalog
makeNewSale()
create()
: Sale
enterItem(id, quantity)
spec := getSpecification( id )
Register
ProductCatalog
... 1 1 ...
makeNewSale()
getSpecification(...) : ProductSpecification
enterItem(...)
...
...
Domain
Sales
ServiceAccess Payments
«interface»
Services
CreditPayment ICreditAuthorization
Factory
ServiceAdapter
«interface» «interface»
POSRuleEngineFacade
IInventoryAdapter ITaxCalculatorAdapter
Technical Services
Persistence
Data Model
«Table»
«Table»
ProductSpecification
Manufacturer
1 * «PK» OID : char(16)
«PK» OID : char(16)
Description : varchar(100)
Name : varchar(100)
...
City : varchar(50) PK - primary key
«FK» Manu_OID : char(16)
FK - foreign key
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com 10
Agile UP 9/27/2002
Deployment Model
: TaxServer
: Client «process»
: TaxCalulator
«process»
: JVM-
POS-client
: InventoryServer
: Client
SQL
«process»
: JVM- «process» «database»
POS-client : Inventory : Oracle9i
UP Domain Model
Sale
Payment 1
1 Pays-for
date Raw UML class diagram
amount notation used in an
time
essential model
visualizing real-world
concepts.
UP Design Model
Sale
Payment Raw UML class diagram
1 1 date: Date notation used in a
amount: Money Pays-for startTime: Time specification model
visualizing software
getBalance(): Money getTotal(): Money components.
... ...
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com 11
Agile UP 9/27/2002
Sale
Conceptual
date
time
Sale
date: Date
Specification
startTime: Time
Sale
getLineItems : java.util.List
...
23 Copyright © Craig Larman. www.craiglarman.com
: Sales : Shipping
placeOrder()
UP
requestShipment() Business
Model
(conceptual)
: Register : Sale
makePayment
(cashTendered) UP
Design
makePayment(cashTendered) Model
(spec/impl)
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com 12
Agile UP 9/27/2002
UP Adaptation
? In at least 4 areas:
1. Requirements
2. Design
3. Plan
4. Process
A, B E, F N, O
... I, J K, M ...
C, D G, H P
...
A, B
C, D
E, F,
?
? ? ? ...
?
MILESTONE: A date (perhaps 2 months in
future) and set of objectives is established.
26 Copyright © Craig Larman. www.craiglarman.com
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com 13
Agile UP 9/27/2002
Risk Product
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com 14
Agile UP 9/27/2002
•adaptation and
better fit
•provable reliability
•early defect removal
Incep- Transi-
Elaboration Construction
tion tion
•Req •Design & build •Design & build the rest •Beta tests
workshop 1 high-risk elements •Minor req changes •Conversion
•Macro- • Req workshop 2, 3 •Prep for deploy •Training
estimation •Micro-estimation •Pilot tests •Deployment
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com 15
Agile UP 9/27/2002
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com 16
Agile UP 9/27/2002
The distinction
between
elaboration and
construction
iterations is fuzzy,
and often
unimportant on a
project.
Time
Iteration
risk
On some projects, a milestone decision to requirements
stop or to submit the bidding for out-sourced instability
development.
33 Copyright © Craig Larman. www.craiglarman.com
? Then we have:
1. Inception—a few days or weeks to vaguely
comprehend the project goals and scope.
2. “Development”—a series of iterations, driven by risk,
that continue until transition.
3. Transition—beta test and deploy.
34 Copyright © Craig Larman. www.craiglarman.com
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com 17
Agile UP 9/27/2002
#1 Incep-
Elaboration Construction
Transi-
tion tion
iteration
Incep- Transi-
#2 tion
Elaboration Construction
tion
#3 Incep-
Elaboration Construction
Transi-
tion tion
Why the
UP?
www.craiglarman.com
www.valtech.com
Copyright © 2002 Craig Larman. All rights reserved.
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com 18
Agile UP 9/27/2002
Why acceptance?
? It is good—combines most popular modern
best practices (e.g., iterative development)
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com 19
Agile UP 9/27/2002
Why acceptance?
? Flexible.
How to
Fail with
the UP
www.craiglarman.com
www.valtech.com
Copyright © 2002 Craig Larman. All rights reserved.
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com 20
Agile UP 9/27/2002
by Philippe Kruchten
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com 21
Agile UP 9/27/2002
1 week 6 months
Share results;
Define basic Apply in pilot
Development Refine
project Development
Case
Case
Development
Case
Apply in other
Becomes projects
UP mentor
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com 22
Agile UP 9/27/2002
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com 23
Agile UP 9/27/2002
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com 24
Agile UP 9/27/2002
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com 25