Software Process Models
Software Process Models
Slide 1
Slide 2
Overview
Different process models
Build-and-fix model Waterfall model Incremental model Evolutionary process models
o Rapid prototyping model o Spiral model
Slide 3
Build-and-Fix Model
Problems
No specifications No design
Totally unsatisfactory
High cost Difficult maintenance
Slide 4
Waterfall Model
Characterized by
Feedback loops Documentation-driven
Slide 5
Advantages
Enforces disciplined approach
o Documentation for each phase o Products of each phase checked by SQA group
Maintenance is easier
o Every change reflected in the relevant documentation
Disadvantages
Working version of the software will not be available until late in the project time-span Specifications are long, detailed, written in a style unfamiliar to the client Blocking states some project team members must wait for other team members to complete dependent tasks
Copyright K.Goseva 2006 CS 230 Introduction to Software Engineering Slide 6
Incremental Model
Slide 7
Incremental model
Deliver portion of the product at each stage
Advantages
Less traumatic Smaller capital outlay, rapid return on investment Open architecturemaintenance implications
Disadvantages
Easily can degenerate into build-and-fix model Contradiction in terms
Copyright K.Goseva 2006 CS 230 Introduction to Software Engineering Slide 8
Slide 9
Linear model no
feedback loops
Slide 10
Rapid prototype
Used in the requirements phase Evaluated by the customer/user Then, it is discarded - do not turn into product
Slide 11
Spiral Model
If risks cannot be
resolved, project may be terminated immediately
Slide 13
Slide 14
Strengths
Answers the question How much to test ? in terms of risk No distinction between development and maintenance (another cycle of the model)
Weaknesses
Internal (in-house) development only
o For contract software, all risk analysis must be performed before the contract is signed, not in the spiral model
Slide 15
Development guidelines
o Stress delivery over analysis and design o Active and continuous communication between developers and customers
Copyright K.Goseva 2006 CS 230 Introduction to Software Engineering Slide 16
First step
Determine features that client wants (stories) Estimate duration and cost of each feature
Client selects stories for each successive build Each build is divided into tasks Test cases for a task are drawn up Pair programming working with a partner on one screen Continuous integration of tasks
Slide 18
http://www.extremeprogramming.org/
Slide 19
Features of XP
with cubicles Client representative works with the XP team at all the times Individual cannot work overtime for 2 successive weeks There is no specialization
all members of the XP team work on specification, design, code, and testing
Slide 20
Features of XP
Advantages
Useful when requirements are vague or changing Emphasis on teamwork and communication Programmer estimates before committing to a schedule Continuous measurement; frequent, extensive testing
Disadvantages
Limited to small products and small teams - can be disastrous when programs are larger than a few thousand lines of code or when the work involves more than a few people. Lack of design documentation Lack of a structured review process
Slide 21
Synchronize-and-Stabilize Model
Draw up specifications Divide project into 3 or 4 builds Each build is carried out by small teams working
in parallel
Slide 22
Slide 23
Slide 24
Fountain Model
Slide 25
Unified Process
Slide 26
Elaboration phase
Encompasses the customer communication and modeling activities Refines and expands preliminary use-cases Expands architectural representation to include: use-case model, analysis model, design model, implementation model, and deployment model The plan is carefully reviewed and modified if needed
Construction phase
Analysis and design models are completed to reflect the final version of the software increment Using the architectural model as an input develop or acquire the software components, unit tests are designed and executed, integration activities are conducted Use-cases are used to derive acceptance tests
Copyright K.Goseva 2006 CS 230 Introduction to Software Engineering Slide 27
Production phase
Software use is monitored Defect reports and requests for changes are submitted and evaluated
Slide 28
Elaboration phase
Use-case model Supplementary requirements, including non-functional Analysis model Software architecture description Executable architectural prototype Preliminary design model Revised risk list Project plan including iteration plan adapted workflows milestones technical work products Preliminary user manual
Slide 29
Transition phase
Delivered software increment Beta test reports General user feedback
Slide 30
Conclusions
Slide 31