Upload
wendy-sophie-mosley
View
220
Download
0
Embed Size (px)
Citation preview
Prescriptive Process Models
Jon Walker
Prescription?
What does prescriptive mean?
Answer
● Proscribe a set of process elements● “Things to do”● A model of the lifecycle also
Software Life-Cycle Models● Build-And-Fix
Build and product without any specification or design
Modify (or “fix”) product until client is satisfied
Waterfall● Used exclusively until the early 80s● Output (or “artifacts”) from each phase go into
next phase● What are artifacts?● What are the advantages of Waterfall?
Forced discipline of going through each phase Well defined phases
● What are the disadvantages? No modeling of requirements Traceability is hard to attain (why?)
Incremental Models
● RAD● Incremental
RAD
● Rapid Application Development (RAD)● Short development cycle● High speed waterfall● Break into pieces/components● Assign teams to components● What do you think the pros/cons are?
Pros/Cons
● Pros of RAD More rapid feedback than waterfall
● Cons of RAD Project has to be scalable
● Able to be broken into pieces For a large project you need to have a lot of
teams May not be appropriate if there is a lot of
technical risk (interfaces change)
Incremental● Break the software into pieces● Build and test the software after adding
each piece (incrementally)● Stop when the final product meets the
specifications● The product must be testable as each
piece is added● What do you think the pros/cons are?
Pros/Cons
● Pros of Incremental Client gets a functional product earlier Change in requirements can be handled
incrementally● Cons of Incremental
Product has to naturally break into pieces that can be incorporated one at a time without breaking existing functionality
Quickly degenerates into build-and-fix model
Evolutionary
● Rapid Prototyping● Spiral● Synchronize and Stabilize
Rapid Prototyping● Build a prototype and refine prototype
until the customer is satisfied● What are the pros/cons?
Pros/Cons
● Pros of Rapid Prototype Requirements are more likely to be correct Input from prototype can be used in design
● Cons of Rapid Prototype Problem with seeing prototype as throw-
away? Design may be inflexible Difficult to review decisions made during
certain phases
Spiral● Incorporates aspects of the other models● Main objective is to reduce risk
What is risk?● Like Waterfall but risk analysis is done
before each phase and verification is done afterwards
● What are the pros/cons?
Pros/Cons
● Pros of Spiral Emphasis on alternatives so when a
problem is encountered another approach can be taken
● Cons of Spiral Requires that developers are good at
identifying and mitigating risks
Synchronize and Stabilize● Variation on Incremental model● Gather requirements● Prioritize and break into three or four builds with the earlier
builds having the most important features● Features are worked on by a number of independent teams● Each day or periodically during the lifecycle
“Synchronize” all source code Test, debug, and “stabilize” “Freeze” result
● Used by Microsoft● Advantages and disadvantages are similar to incremental
model
Specialized Process Models
● Component-Based Development Like spiral Identify components at start of each cycle
● Formal Methods Mathematical specification of software
● Aspect-Oriented Development Extract system wide features Aspect oriented languages
Rational Unified Process (RUP)
● James Rumbaugh, Grady Booch, Ivar Jacobsen Had individual methods for developing
software Rumbaugh and Booch
● 1990 – unified method● Added Jacobsen - requirements
● Considered the “modern” alternative to waterfall● Standard for OO software development● Phases much like waterfall● Defines work products or “models” for each phase
e.g. Use cases
Phases of RUP
● Phases Inception Elaboration Contruction Transition Production
● What are the waterfall phases again?● Can you match them?● Difference is that they happen in
increments● Increments may be concurrent