You are on page 1of 21

CSC 209

Introduction to Software Engineering


Lecture 2 & 3
M. K Aregbesola & O. A. OLUKIRAN

Department of Mathematical and Computing Sciences,


Faculty of Applied Sciences.
KolaDaisi University, Ibadan.

(Email: Kehinde.aregbesola@koladaisiuniversity.edu.ng
oyenike.olukiran@koladaisiuniversity.edu.ng)
SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC)
WHAT IS SDLC?

Software
development

methodology SDLC is a splitting of software


A framework that describes development work into
the activities performed at distinct phases (or stages)
Software
System each stage of a software containing activities with the
development
process development project. intent of better planning and
Known methodology management

as
The SDLC aims to produce a
high quality software that
meets or exceeds customer
Software Software expectations, reaches
development development
process life cycle
completion within times and
cost estimates
WHAT IS SDLC PROCESS MODELS?

• SDLC models have been created by software development experts,


universities, and standards organizations to solve some repeated issue or to
enhance other models.

• Each process model follows series of steps unique to its type, in order to
ensure success in process of software development.
WHY USING A PROCESS MODEL

Define the
What should be or terminologies,
Project Planning
shouldn’t be built activities and
deliverables

Align project
Proper progress visibility
documentation with stakeholders
THE RIGHT CHOICE

We need to choose the right SDLC based on project context

Improve customer Development speed Increase projects success


alignment and relations (time to market) rate

Eliminating management Decrease


Improve software quality
overhead implementation risk
PERSPECTIVES
THE COST OF DEFECTS
HOW TO SELECT THE RIGHT SDLC

• Selecting the right SDLC is a process in itself that organization can implement internally or
consult for.
There are some steps to get the right selection

Assess the
Learn about needs of Define the
SDLC Stakeholder criteria
Models s
MOST COMMON MODELS

Waterfall

Extreme
programming V-Shaped
(Agile Model
development)

Models

Iterative and Evolutionary


Incremental Prototyping

Spiral Method
(SDM)
WATERFALL
The usage
Projects which not focus on changing requirements, for example, responses for
request for proposals (RFPs)
• The waterfall Model is a linear
sequential flow.
• In which progress is seen as
flowing steadily downwards (like
a waterfall) through the phases A linear
of software implementation.
sequential flow.
• This means that any phase in the Requirements
development process begins analysis
Design
only if the previous phase is
complete. Implementati
on
• The waterfall approach does not Testing
define the process to go back
to the previous phase to handle Release and
changes in requirement. Operation
Oldest and most deployment
• The waterfall approach is the and
earliest approach that was used well-known - maintenance
for software development 1970
ADVANTAGES AND DISADVANTAGES

Advantages Disadvantages

Easy to be explained inflexible, like the waterfall model

Stages and activities are well defined Adjusting scope is difficult and expensive

Milestones are well understood Model doesn't provide a clear path for problems
found during testing phases
Each phase has specific deliverables Costly and required more time

Works well for smaller projects where requirements Needs very proper and detailed planning
are very well understood.
Process and results are well documented No continuous customer involvement to review the
output
V-SHAPED The usage
· Software requirements clearly defined and known
· Software development technologies and tools is well-known

• It is an extension for waterfall


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 major difference between
v-shaped model and waterfall
model is the early test
planning in v-shaped model.
ADVANTAGES AND DISADVANTAGES

Advantages Disadvantages

Verification and validation of the product in early Assumes that the requirements of a system can be
stages of product development frozen and known from beginning
Easy to use. Does not easily handle dynamic changes in
Stages and activities are well defined requirements
Higher chance of success over the waterfall model Inflexible and adjusting scope is difficult and
due to the development of test plans early on expensive
during the life cycle
Each phase has specific deliverables Costly and required more time

Works well for where requirements are easily Needs very proper and detailed planning
understood
No continuous customer involvement
PROTOTYPING MODEL
The usage
• It refers to the activity of • This process can be used with any software developing life cycle model.
creating prototypes of software • While this shall be focused with systems needs more user interactions.
applications, for example, • So, the system do not have user interactions, such as, system does some
incomplete versions of the
software program being calculations shall not have prototypes.
developed.
• It is an activity that can occur in Throwaway
software development. It used prototyping
to visualize some component of
the software to limit the gap of
misunderstanding the customer
requirements by the
development team.
• This also will reduce the Extreme Evolutionary
iterations may occur in waterfall prototyping prototyping
approach and hard to be
implemented due to inflexibility
of the waterfall approach.
• So, when the final prototype is
developed, the requirement is Incrementa
considered to be frozen. l
prototyping
PROTOTYPING MODEL
ADVANTAGES AND DISADVANTAGES

Advantages Disadvantages

Reduced time and costs Insufficient analysis, guess why?

this can be disadvantage if the developer loses time User confusion of prototype and finished system
in developing the prototypes
Improved user involvement Developer misunderstanding of user objectives·

Users give corrective feedback Excessive development time of the prototype

A more accurate end product Expense of implementing prototyping, this can be


eliminated if it will be integrated with the final
product. Process may continue forever (scope
creep)
The usage
• It is used in shrink-wrap large applications and systems which
SPIRAL (SDM) built-in small phases or segments.

• It is combining elements of both


design and prototyping-in-stages, in
an effort to combine advantages of
top-down and bottom-up concepts.
• This model of development combines
the features of the prototyping
model and the waterfall model.
• The spiral model is favored for
large, expensive, and
complicated projects.
• This model uses many of the same
phases as the waterfall model, in
essentially the same order, separated
by planning, risk assessment, and the
building of prototypes and
simulations.
ADVANTAGES AND DISADVANTAGES

Advantages Disadvantages

Estimates (i.e. budget, schedule, etc.) become more High cost and time to reach the final product
realistic as work progresses
Changing requirements can be accommodated Needs special skills to evaluate the risks and
assumptions
Development can be divided into smaller parts and Highly customized limiting re-usability
more risky parts can be developed earlier which
helps better risk management
Users see the system early and give corrective Time spent planning, setting objectives, doing risk
feedback analysis and prototyping will be huge
A more accurate end product
ITERATIVE AND
INCREMENTAL The usage
• It is used in shrink-wrap application and large system
which built-in small phases or segments
• It is developed to overcome the weaknesses • can be used in system has separated components,
• of the waterfall model. for example, ERP system. Which we can start with
budget module as first iteration and then we can start
• It starts with an initial planning and ends with with inventory module and so forth.
deployment with the cyclic interactions in
between. Mini Waterfall 1
• The basic idea behind this method is to
develop a system through repeated cycles
(iterative) and in smaller portions at a time Mini Waterfall 2
(incremental), allowing software developers
to take advantage of what was learned
during development of earlier parts or Mini Waterfall n
versions of the system.

Final Waterfall
ADVANTAGES AND DISADVANTAGES
Advantages Disadvantages

Produces business value early in the development life cycle Requires heavy documentation· Follows a defined set of
(Do you know why) processes
More customer involvement Partitioning the functions and features might be
problematic
Better use of scarce resources through proper increment Defines increments based on function and feature
definition dependencies
Can accommodate some change requests between Requires more customer involvement than the linear
increments approaches (It is advantage as well)
More focused on customer value than the linear Integration between iteration can be an issue if this is not
approaches considered during the development
Problems can be detected earlier

Lowers initial delivery cost and initial product delivery is


faster

You might also like