agile up intro-larman
TRANSCRIPT
-
8/14/2019 agile UP intro-larman
1/25
Agile UP 9/27/20
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com
www.craiglarman.comwww.valtech.com
Copyright 2002 Craig Larman. All rights reserved.
AnAnAgile UP:Agile UP:
IntroductionIntroduction
Craig LarmanCraig Larman
Copyright Craig Larman. www.craiglarman.com2
speaker backgroundspeaker background
Agile andIterative
Development:A ManagersGuide
Underway:
?www.craiglarman.com
?Roles at IntellAgile& Valtech. . .
-
8/14/2019 agile UP intro-larman
2/25
Agile UP 9/27/20
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com
www.craiglarman.comwww.valtech.com
Copyright 2002 Craig Larman. All rights reserved.
UPUPOverviewOverview
Copyright Craig Larman. www.craiglarman.com4
Defining our Terms: UP and RUPDefining our Terms: UP and RUP
? The RUP process frameworkis a detailed,
updated refinement of the more general
UP process framework.
? RUP lead architect: Philippe Kruchten.
? Some use the term UP for UP family
those related to (and consistent with) the
UP process framework, especially the
RUP.
-
8/14/2019 agile UP intro-larman
3/25
Agile UP 9/27/20
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com
Copyright Craig Larman. www.craiglarman.com5
inc. elaboration construction transition
iteration2-6 weeks phase
UP Practice #1:UP Practice #1:Develop IterativelyDevelop Iteratively
Work in early iterations emphasize:
Risk Criticality (high business value)
Coverage (many components are touched)
Copyright Craig Larman. www.craiglarman.com6
inc. elaboration construction transition
Reqs Design Implement
Throwaway
Prototype
UP Practice #1:UP Practice #1:Develop IterativelyDevelop Iteratively
-
8/14/2019 agile UP intro-larman
4/25
Agile UP 9/27/20
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com
Copyright Craig Larman. www.craiglarman.com7
UP Practice #2:UP Practice #2:Continuously Verify QualityContinuously Verify Quality
Copyright Craig Larman. www.craiglarman.com8
UP Practice #3:UP Practice #3:Build a Cohesive ArchitectureBuild a Cohesive Architecture
-
8/14/2019 agile UP intro-larman
5/25
Agile UP 9/27/20
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com
Copyright Craig Larman. www.craiglarman.com9
UP Practice #4 and #5:UP Practice #4 and #5:Manage Requirements and Manage ChangeManage Requirements and Manage Change
Copyright Craig Larman. www.craiglarman.com10
UP Practice #6:UP Practice #6:Model VisuallyModel Visually
-
8/14/2019 agile UP intro-larman
6/25
Agile UP 9/27/20
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com
Copyright Craig Larman. www.craiglarman.com11
Other Key UP IdeasOther Key UP Ideas
Iterations
UP Disciplines
Requirements
Design
Implementation
Test
DeploymentDisciplineOptional
Artifacts
Copyright Craig Larman. www.craiglarman.com12
Other Key UP IdeasOther Key UP Ideas
-
8/14/2019 agile UP intro-larman
7/25
Agile UP 9/27/20
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com
Copyright Craig Larman. www.craiglarman.com13
DomainModel
Requirements
Business
Modeling
Design
Design Model
Use-CaseModel
DataModel
Copyright Craig Larman. www.craiglarman.com14
Useful, Common UP ArtifactsUseful, Common UP Artifacts
SupplementarySpecification
Requirements
VisionUse Cases
SoftwareArchitecture Doc.
Design
Project
Management
Risk List
-
8/14/2019 agile UP intro-larman
8/25
Agile UP 9/27/20
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com
Copyright Craig Larman. www.craiglarman.com15
When Work Products are NeededWhen Work Products are Neededuse the UP Vocabularyuse the UP Vocabulary
?Vision
?Use Case Model
?Supplementary Specification
?Software Architecture Document
Copyright Craig Larman. www.craiglarman.com16
: System
enterItem
(id, quantity)...
Process Sale
1. Customer
arrives ...
2. Cashier
makes newsale.
3. ...
Use Cases System Sequence Diagrams
make
NewSale()
Sale
timeStamp
Register
...11
ProductCatalog
. . .
domain concepts
systemevents
Domain Model
Use-Case Model
Design Model
: Register
enterItem(id, quantity)
: ProductCatalog
spec := getSpecification( id )
addLineItem( spec, quantity )
: Sale
. . .
use-case
realization withinteraction
diagrams
makeNewSale()
create()
Register
...
makeNewSale()
enterItem(...)
...
ProductCatalog
...
getSpecification(...) : ProductSpecification...
the design
classes
discovered
while designingUCRs can be
summarized in
class diagrams
Cashier
Process
Sale
Use Case Diagrams
: Cashier
1 1
. . .
. . .
Captured-on
Developeror Analyst
SubjectMatterExpert
Developer
or Analyst
Subject
Matter
Expert
Developer
Producers
Developer
Developer
Developer
Consumers
Data
Architect
. . .
-
8/14/2019 agile UP intro-larman
9/25
Agile UP 9/27/20
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com
Copyright Craig Larman. www.craiglarman.com17
UseUse--Case ModelCase Model
: System
enterItem
(id, quantity)...
Process Sale
1. Customer
arrives ...
2. Cashiermakes new
sale.
3. ...
Use Cases System Sequence Diagrams
make
NewSale()system
eventsCashier
ProcessSale
: Cashier
Use Case Diagram
Handle Returns
1. Customer
arrives ...2. . . .
3. . . .
Copyright Craig Larman. www.craiglarman.com18
Domain ModelDomain Model
Register
ItemStore
addressname
Sale
date
time
Payment
amount
SalesLineItem
quantity
CashierCustomer
Manager
ProductCatalog
ProductSpecification
descriptionpriceitemID
Stocks
*
Houses
1..*
Used-by
*
Contains
1..*
Describes
*
Captured-on
Contained-in
1..*
Described-by
*
Records-sale-of
0..1
Started-by
Paid-by Initiated-by
Logs-completed
*
Records-sales-on
1
1
1
1
1
1..*
11
1
1
1
1
1
1
1
1 1
1
-
8/14/2019 agile UP intro-larman
10/25
Agile UP 9/27/20
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com
Copyright Craig Larman. www.craiglarman.com19
Design ModelDesign Model: Register
enterItem(id, quantity)
: ProductCatalog
spec := getSpecification( id )
addLineItem( spec, quantity )
: Sale
. . .
makeNewSale()create()
Log4J
Technical Services
Domain
Pricing
Persistence
DBFacade
Taxes
interfaceITaxCalculatorAdapter
Services
Factory
Sales
R eg is te r S al e
Payments
CreditPayment
interface
ICreditAuthorizationServiceAdapter
ServiceAccess
Inventory
interfaceIInventoryAdapter
Jess
POSRuleEngine
POSRuleEngineFacade
SOAP
Register
...
makeNewSale()enterItem(...)...
ProductCatalog
...
getSpecification(...) : ProductSpecification...
1 1
Copyright Craig Larman. www.craiglarman.com20
Data ModelData Model
TableProductSpecification
PK OID : char(16)
Description : varchar(100)
...FK Manu_OID : char(16)
TableManufacturer
PK OID : char(16)
Name : varchar(100)City : varchar(50)
*1
PK - primary keyFK - foreign key
Applies a UML Profi le
-
8/14/2019 agile UP intro-larman
11/25
Agile UP 9/27/20
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com
Copyright Craig Larman. www.craiglarman.com21
Deployment ModelDeployment Model
: Client
: TaxServer
process: JVM-
POS-client
process
: TaxCalulator: Client
process: JVM-
POS-client
: InventoryServer
process: Inventory
database: Oracle9i
SQL
Copyright Craig Larman. www.craiglarman.com22
Notation vs. Method ModelsNotation vs. Method Models
Payment
amount
Sale
date
time
Pays-for
Payment
amount: Money
getBalance(): Money. . .
Sale
date: Date
startTime: Time
getTotal(): Money. . .
Pays-for
UP Domain Model
Raw UML class diagramnotation used in an
essential modelvisualizing real-world
concepts.
UP Design Model
Raw UML class diagram
notation used in a
specification modelvisualizing softwarecomponents.
1 1
1 1
-
8/14/2019 agile UP intro-larman
12/25
Agile UP 9/27/20
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com
Copyright Craig Larman. www.craiglarman.com23
Three Modeling Perspectives (Cook & Daniels)Three Modeling Perspectives (Cook & Daniels)
Sale
datetime
Sale
date: Date
startTime: Time
getLineItems : List of LineItem. . .
Conceptual
Specification
Sale
dateTime: java.util.Date
getLineItems : java.util.List
. . .
Implementation
Copyright Craig Larman. www.craiglarman.com24
Modeling Perspectives in a SequenceModeling Perspectives in a Sequence DgmDgm
UPBusinessModel(conceptual)
UP
DesignModel(spec/impl)
: Sales : Shipping
requestShipment()
placeOrder()
: Register : Sale
makePayment(cashTendered)
makePayment
(cashTendered)
-
8/14/2019 agile UP intro-larman
13/25
Agile UP 9/27/20
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com
Copyright Craig Larman. www.craiglarman.com25
UP AdaptationUP Adaptation
?
In at least 4 areas:
1. Requirements
2. Design
3. Plan
4. Process
Great moments in evolution
Copyright Craig Larman. www.craiglarman.com26
Adaptive Planning in the UPAdaptive Planning in the UP
A, BC, D
E, FG, H
I, J K, MN, O
P. . .. . .
A, BC, D
E, F,?
? ? ? . . .. . .
Project is at this point (in the middle of an iteration)
?
MILESTONE: A date (perhaps 2 months infuture) and set of objectives is established.
-
8/14/2019 agile UP intro-larman
14/25
Agile UP 9/27/20
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com
Copyright Craig Larman. www.craiglarman.com27
Mitigate HighMitigate High RisksRisks EarlyEarly
Copyright Craig Larman. www.craiglarman.com28
Mitigate HighMitigate High RisksRisks EarlyEarly
Risk
Iter 1 Iter nIter n-1Iter 3Iter 2
Product
-
8/14/2019 agile UP intro-larman
15/25
-
8/14/2019 agile UP intro-larman
16/25
Agile UP 9/27/20
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com
Copyright Craig Larman. www.craiglarman.com31
Follow the UP PhasesFollow the UP Phases
?The key distinctive idea is the elaborationphase.
?Early iterations to discover and refine the corearchitecture and requirements while alsoimplementingthe production core of the system.
?Believable macro-level plan and estimates at
the end of elaboration, not during inception.
Copyright Craig Larman. www.craiglarman.com32
Follow the UP PhasesFollow the UP Phases
Inception ? Requirements Phase
Elaboration ? Design Phase
Construction ? Implementation Phase
Transition?
Integration/QA Phase
-
8/14/2019 agile UP intro-larman
17/25
Agile UP 9/27/20
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com
Copyright Craig Larman. www.craiglarman.com33
Elaboration vs. Construction?Elaboration vs. Construction?
The distinctionbetweenelaboration and
constructioniterations is fuzzy,
and oftenunimportant on a
project.
Time
Elaboration-ish
risk
requirementsinstability
Iteration
Construction-ish
On some projects, a milestone decision tostop or to submit the bidding for out-sourced
development.
Copyright Craig Larman. www.craiglarman.com34
Elaboration vs. Construction?Elaboration vs. Construction?
? Therefore, ask yourself: Is there some real practical
reason I need to distinguish between elaboration and
construction?
? Often, the answer is no. Fine.
? Then we have:
1. Inceptiona few days or weeks to vaguelycomprehend the project goals and scope.
2. Developmenta series of iterations, driven by risk,that continue until transition.
3. Transitionbeta test and deploy.
-
8/14/2019 agile UP intro-larman
18/25
Agile UP 9/27/20
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com
Copyright Craig Larman. www.craiglarman.com35
Where Possible, Incremental DeliveryWhere Possible, Incremental Delivery
? Partial system in production, early.
? Difficult with embedded or device systems; easy with web sites.
Incep-tion
Elaboration ConstructionTransi-
tion
Incep-tion
Elaboration ConstructionTransi-
tion
Incep-tion
Elaboration ConstructionTransi-
tion
6 month development cycle
iteration
#1
#2
#3
www.craiglarman.comwww.valtech.com
Copyright 2002 Craig Larman. All rights reserved.
Why theWhy theUP?UP?
-
8/14/2019 agile UP intro-larman
19/25
Agile UP 9/27/20
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com
Copyright Craig Larman. www.craiglarman.com37
History and RationaleHistory and Rationale
?
The UP has rapidly emerged as a world-wide de facto industry standard for
modern process.
? Groups within many leading companies
are adopting it.
? IBM, Chase-Manhattan, Telia, Valtech,Alcatel, MCI, British Aerospace, Sprint,Volvo, Intel, Merrill, E&Y, Deloitte,Ericsson, . . .
Copyright Craig Larman. www.craiglarman.com38
History and RationaleHistory and Rationale
Why acceptance?
?It is goodcombines most popular modernbest practices (e.g., iterative development)
?Perceived as coming from modern processexperts.
?It is cohesive and well documented?HTML based RUP product?Books
-
8/14/2019 agile UP intro-larman
20/25
Agile UP 9/27/20
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com
Copyright Craig Larman. www.craiglarman.com39
History and RationaleHistory and Rationale
Why acceptance??Flexible.
?Many organizations have process fatigue andjust want to adopt a good turn key solution.
www.craiglarman.comwww.valtech.com
Copyright 2002 Craig Larman. All rights reserved.
How toHow toFail withFail with
the UPthe UP
-
8/14/2019 agile UP intro-larman
21/25
Agile UP 9/27/20
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com
Copyright Craig Larman. www.craiglarman.com41
Warning: Superimposing Waterfall ThinkingWarning: Superimposing Waterfall Thinking
?
There are books that give the impression ofbeing a source of UP advice.
? They are based on this (incorrect)viewpoint:
? Inceptiondo the requirements
? Elaborationdo the design or models
? Constructiontranslate design to code
? Warning! People superimpose waterfall
ideas/values on the UP.
Copyright Craig Larman. www.craiglarman.com42
Kruchten on Waterfall versus IterativeKruchten on Waterfall versus Iterative
In a waterfall approach, there is a lot of emphasis on the specsand getting them right, complete, polished and signed-off. In theiterative process, the softwarewe develop comes first. It is the
software product that is the main focus of attention throughout,with both specs and software evolving in parallel. This has impacton the teams: testers, for example, may be used to receivingcomplete, stable specs, with plenty of advanced notice to starttesting; whereas in an iterative development, they have to beginworking at once, with specs and requirements that are still
evolving.
From Waterfall to Iterative Lifecycle A tough transition for projectmanagers
by Philippe Kruchten
-
8/14/2019 agile UP intro-larman
22/25
Agile UP 9/27/20
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com
Copyright Craig Larman. www.craiglarman.com43
Define basicDevelopment
Case
Apply in pilotproject
Share results;Refine
DevelopmentCase
Process Mentor
DevelopmentCase
Process Mentor
Apply in otherprojects
Project MemberProject Member
Becomes
UP mentor
1 week 6 months
Adopt/Build a Process like a SystemAdopt/Build a Process like a SystemIteratively and IncrementallyIteratively and Incrementally
Copyright Craig Larman. www.craiglarman.com44
How to Fail with the UPHow to Fail with the UP
?No one has experience with short timeboxediterations.
?There is not a critical mass of veryknowledgeable object-oriented developers.
?Management doesnt really understand theprofound implications of moving from waterfallto iterative lifecycle and adaptive attitudes.
-
8/14/2019 agile UP intro-larman
23/25
Agile UP 9/27/20
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com
Copyright Craig Larman. www.craiglarman.com45
How to Fail with the UPHow to Fail with the UP
?Big bang process adoption
?Leaders implementing iterative developmentand the UP dont have direct experienceworking as developers in iterative developmentand object technology projects.
?Defining changes or enhancements to the UP,when have not yet practiced and mastered thebasics.
Copyright Craig Larman. www.craiglarman.com46
How to Fail with the UPHow to Fail with the UP
?First iteration too big or ambitious.
?Not intensively testing and integrating in eachiteration.
?Not doing true iterative developmentstill
applying waterfall ideas.?Front-loading . . .
-
8/14/2019 agile UP intro-larman
24/25
Agile UP 9/27/20
Copyright (c) 2002 Craig Larman. All rights reserved. www.craigl arman.com
Copyright Craig Larman. www.craiglarman.com47
How to Fail with the UPHow to Fail with the UP
?Creating too many artifacts.
?Focusing on learning or doing UP minutiaerather than the grasping the big ideas.
Copyright Craig Larman. www.craiglarman.com48
You know you didnYou know you didnttunderstand the UP whenunderstand the UP when
?Inception = requirements,?elaboration = design, . . .
?One tries to define most of the requirementsbefore starting design or implementation.
?One tries to define most of the design beforestarting implementation.
-
8/14/2019 agile UP intro-larman
25/25
Agile UP 9/27/20
Copyright Craig Larman. www.craiglarman.com49
You know you didnYou know you didnttunderstand the UP whenunderstand the UP when
?Iterations in months instead of weeks.
?One tries to speculatively predict all iterations,and what will happen in each one.
?An organization wants believable plans and
estimates for projects before they have enteredthe elaboration phase.