Professional Documents
Culture Documents
32
The UP (and experienced iterative developers) recommends an iteration length between two and six weeks. Small steps, rapid feedback, and adaptation are central ideas in iterative development; Long iterations subvert the core motivation for iterative development and increase project risk. Much less than two weeks, and it is difficult to complete sufficient work to get meaningful throughput and feedback; much more than six or eight weeks, and the complexity becomes rather overwhelming, and feedback is delayed. A very long iteration misses the point of iterative development. Short is good.
32
OOAD,
Timeboxing
33
A key idea is that iterations are timeboxed, or fixed in length. For example, if the next iteration is chosen to be four weeks long, then the partial system should be integrated, tested, and stabilized by the scheduled date date slippage is discouraged. If it seems that it will be difficult to meet the deadline, the recommended response is to remove tasks or requirements from the iteration, and include them in a future iteration, rather than slip the completion date.
33
OOAD,
34
OOAD,
Business Modeling As illustrated in Figure, use cases influence many UP artifacts. Requirements
Terms, attributes relationships
Domain Model
Use-Case Model
Vision
requirements
Supplementary Specification
Glossary
Design
Project Management
Acceptance tests
Development Case
Test OOAD,
Test Plan
Sample UP Artifacts
35
Environment
Use-Case Diagram
Use Case 1 Actor A Use Case 2 Actor B
Class Diagram
DocumentList FileMgr add( ) delete( ) Document name : int docid : int numField : int get( ) open( ) close( ) read( ) sortFileList( ) create( ) fillDocument( ) read() fill the code.. fetchDoc( ) sortByName( ) FileList fList add( ) delete( ) 1
State Diagram
add file [ numberOffile==MAX ] / flag OFF Openning
add file
Writing
close file
Closing
read( )
Domain Expert
Use Case 3
UI
MFC
Class
Repository DocumentList
Deployment Diagram
- 95 : - NT: - - : - -, - - IBM : -, -
DocumentApp
RogueWave Persistence
Window95
Windows95 Windows95
global
FileManager
- .EXE -
Package Diagram
Windows N T
Document
- .EXE
Solaris
IBM Mainframe
Component Diagram
Source Code edit, compile, debug, link Sequence Diagram Executable System
36
OOAD,
Business Modeling
Business Model
supported by
realized by
Test
Test Model
37
OOAD,
Artifacts/Models in UP Workflows
38
Discipline
Artifact Iteration
Incep. I1
Elab. E1En
Const. C1-Cn
Trans. T1-T2
Business Modeling
s r r r r s s s s s s
38
Design
r r r r r r r
r s r
s-start; r-refine
Feedback on Evolutions
39
A two year study reported (in the MIT) of successful software projects identified four common factors for success [MacCormack01] ;
1) 2) 3) 4)
iterative development (was first on the list) at least daily incorporation of new code into a complete system build, and rapid feedback on design changes (via testing); and early focus on building and providing a cohesive architecture
39
OOAD,
Methodologists speak of processes as heavy vs. light, and predictive vs. adaptive. A heavy process is a pejorative term meant to suggest one with the following qualities [FowlerOO]: many artifacts created in a bureaucratic atmosphere rigidity and control elaborate, long-term, detailed planning predictive rather than adaptive
40
OOAD,
Agile UP (2)
41
A predictive process is one that attempts to plan and predict the activities and resource (people) allocations in detail over a relatively long time span, such as the majority of a project
Predictive processes usually have a "waterfall" or sequential lifecyclefirst, defining all the requirements; second, defining a detailed design; and third, implementing.
In contrast, an adaptive process is one that accepts change as an inevitable driver and encourages flexible adaptation; they usually have an iterative lifecycle
41
OOAD,
Agile UP(3)
42
An agile process implies a light and adaptive process, nimble in response to changing needs. The UP was not meant by its authors to be either heavy or predictive, although its large optional set of activities and artifacts have understandably led to that impression. Rather, it was meant to be adopted and applied in the spirit of an agile process agile UP.
42
OOAD,
43
think that inception = requirements, elaboration = design, and construction = implementation (that is, superimposing a waterfall lifecycle on to the UP). think that the purpose of elaboration is to fully and carefully define models, which are translated into code during construction.
You
44
OOAD,
45
OOAD,
You
believe that a suitable iteration length is four months long, rather than four weeks long (excluding projects with hundreds of developers).
You
think UML diagramming and design activities are a time to fully and accurately define designs and models in great detail, and of programming as a simple mechanical translation of these into code.
46
OOAD,
You think that adopting the UP means to do many of the possible activities and create many documents, and thinks of or experiences the UP as a formal, fussy process with many steps to be followed. You try to plan a project in detail from start to finish; you try to speculatively predict all the iterations, and what should happen in each one.
You want believable plans and estimates for projects before the elaboration phase is finished.
47
OOAD,
The Unified Modeling Language (UML) is a language for specifying, visualizing, constructing, and documenting the artifacts of a softwareintensive system A software development process defines Who is doing What, When and How in building a software product The Unified Process has four phases: Inception, Elaboration, Construction and Transition Each phase ends at a major milestone and contains one or more iterations An iteration is a distinct sequence of activities with an established plan and evaluation criteria, resulting in an executable release
48
OOAD,