Ch2. Software Processes Hamid
Ch2. Software Processes Hamid
1
Topics covered
• Software process models
• Waterfall
• Rapid prototyping
• Incremental
• Synchronize-and-stabilize
• Spiral
Why have a model?
• Software is developed using a life cycle model
• Just a life cycle model is insufficient for development.
We need:
• A broad philosophy
• A set of tools which support the philosophy.
• A language which supports the philosophy.
4
Process Model
• Concept exploration
• determine what client needs not what client wants
• determine the constraints, e.g., ?
• Cost, deadline, reliability, size, performance
• Specifications Phase
• Specification describes the functionality, what the products is supposed
to do & any constraints.
• it is a legal document – a contract
• It must not be ambiguous, incomplete, or contradictory
Design Phase
• Design — how
▪ the internal structure of the product
• Architectural design
▪ decompose product into modules (e.g., objects)
• Detailed design
▪ design each module — data structures, algorithms
• Design testing
▪ traceability & review
Implementation Phase
▪ Test cases
• informal testing (desk checking)
• formal testing & regression by SQA group
Integration Phase
• Combine modules & check product as a whole
• Integration testing
• product testing
• check against the spec (e.g., is the response time short enough)
• check for robustness (can it handle erroneous data)
• acceptance testing (by client with real data)
• Maintenance Phase
• Changes after release, Its costs exceed 67% of total cost of software
• Three main categories of maintenance
• Corrective, adaptive, perfective
The waterfall model
• This model is divided into different phases and the output of one
phase is used as the input of the next phase.
11
The waterfall model
• Planning
In this phase we view the software
product as part of a larger system or
organization where the product is
required. This is basically a system
view where all the system elements
are created.
• Software Requirements
Analysis
The system’s services, constraints, and
goals are established by consultation
with system users. They are then
defined in detail and serve as a
system specification. 12
Waterfall model phases
• Installation
The software is released to the customer.
• Maintenance
This is the largest phase of the software life cycle. Maintenance
can be of different types: to modify the software as the
requirements of the customer evolve, to remove the residual
bugs in the software etc.
When to use Waterfall Model?
• Project is completely dependent on project • We cannot find any error till time testing of
team with minimum client intervention software not done.
Specification
phase
Verify
Design
phase
Verify
Implementation
phase
Test
Integration
Development phase
Maintenance Test
Operations mode
Retirement
Introducing a Prototype
• A prototype is a way of showing our ideas in a tangible way
very early on.
• Prototype as a word comes from the Greek prototypes which
mean “first impression”.
• With prototypes, you can refine and validate your designs so your
brand can release the right products.
19
Introducing a Prototype
• A system prototype is an initial, ow-featured (in-complete) example system
• Developed for the purpose of gathering user’s feedbacks during system
development
• Types of feedback include:
▪ User Reactions
▪ How users feel while working with the prototype system?
▪ User Suggestions
▪ What features users want to change (remove/ modify)?
▪ Innovations
▪ What new features users want to add (not implemented in the prototype)?
▪ Revision Plans
▪ What system features should be included in the next prototype?
▪ Patched-Up Prototype
▪ Non-operational Prototype
▪ First-of-a-Series Prototype
▪ Selected Features Prototype
….Prototype Conceptions
Patched-up Prototype
• A working (complete) system with the features not fully
matured
• Features need to be matured in the future versions
(patched with more code)
• Example:
▪ An information system with inefficient retrieval and
storage of information [Average Query time = 100s of
seconds)
Non-operational Prototype
• A non-working model (no feature is completely
implemented) showing only desired system aspects
• Example:
▪ An information system with no real processing
done (only input screens and output layouts can
be seen)
….Prototype Conceptions
First-of-series Prototype
• A fully functional system (newly developed)
• Examples:
• Example:
• A system with only selected menu items working.
• A modular system development approach is
needed.
• Every module implements a different feature
& can be integrated easily into the larger system.
Assessment of RP Model
• Advantages ?
▪ process proceeds linearly (less need for feedback loops)
▪ easier to take technology risks with the prototype
• Disadvantages
▪ expectation management
▪ delivering “everything” properly takes time
RAD Model
Activities performed in RAD Modeling
Phases
Business On basis of the flow of information and distribution between
Modeling various business channels, the product is designed
The information collected from business modeling is refined
Data Modeling
into a set of data objects that are significant for the business
The data object that is declared in the data modeling phase
Process
is transformed to achieve the information flow necessary to
Modeling
implement a business function
Application Automated tools are used for the construction of the
Generation software, to convert process and data models into prototypes
Testing and As prototypes are individually tested during every iteration,
Turnover the overall testing time is reduced in RAD.
29
When to use RAD Methodology?
.. .. ..
. . .
Incremental
Activities performed in incremental phases
Phases
Requirement • Requirement and specification of the software are
Analysis collected
Design • Some high-end function are designed during this stage
Code • Coding of software is done during this stage
• Once the system is deployed, it goes through the
Test
testing phase
35
When to use Incremental models?
36
Advantages and Disadvantages of
Incremental Model
Advantages Disadvantages
• The software will be generated • It requires a good planning
quickly during the software life cycle designing
• Problems might cause due to system
• It is flexible and less expensive to architecture as such not all
change requirements and scope requirements collected up front for
the entire software lifecycle
• Throughout the development stages • Each iteration phase is rigid and
changes can be done does not overlap each other
• Rectifying a problem in one unit
• This model is less costly compared to
requires correction in all the units
others
and consumes a lot of time
• A customer can respond to each
building
• Errors are easy to be identified
37
Boehm’s spiral model
(Risk-driven software process framework)
• Process is represented as a spiral rather than as a sequence
of activities with backtracking
• Each loop of the spiral represents a phase of the software
process.
• For example, the innermost loop might be concerned
with feasibility study, the next loop with requirements
specification, the next one with design, and so on.
• Each phase in this model is split into four sectors
(or quadrants)
• Risks are explicitly assessed and resolved throughout the
process
Spiral Model [Boehm, IEEE 1998]
Evaluate alternatives,
Objective setting Cumulative Progress
identify, resolve risks
Risk Analysis
cost through steps
Determine
objectives, Risk
alternatives, Risk
Analysis
constraints Risk
Analysis
Analysis
Risk
Commitment Analysis Operational
Prototype 1 Prototype 2 Prototype 3 Prototype
Review
Partition Simulations, models, benchmarks
Requirement plan Concept of
Development
life-cycle plan Operation
Detailed
Software Design
Development Plan Requirement Requirements
Software Code
Validation
Plan next phase Product
Design Unit
Integration and Test Design validation Test
Plan and verification
Integration
Acceptance Test
Implementation Test
41
When to use Spiral Model?
Advantages Disadvantages
• Additional functionality or changes • Risk of not meeting the schedule or
can be done at a later stage budget
• Cost estimation becomes easy as the • Spiral development works best for
prototype building is done in small large projects only also demands risk
fragments assessment expertise
• Continuous or repeated development • For its smooth operation spiral model
helps in risk management protocol needs to be followed strictly
• Development is fast and features are
• Documentation is more as it has
added in a systematic way in Spiral
intermediate phases
development
• Spiral software development is not
• There is always a space for customer
advisable for smaller project, it might
feedback
cost them a lot
43
A Comparison of Life Cycle Models
appropriate
❑ The manager should define the process model used for
drivers