In this session you will learn:
SDLC (Software Development Life Cycle)
Types of SDLC Methodologies
Waterfall Approach
Incremental Approach
Iterative Approach
Difference between Incremental and Iterative
Prototype Approach
Spiral Approach
2. Page 2Classification: Restricted
Agenda
• SDLC (Software Development Life Cycle)
• Types of SDLC Methodologies
• Waterfall Approach
• Incremental Approach
• Iterative Approach
• Difference between Incremental and Iterative
• Prototype Approach
• Spiral Approach
3. Page 3Classification: Restricted
Software Development Life Cycle
• The software development life cycle (SDLC) is a framework defining tasks
performed at each step in the software development process.
•SDLC is a structure followed by a
development team within the
software organization.
•It consists of a detailed plan
describing how to develop,
maintain and replace specific
software.
•SDLC consists of the following
activities:
4. Page 4Classification: Restricted
Types of SDLC Methodologies
• Waterfall Model - linear framework type
• Incremental Model - combination of linear and iterative framework type
• Iterative Model- Repetitious framework type
5. Page 5Classification: Restricted
Waterfall Approach
• The waterfall model is documentation-intensive, with earlier phases
documenting what must be done and subsequent phases adding greater
detail and defining how it should be done.
• The output from one phase serves as the input to the next phase, with the
project flowing from one step to the next in a waterfall fashion.
• An important consideration for the Waterfall model is that fixes or
modifications are often put off until the maintenance phase.
• This can be very costly, as the cost to correct a problem gets higher with
each successive phase.
6. Page 6Classification: Restricted
Waterfall Approach
• Waterfall Model - linear framework type
• Incremental Model - combination of linear and iterative framework type
• Iterative Model- Repetitious framework type
8. Page 8Classification: Restricted
Waterfall Approach - Advantages
• System is well documented.
• Phases correspond with project management phases.
• Cost and schedule estimates may be lower and more accurate.
• Details can be addressed with more engineering effort if software is large or
complex.
9. Page 9Classification: Restricted
Waterfall Approach - Disadvantages
• All risks must be dealt with in a single software development effort.
• Because the model is sequential, there is only local feedback at the
transition between phases.
• A working product is not available until late in the project.
• Progress and success are not observable until the later stages. If a mistake
or deficiency exists in the documentation of earlier phases, it may not be
discovered until the product is delivered.
• Corrections must often wait for the maintenance phase.
Application
• The Waterfall model can be successfully used when requirements are well
understood in the beginning and are not expected to change or evolve over
the life of the project. Project risks should be relatively low.
11. Page 11Classification: Restricted
Incremental Approach
• The incremental model is essentially a series of waterfall cycles.
• The requirements are known at the beginning of the project and are
divided into groups for incremental development.
• A core set of functions is identified in the first cycle and is built and
deployed as the first release.
• The software development cycle is repeated, with each release adding
more functionality until all requirements are met.
• Each development cycle acts as the maintenance phase for the previous
software release.
• While new requirements that are discovered during the development of a
given cycle can be implemented in subsequent cycles, this model assumes
that most requirements are known up front.
• A modification to the incremental model allows development cycles to
overlap. That is, a subsequent cycle may begin before the previous cycle is
complete.
12. Page 12Classification: Restricted
Incremental Approach - Advantages
• Provides some feedback, allowing later development cycles to learn from
previous cycles.
• Allows some requirements modification and may allow the addition of new
requirements.
• It is more responsive to user needs than the waterfall model.
• A usable product is available with the first release, and each cycle results in
greater functionality.
• The project can be stopped any time after the first cycle and leave a
working product.
• Risk is spread out over multiple cycles.
• This method can usually be performed with fewer people than the waterfall
model.
• Project management may be easier for smaller, incremental projects.
• Testing may be easier on smaller portions of the system.
13. Page 13Classification: Restricted
Incremental Approach - Disadvantages
• The majority of requirements must be known in the beginning.
• Formal reviews may be more difficult to implement on incremental releases
than on a complete system.
• Because development is spread out over multiple iterations, interfaces
between modules must be well-defined in the beginning.
• Cost and schedule overruns may result in an unfinished system.
• Operations are impacted as each new release is deployed.
• Users are required to learn how to use a new system with each
deployment.
14. Page 14Classification: Restricted
Incremental Approach
• The incremental model is good for projects where requirements are
known at the beginning, but which need functionality early in the project
or which can benefit from the feedback of earlier cycles.
• Because each cycle produces a working system, it may also be
advantageous for projects whose continued funding is not assured and
may be cut at any time.
• It is best used on low to medium-risk programs.
• If the risks are too high to build a successful system using a single waterfall
cycle, spreading the development out over multiple cycles may lower the
risks to a more manageable level.
15. Page 15Classification: Restricted
Iterative Approach
• Iterative development is best defined in terms of its processes that allow
for dynamic development rather than any single defined method or
approach.
16. Page 16Classification: Restricted
Iterative Approach
Definition
Iterative approach or development is a process that grows a system feature
by feature during self-contained cycles of analysis, design, development and
testing that end in the production of a stable, fully integrated and tested,
partially complete system that incorporates all of the features of all previous
iterations.
For example, a project can be divided into 12 one- to four-week iterations.
• The system is tested at the end of each iteration, and the test feedback is
immediately incorporated at the end of each test cycle.
• The time required for successive iterations can be reduced based on the
experience gained from past iterations.
• The system grows by adding new functions during the development
portion of each iteration.
17. Page 17Classification: Restricted
Iterative Approach
• Iteration comes from word Iterative means repetitious.
• Iteration means the act of repeating a process usually with the aim of
approaching a desired goal or target or result. Each repetition of the
process is also called an "iteration," and the results of one iteration are
used as the starting point for the next iteration.
• In software development, An iteration is made up of a series of activities
that include conducting needs analysis, developing parts of the system,
then deploying and testing them. In the end, one or more functionalities
are ready for integration into the final product.
18. Page 18Classification: Restricted
Iterative Approach - Principles
Principles of Iterative Development
• Time has priority over functionality
• Get the most bang for the buck
• Power to the customer
• Empowered teams – Decision speed & competency
• Adaptability
• Short life cycles
• Fast feedback
You can’t stop the
clock!
The customer is always
right
19. Page 19Classification: Restricted
Iterative Approach - Advantages
• More adaptable to changes.
• Allows for early detection of risks associated with a given project
• QA can be performed at the end of each iteration.
• Project managers are in a better position to assess the impact of changes
on the delivery dates.
• Early visible progress.
• A continuous improvement methodology.
• Corrective actions can be taken at the end of each iteration.
20. Page 20Classification: Restricted
Iterative Approach - Advantages
• It is difficult to freeze requirements, and they may continue to change in
later iterations because of increasing customer demands. As a result,
more iterations may be added to the project, leading to project delays
and cost overruns.
• The project requires a very efficient change control mechanism to
manage changes made to the system during each iteration.
• More time spent in review and analysis
• A lot of steps that need to be followed in this model
• Delay in one phase can have detrimental effect on the software as a
whole
21. Page 21Classification: Restricted
Difference between Incremental and Iterative
Incremental development is a staging and scheduling strategy in which
various parts of the system are developed at different rates, and integrated
as they are completed.
Iterative development is a rework scheduling strategy in which time is set
aside to revise and improve parts of the system.
22. Page 22Classification: Restricted
Prototype Approach
What is Prototyping?
• Software prototyping, can be defined as incomplete versions of the
software program being developed.
• A prototype typically simulates only a few aspects of the features of the
eventual program, and may be completely different from the eventual
implementation.
Purpose of Prototyping?
• To allow users of the software to evaluate developers' proposals for the
design of the eventual product by actually trying them out, rather than
having to interpret and evaluate the design based on descriptions.
• The software designer and implementer can obtain feedback from the
users early in the project. They may be able to refine them early in the
development of the software.
23. Page 23Classification: Restricted
Prototyping
Throwaway prototyping:
• Creation of a model that will eventually be discarded rather than becoming
part of the final delivered software.
• After preliminary requirements gathering is accomplished, a simple
working model of the system is constructed to visually show the users
what their requirements may look like when they are implemented into a
finished system.
• Making changes early in the development lifecycle is extremely cost
effective since there is nothing at that point to redo.
• If a project is changed after a considerable work has been done then small
changes could require large efforts to implement since software systems
have many dependencies
• Another strength of Throwaway Prototyping is its ability to construct
interfaces that the users can test. The user interface is what the user sees
as the system, and by seeing it in front of them, it is much easier to grasp
how the system will work
24. Page 24Classification: Restricted
Type of Prototyping
One method of creating a Throwaway Prototype is Paper Prototyping. The
prototype is implemented using paper and pencil, and thus mimics the
function of the actual product, but does not look at all like it
Another method to easily build high fidelity Throwaway Prototypes is to use a
GUI Builder and create a click dummy, a prototype that looks like the goal
system, but does not provide any functionality
26. Page 26Classification: Restricted
Spiral Approach
This model of development combines the features of the prototyping model
and the waterfall model
The spiral methodology reflects the relationship of tasks with rapid
prototyping, increased parallelism, and concurrency in design and build
activities. The spiral method should still be planned methodically, with tasks
and deliverables identified for each step in the spiral
27. Page 27Classification: Restricted
Spiral Approach
A preliminary design is created for the new system. This phase is the most
important part of "Spiral Model". In this phase all possible (and available)
alternatives, which can help in developing a cost effective project are analyzed
and strategies, are decided to use them. This phase has been added specially
in order to identify and resolve all the possible risks in the project
development. If risks indicate any kind of uncertainty in requirements,
prototyping may be used to proceed with the available data and find out
possible solution in order to deal with the potential changes in the
requirements
A first prototype of the new system is constructed from the preliminary
design. This is usually a scaled-down system, and represents an approximation
of the characteristics of the final product
A second prototype is evolved by a fourfold procedure:
• evaluating the first prototype in terms of its strengths, weaknesses,
and risks;
• defining the requirements of the second prototype;
• planning and designing the second prototype;
• constructing and testing the second prototype
28. Page 28Classification: Restricted
Spiral Approach Steps
At the project sponsor's option, the entire project can be aborted if the risk is
deemed too great. Risk factors might involve development cost overruns,
operating-cost miscalculation, or any other factor that could result in a less-
than-satisfactory final product
The existing prototype is evaluated in the same manner as was the previous
prototype, and, if necessary, another prototype is developed from it
according to the fourfold procedure outlined above
The preceding steps are iterated until the customer is satisfied that the
refined prototype represents the final product desired
The final system is constructed, based on the refined prototype
The final system is thoroughly evaluated and tested. Routine maintenance is
carried out on a continuing basis to prevent large-scale failures and to
minimize downtime
29. Page 29Classification: Restricted
Topics to be covered in next session
Rational Unified Process
Inception
Elaboration
Construction
Static structure of process
Worker
Activity
Artifact
Workflow
Agile Methodology
Scrum
XP