Software Life-Cycle and Process Models

cockeysvilleuterusΛογισμικό & κατασκευή λογ/κού

2 Δεκ 2013 (πριν από 3 χρόνια και 11 μήνες)

133 εμφανίσεις

1
SE464/CS446/ECE452
Software Life-Cycle and Process
Models
Instructor:
Krzysztof Czarnecki
2
•Some of these slides are based on:
–Lecture slides by Ian Summerville
accompanying his classic textbook software
engineering, see
http://www.comp.lancs.ac.uk/computing/resources/ser/
3
Overview
•Build-and-fix model
•Waterfall model
•Rapid prototyping model
•Incremental model
•Evolutionary
•Spiral model
4
Software Life-Cycle and Process
Models
•Life-cycle models
–Phases in the life of artifacts
•Process models
–The software development and operation activities
and their ordering
•Requirements elicitation
•Specification
•Design
•Implementation
•Integration
•Testing
•…
5
Build and Fix Model
•Properties
–No planning or analysis
–The working program is the
only workproduct
•Advantage
–Appropriate for small programs
written by one person
•Disadvantage
–Understandability and
maintainability decrease rapidly
with increasing program size
–Totally unsatisfactory
–Need a life-cycle model
•“Game plan”
•Phases
•Milestones
6
Waterfall Model
•Characterized by
–Sequential steps (phases)
–Feedback loops (between two phases in
development)
–Documentation-driven
•Advantages
–Documentation and clearly defined phases
–Maintenance easier (assuming up-to-date
docs available)
•Disadvantages
–Complete and frozen specification document
up-front often not feasible in practice
–Customer involvement in the first phase only
–Sequential and complete execution of phases
often not desirable
–Process difficult to control
–The product becomes available very late in
the process (significant risk of building the
“wrong”system)
•Applicability
–Only appropriate when the requirements are
well-understood
7
Rapid Prototyping Model
•Rapid prototyping phase
followed by waterfall
–Do not turn the rapid prototype
into the product
–Rapid prototyping may replace
the specification phase—never
the design phase
•Comparison:
–Waterfall model—try to get it
right the first time
–Rapid prototyping—frequent
change, then discard
8
Advantages and Disadvantages
•Advantages
–Requirements better specified and validated
–Early feasibility analysis
–Strong involvement of the customer in the
prototyping phase
•Disadvantage
–Higher development effort
–Danger that due to schedule slip, the prototype
becomes part of the product
9
Spiral model
•Waterfall model plus risk analysis and prototyping
preceding each phase and evaluation following each phase
–Inner cycles denoting early system analysis and prototyping
–Outer cycles denoting the rest of the classic waterfall
•Radial dimension: cumulative cost to date
•Angular dimension: progress through the spiral
•If all risks cannot be resolved, the project is immediately
terminated
•Appropriate only for big projects (high management
overhead)
–First proposed by Boehm in 1987
–Precursor of iterative models
10
Spiral model
Risk
analysis
Risk
analysis
Risk
analysis
Risk
analysis
Proto-
type 1
Prototype 2
Prototype 3
Opera-
tional
protoype
Concept of
Operation
Simulations, models, benchmarks
S/W
requirements
Requirement
validation
Design
V&V
Product
design
Detailed
design
Code
Unit test
Integration
test
Acceptance
test
Service
Develop, verify
next-level product
Evaluate alternatives
identify, resolve risks
Determine objectives
alternatives and
constraints
Plan next phase
Integration
and test plan
Development
plan
Requirements plan
Life-cycle plan
REVIEW
11
Iterative Models
•Build software in multiple iterations
•Two flavors
–Incremental
–Evolutionary
12
Incremental Model
Design
Coding
Test
Deployment
Design
Coding
Test
Deployment
Design
Coding
Test
Deployment
Requirements
Release 1
Release 2
Release 3
•User requirements are prioritized and
the highest priority requirements are
included in early increments
•Each release adds more functionality,
i.e., a new increment
13
Incremental Model
•Advantages
–Operational quality portion of product within weeks
(whereas in waterfall and rapid prototyping models
Operational quality complete product at end)
–Less traumatic
–Smaller capital outlay, rapid return on investment
–Comprehensive spec up front can be used as a contract
•Disadvantage
–May be hard to create a comprehensive requirements
spec up front if a domain not well understood
14
Evolutionary
Design
Coding
Test
Deployment
Requirements
Design
Coding
Test
Deployment
Requirements
Design
Coding
Test
Deployment
Requirements
Feedback
Version 1
Version 1
Version 1
New versions implement new
(increments) and evolvingrequirements
(Many refer to it as just iterative)
15
Evolutionary Model (contd)
•Advantages
–Early increments act as a prototype to help elicit requirements for
later increments
–Constant customer involvement and validation
–Allows for good risk management -lower risk of overall project
failure
–Project can be continued as long as each increment delivers value
–Agile software development methods use the evolutionary model
•Disadvantages
–Build-and-fix danger
•Can use agile development practices (unit test, increment planning,
etc.) to avert this danger
–Not appropriate when a larger part of a system needs to be
commissioned from a supplier
•Need a comprehensive requirements spec as a contract up front
16
Process model risk problems
•Waterfall
–High risk for new systems because of specification
and design problems
–Low risk for well-understood developments using
familiar technology
•Prototyping
–Lower risk for new applications because
specification validated
–Potentially high risk for stages beyond prototyping
•Evolutionary
–Middle ground between waterfall and prototyping
17
Hybrid process models
•Large systems are usually made up of several
sub-systems
•The same process model need not be used for
all subsystems
•Prototyping for high-risk specifications
•Waterfall model for well-understood
developments
•Taylor the process to a problem
18
Use of the Models in Practice
19
Lifecycle vs. Processes
•Lifecycle models
–Phases in the life of an artifact, e.g., a system
•Process models
–Activities performed on artifacts, e.g.,
development activities
20
Phases vs. Activities
Management
Environment
Business Modeling
Implementation
Test
Architecture & Design
Preliminary
Iteration(s)
Iter.
#1
Phases
Process Workflows
Iterations
Supporting Workflows
Iter.
#2
Iter.
#n
Iter.
#n+1
Iter.
#n+2
Iter.
#m
Iter.
#m+1
Deployment
Configuration Mgmt
Requirements
ElaborationTransitionInceptionConstruction
Workflowsgroup
activities logically
In an iteration,
you walk through
all workflows
Activities performed concurrently, but with differing intensity