2. Software Development Life Cycle,
It is a well-defined, structured sequence of stages in
software engineering to develop the intended software
SDLC provides a series of steps to be followed to design
and develop a software product efficiently. SDLC
framework includes the following steps:
This is the first step where the user initiates the request for a
desired software product. He contacts the service provider
and tries to negotiate the terms. He submits his request to the
service providing organization in writing.
The requirements are collected using a number of practices as
studying the existing or obsolete system and software,
conducting interviews of users and developers,
referring to the database or
collecting answers from the questionnaires.
5. Feasibility Study
After requirement gathering, the team comes up with a
rough plan of software process. At this step the team
analyzes if a software can be made to fulfill all
requirements of the user and if there is any.
6. This step onwards the software development team
works to carry on the project. The team holds
discussions with various stakeholders from problem
domain and tries to bring out as much information as
possible on their requirements.
The requirements are contemplated and segregated
into user requirements, system requirements and
7. System Analysis
At this step the developers decide a roadmap of their
plan and try to bring up the best software model
suitable for the project.
System analysis includes Understanding of software
product limitations, learning system related problems or
changes to be done in existing systems beforehand,
identifying and addressing the impact of project on
organization and personnel etc. The project team
analyzes the scope of the project and plans the schedule
and resources accordingly.
8. Software Design
Next step is to bring down whole knowledge of
requirements and analysis on the desk and design the
The inputs from users and information gathered in
requirement gathering phase are the inputs of this step.
The output of this step comes in the form of two
designs; logical design and physical design. Engineers
produce meta-data and data dictionaries, logical
diagrams, data-flow diagrams and in some cases pseudo
This step is also known as programming phase. The
implementation of software design starts in terms of writing
program code in the suitable programming language and
developing error-free executable programs efficiently.
An estimate says that 50% of whole software development
process should be tested.
Errors may ruin the software from critical level to its own
10. Software testing is done while coding by the
developers and thorough testing is conducted by
testing experts at various levels of code such as module
testing, program testing, product testing, in-house
testing and testing the product at user’s end. Early
discovery of errors and their remedy is the key to
Software may need to be integrated with the libraries,
databases and other program(s). This stage of SDLC is
involved in the integration of software with outer world
This means installing the software on user machines. At
times, software needs post-installation configurations at
user end. Software is tested for portability and
adaptability and integration related issues are solved
12. Operation and Maintenance
This phase confirms the software operation in terms of
more efficiency and less errors. If required, the users are
trained on, or aided with the documentation on how to
operate the software and how to keep the software
The software is maintained timely by updating the code
according to the changes taking place in user end
environment or technology. This phase may face challenges
from hidden bugs and real-world unidentified problems.
As time elapses, the software may decline on the
performance front. It may go completely obsolete or may
need intense upgradation.
Hence a pressing need to eliminate a major portion of
the system arises.
This phase includes archiving data and required
software components, closing down the system,
planning disposition activity and terminating system at
appropriate end-of-system time.
15. 1.Built & Fix Model
This model is the worst model developing a
project. In this the product or software is built
without proper specifications and design steps .
In essence, the product is built and modified as many
times as possible until it satisfies the client or
the cost of using this model is really high
17. 2.Waterfall Model
Waterfall approach was first Process Model to be
introduced and followed widely in Software
Engineering to ensure success of the project.
In "The Waterfall" approach, the whole process of
Software development is divided into separate phases.
18. The simplest process model is the waterfall model,
which states that the phases are organized in a linear
The model was originally proposed by Royce ,though
variations of the model have evolved depending on the
nature of activities and the flow of control between
19. In this model, a project begins with feasibility analysis.
Upon successfully demonstrating the feasibility of a
project, the requirements analysis and project
The design starts after the requirements analysis is
complete, and coding begins after the design is
complete. Once the programming is completed, the
code is integrated and testing is done.
20. Upon successful completion of testing, the system is
After this, the regular operation and maintenance of
the system takes place.
22. when the activities of a phase are completed, there
should be some product that is produced by that
The outputs of the earlier phases are often called work
products and are usually in the form of documents
like the requirements document or design document.
For the coding phase, the output is the code.
23. Documents produced
Design documents (architecture, system, detailed)
Test plan and test reports
Software manuals (e.g., user, installation, etc.)
Simple, easy to understand and follow
Highly structured, therefore good for beginners
After specification is complete, low customer
Documentation is provided at each phase
Maintenance is easier
Each phase is carried out completely (for all
requirements) before proceeding to the next.
Inflexible- Freezes in requirements.
(New vs Existing systems)
Freezing the requirements requires choosing the
Uses the “big –bang” approach
Document –driven –formal docs at end of each stage
26. Prototyping model
The goal of a prototyping-based development process
is to counter the first limitation of the waterfall model.
The basic idea here is that instead of freezing the
requirements before any design or coding can proceed,
a throwaway prototype is built to help understand the
27. This prototype is developed based on the currently
Development of the prototype obviously undergoes
design, coding, and testing, but each of these phases is
not done very formally or thoroughly.
28. Prototyping is used to allow the users evaluate
developer proposals and try them out before
It also helps understand the requirements which are
user specific and may not have been considered by the
developer during product design.
Increased user involvement in the product even before
Since a working model of the system is displayed, the users
get a better understanding of the system being
Reduces time and cost as the defects can be detected
Quicker user feedback is available leading to better
Missing functionality can be identified easily
Confusing or difficult functions can be identified