AYU1
AYU1
AYU1
Practical: 1
Aim: Study of different engineering models
SDLC stands for Software Development Life Cycle. SDLC is a structured process that is used
to design, develop, and test good-quality software. The goal of the SDLC life cycle model is
to deliver high-quality, maintainable software that meets the user’s requirements. SDLC in
software engineering models outlines the plan for each stage so that each stage of the software
development model can perform its task efficiently to deliver the software at a low cost within
a given time frame that meets users’ requirements.
Phases of SDLC :
• Planning and Requirement Analysis - This phase involves defining the project’s
scope, objectives, and resources. It lays out the project timeline and budget.
stakeholders’ needs and expectations are gathered and documented. This forms the basis
for the project’s functionality and design.
• Product Testing and Integration - The software undergoes rigorous testing to identify
and fix defects. Various types of testing, like unit, integration, and system testing, are
LIT/CSE/2024-25 1
220860131056 Software Engineering (3150711)
1. Waterfall model:
The Waterfall Model was the first Process Model to be introduced. It is also referred to as
a linear-sequential life cycle model. It is very simple to understand and use. In a waterfall
model, each phase must be completed before the next phase can begin and there is no
overlapping in the phases.
LIT/CSE/2024-25 2
220860131056 Software Engineering (3150711)
LIT/CSE/2024-25 3
220860131056 Software Engineering (3150711)
v. Not suitable for the projects where requirements are at a moderate to high risk of
changing. So, risk and uncertainty is high with this process model.
vi. It is difficult to measure progress within stages.
vii. Cannot accommodate changing requirements.
viii. Adjusting scope during the life cycle can end a project.
ix. Integration is done as a "big-bang. at the very end, which doesn't allow identifying
any technological or business bottleneck or challenges early.
2. Incremental model:
A simple working system implementing only a few basic features is built and then that is
delivered to the customer. Then thereafter many successive iterations/ versions are
implemented and delivered to the customer until the desired system is released. It has limited
set of functionality and the 1𝑠𝑡 Increment is known as Core model.
Phases of Incremental model:
• Requirement analysis: In Requirement Analysis At any time, the plan is made just for
the next increment and not for any kind of long-term plan. Therefore, it is easier to
modify the version as per the needs of the customer.
LIT/CSE/2024-25 4
220860131056 Software Engineering (3150711)
• Design & Development: At any time, the plan is made just for the next increment and
not for any kind of long-term plan. Therefore, it is easier to modify the version as per
the needs of the customer. The Development Team first undertakes to develop core
features (these do not need services from other features) of the system. Once the core
features are fully developed, then these are refined to increase levels of capabilities by
adding new functions in Successive versions. Each incremental version is usually
developed using an iterative waterfall model of development.
• Deployment and Testing: After Requirements gathering and specification,
requirements are then split into several different versions starting with version 1, in
each successive increment, the next version is constructed and then deployed at the
customer site. in development and Testing the product is checked and tested for the
actual process of the model.
Advantages:
i. Prepares the software fast.
ii. Clients have a clear idea of the project.
iii. Changes are easy to implement.
iv. Provides risk handling support, because of its iterations.
v. Adjusting the criteria and scope is flexible and less costly.
vi. Comparing this model to others, it is less expensive.
vii. The identification of errors is simple.
Disadvantages:
i. A good team and proper planned execution are required.
ii. Because of its continuous iterations the cost increases.
iii. Issues may arise from the system design if all needs are not gathered upfront
throughout the program lifecycle.
iv. Every iteration step is distinct and does not flow into the next.
v. It takes a lot of time and effort to fix an issue in one unit if it needs to be corrected in
all the units.
LIT/CSE/2024-25 5
220860131056 Software Engineering (3150711)
The Rapid Application Development Model was first proposed by IBM in the 1980s. The RAD
model is a type of incremental process model in which there is an extremely short development
cycle. When the requirements are fully understood and the component-based construction
approach is adopted then the RAD model is used. In this model we can reuse the component
of other model and it is highspeed adaption of waterfall model. A software project can be
implemented using this model if the project can be broken down into small modules wherein
each module can be assigned independently to separate teams. Another striking feature of this
model is a short period i.e. the time frame for delivery(time-box) is generally 60-90 days.
Phases of RAD model:
• Communication: In the Communication phase, developers and stakeholders come
together to discuss the project's objectives, requirements, and constraints. This initial
interaction aims to gather detailed information about what the application needs to
accomplish. Effective communication helps to align everyone’s expectations and
establish a clear vision for the project. This phase sets the foundation for all subsequent
stages by ensuring that both the development team and stakeholders have a mutual
understanding of the project goals.
LIT/CSE/2024-25 6
220860131056 Software Engineering (3150711)
• Planning: The Planning phase involves defining the project's scope, creating multiple
team, creating a detailed plan, and allocating resources. During this phase, a project
roadmap is developed, outlining key milestones, deadlines, and responsibilities. This
plan helps to organize the development process, manage time effectively, and anticipate
potential risks.
• Modeling: In the Modeling phase, preliminary prototypes or models of the application
are created to visualize and test the proposed features. This phase is crucial for iterative
refinement, as prototypes allow stakeholders to interact with early versions of the
system and provide feedback. Based on this feedback, requirements are adjusted and
refined to better meet user needs. The iterative nature of this phase helps to clarify and
enhance the system’s functionality before full-scale development begins.
• Construction: The Construction phase focuses on the actual development of the
application based on pre existing software component and application of code
generation. During this phase, the system is built according to the refined requirements
and models created earlier. This phase emphasizes rapid development and frequent
adjustments, ensuring that the application evolves in response to user feedback and
project needs.
• Deployment: In the Deployment phase, the completed application is released to the
end users in short time span . This phase involves installing the software in the target
environment, providing necessary user training, and offering support to ensure a smooth
transition.The deployment phase ensures that the application is fully operational, meets
user expectations, and is supported for ongoing use and maintenance.
Advantages:
i. The use of reusable components helps to reduce the cycle time of the project.
ii. Feedback from the customer is available at the initial stages.
iii. Reduced costs as fewer developers are required.
iv. The use of powerful development tools results in better quality products in
comparatively shorter periods.
v. The progress and development of the project can be measured through the various
stages.
vi. It is easier to accommodate changing requirements due to the short iteration time
spans.
vii. Productivity may be quickly boosted with a lower number of employees.
Disadvantages:
i. The use of powerful and efficient tools requires highly skilled professionals.
ii. The absence of reusable components can lead to the failure of the project.
iii. The team leader must work closely with the developers and customers to close the
project on time.
LIT/CSE/2024-25 7
220860131056 Software Engineering (3150711)
iv. The systems which cannot be modularized suitably cannot use this model.
v. Customer involvement is required throughout the life cycle.
vi. It is not meant for small-scale projects as in such cases, the cost of using automated
tools and techniques may exceed the entire budget of the project.
vii. Not every application can be used with RAD.
4. Prototype model:
Prototype is a sample or model used for testing.This model is used when the customers do not
know the exact project requirements beforehand. In this model, a prototype of the end product
is first developed, tested, and refined as per customer feedback repeatedly till a final acceptable
prototype is achieved which forms the basis for developing the final product.
Phases of prototype model:
• Requirement Gathering and Analysis: This is the initial step in designing a prototype
model. In this phase, users are asked about what they expect or what they want from
the system.
LIT/CSE/2024-25 8
220860131056 Software Engineering (3150711)
• Quick Design: This is the second step in the Prototyping Model. This model covers the
basic design of the requirement through which a quick overview can be easily
described.
• Build a Prototype: This step helps in building an actual prototype from the knowledge
gained from prototype design.
• Initial User Evaluation: This step describes the preliminary testing where the
investigation of the performance model occurs, as the customer will tell the strengths
and weaknesses of the design, which was sent to the developer.
• Refining Prototype: If any feedback is given by the user, then improving the client’s
response to feedback and suggestions, the final system is approved.
• Implement Product and Maintain: This is the final step in the phase of the
Prototyping Model where the final system is tested and distributed to production, here
the program is run regularly to prevent failures.
Advantages:
i. The customers get to see the partial product early in the life cycle. This ensures a greater
level of customer satisfaction and comfort.
ii. New requirements can be easily accommodated as there is scope for refinement i.e
flexibility in design.
iii. Errors can be detected much earlier thereby saving a lot of effort and cost, besides
enhancing the quality of the software.
iv. The developed prototype can be reused by the developer for more complicated projects
in the future.
v. Early feedback from customers and stakeholders can help guide the development
process and ensure that the final product meets their needs and expectations.
vi. Prototyping can be used to test and validate design decisions, allowing for adjustments
to be made before significant resources are invested in development.
vii. Prototyping can help reduce the risk of project failure by identifying potential issues
and addressing them early in the process.
viii. Prototyping can facilitate communication and collaboration among team members and
stakeholders, improving overall project efficiency and effectiveness.
ix. Prototyping can help bridge the gap between technical and non-technical stakeholders
by providing a tangible representation of the product.
Disadvantages:
i. Costly concerning time as well as money.
ii. There may be too much variation in requirements each time the prototype is evaluated
by the customer.
iii. Poor Documentation due to continuously changing customer requirements.
LIT/CSE/2024-25 9
220860131056 Software Engineering (3150711)
iv. It is very difficult for developers to accommodate all the changes demanded by the
customer.
v. There is uncertainty in determining the number of iterations that would be required
before the prototype is finally accepted by the customer.
vi. The prototype may not be scalable to meet the future needs of the customer.
vii. The focus on prototype development may shift away from the final product, leading to
delays in the development process.
viii. The prototype may not reflect the actual business requirements of the customer,
leading to dissatisfaction with the final product.
5. Spiral model:
The Spiral Model is one of the most important Software Development Life Cycle models. The
Spiral Model is a combination of the waterfall model and the prototype model. It provides
support for Risk Handling. The Spiral Model was first proposed by Barry Boehm. Each loop
of the spiral is called a phase of the software development process. It is used for large, complex
and expensive project. It is iterative in nature.
Phases of Spiral model:
• Communication: In this phase, tasks and expectations are established between the
customer and developer. Clear communication helps in understanding project
requirements, defining objectives, and setting the groundwork for collaboration.
LIT/CSE/2024-25 10
220860131056 Software Engineering (3150711)
• Planning: This phase involves outlining the project’s timeline, resource allocation, and
other key details. Effective planning ensures that all aspects of the project are organized
and that deadlines and resource needs are clearly defined.
• Risk Analysis: During risk analysis, potential technical and managerial risks are
identified and assessed. This step is crucial for anticipating challenges and developing
strategies to mitigate or manage these risks throughout the project lifecycle.
• Engineering: In the engineering phase, the project is represented through various
models and designs. This involves creating prototypes or detailed designs that reflect
the project requirements and provide a basis for development.
• Construction: The construction phase focuses on the actual development and coding
of the software. It involves building the system according to the designs, performing
testing, and evaluating the software to ensure it meets the specified requirements.
• Customer Evaluation: This phase involves gathering feedback from the customer to
assess whether the software meets their needs and expectations. The feedback is used
to make necessary adjustments and improvements, ensuring that the final product aligns
with customer satisfaction.
Advantages:
i. Risk Handling: The projects with many unknown risks that occur as the development
proceeds, in that case, Spiral Model is the best development model to follow due to the
risk analysis and risk handling at every phase.
ii. Good for large projects: It is recommended to use the Spiral Model in large and
complex projects.
iii. Flexibility in Requirements: Change requests in the Requirements at a later phase can
be incorporated accurately by using this model.
iv. Customer Satisfaction: Customers can see the development of the product at the early
phase of the software development and thus, they habituated with the system by using
it before completion of the total product.
v. Iterative and Incremental Approach: The Spiral Model provides an iterative and
incremental approach to software development, allowing for flexibility and adaptability
in response to changing requirements or unexpected events.
vi. Emphasis on Risk Management: The Spiral Model places a strong emphasis on risk
management, which helps to minimize the impact of uncertainty and risk on the
software development process.
vii. Improved Communication: The Spiral Model provides for regular evaluations and
reviews, which can improve communication between the customer and the
development team.
viii. Improved Quality: The Spiral Model allows for multiple iterations of the software
development process, which can result in improved software quality and reliability.
LIT/CSE/2024-25 11
220860131056 Software Engineering (3150711)
Disadvantages:
i. Complex: The Spiral Model is much more complex than other SDLC models.
ii. Expensive: Spiral Model is not suitable for small projects as it is expensive.
iii. Too much dependability on Risk Analysis: The successful completion of the project
is very much dependent on Risk Analysis. Without very highly experienced experts, it
is going to be a failure to develop a project using this model.
iv. Difficulty in time management: As the number of phases is unknown at the start of
the project, time estimation is very difficult.
v. Complexity: The Spiral Model can be complex, as it involves multiple iterations of the
software development process.
vi. Time-Consuming: The Spiral Model can be time-consuming, as it requires multiple
evaluations and reviews.
vii. Resource Intensive: The Spiral Model can be resource-intensive, as it requires a
significant investment in planning, risk analysis, and evaluations.
LIT/CSE/2024-25 12