W2-Lecture 3&4-Software Process Models
W2-Lecture 3&4-Software Process Models
Lecture 3&4
Software Process Models
4/13/2025
CSC291 - Software Engineering Concepts 2
Software Development
Construction
Some of the major construction activities are listed below.
• Requirement Gathering
• Design Development
• Coding
• Testing
Management
Some of the major management activities are listed below.
• Project Planning and Management
• Configuration Management
• Software Quality Assurance
• Installation and Training
4/13/2025 CSC291 - Software Engineering Concepts 3
Following are the most important and popular SDLC models followed
in the industry:
Waterfall model.
V Model
Evolutionary development.
Component-Based development model (CBSE).
Process iteration(incremental and spiral Models)
The other related methodologies are Agile and RAD Model – Rapid
Application Development
4/13/2025 CSC291 - Software Engineering Concepts 11
Waterfall Model
• First published model
Waterfall Model
The sequential phases in Waterfall model are:
Requirement Gathering and analysis: All possible
requirements of the system to be developed are captured in
this phase and documented in a requirement specification
document.
• System’s services
• Constraints
• Goals
Waterfall Model
Implementation and unit testing: With inputs from system
design, the system is first developed in small programs
called units, which are integrated in the next phase. Each
unit is developed and tested for its functionality which is
referred to as Unit Testing.
Waterfall Model
Deployment of system: Once the functional and
nonfunctional testing is done, the product is deployed in
the customer environment or released into the market.
Waterfall Model
4/13/2025 CSC291 - Software Engineering Concepts 16
Waterfall Model
Applicability:
• Technology is understood
4/13/2025 CSC291 - Software Engineering Concepts 17
Waterfall Model
Advantages:
• Documentation - at each phase
• Phases are processed and completed one at a time.
• Easy to arrange tasks.
Problems:
• Inflexible partitioning of the project into distinct stages
makes it difficult to respond to changing customer
requirements.
4/13/2025 CSC291 - Software Engineering Concepts 18
V Model
• A variation of the waterfall model
• Verification
• Does the product meet system specifications?
• Have you built the product right?
• Validation
• Does the product meet user expectations?
• Have you built the right product?
4/13/2025 CSC291 - Software Engineering Concepts 20
V Model
4/13/2025 CSC291 - Software Engineering Concepts 21
V Model
Coding Phase
• The actual coding of the system modules designed in the
design phase is taken up in the Coding phase.
• The best suitable programming language is decided
based on the system and architectural requirements.
• The coding is performed based on the coding guidelines
and standards.
• The code goes through numerous code reviews and is
optimized for best performance before the final build is
checked into the repository.
4/13/2025 CSC291 - Software Engineering Concepts 24
Integration Testing:
• Integration testing is associated with the architectural
design phase.
• Integration tests are performed to test the coexistence
and communication of the internal modules within the
system.
4/13/2025 CSC291 - Software Engineering Concepts 25
Acceptance Testing:
• Acceptance testing is associated with the business
requirement analysis phase and involves testing the
product in user environment.
• It also discovers the non functional issues such as load
and performance defects in the actual user environment.
4/13/2025 CSC291 - Software Engineering Concepts 26
V Model
Advantages:
• Testing activities like planning, test designing, happens
well before coding.
• Higher chances of success over the waterfall model.
• Works well for projects where requirements are easily
understood.
Problems:
• Difficult to handle changes in requirements throughout the
life cycle
4/13/2025 CSC291 - Software Engineering Concepts 27
V Model
Applicability:
Evolutionary Models
Evolutionary Development:
• Includes the activities of specification, development and
validation
• Initial system is developed from abstract specification
• Then refined with customer input to produce a system that
satisfies the customer’ s needs.
Evolutionary Models
Exploratory Model
• The development starts with the parts of the system that are
understood.
Exploratory Models
Initial
Specification
Version
Outline Intermediate
Description Development Version
Validation Final
Version
4/13/2025 CSC291 - Software Engineering Concepts 31
Exploratory Model
Problems:
Lack of process visibility;
Systems are often poorly structured
Applicability:
For small or medium-size interactive systems
For parts of large systems (e.g. the user interface)
4/13/2025 CSC291 - Software Engineering Concepts 32
Evolutionary Models
Prototyping Model
• When a customer defines a set of general objectives for a
software but does not identify detailed I/O or processing
requirements.
• A prototype is built to understand the requirements.
• By using this prototype, the client can get an “actual feel”
of the system
• The interactions with prototype can enable the client to
better understand the requirements of the desired system
• Prototyping is an attractive idea for complicated and large
systems.
4/13/2025 CSC291 - Software Engineering Concepts 33
Evolutionary Models
Prototyping Model
Prototype Model
1. Requirements gathering.
2. Design and build SW prototype.
1/4
3. Evaluate prototype with customer.
Listen to
Customer 4. Refine requirements.
3
2
Customer
Build / Revise
Test-Drives
prototypes
prototypes
4/13/2025 CSC291 - Software Engineering Concepts 35
Prototyping
Engineer Requirements
Product
No Quick
Yes Design
Changes?
Build
Refine Prototype
Prototype
Evaluate
Prototype (Pressman, 1996)
4/13/2025 CSC291 - Software Engineering Concepts 36
Prototype Model
Advantages:
• Users are actively involved in the development
• Users get a better understanding of the system being
developed.
• Errors can be detected much earlier.
• Quicker user feedback is available leading to better
solutions.
Disadvantages:
• Practically, this methodology may increase the complexity
of the system as scope of the system may expand beyond
original plans.
4/13/2025 CSC291 - Software Engineering Concepts 37
Prototype Model
Applicability:
Why Components!!!
• Following other engineering disciplines (civil and
• Connection Standards
4/13/2025 CSC291 - Software Engineering Concepts 41
Disadvantages
• Requirement changes—may lead to a system that does
not meet the real needs of users
• Control over the system evolution is lost
4/13/2025 CSC291 - Software Engineering Concepts 44
Process Iteration
• Incremental delivery
• Spiral development
4/13/2025 CSC291 - Software Engineering Concepts 45
Incremental Approach
Incremental Development
4/13/2025 CSC291 - Software Engineering Concepts 47
Incremental Delivery(Steps)
1. Customer identify—services provided by the system
2. Then identify which of the services are most important
and which are least important
3. No of delivery increments are then identified with sub-
set of the system functionality
4. Highest priority services delivered first
5. Requirements for the first increment are defined in
detail
6. First Increment is developed and delivered ..customer
can put into service.(Benefit for customer?)
7. During development ….further requirements analysis for
later increments can take place
4/13/2025 CSC291 - Software Engineering Concepts 48
Incremental Model
Advantages:
• Customer value can be delivered with each increment so
system functionality is available earlier.
• Early increments act as a prototype to help elicit
requirements for later increments.
• Lower risk of overall project failure.
• The highest priority system services tend to receive the most
testing.
Disadvantages:
• Can be difficult to map the customer’s requirements onto
increments of the right size.
• Hard to identify common functions.
4/13/2025 CSC291 - Software Engineering Concepts 49
Spiral Model
• The software process is represented as spiral, rather than
a sequence of activities with some backtracking from one
activity to another.
Spiral Model
• Simplified form
– Waterfall model plus risk analysis
• Precede each phase by
– Alternatives (build, reuse, buy,
sub-contract)
– Risk analysis (lack of experience,
new technology, tight schedules)
• Follow each phase by
– Evaluation
– Planning of next phase
4/13/2025 CSC291 - Software Engineering Concepts 51
• Typical activates:
– Create a design
– Review design
– Develop code
– Inspect code
– Test product
4/13/2025 CSC291 - Software Engineering Concepts 52
Objective setting
• Specific objectives for that phase of the project are identified
• Identify Constraints on process & product.
• Detail management plan is drawn up
• Identify Project risks
• Alternative strategies on these risks ...may be planned
4/13/2025 CSC291 - Software Engineering Concepts 54
Spiral Model(Example)
• The evolution of Microsoft Operating System, Compilers
and other operating systems.
4/13/2025 CSC291 - Software Engineering Concepts 57
Conclusion
• We have discussed ad hoc development and plan driven
development.
• Process models;
• Waterfall model
• V Model
• CBSE
• Iterative development
4/13/2025 CSC291 - Software Engineering Concepts 58
Reading Assignment
Chapter 2: Process Models
by “Software Engineering- A Practitioner's Approach”
(Book and Lecture Slides are already uploaded on
resource link.)
Resource Link:
https://sites.google.com/cuilahore.edu.pk/sec