0% found this document useful (0 votes)
3 views

module 1 by vansh

The document discusses various software development models including the Waterfall, Incremental, and Spiral models, outlining their phases, advantages, and disadvantages. The Waterfall model is linear and assumes complete requirements upfront, while the Incremental model allows for iterative development and easier modifications. The Spiral model combines elements of both, focusing on risk management and continuous improvement, making it suitable for complex projects with evolving requirements.

Uploaded by

Vansh negi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

module 1 by vansh

The document discusses various software development models including the Waterfall, Incremental, and Spiral models, outlining their phases, advantages, and disadvantages. The Waterfall model is linear and assumes complete requirements upfront, while the Incremental model allows for iterative development and easier modifications. The Spiral model combines elements of both, focusing on risk management and continuous improvement, making it suitable for complex projects with evolving requirements.

Uploaded by

Vansh negi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 19

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 important because most other types of software
development life cycle models are a derivative of this.

Phases of Waterfall Model

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. 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. Corrective Maintenance: This type of maintenance is carried out to correct errors


that were not discovered during the product development phase.
2. Perfective Maintenance: This type of maintenance is carried out to enhance the
functionalities of the system based on the customer’s request.
3. Adaptive Maintenance: Adaptive maintenance is usually required for porting the
software to work in a new environment such as working on a new computer
platform or with a new operating system.
Below are some major drawbacks/problems of this model.

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.

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 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: Implementation phase enables the coding phase of the development


system. It involves the final coding that design in the designing and development phase and
tests the functionality in the testing phase. After completion of this phase, the number of the
product working is enhanced and upgraded up to the final system product.

Advantages of the Incremental Process Model

1. Prepares the software fast.

2. Clients have a clear idea of the project.

3. Changes are easy to implement.

4. Provides risk handling support, because of its iterations.

5. Adjusting the criteria and scope is flexible and less costly.


6. Comparing this model to others, it is less expensive.

7. The identification of errors is simple.

Disadvantages of the Incremental Process Model

1. A good team and proper planned execution are required.

2. Because of its continuous iterations the cost increases.

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.

Phases of the Spiral Model

The Spiral Model consists of four major phases that repeat in a cycle:

1. Planning Phase:

o Requirements are gathered and analyzed.

o Initial project objectives, constraints, and risks are identified.

o A detailed plan is created for the next phase.

2. Risk Analysis Phase:

o Potential risks are identified and analyzed.

o Solutions or alternatives are proposed to reduce risks.

o If risks are too high, the project may be terminated.

3. Engineering Phase:

o The actual development of the software takes place.

o Coding, testing, and debugging are done.

o A working prototype or a version of the software is developed.

4. Evaluation and Review Phase:

o The developed product is evaluated and reviewed by stakeholders.


o Feedback is collected for improvements.

o The project moves to the next iteration of the spiral.

Characteristics of the Spiral Model

• The project progresses in a spiral manner, with each loop representing a development
phase.

• Each phase involves planning, risk analysis, development, and evaluation.

• It allows for continuous improvement and refinement of the software.

• The model supports frequent prototyping and feedback from users.

Advantages of the Spiral Model

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.

Disadvantages of the Spiral Model

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.

4. Resource-Intensive: Requires significant investment in planning, risk analysis, and


evaluation.

When to Use the Spiral Model?

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.

Applying the Spiral Model to the College Management System


Each iteration of the Spiral Model consists of the following phases:

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.

• Set project objectives, scope, and constraints.

• Prepare a rough project timeline and cost estimation.

2. Risk Analysis Phase

• Identify risks such as:

o Security risks (data leaks, unauthorized access).

o Scalability risks (handling increasing students and faculty).

o Integration risks (compatibility with existing college systems).

o Data loss risks (due to hardware/software failures).

• Analyze the impact of risks and create mitigation strategies, such as:

o Implementing role-based access control (RBAC) for security.

o Using cloud-based storage to prevent data loss.

o Ensuring modular development for easier scalability.

3. Engineering Phase

• Start development based on the highest-priority modules first (e.g., Online Admissions and
ID Card Generation).

• Develop prototypes and test functionality for usability and security.

• 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.

• Conduct unit testing on developed modules.

4. Evaluation Phase
• Conduct feedback sessions with administrators, faculty, and students.

• Identify errors, missing features, and required modifications.

• Improve the system based on feedback and begin the next cycle of the spiral to enhance the
system further.

Iterations of the Spiral Model for College Management System

Each loop of the spiral focuses on refining and developing new features:

1. First Iteration:

o Develop the Online Admissions and Student Enrollment module.

o Set up an initial database for student records.

o Perform risk analysis for data security and scalability.

2. Second Iteration:

o Implement ID Card Generation and Course Management.

o Develop the Faculty and Student Communication Portal.

o Improve security mechanisms based on feedback.

3. Third Iteration:

o Add Library Management and Sports Facility Tracking.

o Develop Fee Payment and Financial Management.

o Conduct risk analysis for financial transactions and implement encryption.

4. Fourth Iteration:

o Implement Online Examinations, Student Performance Tracking, and Reporting.

o Enable data analytics for tracking academic progress.

o Evaluate system efficiency and make final refinements.

Attributes/characteristics of Software engineering

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 Continuously monitors blood sugar levels from the patient’s body.

o Sends real-time data to the insulin pump.

2. Microcontroller (Control System):

o Analyzes the glucose readings.

o Decides how much insulin is needed.

3. Insulin Reservoir & Pump Mechanism:

o Holds the insulin supply.

o Releases the required amount of insulin through a thin tube.

4. User Interface (Display & Buttons):

o Allows the patient to set preferences, view data, and adjust settings.

o Alerts the patient in case of low insulin levels or sensor failure.

Working of the System

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.

Challenges & Risks

1. System Failure:

o If the pump malfunctions, it may deliver too much or too little insulin, leading to
serious health risks.

2. Battery or Power Issues:

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.

CASE STUDY-2 : Mentcare: A Patient Information


System for Mental Health Care
The Mentcare system is a medical information system designed to help doctors and other healthcare
professionals manage the treatment of mental health patients. Many of these patients do not need
to stay in hospitals but require regular check-ups at specialized clinics. To make it easier for them,
these clinics are set up not just in hospitals but also in local medical centers and community spaces.

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.

Purpose of the Mentcare System

The system serves two main purposes:

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.

Challenges with Mental Health Patients

Mental health patients sometimes face difficulties in following treatment plans. They may:

• Forget or miss their appointments.

• Lose prescriptions or medication.

• Have trouble following medical advice.

• Suddenly visit clinics without prior appointments.

• In rare cases, be a danger to themselves or others.

In extreme cases, some patients need to be legally confined in hospitals (sectioned) for their safety
and the safety of others.

Users of the System

The system is used by:

• Medical staff like doctors, nurses, and home-visit nurses.

• 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.

Legal and Privacy Considerations

The system follows two major laws:

• 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.

Applying the Spiral Model for Secure


Mobile Banking Application Development

Each iteration of the Spiral Model consists of four main phases:


1. Planning Phase
• Identify project objectives and key requirements.
• Define security policies, regulatory constraints, and compliance
needs.
• Estimate costs, resources, and timelines for the next iteration.
• Engage stakeholders (bank executives, developers, regulators)
to refine requirements.
2. Risk Analysis Phase
• Identify potential risks:
o Security threats (e.g., data breaches, fraud prevention).
o Regulatory compliance (e.g., banking laws, data privacy
policies).
o Technical feasibility (e.g., integration with legacy systems).
• Develop risk mitigation strategies, such as:
o Implementing encryption and authentication
mechanisms.
o Ensuring compliance with PCI-DSS, GDPR, RBI guidelines.
o Conducting feasibility tests on APIs and third-party
integrations.
3. Prototyping & Development Phase
• Build a prototype or develop a functional module of the mobile
banking app.
• Implement core functionalities:
o Secure user authentication (e.g., biometric login, 2FA).
o Real-time transaction processing.
o Account management features (fund transfers, bill
payments).
• Conduct usability testing and security validation.
• Gather feedback from stakeholders for improvement.
4. Evaluation & Refinement Phase
• Demonstrate the prototype to stakeholders and gather
feedback.
• Perform security audits and penetration testing.
• Address identified risks and refine system architecture.
• Document lessons learned and update project scope for the
next iteration.

PROCESS ACTIVITIES

The software process is a structured set of activities used to develop,


maintain, and evolve software systems. It involves technical,
collaborative, and managerial activities that are interleaved and
supported by tools. The four fundamental activities in the software
process are:
1. Software Specification
2. Software Design and Implementation
3. Software Validation
4. Software Evolution
These activities are organized differently depending on the
development model (e.g., waterfall, incremental, agile). Below is a
detailed explanation of each activity:

1. Software Specification (Requirements Engineering)


Before building software, it’s important to know exactly what needs
to be developed. Software specification is the process of
understanding and defining the services the software should provide
and the limitations it must follow.
If a company is unsure whether a software project is worth building,
they may conduct a feasibility study. This study checks whether:
• There is a need or demand for the software.
• The project is possible technically and financially.
Once the company decides to proceed, the requirements
engineering process begins. The goal is to create a document that
clearly defines what the software should do. This process involves:
1. Requirements elicitation and analysis – Gathering information
about the system by observing current systems, talking to users,
and analyzing tasks. Sometimes, prototypes or system models
are created to better understand the requirements.
2. Requirements specification – Writing down the requirements
in a formal document.
o User requirements are high-level descriptions for
customers and users.
o System requirements are more detailed technical
descriptions for developers.
3. Requirements validation – Checking for mistakes,
inconsistencies, or missing details in the requirements. If errors
are found, they must be fixed.

In traditional development methods, all requirements are collected


before development begins. However, in agile development,
requirements are gathered and refined throughout the process in
small increments based on user feedback.

2. Software Design and Implementation


Designing the Software
After gathering the requirements, the next step is software design,
which involves creating a blueprint for the system. A software design
includes:
• System structure – How different parts of the software connect.
• Data organization – How the software will store and process
data.
• Interfaces – How different components will interact.
• Algorithms – The logic behind how tasks will be performed.
Design is usually done in stages, with changes made along the way as
new information comes up. Different software might need different
design steps. For example, a real-time system needs a timing design,
but a simple web application may not need one.
Four common design activities are:
1. Architectural design – Deciding the overall structure and major
components.
2. Database design – Defining how data will be stored and
managed.
3. Interface design – Designing how different system parts will
communicate.
4. Component selection and design – Choosing reusable
components or designing new ones.
Implementing the Software
After designing the software, the next step is implementation, which
involves writing the actual code. Some programmers prefer to start
with familiar components, while others start with complex parts.
Developers also test their own code to catch errors early.

3. Software Validation (Testing)


Testing ensures that the software works correctly and meets the
user's needs. Testing is not just about running the program—it also
includes reviews and inspections at different stages.
Three Main Stages of Testing:
1. Component Testing – Individual pieces of the software are
tested separately to check for bugs. Automated tools like JUnit
for Java help run tests automatically.
2. System Testing – All components are combined and tested as a
full system to check for issues with interactions between
components.
3. Customer Testing – The software is tested by real users to see if
it meets their expectations.
o For custom-built software, this stage may reveal missing
features or incorrect requirements.
o For products sold to multiple customers, this stage is
called beta testing, where selected users try the software
and give feedback.

4. Software Evolution (Maintenance and Updates)


Software needs regular updates after its release. Unlike hardware,
which is expensive to change, software can be modified anytime.
Software evolution includes:
• Fixing bugs.
• Adding new features.
• Improving performance.
• Updating software to work with new hardware or systems.
People often think of software maintenance as boring compared to
development, but in reality, most software work is updating and
improving existing systems rather than creating new ones.
Software Engineering Ethics
Software development does not just involve technical skills, but also
includes ethics. The team involved in the software development is
expected to be honest and ethically responsible for the software at
all times. The following factors need to be addressed during, before .
and after software development.
a) Confidentiality: It is the employers‟ responsibility to maintain
confidentiality of the employee information and it is the employee
responsibility to maintain the secrecy and confidentiality involved in
the development of software
b) Competence: It is the ethical responsibility of an employee to
accept work that matches his technical skills. He should be
competent enough to carry out the task assigned to him.
c) IPR (Intellectual Property Rights) – Very tricky, but very essential.
It has to be taken care that when reusing existing components for
software development, the components is available for use as per
IPR.
d) Computer misuse- Using the computer provided by the employer
for personal use is misconduct and misuse of the system. Watching
videos, playing songs, browsing social networking sites all mark the
misuse of computer.
IMP. Outline the Professional Software Development process in
detail.
The Professional Software Development Process is a structured approach to building high-quality
software that meets user needs and business goals. It typically follows a series of well-defined
phases, often referred to as the Software Development Life Cycle (SDLC). Below is a detailed outline
of the process:

Same answer as waterfall model , 1st point write heading as Activities instead of Requirements.
Then continue from the below-

8. Documentation

Documentation is an ongoing process that occurs throughout the SDLC.

• Types of Documentation:

o Requirements documentation (SRS).

o Technical documentation (architecture, API specs).

o User manuals (guides for end-users).

o Maintenance documentation (troubleshooting, FAQs).

9. Collaboration and Communication

Effective communication and collaboration are critical throughout the process.

• Tools:

o Project management tools (e.g., Jira, Trello).

o Communication tools (e.g., Slack, Microsoft Teams).

o Version control systems (e.g., Git, GitHub, GitLab).

o CI/CD tools (e.g., Jenkins, CircleCI).

10. Methodologies

The process can be tailored based on the chosen methodology:

• Agile: Iterative development with frequent releases.

• Waterfall: Sequential phases with no overlap.

• DevOps: Continuous integration and delivery.

• Scrum: Agile framework with sprints and daily stand-ups.

You might also like