module 1 by vansh
module 1 by vansh
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 important because most other types of software
development life cycle models are a derivative of this.
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. Coding and Unit Testing: In the coding phase software design is translated into source code using
any suitable programming language. Thus each designed module is coded. The unit testing phase
aims to check whether each module is working properly or not.
5. Deployment: Once the software has been tested and approved, it is deployed to the production
environment.
6. 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. There are three types
of maintenance.
1. In the classical waterfall model evolution of software from one phase to another phase is like a
waterfall. It assumes that no error is ever committed by developers during any phase. Therefore,
it does not incorporate any mechanism for error correction.
2. This model assumes that all the customer requirements can be completely and correctly defined
at the beginning of the project, but the customer’s requirements keep on changing with time. It
is difficult to accommodate any change requests after the requirements specification phase is
complete.
3. This model recommends that a new phase can start only after the completion of the previous
phase. But in real projects, this can’t be maintained. To increase efficiency and reduce cost,
phases may overlap.
4. In the Waterfall Model, testing is typically done toward the end of the development process.
This means that defects may not be discovered until late in the development process, which can
be expensive and time-consuming to fix.
5. The Waterfall Model can result in a lengthy development cycle, as each phase must be
completed before moving on to the next. This can result in delays and increased costs if
requirements change or new issues arise.
INCREMENTAL MODEL
Incremental software development, which is a fundamental part of agile approaches, is better than a
waterfall approach for most business ,e-commerce, and personal systems.
Incremental Model is a process of software development where requirements divided into multiple
standalone modules of the software development cycle
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.
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 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.
3. Issues may arise from the system design if all needs are not gathered upfront throughout the
program lifecycle.
4. Every iteration step is distinct and does not flow into the next.
5. 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.
Spiral Model
The Spiral Model is a software development model that combines elements of both the Waterfall
Model and Iterative Model. It is primarily used for large and complex projects where risks need to be
carefully analyzed.
The Spiral Model consists of four major phases that repeat in a cycle:
1. Planning Phase:
3. Engineering Phase:
• The project progresses in a spiral manner, with each loop representing a development
phase.
1. Risk Management: The model is designed to identify and reduce risks early in the
development process.
2. Flexibility: Changes can be made at any stage, making it suitable for projects with evolving
requirements.
3. Early Prototyping: The model allows for early testing and feedback from users.
4. Customer Satisfaction: Continuous feedback ensures that the final product meets customer
expectations.
5. Better Cost Estimation: Since development happens in phases, cost estimation is more
accurate over time.
1. Difficult Time Management: The number of iterations is unknown at the start, making it
hard to estimate the time required.
2. Complexity: The model is more complex than simpler approaches like the Waterfall Model.
3. Time-Consuming: Since multiple evaluations and reviews are required, it takes longer to
complete the project.
1. For Large and Complex Projects: The model is suitable for projects that require careful risk
analysis.
2. When Frequent Releases Are Needed: The spiral approach is useful when updates and new
versions need to be released often.
3. For High-Risk Projects: When a project has a high level of uncertainty or risks, the Spiral
Model is beneficial.
4. For Projects with Changing Requirements: It is useful when project requirements are not
fixed at the beginning and may change.
5. When Prototyping is Required: If a prototype is needed to understand user requirements,
the Spiral Model is a good choice.
6. When Cost and Risk Evaluation is Crucial: The model is effective when financial and
technical risks need to be managed at every stage.
1. Planning Phase
• Identify and gather requirements from college administration, faculty, students, and staff.
• Define key modules such as student admission, attendance tracking, library, fee
management, examinations, and faculty management.
• Analyze the impact of risks and create mitigation strategies, such as:
3. Engineering Phase
• Start development based on the highest-priority modules first (e.g., Online Admissions and
ID Card Generation).
• Use a database (e.g., MySQL, PostgreSQL) to store student and faculty records.
• Implement frontend (React, Angular) and backend (Node.js, Django, or Spring Boot) for the
web-based system.
4. Evaluation Phase
• Conduct feedback sessions with administrators, faculty, and students.
• Improve the system based on feedback and begin the next cycle of the spiral to enhance the
system further.
Each loop of the spiral focuses on refining and developing new features:
1. First Iteration:
2. Second Iteration:
3. Third Iteration:
4. Fourth Iteration:
https://www.geeksforgeeks.org/software-engineering-software-characteristics/
CASE STUDY -1 : Insulin Pump Control System – A
Life-Saving Device
Introduction
An insulin pump is a medical device that helps people with diabetes manage their blood sugar levels.
It continuously monitors glucose levels and automatically delivers the right amount of insulin into
the body. This system is crucial for people whose bodies do not produce enough insulin naturally.
Why is it Important?
People with diabetes need to maintain a balance of insulin in their bodies. If insulin levels are too
high, it can cause a condition called hypoglycemia (low blood sugar), leading to dizziness,
unconsciousness, or even death. If insulin levels are too low, it can cause hyperglycemia (high blood
sugar), which can lead to long-term health issues such as kidney failure, heart disease, or nerve
damage.
An insulin pump automates this process by monitoring blood sugar levels and injecting the required
amount of insulin. This reduces the need for manual injections and improves the patient’s quality of
life.
System Components
The insulin pump control system consists of the following main components:
1. Glucose Sensor:
o Allows the patient to set preferences, view data, and adjust settings.
1. The glucose sensor detects blood sugar levels and sends data to the microcontroller.
2. The microcontroller analyzes the data and checks if insulin is required.
3. If insulin is needed, the pump releases a specific amount of insulin into the body.
4. The system continuously monitors and adjusts insulin delivery throughout the day.
1. System Failure:
o If the pump malfunctions, it may deliver too much or too little insulin, leading to
serious health risks.
o The pump requires a constant power source. A low battery might stop the system
from working.
3. Sensor Accuracy:
o If the glucose sensor gives incorrect readings, the wrong amount of insulin might be
delivered.
4. Software Bugs:
o Any errors in the software can cause incorrect insulin delivery, which can be
dangerous for the patient.
The system stores important patient information in a centralized database, but it can also work
offline using a laptop. This means doctors can still access patient records even when there is no
internet. Once the laptop connects to a secure network, the system updates automatically. However,
it is not a full medical records system and only focuses on mental health data. It can exchange
information with other medical systems when needed.
1. Helping healthcare managers by generating reports to track treatment progress and check if
hospitals are meeting government healthcare standards.
2. Supporting medical staff by providing quick and accurate patient information to help in
treatment.
Mental health patients sometimes face difficulties in following treatment plans. They may:
In extreme cases, some patients need to be legally confined in hospitals (sectioned) for their safety
and the safety of others.
• Non-medical staff like receptionists (for booking appointments), medical records staff (for
maintaining records), and administrative staff (for generating reports).
Key Features of the System
1. Patient Record Management – Doctors can add, edit, and view patient details. The system
provides a summary of each patient’s medical history, making it easier for new doctors to
understand past treatments.
2. Patient Monitoring – The system tracks patients’ visits and alerts doctors if a patient has not
attended a clinic for a long time. It also ensures legal requirements are met for patients who
have been sectioned.
3. Administrative Reporting – The system creates monthly reports showing the number of
patients treated, those who have entered or left the system, sectioned patients, and the cost
of prescribed medicines.
• Data Protection Laws – These laws ensure patient information stays private and
confidential. Only authorized medical staff and the patient can access their data.
• Mental Health Laws – These laws allow compulsory hospitalization for patients who might
be dangerous to themselves or others. The system helps ensure that legal procedures are
followed and records are properly maintained.
PROCESS ACTIVITIES
Same answer as waterfall model , 1st point write heading as Activities instead of Requirements.
Then continue from the below-
8. Documentation
• Types of Documentation:
• Tools:
10. Methodologies