Professional Documents
Culture Documents
it is not a practical model in the sense that it cannot be used in actual software development
projects. Thus, this model can be considered to be a theoretical way of developing software. But
all other life cycle models are essentially derived from the classical waterfall model. So, in order
to be able to appreciate other life cycle models it is necessary to learn the classical waterfall
model. This model is best suited when developers already have designed and developed similar
software in the past and are aware of all its domains.
Waterfall model: This is one of the simplest, classic life-cycle models, also known as the "linear-
sequential" life cycle model. In a waterfall model, each phase must be completed before moving
onto the next. A review process is scheduled at the end of each phase to check that the project is
on the right track. The steps are as follows:
The Waterfall model is a traditional sequential software development process that follows
a linear and sequential approach. It is often used in projects where requirements are well-
defined and unlikely to change significantly throughout the development process
1.Sequential Process: The development process progresses linearly from one phase
to another, and each phase has specific deliverables.
2. Requirements Analysis: In this phase, the requirements for the software are
gathered and documented. It involves understanding the needs of the end-users and
defining the scope of the project.
3.Design: Once the requirements are defined, the software system is designed,
including the architecture, database design, user interface, and other design
components.
4. Implementation: The designed software is developed and coded according to the
specifications defined in the design phase. This phase involves writing and testing
the code.
This Model suggests a systematic, sequential approach to SW development that begins at the
system level and progresses through analysis, design, code and testing
PROBLEMS IN WATERFALLMODEL
• Real projects not often follow the sequential flow since they are always iterative
• The model requires requirements to be explicitly spelled out in the beginning,
which is often difficult
• A working model is not available until late in the project time plan
Strengths
• Easy to understand, easy to use
• Provides structure to inexperienced staff
• Milestones are well understood
• Sets requirements stability
• Good for management control (plan, staff, track)
• Works well when quality is more important than cost or schedule
•
Waterfall Drawbacks
Once an iteration is completed, the results are reviewed, and the next iteration is planned and
executed. This cycle is repeated until the software meets the desired level of quality and
functionality. The iterative model is often used in agile software development
methodologies, such as Scrum and Kanban, where flexibility and responsiveness to
change are essential.
The advantage of this model is that there is a working model of the system at a very early
stage of development which makes it easier to find functional or design flaws. Finding
issues at an early stage of development enables to take corrective measures in a limited
budget.
The disadvantage with this SDLC model is that it is applicable only to large and bulky
software development projects. This is because it is hard to break a small software
system into further small serviceable increments/modules
Incremental SDLC Model
• Incremental models are software development models that build upon previous
versions of the product or application. These models involve dividing the
development process into smaller parts or increments that are completed and
delivered in stages. With each increment, the product becomes more and more
complete, with additional functionality and improved features.
• Incremental models are a popular choice for software development because they
allow developers to test and review each increment as it is completed, providing an
opportunity to make necessary changes and improvements throughout the
development cycle. This approach helps to reduce overall risk and enables teams to
be more flexible and adaptable to changing requirements or demands.
• Some common incremental models include the spiral model, iterative and
incremental development (IID), and agile development. These models vary in their
specific methods and processes, but all focus on delivering an improved product in
short, incremental phases.
When to use the Incremental Model
Once the prototype has been tested and refined, it can be implemented and further
developed into the final product. The prototyping model is useful for projects where the
requirements are not well-defined, and where the end-users’ feedback is critical to the
success of the final product. It helps in minimizing the risks of building a product that
end-user will not like or find useful.
Drawbacks of Prototyping Model
• The Rad model follows an iterative and cyclical process, consisting of four
main phases:
1. Requirements Planning: In this phase, the project requirements are gathered, analyzed, and
prioritized. The key stakeholders collaborate to define the scope and objectives of the
project.
2. User Design: This phase involves creating prototypes or mock-ups of the system. The
prototypes are reviewed and refined by the stakeholders to ensure that the system meets
their needs and requirements.
3. Construction: Once the prototypes are approved, the development team starts building the
actual system. It involves coding, integration of modules, and unit testing. The focus is on
delivering functionality incrementally and rapidly.
4. Cutover: In this final phase, the system is tested thoroughly for defects, and any remaining
issues are resolved. The system is then deployed, and the users are trained to operate it.
Feedback from the users is collected and incorporated in future iterations.
The Rad model emphasizes collaboration and frequent communication between the
development team and the stakeholders. It encourages active involvement of users
throughout the development process, resulting in a system that closely aligns with their
requirements.
Advantages of using the Rad model include faster development time, increased user
involvement, and flexibility to adapt to changing requirements. However, it may not be
suitable for complex projects with a high level of dependencies or projects where the
requirements are not well-defined.
Overall, the Rad model offers a structured approach for rapid software development, enabling
organizations to quickly deliver working systems while ensuring stakeholder satisfaction.
Drawbacks of RAD
• For large projects, RAD requires sufficient human resources to create the
right number of RAD teams.
• If developers & customers are not committed to rapid-fire activities, RAD
projects will fail.
• If the system cannot be properly modularized, building the components
will be problematic
• If high-performance is an issue, RAD may not work.
• RAD may be inappropriate when technical risks are high
When to use RAD
The spiral model is a software development model that consists of a series of iterative cycles.
It is a combination of the iterative and the incremental models, in which each cycle of the
spiral consists of a series of phases, such as planning, risk analysis, design,
implementation, testing, and evaluation.
The spiral model is especially useful for software development projects that are complex and
have a high degree of risk, as it provides a structured approach for managing risk and
ensuring that the project is delivered on time and within budget.
The spiral model is characterized by its flexibility and adaptability, as it can be tailored to fit
the needs of different projects and organizations. It also emphasizes the importance of
collaboration and communication among team members throughout the development
process.
• It couples the iterative nature of prototyping with the controlled and systematic aspects of
the waterfall model Process
• Adapted to complete life cycle
• Process is represented as a spiral rather than as a sequence of activities with backtracking.
• Each loop in the spiral represents a phase in the process.
• No fixed phases such as specification or design - loops in the spiral are chosen depending
on what is required.
SPIRAL MODEL
Spiral Model Strengths