Software Processes
Software Processes
2 / 31
Ad hoc Software Development
4 / 31
Software Process Models: Waterfall
5 / 31
Software Process Models: Waterfall..
The Waterfall model [Somm00, Fig 3.1]
Requirements
definition
System and
software design
Implementation
and unit testing
Operation and
maintenance
6 / 31
Software Process Models: .Waterfall.
Main characteristics:
Also called classic software life cycle or
sequential model
Process activities (phases/stages) are clearly
separated
After a number of iterations, phases of the life
cycle (such as specification and design) are
“frozen”
7 / 31
Software Process Models: ..Waterfall
Advantages:
Organized approach, provides robust separation of
phases
Reflects common engineering practice
Disadvantages:
Doesn’t cope well with changes required by the client
Development teams might wait for each other
A working version of the product is available only late
Applicability:
When requirements are well known and few changes
are likely to be needed
Can be used also for parts of larger software systems
8 / 31
Software Process Models:
Evolutionary Development…
Evolutionary Development model [Somm00, Fig 3.2]
Concurr ent
activities
Initial
Specification
version
Outline Intermediate
Development
description versions
Final
Validation
version
9 / 31
Software Process Models:
Evolutionary Development…
10 / 31
Software Process
Models: .Evolutionary Development..
Main characteristics:
The phases of the software construction are
interleaved
Feedback from the user is used throughout the entire
process
The software product is refined through many versions
11 / 31
Software Process
Models: ..Evolutionary Development.
Advantages:
Deals constantly with changes
Provides quickly an initial version of the system
Involves all development teams
Disadvantages:
Quick fixes may be involved
“Invisible” process, not well-supported by
documentation
The system’s structure can be corrupted by
continuous change
12 / 31
Software Process Models: …
Evolutionary Development
Disadvantages [cont’d]:
Special tools and techniques may be necessary
The client may have the impression the first
version is very close to the final product and thus
be less patient
Applicability:
When requirements are not well understood
When the client and the developer agree on a
“rapid prototype” that will be thrown away
Good for small and medium-sized software
systems
13 / 31
Software Process Models:
Incremental Development…
The Incremental Model [Somm00, Fig 3.6]
14 / 31
Software Process Models: .Incremental..
Main characteristics:
Hybrid model that combines elements of the
waterfall and evolutionary paradigms
The specification, design, and implementation
phases are broken in smaller increments
15 / 31
Software Process Models: ..Incremental.
Advantages:
Provides better support for process iteration
Reduces rework in the software construction process
Some decisions on requirements may be delayed
Allows early delivery of parts of the system
Supports easier integration of sub-systems
Lower risk of project failure
Delivery priorities can be more easily set
16 / 31
Software Process Models: ...Incremental
Disadvantages:
Increments need be relatively small
Mapping requirements to increments may not be
easy
Common software facilities may be difficult to
identify
Applicability:
When it is possible to deliver the system “part-by-
part”
17 / 31
Software Process Models: Spiral Model..
Boehm’s Spiral Model [Somm00, Fig 3.7]
Determine objectives
Evaluate alternatives
alternatives and identify, resolve risks
constraints Risk
analysis
Risk
analysis
Risk
analysis Opera-
Prototype 3 tional
Prototype 2 protoype
Risk
REVIEW analy sis Proto-
type 1
Requirements plan Simulations, models, benchmarks
Life-cycle plan Concept of
Operation S/W
requirements Product
design Detailed
Requirement design
Development
plan validation Code
Design Unit test
Integration
and test plan V&V Integr ation
Plan next phase test
Acceptance
test Develop, verify
18 / 31 Service
next-level product
Software Process Models: .Spiral Model.
Main characteristics:
Also a hybrid model that support process iteration
The process is represented as a spiral, each loop in
the spiral representing a process phase
Four sectors per loop: objective setting, risk
assessment and reduction, development and
validation, planning
Risk is explicitly taken into consideration
19 / 31
Software Process Models: ..Spiral Model
Advantages:
Risk reduction mechanisms are in place
Supports iteration and reflects real-world practices
Systematic approach
Disadvantages:
Requires expertise in risk evaluation and reduction
Complex, relatively difficult to follow strictly
Applicable only to large systems
Applicability:
Internal development of large systems
20 / 31