Lect 2
Lect 2
(Lect 2--3)
2/7/2026 1
Plan
2
Software Life Cycle
Conceptualize
Specify
Retire
Design
Maintain
Deliver Code
Test
3
Life Cycle Model
⚫ A software life cycle model (also process
model or SDLC):
− A descriptive and diagrammatic model of a
software life cycle:
− Identifies all the activities undertaken during
product development,
5
Why Model Life Cycle?
⚫ A graphical and written description:
− Helps a common understanding of activities
among the software developers.
− Helps to identify inconsistencies,
redundancies, and omissions in the
development process.
− Helps in tailoring a process model for
specific projects.
6
Life Cycle Model (CONT.)
− Code➔Test ➔Design
8
Life Cycle Model (CONT.)
11
Life Cycle Model
⚫ The phase exit criteria for the software
requirements specification phase:
− Software Requirements Specification
(SRS) document is complete, reviewed,
and approved by the customer.
12
Milestones in Life Cycle
13
Life Cycle and Project Management
14
Project Management Without Life Cycle Model
15
Myth: Deliverables and Milestones
Myth:
“The only deliverable for a successful
project is the working program.”
Reality:
Documentation of all aspects of software
development is needed to ensure
maintainability.
16
Life Cycle Model
⚫ Many life cycle models have been proposed.
⚫ We confine our attention to a few important
and commonly used models.
− Classical and Iterative waterfall models
− V model,
− Evolutionary,
− Prototyping
− Spiral model, and
− Agile models
17
Software Life Cycle
18
Classical Waterfall Model
− Maintenance. Test 19
Classical Waterfall Model
Feasibility Study
Req. Analysis
Design
Coding
Testing
Maintenance
20
Relative Effort for Phases
Relative Effort
⚫ Among all life cycle phases 30
− The maintenance phase 20
consumes maximum effort. 10
Maintnce
⚫
Coding
Design
Test
Req. Sp
− The testing phase consumes
the maximum effort.
21
Classical Waterfall Model (CONT.)
⚫ Benefits of the
delivered project must
Benefits
outweigh costs
Costs ⚫ Costs include:
- Development
Rs - Operation
Rs
• Benefits:
– Quantifiable
– Non-quantifiable
25
Feasibility Study
Operational
feasibility
Measure of how
suitable system
Four feasibility
development will
tests:
be to the
company Schedule
feasibility
Economic
feasibility
(also called Technical
cost/benefit feasibility
feasibility)
29
Feasibility Study Activities
Assesses
feasibility
of each
alternative
solution
Presented to
Recommends steering
the most committee,
feasible which decides
solution for how system will
the project be developed
30
Activities during Feasibility Study
Feasibility Study
Req. Analysis
Design
Coding
Testing
Maintenance
33
Requirements Analysis and Specification
− Requirements specification.
34
Goals of Requirements Analysis
35
Requirements Gathering
36
Requirements Analysis (Cont...)
37
Requirements Analysis (Cont...)
38
Classical Waterfall Model
Feasibility Study
Req. Analysis
Design
Design
Coding
Testing
Maintenance
39
Design
40
Design
⚫ In technical terms:
− During the design phase, software
architecture is defined.
41
Traditional Design Approach
42
Structured Analysis (CONT.)
43
Structured Design
⚫ High-level design:
− decompose the system into modules,
− represent invocation relationships among the
modules.
⚫ Detailed design:
− different modules designed in greater detail:
⚫ data structures and algorithms for each module are
designed.
44
Object-Oriented Design
45
Object Oriented Design (CONT.)
46
Classical Waterfall Model
Feasibility Study
Req. Analysis
Design
Coding
Testing
Maintenance
47
Coding and Unit Testing
48
Classical Waterfall Model
Feasibility Study
Req. Analysis
Design
Coding
Testing
Maintenance
49
Integration and System Testing
M1 M2 M5 M7
M3 M4 M6 M8 50
System Testing
⚫ After all the modules have been
successfully integrated and tested:
− System testing is carried out.
51
Classical Waterfall Model
Feasibility Study
Req. Analysis
Design
Coding
Testing
Maintenance
52
Maintenance
Relative Effort
50
40
30
20
10
0
Maintnce
Coding
Design
Test
Req. Sp
53
Maintenance (CONT.)
⚫ Corrective maintenance:
− Correct errors that were not discovered
during the product development phases.
⚫ Perfective maintenance:
− Improve implementation of the system
− enhance functionalities of the system.
⚫ Adaptive maintenance:
− Port software to a new environment,
⚫ e.g. to a new computer or a new operating
system. 54
Iterative Waterfall Model
55
Iterative Waterfall Model (CONT.)
56
Iterative Waterfall Model (CONT.)
57
Iterative Waterfall Model (CONT.)
Feasibility Study
Req. Analysis
Design
Coding
Testing
Maintenance
58
Phase Containment of Errors
(Cont...)
⚫ For example:
• If a design problem is detected in the
design phase itself,
• The problem can be taken care of much more
easily
• Compared to say if it is identified at the end of
the integration and system testing phase. 59
Cartoonist’s View…
60
Phase Containment of Errors
⚫ Reason: rework must be carried out not only in
the design but also to code and test phases.
62
Waterfall Deficiencies
63
When to use the Waterfall Model
64
Classical Waterfall Model (CONT.)
66
Questions
⚫ What problems may be encountered if a project
manager recommends using the iterative waterfall
model for a customization project?
⚫ Give one example project situation for which the
waterfall model is suitable.
⚫ Give one example project situation for which the
waterfall model is unsuitable.
⚫ What is a milestone? Give one example of a
milestone.
⚫ In what way are milestones useful?
⚫ How frequently should milestones be placed?
67
Questions
⚫ Suppose the sales manager of your company
informs the top management of your company
that he sees tremendous potential for a
wearable health monitor.
− The wearable health monitor would measure vital
body parameters such as heart rate, temperature,
blood pressure, etc, and maintain a log.
68
V Model
2/7/2026 69
V Model
Product System&
Requirements& Acceptance
Specification Testing
Analysis
Architecture Integration&
High Level Testing
Design
Detailed Unit
Design testing
Coding 71
V Model Steps
⚫ Planning
⚫ Easy to use
73
V Model Weaknesses
74
When to use V Model
75
Prototyping Model
2/7/2026 76
Prototyping Model
⚫ A derivative of the waterfall model.
⚫ Before starting actual development,
− A working prototype of the system should
first be built.
80
Prototyping Model (CONT.)
Build Prototype
Refine
Requirements Implement
Test
Maintain83
Prototyping Model (CONT.)
⚫ Sometimes expensive
⚫ Susceptible to over-engineering:
− Designers start to incorporate
sophistication that they could not
incorporate in the prototype.
87
90
“… the assumption that one can specify a
satisfactory system in advance, get bids
for its construction, have it built, and
install it. …this assumption is
fundamentally wrong and many software
acquisition problems spring from this…”
Frederick Brooks
91
Evolutionary Model
2/7/2026 92
Evolutionary Model
⚫ Evolutionary model (aka successive versions or
incremental model):
− The system is broken down into several modules
which can be incrementally implemented and
delivered.
⚫ First develop the core modules of the
software.
⚫ The initial skeletal software is refined into
increasing levels of capability:
− By adding new functionalities in successive
versions. 93
Biological Systems
94
Biological Systems
The waterfall model did not apply to
biological systems --- these evolved instead
of being designed.
95
2/7/2026 © 2009 Bahill
Evolutionary Model
96
Evolutionary Model (CONT.)
97
Evolutionary Model
⚫ Evolves an initial implementation with user
feedback:
− Multiple versions until the final version.
Initial
Specification version
Outline
Intermediate
description
Development versions
Final
Validation version
98
Evolutionary Model (CONT.)
A AB A
B B
99
Advantages of Evolutionary Model (1)
101
Evolutionary Model: Problems
⚫ The process is intangible:
− No regular, well-defined deliverables.
⚫ The process is unpredictable:
− Hard to manage, e.g., scheduling, workforce
allocation, etc.
⚫ Systems are poorly structured:
− Continual, unpredictable changes tend to
degrade the software structure.
⚫ Systems may not even converge to a final
version. 102
Incremental Model
2/7/2026 103
Incremental Model
⚫ Combines the ideas from Waterfall and
Evolutionary Model.
Final
System
104
Slice
Slice
Slice
Slice
Slice
Slice
Slice
Slice
Slice
Incremental Model
High Level Analysis
Slice
Slice
105
Slice
Incremental Model
⚫ Waterfall: single release
⚫ Iterative: many releases (increments)
− First increment: core functionality
− Successive increments: add/fix functionality
− Final increment: the complete product
⚫ Each iteration: a short mini-project with
a separate lifecycle
− e.g., waterfall
106
Incremental delivery
delivered
system
107
The incremental process
Design increment
108
Evolutionary Model With Iteration
109
Which step first?
⚫ Some steps will be pre-requisite because
of physical dependencies
⚫ Others may be in any order
111
Incremental and Iterative
Development (IID) Model
2/7/2026 112
⚫ “The basic idea… take advantage of what was
being learned during the development of
earlier, incremental, deliverable versions of
the system. Learning comes from both the
development and use of the system… Start
with a simple implementation of a subset of
the software requirements and iteratively
enhance the evolving sequence of versions. At
each version design modifications are made
along with adding new functional capabilities. “
Victor Basili
113
Incremental and Iterative Development
(IID)
⚫ Key characteristics
− Consists of a planned number of iterations
− Each iteration produces a working program
− Builds system incrementally
Monolithic approach of waterfall model
⚫ Benefits
− Facilitates and manages changes
⚫ Foundation of agile techniques
− Rational Unified Process (RUP)
− Extreme Programming (XP) 114
Evolutionary Model with Iteration
2/7/2026 119
Rapid Application Development (RAD)
Model
⚫ Sometimes referred to as the rapid
prototyping model.
⚫ Major aims:
− Decrease the time taken and the cost incurred
to develop software systems.
− Facilitate accommodating change requests as
early as possible:
⚫ Before large investments have been made in
development and testing. 120
Important Underlying Principle
121
Methodology
• In contrast:
• In RAD the developed prototype
evolves into the deliverable software.
2/7/2026 132
Cartoonist’s View: Agile Model
133
Agile Model
⚫ To overcome the shortcomings of the
waterfall model of development.
− Proposed in mid-1990s
135
Ideology
⚫ XP
⚫ Scrum
⚫ Unified process
⚫ Crystal
⚫ DSDM
⚫ Lean
137
Agile Model: Principal Techniques
⚫ User stories:
− Simpler than use cases.
⚫ Metaphors:
− Based on user stories, developers propose a
common vision of what is required.
⚫ Spike:
− A very simple program to explore potential
solutions should be considered.
⚫ Refactor:
− Restructure code without affecting behavior,
improve efficiency, structure, etc. 138
Agile Model: Nitty Gritty
140
Effectiveness of Communication Modes
Face-to-face
at whiteboard
Face-to-face
conversation
Communication Effectiveness
Video
conversation
Modeling
Phone Options
conversation
Videotape
Email
conversation
Audiotape
Documentation
Options
Paper
Cold Hot
Richness of Communication Channel
Copyright 2002-2005 Scott W. Ambler 141
Original Diagram Copyright 2002 Alistair Cockburn
Agile Model: Principles
⚫ The primary measure of progress:
− Incremental release of working software
Requirements may be
reprioritized at any time
Requirements may be
removed at any time
Low
Priority 143
Requirements Copyright 2004 Scott W. Ambler
Adoption Detractors
⚫ Lack of theoretical grounding
− Inconsistent and diverse definitions
145
Agile vs. Plan-Driven Processes
1. Small products and 1. Large products and
teams: teams;
⚫ Scalability limited ⚫ hard to scale down
2. Untested on safety- 2. Proven for highly critical
critical products products;
3. Good for dynamic, 3. Good for stable:
but expensive for ⚫ But expensive for dynamic
stable environments. environments
4. Require experienced 4. Require only few
personnel throughout experienced personnel
5. Personnel thrive on 5. Personnel thrive on
freedom and chaos
structure and order 146
Agile Model versus Iterative Waterfall Model
⚫ As regards to similarity:
− Wecan say that Agile teams use the
waterfall model on a small scale.
148
Agile versus RAD Model
⚫ Agile model does not recommend developing
prototypes:
− Systematic development of each incremental
feature is emphasized.
⚫ In contrast:
− RAD is based on designing quick-and-dirty
prototypes, which are then refined into
production-quality code.
⚫ Agile projects logically break down the
solution into many features:
− These are incrementally developed and delivered.
149
Agile versus exploratory programming
⚫ Similarity:
− Frequent re-evaluation of plans,
− Emphasis on face-to-face communication,
− Relatively sparse use of documents.
⚫ Simplicity:
− Build something simple that will work today rather
than something that takes time and yet is never
used
− May not pay attention to tomorrow
⚫ Feedback:
− System staying out of users is trouble waiting to
happen
⚫ Courage:
− Don’t hesitate to discard code 152
Taking to Extreme
⚫ If code review is good:
− Always review --- pair programming
⚫ If testing is good:
− Continually write and execute test cases ---
test-driven development
⚫ If simplicity is good:
− Create the simplest design that will support
only the currently required functionality. 153
Taking Good Practices to Extreme
⚫ If code review is good:
− Always review --- pair programming
⚫ If testing is good:
− Continually write and execute test cases ---
test-driven development
⚫ If incremental development is good:
− Come up with new increments every few days
⚫ If simplicity is good:
− Create the simplest design that will support
only the currently required functionality. 154
Taking to Extreme
⚫ If design is good,
− everybody will design daily (refactoring)
⚫ If architecture is important,
− everybody will work at defining and
refining the architecture (metaphor)
155
Best Practices
⚫ Coding:
− without code it is not possible to have a
working system.
− Utmost attention needs to be placed on
coding.
⚫ Testing:
− Testing is the primary means for developing
a fault-free product.
⚫ Listening:
− Careful listening to the customers is
essential to develop a good quality product. 156
Best Practices
⚫ Designing:
− Without proper design, a system
implementation becomes too complex
− The dependencies within the system
become too numerous to comprehend.
⚫ Feedback:
− Feedback is important in learning
customer requirements.
157
Full List of XP Practices
1. Planning – determine scope of the next release by
combining business priorities and technical
estimates
160
Emphasizes Test-Driven Development (TDD)
− Alter if necessary
− Refactor
⚫ Small projects:
− These are easily developed using extreme
programming.
162
Scrum
The word comes from the
English sport of rugby. Short
for “scrummage,” scrum is a
method for restarting play
either as a result of a minor
infraction or when the ball has
gone out of bounds. Players
huddle with their heads down
and jockey for control of the
ball.
163
Scrum: Characteristics
⚫ Self-organizing teams
Sprint
Sprint
planning
review
Scrum
Sprint
Product backlog backlog Product
increment
165
Sprint
166
Sprint
⚫ Fundamental process flow of Scrum
168
Key Roles and Responsibilities in Scrum Process
⚫ Product Owner
− Acts on behalf of customers to represent their
interests.
⚫ Development Team
− Team of five to nine people with cross-functional
skill sets.
⚫ Scrum Master (aka Project Manager) 169
169
Product Owner
170
The Scrum Master
⚫ Represents management
⚫ Removes impediments
interferences
171
Scrum Team
⚫ Cross-functional
− QA, Programmers, UI Designers, etc.
172
Ceremonies
⚫ Daily Scrum
173
Sprint Planning
174
⚫ Daily Daily Scrum
⚫ 15-minutes
⚫ Stand-up meeting
⚫ Not for problem solving
⚫ Three questions:
1. What did you do yesterday 175
175
Daily Scrum
176
⚫ Team presents what it accomplished during
the sprint
⚫ Typically takes the form of a demo of new
features
⚫ Informal Sprint Review
− 2-hour prep time rule
Meeting
⚫ Participants
− Customers
− Management
− Product Owner
− Other teammates
177
Product Backlog
− Usually a combination of
⚫ story-based work (“allow user to search and
replace”)
⚫ task-based work (“improve exception
handling”)
178
178
Product Backlog
− Spreadsheet (typically)
179
Sample Product Backlog
180
Sprint Backlog
– Updated daily
181
Sprint Backlog during the Sprint
• Changes occur:
– Team adds new tasks whenever they need to in
order to meet the Sprint Goal
– Team can remove unnecessary tasks
– But: Sprint Backlog is only updated by the
team 182
⚫ Three Types:
− Sprint Burn down Chart (progress of the Sprint)
− Release Burn down Chart (progress of release)
183
183
Sprint Burn down Chart
184
Sprint Burndown Chart
185
185
Release Burndown Chart
• X-axis: sprints
points remaining
186
Product Burndown Chart
187
187
Scalability of Scrum
188
Comparison of Different Life Cycle Models
191
Suggest Suitable Life Cycle Model
⚫ A software for an academic institution to
automate its:
− Course registration and grading
− Fee collection
− Staff salary
− Purchase and store inventory
195