SDLC Methods
SDLC Methods
The basic process steps of the SDLC (Software Development Life Cycle)
can be combined in many ways to create a successful software
methodology (process model) for software development.
Requirement
s
Design
Developme
nt (coding)
Testin
g
Evaluati
Advantages: on
Process visibility
Separation of tasks Maintena
Quality control at each step nce
Cost monitoring at each step
Disadvantages:
No working software is produced until late during the life cycle
Cannot accommodate changing requirements
Risk and uncertainty is high with this model, i.e., projects where
requirements are at moderate to high risk of changing
In practice, each stage reveals new understanding of the previous stages,
which often requires the earlier stages to be revised. The Waterfall Model
is not flexible enough.
Iterative – Prototyping
This is a medium weight methodology with documentation created
during the process.
Concept
Create a prototype system early in the development process.
Review the prototype with clients and test it with users, to improve
the understanding of the requirements and clarify the design.
Refine the prototype in a series of iterations.
Requirements are (can be) hard to understand until there is an
operational system, particularly with user interfaces.
Mistakes in the requirements are the most expensive to correct.
Users involved throughout the development.
Development is done in cycles.
Iterative refinement uses various techniques that enable the client to
review the planned system early during development, e.g., user interface
mock-up; dummy modules.
Advantages:
Addresses the inability of many users to specify their information
needs
Can realistically model important aspects of a system during each
phase of the traditional life cycle
Improves user participation in system development and
communication among project stakeholders
Users are actively involved in the development
Useful for resolving unclear objectives
Disadvantages:
Approval process and control is not strict
Requirements may frequently change
Designers may prototype too quickly
Can lead to poorly designed systems
Concept
The project is divided into a large number of small tasks, known as
sprints (increments).
For each sprint, a team works through a full software development
cycle including planning, requirements analysis, design, coding,
testing, and acceptance testing, and release.
Each sprint is completed in a fixed time period, e.g., four weeks.
The size of a sprint is based on team size, e.g., 5-10 people.
Advantages:
Generates working software quickly and early during the software
life cycle
This model is more flexible – less costly to change scope and
requirements
It is easier to test and debug during a smaller iteration
In this model customer can respond to each build
Lowers initial delivery cost
Easier to manage risk because risky pieces are identified and
handled during each iteration
Disadvantages:
Needs good planning and design
Needs a clear and complete definition of the whole system before it
can be broken down and built incrementally
Total cost is higher than waterfall
Advantages:
Mostly concentrates on risk analysis
Most useful for large and high risk projects
Useful if requirements changing frequently or not well understood
Strong approval and documentation control
Software is produced early in the software life cycle
Disadvantages:
Not useful for small projects
Project duration and cost could be infinite because of spiral feature
Documentation could be lengthy
Risk analysis requires highly specific expertise
Concept
Fast development and delivery of a high quality system at a
relatively low investment cost
Aims to produce high quality systems quickly through the use of
iterative prototyping (at any stage of development) and active user
involvement
Advantages:
Reduced development time
Increases reusability of components
Quick initial reviews occur
Encourages customer/user feedback
Integration from very beginning solves a lot of integration issues
Disadvantages:
Depends on strong team and individual performances for identifying
business requirements.
Only system that can be modularized can be built using RAD
Requires highly skilled developers/designers
High dependency on modelling skills