The document discusses several software development life cycle (SDLC) models, including waterfall, iterative, prototyping, and spiral models. It describes the basic stages and processes involved in each model. The waterfall model involves sequential stages of requirements analysis, design, implementation, testing, and deployment. The iterative model allows revisiting earlier stages and incremental releases. The prototyping model uses prototypes to gather early user feedback. Finally, the spiral model combines iterative development and risk analysis, proceeding in cycles of planning, risk analysis, development, and evaluation.
2. INTRODUCTION
software development process is SDLC models
which stands for Software Development Life Cycle
models. SDLC – is a continuous process, which starts
from the moment, when it’s made a decision to launch
the project. There is no one single SDLC model. They
are divided into main groups, each with its features and
weaknesses.
3. WHAT IS SDLC?
SDLC is a systematic process for building software that ensures
the quality and correctness of the software built. SDLC process
aims to produce high-quality software that meets customer
expectations. The system development should be complete in
the pre-defined time frame and cost. SDLC consists of a detailed
plan which explains how to plan, build, and maintain specific
software. Every phase of the SDLC life Cycle has its own
process and deliverables that feed into the next phase. SDLC
stands for Software Development Life Cycle and is also
referred to as the Application Development life-cycle
4. WHY SDLC?
It offers a basis for project planning, scheduling, and
estimating
Provides a framework for a standard set of activities and
deliverables
It is a mechanism for project tracking and control
Increases visibility of project planning to all involved
stakeholders of the development process
Increased and enhance development speed
Improved client relations
Helps you to decrease project risk and project
management plan overhead
5. BASIC STAGES OF SOFTWARE DEVELOPMENT LIFE
CYCLE
No matter what type of the models has been chosen, each of
them has basic stages which are used by every software
development company.
Each software development life cycle model starts with the
analysis, in which the stakeholders of the process
discuss the requirements for the final product. The goal of this stage
is the detailed definition of the system requirements. Besides, it is
needed to make sure that all the process participants have clearly
understood the tasks and how every requirement is going to be
implemented. Often, the discussion involves the QA specialists who can
interfere the process with additions even during the development stage
if it is necessary.
Stage 1. Planning and requirement analysis
6. Stage 2. Designing project architecture
At the second phase of the software development life
cycle, the developers are actually designing the
architecture. All the different technical questions that
may appear on this stage are discussed by all the
stakeholders, including the customer. Also, here are
defined the technologies used in the project, team load,
limitations, time frames, and budget. The most
appropriate project decisions are made according to the
defined requirements.
7. Stage 3. Development and programming
After the requirements approved, the process goes to the next
stage – actual development. Programmers start here with the
source code writing while keeping in mind previously defined
requirements. The system administrators adjust the software
environment, front-end programmers develop the user interface
of the program and the logics for its interaction with the server.
The programming by itself assumes four stages
Algorithm development
Source code writing
Compilation
Testing and debugging
8. Stage 4. Testing
The testing phase includes the debugging process. All the code
flaws missed during the development are detected here,
documented, and passed back to the developers to fix. The testing
process repeats until all the critical issues are removed and
software workflow is stable.
9. Stage 5. Deployment
When the program is finalized and has no critical issues – it is
time to launch it for the end users. After the new program
version release, the tech support team joins. This department
provides user feedback; consult and support users during the
time of exploitation. Moreover, the update of selected
components is included in this phase, to make sure, that the
software is up-to-date and is invulnerable to a security breach.
10. SDLC MODELS
A framework that describes the activities performed
at each stage of a software development project.
11. PROTOTYPE- MODELS
Prototyping is defined as the process of developing a
working replication of a product or system that has to be
engineered. It offers a small scale working project of the end
product and is used for obtaining customer feedback as
described below:
12. THE ADVANTAGES OF THE PROTOTYPING MODEL ARE AS FOLLOWS −
Increased user involvement in the product even before its
implementation.
Since a working model of the system is displayed, the users get
a better understanding of the system being developed.
Reduces time and cost as the defects can be detected much
earlier.
Quicker user feedback is available leading to better solutions.
Missing functionality can be identified easily.
Confusing or difficult functions can be identified.
13. THE DISADVANTAGES OF THE PROTOTYPING MODEL ARE AS FOLLOWS −
Risk of insufficient requirement analysis owing to too
much dependency on the prototype.
Users may get confused in the prototypes and actual
systems.
Practically, this methodology may increase the complexity
of the system as scope of the system may expand beyond
original plans.
Developers may try to reuse the existing prototypes to
build the actual system, even when it is not technically
feasible.
The effort invested in building prototypes may be too
much if it is not monitored properly.
14. WATERFALL SDLC MODEL
Waterfall – is a cascade SDLC model, in which
development process looks like the flow, moving step by
step through the phases of analysis, projecting,
realization, testing, implementation, and support. This
SDLC model includes gradual execution of every stage
completely. This process is strictly documented and
predefined with features expected to every phase of this
software development life cycle model.
15.
16. 1. Requirement Gathering
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
functional requirements. The requirements are
collected using a number of practices as given -
studying the existing or obsolete system and
software,
conducting interviews of users and developers,
referring to the database or
collecting answers from the questionnaires.
17. 2. 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 possibility of software being no more useful. It is
found out, if the project is financially, practically and
technologically feasible for the organization to take up. There
are many algorithms available, which help the developers to
conclude the feasibility of a software project.
3. 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.
18. 4. Software Design
Next step is to bring down whole knowledge of
requirements and analysis on the desk and design the
software product. 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
codes.
5. Coding
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.
19. 6. Testing
An estimate says that 50% of whole software development
process should be tested. Errors may ruin the software from
critical level to its own removal. 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 reliable software.
7. Integration
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 entities.
8. Deployment
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 during implementation.
20. 9. 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 operational. 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.
10. Disposition
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.
21. WATERFALL SDLC MODEL
ADVANTAGES DISADVANTAGES
Simple to use and understand The software is ready only after the last stage
is over
Management simplicity thanks to its rigidity:
every phase has a defined result and process
review
High risks and uncertainty
Development stages go one by one Not the best choice for complex and object-
oriented projects
Perfect for the small or mid-sized projects
where requirements are clear and not
equivocal
Inappropriate for the long-term projects
Easy to determine the key points in the
development cycle
The progress of the stage is hard to measure
while it is still in the development
Easy to classify and prioritize tasks Integration is done at the very end, which does
not give the option of identifying the problem in
advance
22. ITERATIVE MODEL
In this Model, you can start with some of the software
specifications and develop the first version of the software. After
the first version if there is a need to change the software, then a
new version of the software is created with a new iteration.
Every release of the Iterative Model finishes in an exact and
fixed period that is called iteration.
The Iterative Model allows the accessing earlier phases, in
which the variations made respectively. The final output of the
project renewed at the end of the Software Development Life
Cycle (SDLC) process.
23.
24. THE VARIOUS PHASES OF ITERATIVE MODEL ARE AS
FOLLOWS:
1. Requirement gathering & analysis: In this phase,
requirements are gathered from customers and
check by an analyst whether requirements will fulfil
or not. Analyst checks that need will achieve within
budget or not. After all of this, the software team
skips to the next phase.
2. Design: In the design phase, team design the
software by the different diagrams like Data Flow
diagram, activity diagram, class diagram, state
transition diagram, etc.
25. 3. Implementation: In the implementation, requirements are
written in the coding language and transformed into computer
programmes which are called Software.
4. Testing: After completing the coding phase, software testing
starts using different test methods. There are many test
methods, but the most common are white box, black box, and
grey box test methods.
5. Deployment: After completing all the phases, software is
deployed to its work environment.
6. Review: In this phase, after the product deployment, review
phase is performed to check the behaviour and validity of the
developed product. And if there are any error found then the
process starts again from the requirement gathering.
7. Maintenance: In the maintenance phase, after deployment of
the software in the working environment there may be some
bugs, some errors or new updates are required. Maintenance
involves debugging and new addition options.
26. WHEN TO USE THE ITERATIVE MODEL?
When requirements are defined clearly and easy to
understand.
When the software application is large.
When there is a requirement of changes in future.
27. ADVANTAGE(PROS) OF ITERATIVE MODEL:
1. Testing and debugging during smaller iteration is
easy.
2. A Parallel development can plan.
3. It is easily acceptable to ever-changing needs of
the project.
4. Risks are identified and resolved during iteration.
5. Limited time spent on documentation and extra
time on designing.
28. DISADVANTAGE(CONS) OF ITERATIVE MODEL:
1. It is not suitable for smaller projects.
2. More Resources may be required.
3. Design can be changed again and again because
of imperfect requirements.
4. Requirement changes can cause over budget.
5. Project completion date not confirmed because of
changing requirements.
29. SPIRAL MODEL
The spiral model combines the idea of iterative development with
the systematic, controlled aspects of the waterfall model. This
Spiral model is a combination of iterative development process
model and sequential linear development model i.e. the waterfall
model with a very high emphasis on risk analysis. It allows
incremental releases of the product or incremental refinement
through each iteration around the spiral.
30.
31. DIFFERENT PHASES OF THE SPIRAL MODEL
The phase of the spiral model has four quadrants, and each of them represents some specific stage of software
development. The functions of these four quadrants are listed below:
1. Planning objectives or identify alternative solutions: In this stage, requirements are collected from customers
and then the aims are recognized, elaborated as well as analyzed at the beginning of developing the project. If
the iterative round is more than one, then an alternative solution is proposed in the same quadrant.
2. Risk analysis and resolving: As the process goes to the second quadrant, all likely solutions are sketched, and
then the best solution among them gets select. Then the different types of risks linked with the chosen solution
are recognized and resolved through the best possible approach. As the spiral goes to the end of this quadrant, a
project prototype is put up for the most excellent and likely solution.
3. Develop the next level of product: As the development progress goes to the third quadrant, the well-known and
mostly required features are developed as well as verified with the testing methodologies. As this stage proceeds
to the end of this third quadrant, new software or the next version of existing software is ready to deliver.
4. Plan the next Phase: As the development process proceeds in the fourth quadrant, the customers appraise the
developed version of the project and reports if any further changes are required. At last, planning for the
subsequent phase is initiated.
32. USES OF THE SPIRAL MODEL
the spiral model is best used in large, expensive and complicated projects.
Other uses include:
1. Projects in which frequent releases are necessary;
2. Projects in which changes may be required at any time;
3. Long term projects that are not feasible due to altered economic priorities;
4. Medium to high risk projects;
5. Projects in which cost and risk analysis is important;
6. Projects that would benefit from the creation of a prototype; and projects
with unclear or complex requirements.
33. STEPS OF THE SPIRAL MODEL
While the phases are broken down into quadrants,
each quadrant can be further broken down into the
steps that occur within each one. The steps in the
spiral model can be generalized as follows:
1. The new system requirements are defined in as much detail as
possible. This usually involves interviewing a number of users
representing all the external or internal users and other aspects of
the existing system.
2. A preliminary design is created for the new system.
3. 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.
34. A second prototype is evolved by a fourfold procedure: (1) evaluating the first
prototype in terms of its strengths, weaknesses, and risks; (2) defining the
requirements of the second prototype; (3) planning and designing the second
prototype; (4) constructing and testing the second prototype.
The entire project can be aborted if the risk is deemed too great. Risk factors might
involve development cost overruns, operating-cost miscalculation and other factors
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.
35. BENEFITS OF THE SPIRAL MODEL
the spiral model is a great option for large, complex projects. The
progressive nature of the model allows developers to break a big
project into smaller pieces and tackle one feature at a time, ensuring
nothing is missed.
since the prototype building is done progressively, the cost
estimation of the whole project can sometimes be easier.
Risk handling - The spiral model involves risk analysis and handling
in every phase, improving security and the chances of avoiding
attacks and breakages. The iterative development process also
facilitates risk management.
Customer satisfaction - The spiral model facilitates customer feedback.
If the software is being designed for a customer, then the customer will
be able to see and evaluate their product in every phase. This allows
them to voice dissatisfactions or make changes before the product is
fully built, saving the development team time and money.
36. LIMITATIONS OF THE SPIRAL MODEL
High cost - The spiral model is expensive and, therefore, is not suitable for
small projects.
Dependence on risk analysis - Since successful completion of the project
depends on effective risk handling, then it is necessary for involved
personnel to have expertise in risk assessment.
Complexity - The spiral model is more complex than other SDLC options.
For it to operate efficiently, protocols must be followed closely. Furthermore,
there is increased documentation since the model involves intermediate
phases.
37. RAD (RAPID APPLICATION DEVELOPMENT) MODEL
The Rapid Application Development Model was first proposed by IBM in
1980’s. The critical feature of this model is the use of powerful
development tools and techniques.
If the requirements are well understood and described, the RAD
process enables a development team to create a fully functional
system within a concise time period.
38. RAD (RAPID APPLICATION DEVELOPMENT) IS A CONCEPT THAT PRODUCTS CAN
BE DEVELOPED FASTER AND OF HIGHER QUALITY THROUGH:
Gathering requirements using workshops or focus groups
Prototyping and early, re-iterative user testing of designs
The re-use of software components
A rigidly paced schedule that refers design improvements to
the next product version
Less formality in reviews and other team communication
40. THE VARIOUS PHASES OF RAD ARE AS FOLLOWS:
1.Business Modeling: The information flow among business functions is
defined by answering questions like what data drives the business
process, what data is generated, who generates it, where does the
information go, who process it and so on.
2. Data Modeling: The data collected from business modeling is refined
into a set of data objects (entities) that are needed to support the
business. The attributes (character of each entity) are identified, and
the relation between these data objects (entities) is defined.
41. 3. Process Modelling: The information object defined in the data modeling
phase are transformed to achieve the data flow necessary to implement a
business function. Processing descriptions are created for adding,
modifying, deleting, or retrieving a data object.
4. Application Generation: Automated tools are used to facilitate
construction of the software; even they use the 4th GL techniques.
5. Testing & Turnover: Many of the programming components have
already been tested since RAD emphasis reuse. This reduces the overall
testing time. But the new part must be tested, and all interfaces must be
fully exercised.
42. WHEN TO USE RAD MODEL?
1. When the system should need to create the project that modularizes
in a short span time (2-3 months).
2. When the requirements are well-known.
3. When the technical risk is limited.
4. When there's a necessity to make a system, which modularized in 2-
3 months of period.
5. It should be used only if the budget allows the use of automatic
code generating tools.
43. ADVANTAGE OF RAD MODEL
1. This model is flexible for change.
2. In this model, changes are adoptable.
3. Each phase in RAD brings highest priority functionality to the customer.
4. It reduced development time.
5. It increases the reusability of features.
44. DISADVANTAGE OF RAD MODEL
1. It required highly skilled designers.
2. All application is not compatible with RAD.
3. For smaller projects, we cannot use the RAD model.
4. On the high technical risk, it's not suitable.
5. Required user involvement.