Software Engineering
Dr. Shafiqul Abidin
Associate Professor
Department of Computer Science
Aligarh Muslim University (AMU)
Aligarh
PPT are based on Software Engineering , by
K.K Aggarwal & Yogesh Singh
& 1
Software Engineering by Roger S Pressman
Software Process Models
Part -2
CABSM6001
Software Life Cycle Models /Soft ware
Process Models
The goal of Software Engineering is to provide
models and processes that lead to the production
of well-documented maintainable software in a
manner that is predictable. The period of time
that starts when a software product is conceived
and ends when the product is no longer available
for use. The software life cycle typically includes
a requirement phase, design phase,
implementation phase, test phase, installation and
check out phase, operation and maintenance
phase, and sometimes retirement phase”. 2
Software Process Models
2
Different Process Models
2
Waterfall Model/ Linear Sequential Model
2
Waterfall Model/ Liner Sequential Model
2
Waterfall Model/ Liner Sequential Model
2
Prototyping Model
2
Prototyping Model
➢ The prototype may be a usable program
but is not suitable as the final software
product.
➢ The code for the prototype is thrown
away. However experience gathered
helps in developing the actual system.
➢ The development of a prototype might
involve extra cost, but overall cost might
turnout to be lower than that of an
equivalent system developed using the 2
waterfall model.
Prototyping Model
2
Prototyping Model
2
The Spiral Model (Barry Boehm 1986)
2
The Spiral Model (Barry Boehm 1986)
2
The Spiral Model (Barry Boehm 1986)
2
A spiral model has 4 phases
described below:
• Planning phase
• Risk analysis phase
• Engineering phase
• Evaluation phase.
When to use Spiral Model?
• When project is large
• When releases are required to be frequent
• When creation of a prototype is applicable
• When risk and costs evaluation is important
• For medium to high-risk projects
• When requirements are unclear and complex
• When changes may require at any time
• When long term project commitment is not
feasible due to changes in economic priorities
Incremental Model
• Incremental Model is a process of software
development where requirements are broken down into
multiple standalone modules of software development cycle.
• Each iteration passes through the requirements, design,
coding and testing phases.
• Typical product takes from 5 to 25 builds (iterations).
Incremental Model (contd.)
Incremental Model (contd.)
• Waterfall and rapid prototyping models
• Deliver complete product at the end
• Incremental model
• Deliver portion of the product at each stage
• Advantages
• The software will be generated quickly during the software
life cycle
• It is flexible and less expensive to change requirements and
scope
• Throughout the development stages changes can be done
• This model is less costly compared to others
• A customer can respond to each building
• Errors are easy to be identified
Incremental Model (contd.)
• Disadvantages:
• It requires a good planning designing
• Problems might arise due to system architecture as not all
requirements collected up front for the entire software
lifecycle
• Each iteration phase is rigid and does not overlap each
other
• Correcting a problem in one unit requires correction in all
the units and consumes a lot of time
When to use Incremental
models?
• Requirements of the system are clearly understood
• When demand for an early release of a product arises
• When software engineering team are not very well skilled or
trained
• When high-risk features and goals are involved
• Such methodology is more in use for web application and
product based companies
V Model
V Model
The V-model represents a development process that may be
considered an extension of the waterfall model and is an
example of the more general V-model. Instead of moving
down in a linear way, the process steps are bent upwards after
the coding phase, to form the typical V shape. The V-Model
demonstrates the relationships between each phase of the
development life cycle and its associated phase of testing. The
horizontal and vertical axes represent time or project
completeness (left-to-right) and level of abstraction (coarsest-
grain abstraction uppermost), respectively.
Software Project Management -
W5HH of Project Management