SDLC MODELS
Classical Waterfall Model
The classical waterfall model is the basic software development life cycle
model.
Earlier this model was very popular but nowadays it is not used.
But it is very important because all the other software development life
cycle models are based on the classical waterfall model.
1. Feasibility Study
2. Requirements analysis and specification
Requirement gathering and analysis:
Firstly, all the software requirements are gathered from the customer and then the
gathered requirements are analyzed.
Requirement specification: These analyzed requirements are documented in a software
requirement specification (SRS) document.
3. Design
4. Coding and Unit testing
In the coding phase software design is translated into source code using any suitable programming
language.
5. Integration and System testing
System testing consists of three different kinds of testing
activities as described below :
Alpha testing: Alpha testing is the system testing
performed by the development team.
Beta testing: Beta testing is the system testing performed
by a friendly set of customers.
Acceptance testing: After the software has been delivered,
the customer performed acceptance testing to determine
whether to accept or reject the software.
Maintenance: Maintenance is the most important
phase of a software life cycle. The effort spent on
maintenance is 60% of the total effort spent to
develop a full software.
Corrective Maintenance: This type of
maintenance is carried out to correct errors that
were not discovered during the product
development phase.
Perfective Maintenance: This type of
maintenance is carried out to enhance the
functionalities of the system based on the
customer’s request.
Advantages of Classical Waterfall Model
This model is very simple and is easy to understand.
Phases in this model are processed one at a time.
Each stage in the model is clearly defined.
Reinforces good habits: define-before- design, design-before-code.
This model works well for smaller projects.
Drawbacks of Classical Waterfall Model
No feedback path as it is one way street(sequential in nature).
Difficult to accommodate change requests as it lacks interactions among
phases.
Users have little interaction with the project team.
60% efforts Maintenance
High Risk as doesnot support delivery of system in phases.
No overlapping of phases.
Iterative Waterfall Model
Phases of the Iterative Waterfall Model:
The process follows these steps, with feedback loops
allowing revisions:
1. Feasibility Study
2. Requirement Analysis and Specification
3. Design
4. Coding and Unit Testing
5. Integration and System Testing
6. Maintenance
The Iterative Waterfall Model is an improved version of the classical waterfall model with necessary
modifications to make it more suitable for practical software development projects.
Features of the Iterative Waterfall Model:
1. Feedback Mechanism:
•Unlike the classical waterfall model, the iterative version allows feedback paths from every
phase to its preceding phase.
2. Incremental Development Approach:
•This model does not require a full specification of requirements at the beginning.
•Development starts by specifying and implementing only a part of the software.
•After implementation, the developed part is reviewed to identify further requirements.
•This process is repeated, resulting in new iterations and versions of the software.
3. Ensuring Quality:
•The success of this model depends on rigorous validation of requirements at each phase.
•It includes verification and testing of each software version against the requirements in each cycle.
ADVANTAGES:
It allows feedback to proceeding stages and hence is not very rigid.
Can be used for project in which requirements are not well understood.
Easy to correct errors.
DISADVANTAGES:
It is harder to manage this model.
No clear milestone in the development process.
No stage is really finished(until the system is no longer in use).
Prototype Model
The Prototyping Model is suitable for software development projects where requirements are incomplete, inconsistent, or unclear.
Features of the Prototyping Model:
[Link] Prototype for Requirement Understanding:
• Instead of freezing requirements before starting design or coding, a throwaway prototype is built.
• This helps in understanding and refining the requirements.
• The prototype is created based on the currently known requirements.
2. Development Process:
• The prototype goes through design, coding, and testing, but these phases are not done formally or thoroughly.
• Clients interact with the prototype, which helps them better understand their requirements.
• As a result, the final system has more stable requirements that change less frequently.
3. Prototype as a Working Model:
•A prototype is a simplified version of the actual system.
•It has limited functionality, low reliability, and inefficient performance compared to the final system.
4. Cost Considerations:
• Developing a prototype can incur high costs, but skipping prototyping may lead to even higher development costs.
• Two key reasons for this:
1. Experience from prototyping can help reduce costs in later phases when actual software development begins.
2. In many projects, requirements constantly change, especially when development takes a long time.
Types of Prototyping
│
┌──────────────┴─────────
─────┐
│ │
Exploratory Development Throwaway Prototyping
Advantage of Prototype Model
1. Reduce the risk of incorrect user requirement
2. Good where requirements are changing.
3. As the prototype will be discarded, so quick and dirty programming
techniques can be used.
4. Regular visible process aids management
5. Support early product marketing
6. Reduce Maintenance costs
7. Errors can be detected
Disadvantage of Prototype Mode
1. Customer is not clear with the idea.
2. Require extensive customer collaboration
o Costs customer money
o Needs committed customer
o Difficult to finish if the customer withdraws
o May be too customer-specific no broad market.
3. Difficult to know how long the project will last.
4. Prototyping tools are expensive.
5. It is a time-consuming process.
Spiral Model
Objectives determination and identify
alternative solutions: Requirements are
gathered from the customers.
Identify and resolve Risks: During the
second quadrant, all the possible solutions
are evaluated to select the best possible
solution. The prototype is built for the best
possible solution.
Develop next version of the Product:
During the third quadrant, the identified
features are developed and verified
through testing.
Review and plan for the next Phase: In
the fourth quadrant, the Customers
evaluate the so-far developed version of
the software.
Advantages of Spiral Model:
1. Risk Handling: The spiral Model is the best development model to follow due to the
risk analysis and risk handling at every phase.
2. Good for large projects: It is recommended to use the Spiral Model in large and
complex projects.
3. Flexibility in Requirements: Change requests in the Requirements at later phase can be
incorporated accurately by using this model.
4. Customer Satisfaction: Customers can see the development of the product at the early
phase of the software development
Disadvantages of Spiral Model:
1. Complex: The Spiral Model is much more complex than other SDLC models.
2. Expensive: Spiral Model is not suitable for small projects as it is expensive.
3. Too much dependability on Risk Analysis: Without very highly experienced experts, it
is going to be a failure to develop a project using this model.
4. Difficulty in time management: so time estimation is very difficult.
Incremental Model
Incremental Model in software engineering:
Development in Small Parts:
1. The system is developed and delivered in smaller, manageable modules (or increments).
2. Each increment adds new features or functionalities to the previous version.
Customer Feedback and Flexibility:
• After each increment is delivered, user feedback is collected to improve the next stage.
• Changes can be made easily during the process based on feedback or new requirements.
Prioritized Requirements:
• Requirements are divided into smaller modules and prioritized based on importance.
• The most critical features are developed and delivered first, while less essential features are added in later
increments.
Advantages
Module by Module working
Customer Interaction Max
Large Project
Early-release product
Flexible to changes.
Disadvantages
A good team and proper planned
execution are required.
V-Model
V Model is a highly disciplined SDLC model
which has a testing phase parallel to each
development phase.
The V model is an extension of the waterfall
model.
It is known as the Validation or Verification
Model.
•Verification and Validation Alignment:
•The development and testing phases run in parallel.
•Each development stage has a corresponding testing phase, ensuring early defect detection.
•Strict and Sequential Process:
•The model follows a rigid, step-by-step approach, moving forward only after completing the previous
phase.
•This makes it suitable for projects with well-defined requirements.
•Emphasis on Testing:
•Every development phase is paired with a testing phase, reducing the risk of errors.
•This ensures a high-quality product with fewer defects.
Advantages:
• This is a highly disciplined model and Phases are completed one at a time.
• V-Model is used for small projects where project requirements are clear.
• Simple and easy to understand and use.
• This model focuses on verification and validation activities early in the life cycle thereby
enhancing the probability of building an error-free and good-quality product.
• Better Communication: The clear structure of the V-Model helps to improve communication
between the customer and the development team.
Disadvantages:
High risk and uncertainty.
Time-Consuming: The V-Model can be time-consuming, as it requires a lot of
documentation and testing.
It is not suitable for projects where requirements are not clear and contains high risk
of changing.
RAD Model
•Fast Development Requirement
•RAD focuses on quickly building prototypes and iterative Gathering
releases instead of following a rigid development cycle.
•This helps in faster feedback and adjustments.
•User Involvement & Continuous Feedback:
•End-users are actively involved throughout the
development process.
•Their feedback is used to refine and improve the
application in real time.
•Component-Based Development:
•The system is built using reusable components and pre-
built modules.
•This speeds up development and reduces overall
project time.
Advantages:
• The use of reusable components helps to reduce the cycle time of the project.
• Feedback from the customer is available at the initial stages.
• Reduced costs as fewer developers are required.
• better quality products in comparatively shorter time spans.
Disadvantages:
• The use of powerful and efficient tools requires highly skilled professionals.
• The absence of reusable components can lead to the failure of the project.
• The team leader must work closely with the developers and customers to close the project in time.
Agile Model
Agile methodologies aim to rapidly develop software to meet the dynamic needs of
businesses.
They emphasize adaptability, collaboration, and continuous improvement.
The approach stresses people collaboration, involving both developers and customers in
the process.
Key Principles of Agile Methods:
[Link] Rather Than Predictive:
•Traditional engineering methods focus on detailed upfront planning for extended timeframes.
•Agile methods welcome and thrive on change, emphasizing adaptability even if it requires
changing processes.
[Link]-Oriented Rather Than Process-Oriented:
•Engineering methods aim to create processes that work universally.
•Agile methods prioritize the skills and collaboration of development teams, with processes
serving as support rather than control mechanisms.
[Link] Development with Incremental Delivery:
•Agile emphasizes building software in small increments.
•Each increment delivers usable functionality while continuing to evolve based on feedback.
Agile Model
Advantages
Frequent Delivery
Face-to-face communication with
the client
Adapt Changes
Timely Completion
Disadvantages
Less documentation
Maintenance Problem
Specialised processed models
[Link]-based development
The component-based development model incorporates many of the
characteristics of the spiral model.
It is an iterative approach to the creation of software.
However, the model focuses on Prepackaged software components. It
promotes software reusability.
Component based model
Advantages
Leads to software reuse, which provides a number of benefits.
70% of reduction in the development life cycle
Disadvantages
Component library must be robust.
Performance may degrade.
[Link] Methods Model
•Mathematical Precision & Specification:
•The model uses formal mathematical notation to specify, develop, and verify software.
•This ensures high accuracy and eliminates ambiguity, incompleteness, and inconsistency in software design.
•Error Detection & Defect-Free Software:
•Formal methods help identify and fix errors early through mathematical verification, reducing defects that
may go unnoticed in other models.
•This approach increases software reliability and correctness.
•Challenges in Implementation:
•Developing formal models is time-consuming and costly.
•It requires specialized knowledge, and most developers lack the necessary expertise, leading to a steep
learning curve.
•Limited Communication with Non-Technical Clients:
•The complexity of formal methods makes it difficult to explain to clients without technical backgrounds,
making collaboration and requirement gathering challenging.
[Link] Oriented Software Development
•Managing Crosscutting Concerns:
•AOSD focuses on crosscutting concerns—features that affect multiple parts of the software (e.g., security,
logging, error handling).
•These concerns are separated from core functionalities to improve modularity and maintainability.
•Aspect-Oriented Programming (AOP):
•AOSD provides a structured approach to define, specify, design, and implement aspects separately.
•This improves code organization by avoiding redundant logic scattered across the system.
•Integration with Existing Models:
•AOSD combines elements of evolutionary and concurrent development models.
•Aspects are developed separately but must be integrated with software components, requiring synchronized
communication between both.
The Unified Process
The Unified Process (UP) is an attempt to draw on the best features and
characteristics of conventional software process models, but characterize
them in a way that implements many of the best principles of agile software
development.
The Unified Process recognizes the importance of customer communication.
Phases of the Unified Process
Inception phase: encompasses both customer communication and planning
activities.
Elaboration phase: encompasses planning and Modelling activities.
Construction phase: is identical to the construction activity.
Transition phase: encompasses latter stages of construction activity and first
part of the generic deployment activity.
Production phase: coincides with the deployment activity of the generic
process.
Major Workflow Produced for Unified
Process