SOFTWARE ENGINEERING (3150711)
Assignment 1: Study Software Development Life Cycle (SDLC)
❖ Software Development Life Cycle (SDLC)
Software development life cycle (SDLC) is a structured process that is used to design, develop, and test
good-quality software. SDLC, or software development life cycle, is a methodology that defines the entire
procedure of software development step-by-step.
Software Development Life Cycle (SDLC)
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.
➢ What is the Software Development Life Cycle (SDLC)?
SDLC is a process followed for software building within a software organization. SDLC consists of a
precise plan that describes how to develop, maintain, replace, and enhance specific software. The life cycle
defines a method for improving the quality of software and the all-around development process.
➢ Stages of the Software Development Life Cycle
SDLC specifies the task(s) to be performed at various stages by a software engineer or developer. It ensures
that the end product is able to meet the customer’s expectations and fits within the overall budget. Hence, it’s
vital for a software developer to have prior knowledge of this software development process. SDLC is a
collection of these six stages, and the stages of SDLC are as follows:
Page | 1
SOFTWARE ENGINEERING (3150711)
Software Development Life Cycle Model SDLC Stages
The SDLC model involves six phases or stages while developing any software.
Stage-1: Planning and Requirement Analysis
Planning is a crucial step in everything, just as in Software Development. In this same stage, requirement
analysis is also performed by the developers of the organization. This is attained from customer inputs, and
sales department/market surveys.
The information from this analysis forms the building blocks of a basic project. The quality of the project is a
result of planning. Thus, in this stage, the basic project is designed with all the available information.
Stage-1 : Planning and Requirement Analysis
Page | 2
SOFTWARE ENGINEERING (3150711)
Stage-2: Defining Requirements
In this stage, all the requirements for the target software are specified. These requirements get approval from
customers, market analysts, and stakeholders.
This is fulfilled by utilizing SRS (Software Requirement Specification). This is a sort of document that
specifies all those things that need to be defined and created during the entire project cycle.
Stage-2 : Defining Requirements
Stage-3: Designing Architecture
SRS is a reference for software designers to come up with the best architecture for the software. Hence, with
the requirements defined in SRS, multiple designs for the product architecture are present in the Design
Document Specification (DDS).
This DDS is assessed by market analysts and stakeholders. After evaluating all the possible factors, the most
practical and logical design is chosen for development.
Stage 3: Design
Page | 3
SOFTWARE ENGINEERING (3150711)
Stage-4: Developing Product
At this stage, the fundamental development of the product starts. For this, developers use a specific
programming code as per the design in the DDS. Hence, it is important for the coders to follow the protocols
set by the association. Conventional programming tools like compilers, interpreters, debuggers, etc. are also
put into use at this stage. Some popular languages like C/C++, Python, Java, etc. are put into use as per the
software regulations.
Stage 4: Development
Stage-5: Product Testing and Integration
After the development of the product, testing of the software is necessary to ensure its smooth execution.
Although, minimal testing is conducted at every stage of SDLC. Therefore, at this stage, all the probable flaws
are tracked, fixed, and retested. This ensures that the product confronts the quality requirements of SRS.
Documentation, Training, and Support: Software documentation is an essential part of the software
development life cycle. A well-written document acts as a tool and means to information repository necessary
to know about software processes, functions, and maintenance. Documentation also provides information
about how to use the product. Training in an attempt to improve the current or future employee performance
by increasing an employee’s ability to work through learning, usually by changing his attitude and developing
his skills and understanding.
Page | 4
SOFTWARE ENGINEERING (3150711)
Stage 5: Testing
Stage-6: Deployment and Maintenance of Products
After detailed testing, the conclusive product is released in phases as per the organization’s strategy. Then it
is tested in a real industrial environment. It is important to ensure its smooth performance. If it performs well,
the organization sends out the product as a whole. After retrieving beneficial feedback, the company releases
it as it is or with auxiliary improvements to make it further helpful for the customers. However, this alone is
not enough. Therefore, along with the deployment, the Product’s Supervision.
Stage 6: Deployment and Maintenance
Page | 5
SOFTWARE ENGINEERING (3150711)
➢ Software Development Life Cycle Models
To this day, we have more than 50 recognized SDLC models in use. But None of them is perfect, and each
brings its favorable aspects and disadvantages for a specific software development project or a team.
Here, we have listed the some Popular SDLC Model :
1. Waterfall Model
It is the fundamental model of the software development life cycle. This is a very simple model. The Waterfall
Model is not in practice anymore, but it is the basis for all other SDLC models. Because of its simple structure,
the waterfall model is easier to use and provides a tangible output. In the waterfall model, once a phase seems
to be completed, it cannot be changed, and due to this less flexible nature, the waterfall model is not in practice
anymore.
2. Agile Model
The agile model in SDLC was mainly designed to adapt to changing requests quickly. The main goal of
the Agile Model is to facilitate quick project completion. The agile model refers to a group of development
processes. These processes have some similar characteristics but also possess certain subtle differences among
themselves.
3. Iterative Model
In the Iterative Model in SDLC, each cycle results in a semi-developed but deployable version; with each
cycle, some requirements are added to the software, and the final cycle results in the software with the
complete requirement specification.
4. Spiral Model
The spiral model in SDLC is one of the most crucial SDLC models that provides support for risk handling. It
has various spirals in its diagrammatic representation; the number of spirals depends upon the type of project.
Each loop in the spiral structure indicates the Phases of the Spiral Model.
[Link] Application Development(RAD)
The Rapid Application Development (RAD) model is a software development methodology that prioritizes
speed and user involvement. It focuses on creating quick prototypes, gathering frequent user feedback, and
making iterative improvements to the system. By involving end users throughout the process, RAD ensures
that the final product aligns closely with user needs, reducing the risk of misalignment. It is ideal for projects
where requirements are likely to change or evolve, offering faster delivery compared to traditional methods
like the Waterfall model.
Page | 6
SOFTWARE ENGINEERING (3150711)
[Link] Model
The Incremental Model is a software development approach where the system is built and delivered in small,
manageable increments, or parts. Each increment adds new functionality to the system, and the process is
repeated until the full system is developed. In this model, the project is divided into multiple iterations, and
after each iteration, a usable version of the software is delivered. This allows for partial deployment and user
feedback after each phase, making it easier to adjust and improve the system throughout the development
process. It's useful for projects with clear requirements but evolving functionality.
➢ What is the need for SDLC?
SDLC is a method, approach, or process that is followed by a software development organization while
developing any software. SDLC models were introduced to follow a disciplined and systematic method while
designing software. With the software development life cycle, the process of software design is divided into
small parts, which makes the problem more understandable and easier to solve. SDLC comprises a detailed
description or step-by-step plan for designing, developing, testing, and maintaining the software.
➢ How to Choose an SDLC Model?
Choosing the right SDLC (Software Development Life Cycle) model is essential for project success. Here are
the key factors to consider:
1. Project Requirements
2. Project Size and Complexity
3. Team Expertise
4. Client Involvement
5. Time and Budget Constraints
6. Risk Management
7. Product Release Timeline
8. Maintenance and Support
9. Stakeholder Expectations
Page | 7
SOFTWARE ENGINEERING (3150711)
➢ Software Life Cycle Model For:
(1) Product Expiry and Stock Management System (PESMS)
➢ For a Pharmacy Product Expiry and Stock Management System (PESMS), the Incremental Model
would be a better fit.
❖ Incremental Process Model
The Incremental Process Model is also known as the Successive version model. This article focuses on
discussing the Incremental Process Model in detail.
❖ What is the Incremental Process Model?
First, 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.
A, B, and C are modules of Software Products that are incrementally developed and delivered.
❖ Phases of incremental model
Requirements of Software are first broken down into several modules that can be incrementally
constructed and delivered.
Phases of incremental model:
1. 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.
2. 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.
3. 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
Page | 8
SOFTWARE ENGINEERING (3150711)
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.
4. Implementation: In implementation After the last version (version n), it is now deployed at the client
site.
❖ Requirement Process Model
Requirement Process Model
❖ When to use the Incremental Process Model
1. Funding Schedule, Risk, Program Complexity, or need for early realization of benefits.
2. When Requirements are known up-front.
3. When Projects have lengthy development schedules.
4. Projects with new Technology.
• Error Reduction (core modules are used by the customer from the beginning of the phase and
then these are tested thoroughly).
• Uses divide and conquer for a breakdown of tasks.
• Lowers initial delivery cost.
• Incremental Resource Deployment.
5. Requires good planning and design.
6. The total cost is not lower.
7. Well-defined module interfaces are required.
Page | 9
SOFTWARE ENGINEERING (3150711)
❖ Why To use Incremental Process Model for Pharmacy Product Expiry and Stock
Management System (PESMS)?
➢ Phased Implementation: Pharmacy systems typically require a wide range of functionalities, such as
stock tracking, expiry date monitoring, alerts for near-expiry products, and report generation. The
Incremental Model allows the core features to be developed first (like basic stock management) and
gradually adds more complex features (such as expiry alerts, order automation, etc.) over time.
➢ User Feedback: Incremental releases allow the system to be partially deployed, enabling pharmacists to
test critical features early and provide feedback. This reduces the risk of developing a system that doesn't
meet the pharmacy's operational needs.
➢ Reduced Risk: If the project scope expands, such as adding integration with other systems (billing,
suppliers), it’s easier to incorporate these in future increments without reworking the entire system.
➢ Continuous Improvement: The model enables constant updates and fine-tuning of the system, which is
ideal for environments like pharmacies, where regulations and inventory management practices might
change.
Thus, the Incremental Model provides flexibility, early functionality, and adaptability, making it suitable for
pharmacy product expiry and stock management systems.
(2) Library Management System
➢ For a Library Management System (LMS), the Waterfall Model is often the most suitable SDLC model.
❖ Waterfall Model
The classical waterfall model is the basic Software Development Life Cycle model. It is very simple but
idealistic. Earlier this model was very popular but nowadays it is not used. However, it is very important
because all the other software development life cycle models are based on the classical waterfall model.
❖ What is the SDLC Waterfall Model?
The waterfall model is a software development model used in the context of large, complex projects, typically
in the field of information technology. It is characterized by a structured, sequential approach to project
management and software Development.
The waterfall model is useful in situations where the project requirements are well-defined and the project
goals are clear. It is often used for large-scale projects with long timelines, where there is little room for error
and the project stakeholders need to have a high level of confidence in the outcome.
Page | 10
SOFTWARE ENGINEERING (3150711)
❖ Features of the SDLC Waterfall Model
1. Sequential Approach: The waterfall model involves a sequential approach to software development,
where each phase of the project is completed before moving on to the next one.
2. Document-Driven: The waterfall model relies heavily on documentation to ensure that the project is
well-defined and the project team is working towards a clear set of goals.
3. Quality Control: The waterfall model places a high emphasis on quality control and testing at each
phase of the project, to ensure that the final product meets the requirements and expectations of the
stakeholders.
4. Rigorous Planning: The waterfall model involves a rigorous planning process, where the project
scope, timelines, and deliverables are carefully defined and monitored throughout the project lifecycle.
Overall, the waterfall model is used in situations where there is a need for a highly structured and systematic
approach to software development. It can be effective in ensuring that large, complex projects are completed
on time and within budget, with a high level of quality and customer satisfaction.
❖ Importance of SDLC Waterfall Model
1. Clarity and Simplicity: The linear form of the Waterfall Model offers a simple and unambiguous
foundation for project development.
2. Clearly Defined Phases: The Waterfall Model’s phases each have unique inputs and outputs,
guaranteeing a planned development with obvious checkpoints.
3. Documentation: A focus on thorough documentation helps with software comprehension, upkeep,
and future growth.
4. Stability in Requirements: Suitable for projects when the requirements are clear and steady, reducing
modifications as the project progresses.
5. Resource Optimization: It encourages effective task-focused work without continuously changing
contexts by allocating resources according to project phases.
6. Relevance for Small Projects: Economical for modest projects with simple specifications and
minimal complexity.
❖ Phases of SDLC Waterfall Model – Design
The Waterfall Model is a classical software development methodology that was first introduced by Winston
W. Royce in 1970. It is a linear and sequential approach to software development that consists of several
phases that must be completed in a specific order.
Page | 11
SOFTWARE ENGINEERING (3150711)
The Waterfall Model has six phases which are:
1. Requirements: The first phase involves gathering requirements from stakeholders and analyzing them to
understand the scope and objectives of the project.
2. Design: Once the requirements are understood, the design phase begins. This involves creating a detailed
design document that outlines the software architecture, user interface, and system components.
3. Development: The Development phase include implementation involves coding the software based on the
design specifications. This phase also includes unit testing to ensure that each component of the software is
working as expected.
4. Testing: In the testing phase, the software is tested as a whole to ensure that it meets the requirements and
is free from defects.
5. Deployment: Once the software has been tested and approved, it is deployed to the production environment.
6. Maintenance: The final phase of the Waterfall Model is maintenance, which involves fixing any issues that
arise after the software has been deployed and ensuring that it continues to meet the requirements over time.
The classical waterfall model divides the life cycle into a set of phases. This model considers that one phase
can be started after the completion of the previous phase. That is the output of one phase will be the input to
the next phase. Thus the development process can be considered as a sequential flow in the waterfall. Here
the phases do not overlap with each other. The different sequential phases of the classical waterfall model are
shown in the below figure.
Waterfall Model-Software Engineering
Page | 12
SOFTWARE ENGINEERING (3150711)
❖ Why To use Waterfall Model For Library Management System.
➢ Clear and Well-Defined Requirements: The functionality of a Library Management System (such as
user management, book inventory, borrowing/return system, and reporting) can typically be defined
upfront with little ambiguity, making the sequential nature of the Waterfall model effective.
➢ Structured and Predictable Process: Since the Waterfall model progresses in a linear fashion, each phase
(requirement gathering, design, coding, testing, deployment) is completed before moving to the next. This
is ideal for an LMS, which doesn't usually require frequent changes or iterations once the requirements
are well-documented.
➢ Stability of Requirements: In many cases, the basic functionality of a library system remains relatively
stable over time, minimizing the need for iterative changes or user-driven adjustments. The Waterfall
model excels in environments where requirements are not expected to change frequently.
➢ Reduced Complexity: As the system is not overly complex, the Waterfall model simplifies development
by providing a clear roadmap and ensuring that all tasks are completed before proceeding to the next stage.
Page | 13