0% found this document useful (0 votes)
6 views20 pages

Software Processes

Uploaded by

Sehrish Murtaza
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views20 pages

Software Processes

Uploaded by

Sehrish Murtaza
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 20

1 / 31

Software Process Models


 Software process = organized set of activities
aimed at building a software system

 Software process model = an abstract


representation of a software process

2 / 31
Ad hoc Software Development

Developing software without planning for each


phase, and without specifying tasks,
deliverables, or time constraints.

Relies entirely on the skills and experience of


the individuals performing the work.

The software process may change as work


3 / 31 progresses.
Software Process Models

 A structured set of activities required to


develop a software system.

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

Integr ation and


system 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]

Define outline Assign requirements Design system


requirements to increments architecture

Develop system Valida te Integrate Valida te


increment increment increment system
Final
system
System incomplete

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

You might also like