1. CSC 426 (Software Engineering) Lecture Note
Part I Contâd:
SOFTWARE DEVELOPMENT PROCESS MODELS
AJAYI, Olusola Olajide
Department of Computer Science,
Faculty of Science,
Adekunle Ajasin University,
Akungba-Akoko,
Ondo State, Nigeria.
olusola.ajayi@aaua.edu.ng / ajsoftengr@gmail.com
08113699553 / 07056433798 / 08137044500
2. Software Development Process (SDP)_
â˘Munassar et al (2010) defined it as an
abstract representation of a process that
presents a description of a process from
some particular perspectives.
â˘In this class/study, SDP refers to activities
involved in producing/developing software.
3. SDP Contâd â The Activities/Processes
ď§Software Specification
ď§Software Development
ď§Software Validation
ď§Software Evolution
4. SDP Contâd â The Activities/Processes
Software
Specification
Software
Development
Software
Validation
Software
Evolution
Figure 1: Software Development Activities/Processes
5. SDP Activities/Processes â The Breakdown
â˘Software Specification: This activity involves
stating the functionalities (operations) as well as
the constraints/limitations of the software.
Major Activity ď Requirements.
â˘Software Development: This activity involves
developing (producing) a software according to the
specification outlined in the first stage of the
development process.
Major Activity ď Designs.
6. SDP Activities/Processes â The Breakdown Contâd
â˘Software Validation: This activity checks the
software developed to ensure it conforms to the
specification earlier concluded upon.
Major Activity ď Testing.
â˘Software Evolution: This activity ensures that
the software produced is modifiable/adjustable.
Major Activity ď Maintenance.
7. SDP Activities/Processes â The Breakdown Contâd
â˘Paraphrasing Pressman, R. S. (2010), we
can define SD Process as a roadmap to
defining, building, testing, & deploying
timely and high quality software applications.
Both User &
Developers are
involved
Only
Development
Team are
involved
Only
Development
Team are
involved
Both User &
Developers are
involved
Requirements Designs Testing Maintenance
8. SDLC Models
â˘This refers to the existing and
established frameworks for developing
software.
â˘For the purpose of this study, we shall
be examining six (6) common ones.
9. SDLC Models Contâd
i. Waterfall Model
ii. Evolutionary Model
iii. V-Shape Model
iv. Spiral Model
v. Agile Development Model
vi. Rational Unified Process (RUP)
Model
10. SDLC Models Contâd
i. Waterfall Model
Undoubtedly the oldest and famous of all the
available models. It acts as baseline for other
SDLC models. In other words, other models
are derivatives of Waterfall Model.
It major strength lies in the fact that it dwells
much on requirement gathering and
ascertaining of same (by way of feedbacks)
to prevent flaws in the development of the
project. Most suitable where requirement is
well understood.
11. SDLC Models Contâd
i. Waterfall Model - VARIANTS
Requirement Analysis and
Definition/Specification
Implementation and Unit
Testing
Integration and System
Testing
Operation and
Maintenance
System and Software
Design
Figure 2: Classical Waterfall Model
12. SDLC Models Contâd
i. Waterfall Model â VARIANTS contâd
Figure 3: Pure Waterfall Model
13. SDLC Models Contâd
i. Waterfall Model â STRENGTHS/ADVANTAGES
ďź With her âdefine-b4-designâ & âdesign-b4-codingâ
approach, it reduces flaws/errors in development.
ďź Applications developed with it, are easily understood,
implementable and maintained.
ďź Documentation is embraced and enhanced.
ďź With its deep flow, quality assurance is ensured.
14. SDLC Models Contâd
i. Waterfall Model â WEAKNESSES/DISADVANTAGES
ďź Costly
ďź Time-consuming, leading to late project delivery
15. Maintenance
SDLC Models Contâd
i. Waterfall Model â SUMMARY
ďź Summarily, Waterfall Model complies with the process flow
shown below:
Require
ments
Desig
ns
Testing
Figure 4: SDLC Process showing Waterfall Compliance
Compliance
16. SDLC Models Contâd
ii. Evolutionary Model
This model involves the culmination of major
activities involved in developing software.
The model emphasize âfast/quickâ design
approach to solution development.
Unlike Waterfall, the strength of this model is
time-saving, which is achieved by rapid way
of developing software with adequate
feedbacks.
17. SDLC Models Contâd
ii. Evolutionary Model - VARIANTS
The available variants include:
ďśThrow-Away Prototyping Model
ďśRapid Application Development Model /
Iterative Prototyping Model
ďśIncremental Prototyping Model
18. SDLC Models Contâd
a. Throwaway Prototyping Model â
Emphasizes fast design + minimal
requirement analysis.
In this prototyping type, a small portion of an âon-
goingâ system is given to the client/user for
evaluation purpose.
The feedbacks allow for some modifications to
be carried out on the main system, after which
the prototype is discarded/done with/thrown
away. This is why it is also refer to as a working
system â it is only developed for
evaluation/testing purposes, it is never part of
the final delivered system/software.
19. SDLC Models Contâd
Figure 5: Throwaway Prototyping Model â Variant I
Requirement
Analysis
Design/Build
Demo
Software
Testing
(Customer
Test Run
Demo App)
21. SDLC Models Contâd
b. Rapid Application Development (RAD)
This iterative model emphasizes component-
based construction in rapid software
development approach. It embraces,
encourages and enables participation of
development team in actualizing
speedy/timely development.
Figure 7 shows the different phases of RAD /
Iterative model as catered by different
development teams.
24. SDLC Models Contâd
Figure 9: RAD Model â Variant III
Specificatio
n
Validation
Developmen
t
Initial
Version
Intermediate
Version
Final Version
Specification
Development
Validation
1st Version
Intermediate
Version
Final Version
or Product
25. SDLC Models Contâd
Figure 10: RAD Model â Variant IV
Requirement
Analysis
Develop
Prototype
DeploymentClient/User
Evaluation
Feedback for
Modification
Final
Implementation
& Integration
Deployment &
Operation
Maintenance
26. SDLC Models Contâd
c. Incremental Model â Like the Prototyping, it
emphasizes fast design + minimal
requirement analysis. However unlike
prototyping where the demo app is delivered,
the core product/app is delivered, used and
reviewed by the user, and feedback for
modifications.
Figure 11 shows the Incremental Model.
28. SDLC Models Contâd
Differences between Waterfall & Evolutionary
Waterfall Evolutionary
Time consuming Time-saving
Costly Cheap
Inflexible Flexible
Process is easily
understood, implementable,
and maintainable
Clumsy process due to
excessive iterations and
prototypes
Sufficient requirement
analysis carried out
Insufficient requirement
analysis performed
Table 1: Differences between Waterfall and Evolutionary Models
29. SDLC Models Contâd
iii. V-Shaped Model
This is an extension of the Waterfall Model,
whose development is bent upward after the
implementation/coding phase to form a V-Shape.
Figure 12 shows this.
31. SDLC Models Contâd
i. V-Shaped Model â STRENGTHS/ADVANTAGES
ďź Like the Waterfall, it is easy to understood,
implement and maintain.
ďź Most suitable for use where requirements are clearly
spelt out.
ďź Each development phase and the technologies/tools
involved, are known.
32. SDLC Models Contâd
i. V-Shaped Model â WEAKNESSES/DISADVANTAGES
ďź Again, like the Waterfall Model, it is inflexible
ďź Costly
ďź Time-consuming (even more than the Waterfall Model). Why?
33. SDLC Models Contâd
Differences between Waterfall & V-Shaped
Waterfall V-Shaped
No planning at early stage â
jump start to requirement.
Planning is done as early
test approach.
Table 2: Differences between Waterfall and V-Shaped Models
34. SDLC Models Contâd
iv. Spiral Model
This combines the features/characteristics and
strengths of prototyping and waterfall models in
tandem with adequate risk analysis. It is most
suitable for large, complex and security-
driven/risk-involving software projects.
It was described and presented by Barry Boehm
in 1986 in his paper, titled: âA Spiral Model of
Software Development and Enhancementâ. It was
widely accepted not because it discusses
iterative processes of developing software like
other models but because it presented the
necessity for risk pattern and cost to be
examined from the requirement to the
development/deployment stage.
37. SDLC Models Contâd
iv. Spiral Model
Figure 15: Spiral Model â A Full/Complete Model, Variant I
38. SDLC Models Contâd
iv. Spiral Model
Figure 16: Spiral Model â A Full/Complete Model, Variant II
39. SDLC Models Contâd
iv. Spiral Model â Phases & Activities
(1) OBJECTIVE/PLANNING Phase
i. Decide on the visibility/possibility of the project.
ii. Determine the cost of implementation.
iii. Specify project timeline.
iv. Suggest alternative approach to implementation.
40. SDLC Models Contâd
iv. Spiral Model â Phases & Activities
(2) RISK ASSESSMENT/ANALYSIS Phase
What do we look out for? What do we analyze?
i. Developerâs level of experience.
ii. Requirement information.
iii. Delivery schedules.
iv. Key system operations.
41. SDLC Models Contâd
iv. Spiral Model â TAXONOMY
(1) Risk: Implies an uncertain outcome that has potentials
for loss.
It refers to measurable parameter that determines
loss.
(2) Verification: Implies checks to ensure the team is
building the software product rightly.
(3) Validation: Implies checks to ensure the team is building
the right software product.
(4) Testing: Implies executing the program/application with
set of data (valid & invalid) to study the software
behavior.
(5) Debugging: Implies examining code(s) that cause(s)
failing in software performance.
43. SDLC Models Contâd
iv. Spiral Model â STRENGTHS/ADVANTAGES
ďź Risk avoidance.
ďź Precise knowledge of requirements.
ďź Accommodates frequent changes in requirements.
ďź Like Waterfall, it is more realistic than other iterative
models in that it allows software product to evolve
as the development process progresses.
44. SDLC Models Contâd
iv. Spiral Model â WEAKNESSES/DISADVANTAGES
ďź Time consuming.
ďź Not generic in application â Different application
with different risk factors; so, it has to be developed
and applied differently.
ďź Complex process.
ďź Involve excessive and rigorous documentation
process.
ďź Unsuitable for small software projects.
45. SDLC Models Contâd
Differences between Waterfall & Spiral
Waterfall Spiral
Risk is not considered Analyzes and manages risk
No adequate estimation of
budget
Adequate estimation of
budget achieved through
planning and progressive
phases
Costly Costlier
Table 3: Differences between Waterfall and Spiral Models
46. SDLC Models Contâd
Spiral Model â Boehmâs Philosophy
Figure 18: Boehmâs Philosophy
that prompted Spiral Model
âStop the life cycleâI want to
get off!â
âLife-cycle Concept Considered
Harmful.â
âThe waterfall model is dead.â
âNo, it isnât, but it should be.â
47. SDLC Models
Under Topic Exercise (UTE) 1
i. Following the demonstrated discussion pattern of
this course and particularly under this topic, write
on:
a. Agile Model
b. RUP Model
ii. Enumerate the strengths and weaknesses of the
various Evolutionary Models.
iii. Come up with a modified Spiral Model and discuss
the activities of each phase of the model.
iv. In few paragraphs and in convincing ways, discuss
the necessities and benefits of modeling as a
pointer and preceding step to software
development.
48. SDLC Models
Under Topic Exercise (UTE) 2
i. Iterative vs Incremental Models â Comment on the
âfightâ.
ii. Discuss the differences between:
i. Evolutionary and V-Shaped Models
ii. Evolutionary and Spiral Models
iii. Evolutionary and Agile Models
iv. Evolutionary and RUP Models
iii. Between V-Shaped and Agile Models, which will you
prefer and why?
iv. V-Shaped and Agile: Which is more agile? Discuss.
v. Considering Spiral and Agile Models, which springs
up software faster and more reliably? Lecture a
fellow.