02 - The Software Process
02 - The Software Process
Engineering
2
The Software Process
3
Software Development Approaches
Requirements
definition
System and
software design
Implementation
and unit testing
Operation and
maintenance
5
Waterfall model phases
Requirements analysis and definition
System and software design
Implementation and unit testing
Integration and system testing
Operation and maintenance
6
Waterfall model Requirement and Design
7
The requirements document
The requirements document is the official statement
of what is required of the system developers.
8
Users of a requirements document
Specify the requirements and
System read them to check that they
customers meet their needs. T hey
specify changes to the
requirements
10
Waterfall model problems
• No fabrication step
• Program code is another design level
• Hence, no “commit” step – software can always be changed…!
• No body of experience for design analysis (yet)
• Most analysis (testing) is done on program code
• Hence, problems not detected until late in the process
• Waterfall model takes a static view of requirements
• Ignore changing needs
• Lack of user involvement once specification is written
• Unrealistic separation of specification from the design
12
V-Model
• The V - model is SDLC model where execution of processes happens in a sequential manner
in V-shape. It is also known as Verification and Validation model.
• V - Model is an extension of the waterfall model and is based on association of a testing
phase for each corresponding development stage. This means that for every single phase in
the development cycle there is a directly associated testing phase. This is a highly
disciplined model and next phase starts only after completion of the previous phase.
• Under V-Model, the corresponding testing phase of the development phase is planned in
parallel. So there are Verification phases on one side of the .V. and Validation phases on the
other side. Coding phase joins the two sides of the V-Model.
13
V-Model (cont.)
• Verification Phases
• Do we build the product right?
• Coding
• Validation Phases
• Do we build the right product?
14
VALIDATION
VERIFICATION
15
V-Model (cont.)
16
Evolutionary development
Concurr ent
activities
Initial
Specification
version
Outline Intermediate
Development
description versions
Final
Validation
version
17
Characteristics of Evolutionary Development
18
Incremental Development
Rather than deliver the system as a single delivery,
the development and delivery is broken
down into increments with each increment
delivering part of the required functionality.
User requirements are prioritised and the
highest priority requirements are included
in early increments.
Once the development of an increment is
started, the requirements are frozen though
requirements for later increments can continue to
evolve.
19
Incremental Development – Version I
20
Incremental Development –Advantages
21
Incremental Development – Problems
22
Incremental means adding, iterative means
reworking (by Alistair Cockburn)
Incremental development is a staging and scheduling strategy in which
the various parts of the system are developed at different times or rates and
integrated as they are completed. The alternative is to develop the entire
system with a big bang integration at the end.
Iterative development is a rework scheduling strategy in which time is
set aside to revise and improve parts of the system. The alternative
development is to get it right the first time (or at least declare that it is
right!).
Iterate Increment
fundamentally means fundamentally means “add
.”“change .”onto
repeating the process on the repeating the process on a
same section of work .new section of work
repeat the process (, design, repeat the process (, design,
,implement, evaluate) ,implement, evaluate)
23
Incremental Development
24
Iterative Development
25
Iterative Development – Prototyping
Model
Sometimes user don’t know the requirement clearly.
May be confused about the efficiency of an algorithm,
the adaptability of an operating system, or the form
that human-machine interaction should take.
The delivered product is a prototype initially (not a
running product).
Ideally, the prototype serves as a mechanism for
identifying software requirements
26
Iterative Development – Prototyping Model
27
Iterative Development – Prototyping
Model
Disadvantages:
The stakeholders see the ready product, and don’t know it has
been created haphazardly by gluing several resources to deliver
asap.
Using inefficient approaches seem normal, and long lasts in
the system code.
28
Spiral Model
29
Spiral development
30
Spiral model of the software process
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
Service test Develop, verify
next-level product
31
Spiral model sectors
Objective setting
• Specific objectives for the phase are identified
Planning
• The project is reviewed and next phase of the spiral is planned
32
Spiral model usage
33
CMMI: Capability Maturity Models Integrated
34
CMMI: Capability Maturity Models Integrated (cont.)
35
Summary
Iterative model - This model iterates requirements, design, build and
test phases again and again for each requirement and builds up a
system iteratively till the system is completely build.
Incremental model - It is non integrated development model. This
model divides work in chunks and one team can work on many
chunks. It is more flexible.
Spiral model - This model uses series of prototypes in stages,
the development ends when the prototypes are developed into
functional system. It is flexible model and used for
large and complicated projects.
Evolutionary model - It is more customer focused model. In this model
the software is divided in small units which is delivered earlier to the
customers.
V-Model - It is more focused on testing. For every phase some testing
activity are done.
36