Software Engineering
Dr. Bunil Kumar Balabantaray
Department of Computer Science and Engineering
Mushroom mentor
8 modules
Module: Know your mushroom
Module: Know your mushroom
Module: Production technology
Module: Disease identification
Results of disease prediction module
Module: Nutritional and medicinal property
Module: Schemes
Module: Mushroom recipes
Module: Glossary Module: FAQs
Module: Contact team
To implement and evaluate the Mushroom Expert System.
Implementation and evaluation
Google drive link shared via
01 WhatsApp
Implementation Assisted in downloading 02
Awareness on how to
03
navigate and use
Introduction
Software is a program or set of programs containing instructions that provide the
desired functionality. Engineering is the process of designing and building
something that serves a particular purpose and finds a cost-effective solution to
problems.
09-09-2025 Bunil K Balabantaray 15
What is the Role of SE
The role of software engineering is to design, develop, test, deploy, and maintain software systems in a
structured, efficient, and scalable way. It bridges computer science principles with engineering best
practices to create software that is:
✓ Reliable
✓ Maintainable
✓ Secure
✓ User-friendly
✓ Adaptable to change
09-09-2025 Bunil K Balabantaray 16
Why we read SE?
The role of software engineering is to design, develop, test, deploy, and maintain software systems in a
structured, efficient, and scalable way. It bridges computer science principles with engineering best
practices to create software that is:
•Reliable
•Maintainable
•Secure
•User-friendly
•Adaptable to change
09-09-2025 Bunil K Balabantaray 17
Why we read SE?
🧩 Core Responsibilities of Software Engineers
1. Requirements Analysis
•Understand and define what the software must do.
•Communicate with stakeholders (users, business analysts, product managers).
2. System Design
•Architect software systems and choose suitable technologies.
•Design databases, APIs, user interfaces, and data structures.
3. Implementation (Coding)
•Write clean, efficient, and well-documented code.
•Follow programming standards, design patterns, and version control (e.g., Git).
4. Testing & Debugging
•Create automated and manual tests (unit, integration, system).
•Fix bugs and improve software robustness.
09-09-2025 Bunil K Balabantaray 18
Why we read SE?
5. Deployment
•Automate deployment pipelines (CI/CD).
•Work with DevOps tools to ensure smooth delivery to production environments.
6. Maintenance
•Update software to fix issues, improve performance, or add new features.
•Monitor system health and respond to user feedback or incidents.
7. Collaboration
•Work as part of a cross-functional team with designers, QA, and product managers.
•Participate in code reviews and agile ceremonies (scrum, sprints, retrospectives).
09-09-2025 Bunil K Balabantaray 19
Why we read SE?
🎯 Why Software Engineering Matters
Aspect Impact
Scalability Ensures software can grow with user demand.
Quality Produces stable, secure, and bug-free applications.
Efficiency Reduces time and cost through reusable code and automation.
Innovation Enables the creation of new products and services (apps, AI, platforms).
Keeps systems running in critical environments (finance, healthcare,
Reliability
etc.).
09-09-2025 Bunil K Balabantaray 20
Why we read SE?
📚 Key Disciplines Within Software Engineering
✓ Frontend Development – UI/UX and user interfaces (e.g., React, HTML/CSS).
✓ Backend Development – APIs, logic, and databases (e.g., [Link], Python, Java).
✓ Full-Stack Development – Combines frontend and backend.
✓ DevOps Engineering – Infrastructure automation, cloud, and CI/CD pipelines.
✓ Security Engineering – Builds secure software and handles vulnerabilities.
✓ Data Engineering – Manages data pipelines and analytics platforms.
✓ Machine Learning Engineering – Develops AI-powered systems and models.
09-09-2025 Bunil K Balabantaray 21
Why we read SE?
We read (study or learn) software engineering to gain the knowledge, skills, and mindset needed to build
reliable, scalable, and efficient software systems—especially in a world where software runs nearly
everything.
Here are the main reasons why software engineering is important to study:
1. To Learn How to Build Software Systematically
2. To Improve Software Quality
3. To Understand the Full Development Process
4. To Solve Real-World Problems with Software
5. To Prepare for Careers in Tech and Beyond
6. To Handle Complexity and Change
7. To Use Tools and Techniques Efficiently
09-09-2025 Bunil K Balabantaray 22
🧠1. To Learn How to Build Software Systematically
• Coding alone isn't enough—software engineering teaches how to design, plan, and structure large-
scale software.
• You learn software development life cycles (SDLC), architecture, modular design, and best practices.
✅2. To Improve Software Quality
✓ SE helps you create software that is:
• Reliable – works under expected conditions
• Maintainable – easy to update or fix
• Secure – protects data and users
✓ You learn testing, debugging, version control, and design principles that help avoid fragile code.
09-09-2025 Bunil K Balabantaray 23
🧩 3. To Understand the Full Development Process
✓ From gathering requirements to deployment and maintenance, software engineering covers:
• Project management (Agile, Scrum)
• Collaboration and teamwork
• Communication with stakeholders
✓ It teaches how to work on real-world projects, not just write isolated code.
🌍 4. To Solve Real-World Problems with Software
• Software engineering is about building solutions, not just writing code.
• Whether you're working on an app, medical system, game, or AI tool—SE helps ensure your solution is
usable, scalable, and sustainable.
09-09-2025 Bunil K Balabantaray 24
💼 5. To Prepare for Careers in Tech and Beyond
▪ Roles like software developer, systems engineer, DevOps, QA engineer, and tech lead all
rely on software engineering principles.
▪ Even non-tech roles in product management, research, or design benefit from SE
knowledge.
🔁 6. To Handle Complexity and Change
✓ Real software changes over time. SE teaches how to:
• Manage complexity
• Keep code organized
• Adapt to new requirements without breaking everything
09-09-2025 Bunil K Balabantaray 25
🛠️ 7. To Use Tools and Techniques Efficiently
• You learn industry tools (IDEs, Git, testing frameworks, CI/CD pipelines).
• You also study algorithms, data structures, and design patterns that help build efficient
solutions.
09-09-2025 Bunil K Balabantaray 26
Summary
Reason Benefit
Understand structured development Build better software
Improve code quality & maintenance Fewer bugs, easier updates
Collaborate on big projects Work in teams professionally
Solve real-world problems Create apps, systems, platforms
Career preparation Stand out in tech roles
Manage software complexity Build scalable systems
09-09-2025 Bunil K Balabantaray 27
What?
09-09-2025 Bunil K Balabantaray 28
What?
Software Engineering is the process of designing, developing, testing, and maintaining
software. It is a systematic and disciplined approach to software development that aims to
create high-quality, reliable, and maintainable software. Software engineering includes a
variety of techniques, tools, and methodologies, including requirements analysis, design,
testing, and maintenance.
09-09-2025 Bunil K Balabantaray 29
What?
Software is:
✓ Instructions (computer programs) that when executed provide desired features, function,
and performance;
✓ Data structures that enable the programs to adequately manipulate information, and
✓ Document that describes the operation and use of the programs.
09-09-2025 Bunil K Balabantaray 30
Characteristics of software
✓ Software is developed or engineered; it is not manufactured in the classical sense.
✓ Software does not wear out. However, it deteriorates due to change.
✓ Software is custom built rather than assembling existing components.
✓ Although the industry is moving towards component-based construction, most software
continues to be custom built
09-09-2025 Bunil K Balabantaray 31
SOFTWARE ENGINEERING
✓ Software engineering is the establishment and use of sound engineering principles in order
to obtain economically software that is reliable and works efficiently on real machines.
Or
The IEEE definition:
✓ Software Engineering: The application of a systematic, disciplined, quantifiable approach
to the development, operation, and maintenance of software; that is, the application of
engineering to software.
09-09-2025 Bunil K Balabantaray 32
Parameters Defining Software Project
The software should be produced at a reasonable cost, in a reasonable time, and should be of good
quality. These three parameters often drive and define a software project.
Cost: As the main cost of producing software is the manpower employed, the cost of developing
software is generally measured in terms of person-months of effort spent in development.
Schedule: The schedule is another important factor in many projects. Business trends are dictating
that the time to market a product should be reduced; that is, the cycle time from concept to delivery
should be small. This means that software needs to be developed faster and within the specified time.
Quality: Quality is one of the main mantras, and business strategies are designed around it.
Developing high-quality software is another fundamental goal of software engineering.
09-09-2025 Bunil K Balabantaray 33
Attributes of Software
The international standard on software product quality suggests that software quality
comprises six main attributes:
Reliability: The software product must provide failure-free service.
Functionality: The capability to provide functions that meet stated and implied needs when the software is used.
Usability: The capability to be understood, learned, and used. -> User Friendly
Efficiency: The capability to provide appropriate performance relative to the amount of resources used.
Maintainability: the capability to be modified for purposes of making corrections, improvements, or
adaptations.
Portability: The capability to be adapted for different specified environments without applying much changes.
09-09-2025 Bunil K Balabantaray 34
Classification of Software
The software can be classified based on various criteria, including:
1. Purpose: Software can be classified as system software (e.g., operating systems, device
drivers) or application software (e.g., word processors, games).
2. Platform: Software can be classified as native software (designed for a specific
operating system) or cross-platform software (designed to run on multiple operating
systems).
3. Deployment: Software can be classified as installed software (installed on the user's
device) or cloud-based software (hosted on remote servers and accessed via the internet).
4. License: Software can be classified as proprietary software (owned by a single entity) or
open-source software (available for free with the source code accessible to the public).
09-09-2025 Bunil K Balabantaray 35
Classification of Software (Cont…)
5. Development Model: Software can be classified as traditional software (developed
using a waterfall model) or agile software (developed using an iterative and adaptive
approach).
6. Size: Software can be classified as small-scale software (designed for a single user or
small group) or enterprise software (designed for large organizations).
7. User Interface: Software can be classified as Graphical User Interface (GUI) software
or Command-Line Interface (CLI) software.
09-09-2025 Bunil K Balabantaray 36
Classification of Software (Cont…)
It can be categorized into different types:
• Based on Application
• Based on Copyright
09-09-2025 Bunil K Balabantaray 37
Classification of Software (Cont…)
✓ System software: System software is a collection of programs written to service other
programs. System software: such as compilers, editors, file management utilities.
✓ Application software : Stand alone programs for specific needs. This software are used to
controls business needs. Ex: Transaction processing.
✓ Artificial intelligence software: Artificial intelligence (AI) software makes use of
nonnumeric algorithms to solve complex problems. Application within this area include
robotics, pattern recognition, game playing.
09-09-2025 Bunil K Balabantaray 38
Classification of Software (Cont…)
✓ Engineering and scientific software: Engineering and scientific software have been characterized
by "number crunching" algorithm. Engineering software is designed to facilitate engineering tasks
and functions. A key example is Computer-Aided Design (CAD) software, which allows engineers
to create 2D and 3D models for design and drafting, as well as simulation and testing of parts and
assemblies.
✓ Embedded software resides within a product or system. (keypad control of a microwave oven,
digital function of dashboard display in a car)
✓ Product line software focus on a limited marketplace to address mass consumer market. (word
processing, graphics, database management)
✓ WebApps (Web applications) network centric software. As web 2.0 emerges, more sophisticated
computing environments is supported integrated with remote database and business applications.
09-09-2025 Bunil K Balabantaray 39
Classification of Software (Cont…)
In general software are classified as :
✓System Software : OS, Language Translator, Device Drivers etc.
✓Application Software: General Purpose and Special Purpose
✓Utility Software: Antivirus/Backup/FileManager/Antivirus and
Antimalware Software/Uninstaller Programs
09-09-2025 Bunil K Balabantaray 40
Classification of Software (Cont…)
Based on Copyright
Classification of Software can be done based on copyright. These are stated as follows:
1. Commercial Software/Proprietary Software:
It represents the majority of software that we purchase from software companies, commercial
computer stores, etc. In this case, when a user buys software, they acquire a license key to use
it. Users are not allowed to make copies of the software. The company owns the copyright of
the program.
2. Shareware Software:
In Shareware software, the purchasers are allowed to make and distribute copies with the
condition that after testing the software, if the purchaser adopts it for use, then they must pay
for it. In both of the above types of software, changes to the software are not allowed.
09-09-2025 Bunil K Balabantaray 41
Software Development Approach
Exploratory Style of Software Development
Exploratory program development style refers to an informal development
style or builds and fix the style in which the programmer uses his own intuition to
develop a program rather than making use of the systematic body of knowledge which is
categorized under the software engineering discipline.
09-09-2025 Bunil K Balabantaray 42
Software Development Approach
Exploratory Style of Software Development
Usage:
✓ This style of software development is only used for the
development of small programs.
✓ Nowadays, this style is only used by students in their labs to
complete their assignments only.
✓ This style is not really used in industries nowadays.
09-09-2025 Bunil K Balabantaray 43
Software Development Approach
Exploratory Style of Software Development
What's wrong with this model?
✓ In an exploratory development
scenario, the effort and time
required to develop professional
software increase with an increase
in program size.
In the above figure, the thick line plots
represent the case in which the exploratory style
is used to develop a program. As program size
increases, required effort and time increase
almost exponentially.
09-09-2025 Bunil K Balabantaray 44
Software Development Approach
Exploratory Style of Software Development
The shortcoming of this model:
✓ Using this model, there is the exponential growth of development time
effort and cost with problem size and large-sized software becomes almost
impossible using this style of development.
✓ This style of development results in unmaintainable code because
programming without planning always results in unstructured and poor-
quality code.
09-09-2025 Bunil K Balabantaray 45
Software Development Life Cycle (SDLC)
✓ Software Development Life Cycle (SDLC) is a structured process that is used to design,
develop, and test high-quality software.
✓ A life cycle model prescribe the different activities that need to be carried out to develop a
software product and sequencing of these activities.
“A software life cycle is a series of identifiable stages that a software product undergoes
during its lifetime ”
✓ 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 final one that meets
users requirements.
✓ The software development lifecycle (SDLC) is the cost-effective and time-efficient process that
development teams use to design and build high-quality software. [IBM]
09-09-2025 Bunil K Balabantaray 46
What is the SDLC?
✓ The SDLC breaks down software development into distinct, repeatable, interdependent phases. Each
phase of the SDLC has its own objectives and deliverables that guide the next phase. Taken together, the
phases of the SDLC form a roadmap that helps development teams create software that meets stakeholder
needs, project requirements and customer expectations.
Cultural Event: Independence Day
09-09-2025 Bunil K Balabantaray 47
Software Development Life Cycle (SDLC)
The SDLC Model involves six phases or stages while developing any software:
09-09-2025 Bunil K Balabantaray 48
Software Development Life Cycle (SDLC)
Phase Key activities Deliverables
1. Planning Identify project scope, goals and Initial project plan
requirements
2. Analysis Gather and review data on project Fully detailed requirement
requirements documentation
3. Design Define project architecture Software design document
(SDD)
4. Coding Write initial code Functional software prototype
5. Testing Review code and eliminate bugs Refined, optimized software
6. Deployment Deploy code to production Software available to end users
environment
7. Maintenance Continual fixes and improvements Updated and optimized code
49
09-09-2025 Bunil K Balabantaray
Stage 1: Planning and Requirement Analysis
✓ Planning is a crucial step in every kind of development process.
✓ 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 depends on the effectiveness of the planning. Thus, in this stage, the
basic project is designed with all the available information.
09-09-2025 Bunil K Balabantaray 50
Stage 1: Planning and Requirement Analysis
09-09-2025 Bunil K Balabantaray 51
Stage 1: Planning and Requirement Analysis
09-09-2025 Bunil K Balabantaray 52
Stage 1: Planning and Requirement Analysis
✓ Planning: Before starting a project, it's essential to plan. Objectives and timelines should be clear and
understandable for efficient planning.
✓ Risk analysis: Before beginning the project, senior management and the team should think about the potential
hazards. Changes in requirements, for example, maybe desired by the user while the project is in process. In
this instance, time and cost estimations should be made by the requirements (new requirements).
✓ Monitoring the project's progress: The project plan should be tracked and adjusted as needed once it is
completed.
✓ Meet quality standards and offer high-quality results: The project plan should outline the project
management team's procedures to assure software quality. The project's duration and cost are calculated based
on the quality assurance approach.
✓ Flexibility to accommodate changes: The result of project planning is recorded in the form of a project plan,
which should allow for new modifications to be accommodated as the project progresses.
09-09-2025 Bunil K Balabantaray 53
Stage 1: Planning and Requirement Analysis
09-09-2025 Bunil K Balabantaray 54
Stage 1: Planning and Requirement Analysis
What is Requirement Analysis in Software Development?
✓ Requirement analysis is a foundational step in software development that focuses on
identifying and documenting the needs of stakeholders.
✓ It serves as the blueprint for the entire development process, ensuring that the final
software product meets user expectations and business goals.
✓ During this phase, both functional and non-functional requirements are collected through
communication with clients, users, and other stakeholders.
✓ A thorough and clear requirement analysis minimizes the risks of miscommunication,
reduces costly changes later in the project, and sets the stage for efficient design and
development.
09-09-2025 Bunil K Balabantaray 55
Stage 1: Planning and Requirement Analysis
Requirement Analysis: Types
Two types: functional requirements and non-functional requirements.
✓ Functional Requirements: These define the specific actions the software must be able to
perform. Functional requirements focus on the core features and operations that the
system needs to support.
Example: For an online banking application, a functional requirement might be: “The
system must allow users to transfer funds between accounts.”
09-09-2025 Bunil K Balabantaray 56
Requirement Analysis: Types
✓ Non-Functional Requirements: Unlike functional requirements, non-functional
requirements address the quality and performance of the system. They include criteria
such as speed, security, scalability, and user experience, and describe how the system
should perform under various conditions.
Example: A non-functional requirement for the same banking system might be: “The
application should be able to handle 1,000 transactions per minute without performance
issues.”
✓ Both functional and non-functional requirements are vital for ensuring that the software
not only fulfills its intended tasks but also performs efficiently and meets user
expectations. Properly defining these requirements upfront helps guide the development
process, leading to a more successful project outcome.
09-09-2025 Bunil K Balabantaray 57
Requirement Analysis
By the end of the requirements phase, you should have a very clear outline of the project
from start to finish, including:
✓ Each stage of the process
✓ Who’s working on each stage
✓ Key dependencies
✓ Required resources
✓ A timeline of how long each stage will take.
✓ A well-crafted requirements document serves as a roadmap for the entire project, ensuring
that all stakeholders are on the same page.
09-09-2025 Bunil K Balabantaray 58
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.
09-09-2025 Bunil K Balabantaray 59
Stage 2: Defining Requirements
09-09-2025 Bunil K Balabantaray 60
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.
09-09-2025 Bunil K Balabantaray 61
Stage 3: Designing Architecture
09-09-2025 Bunil K Balabantaray 62
Stage 3: Designing Architecture
It is a process to transform user requirements into a suitable form. It helps programmers in software
coding. There is a need for more specific and detailed requirements in software. The output of the
process can directly be used in implementation in a programming language. There are three design
levels as follows.
[Link] design
It is the highest abstract version of the system. In a software system, many components interact with
each other.
[Link]-level design
It focuses on how the system along with all its components and its can be implemented in form of
modules.
[Link] design
It defines the logical structure of each module and its interface to communicate with each module.
09-09-2025 Bunil K Balabantaray 63
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.
09-09-2025 Bunil K Balabantaray 64
Stage 4: Developing Product
09-09-2025 Bunil K Balabantaray 65
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.
09-09-2025 Bunil K Balabantaray 66
Stage 5: Product Testing and Integration
09-09-2025 Bunil K Balabantaray 67
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.
09-09-2025 Bunil K Balabantaray 68
Stage 6: Deployment and Maintenance of Products
09-09-2025 Bunil K Balabantaray 69
Software Development Life Cycle (SDLC)
Benefits of software development life cycle:
[Link] allowed the highest level of management control.
[Link] understands the cost and resources required.
[Link] improve the application quality and monitor the application.
[Link] performs at every stage of the software development life cycle.
[Link] Communication: The software development life cycle provides a structured
framework for communication between stakeholders, including developers, project
managers, and end-users. This helps to ensure that everyone is on the same page and that
requirements are clearly defined.
09-09-2025 Bunil K Balabantaray 70
Software Development Life Cycle (SDLC)
Benefits of software development life cycle:
[Link] Time Management: The software development life cycle helps to improve
time management by breaking down the development process into manageable stages. This
allows developers to focus on one stage at a time and ensures that deadlines are met.
[Link] Collaboration: The software development life cycle encourages collaboration
between developers, testers, and other stakeholders. This helps to ensure that everyone is
working towards the same goal and that issues are identified and addressed early in the
process.
09-09-2025 Bunil K Balabantaray 71
Software Development Life Cycle (SDLC)
Benefits of software development life cycle:
[Link] Risk Management: The software development life cycle helps to identify
potential risks and issues early in the process, allowing them to be addressed before they
become major problems. This helps to reduce the risk of project failure and ensures that the
final product meets quality standards.
[Link] Testing: The software development life cycle includes multiple stages of
testing, ensuring that the final product is thoroughly tested and meets quality standards. This
helps to reduce the risk of bugs and errors, ensuring that the final product is stable and
reliable.
[Link] Customer Satisfaction: The software development life cycle ensures that the
final product meets customer requirements and expectations, leading to increased customer
satisfaction. This can help to improve customer loyalty and increase revenue for the
organization.
09-09-2025 Bunil K Balabantaray 72
Software Development Life Cycle (SDLC)
Different types of software development life cycle models:
There are various software development life cycle models. These models are referred to as the software
development process models. The models defined and designed which followed during the software development
process.
[Link] model: The waterfall model is easy to understand and simple to manage. The whole process of
software development is divided into various phases.
[Link] model: It is repetition incarnate. In short, it is breaking down the software development of large
applications into smaller pieces.
[Link] model: It helps the group to adopt elements of one or more process models. To develop strategies that
solve uncertainty and risk.
4.V-model: It is known as the verification and validation model. It is characterized by a corresponding testing
phase for the development stage. V model joins by coding phase.
[Link] Bang model: It focuses on all types of resources in software development and coding. Small project with
smaller size development team which are working together.
09-09-2025 Bunil K Balabantaray 73
Classical Waterfall Model
✓ The Waterfall Model is a Traditional Software Development
Methodology. It was first introduced by Winston W. Royce in 1970.
✓ It is a linear and sequential approach to software development that consists
of several phases.
09-09-2025 Bunil K Balabantaray 74
Classical Waterfall Model
09-09-2025 Bunil K Balabantaray 75
Classical Waterfall Model
Stage 1: Requirements Analysis and Specification
Requirement Analysis and specification phase aims to understand the exact requirements of
the customer and document them properly. This phase consists of two different activities.
1. Requirement Gathering and Analysis: Firstly, all the requirements regarding the
software are gathered from the customer and then the gathered requirements are analyzed.
2. The goal of the analysis part is to remove incompleteness (an incomplete requirement is
one in which some parts of the actual requirements have been omitted) and
inconsistencies (an inconsistent requirement is one in which some part of the requirement
contradicts some other part).
3. Requirement Specification: These analyzed requirements are documented in a software
requirement specification (SRS) document. SRS document serves as a contract between
the development team and customers. Any future dispute between the customers and the
developers can be settled by examining the SRS document.
09-09-2025 Bunil K Balabantaray 76
Classical Waterfall Model
Stage 2: Design
The goal of this Software Design Phase is to convert the requirements acquired in the SRS
into a format that can be coded in a programming language. It includes high-level and
detailed design as well as the overall software architecture. A Software Design Document is
used to document all of this effort (SDD).
✓ High-Level Design (HLD): This phase focuses on outlining the broad structure of the
system. It highlights the key components and how they interact with each other, giving a
clear overview of the system’s architecture.
✓ Low-Level Design (LLD): Once the high-level design is in place, this phase zooms into
the details. It breaks down each component into smaller parts and provides specifics about
how each part will function, guiding the actual coding process.
09-09-2025 Bunil K Balabantaray 77
Classical Waterfall Model
Stage 3: Development
In the Development 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.
✓ In this phase, developers begin writing the actual source code based on the
designs created earlier.
✓ The goal is to transform the design into working code using the most suitable
programming languages.
✓ Unit tests are often performed during this phase to make sure that each
component functions correctly on its own.
09-09-2025 Bunil K Balabantaray 78
Classical Waterfall Model
Stage 4: Testing
✓ In this stage, integration of different modules is undertaken soon after they have been
coded and unit-wise tested. Integration of various modules is carried out incrementally
over several steps. During each integration step, previously planned modules are added to
the partially integrated system and the resultant system is tested.
✓ Finally, after all the modules have been successfully integrated and tested, the full working
system is obtained, and system testing is carried out on this.
✓ 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 performs acceptance
testing to determine whether to accept the delivered software or reject it.
09-09-2025 Bunil K Balabantaray 79
Classical Waterfall Model
Stage 5: Deployment:
Once the software has been thoroughly tested, it's time to deploy it to the customer or end-
users. This means making the software ready and available for use, often by moving it to a
live or staging environment.
✓ During this phase, we also focus on helping users get comfortable with the software by
providing training, setting up necessary environments, and ensuring everything is running
smoothly.
✓ The goal is to make sure the system works as expected in real-world conditions and that
users can start using it without any hitches.
09-09-2025 Bunil K Balabantaray 80
Classical Waterfall Model
Stage 6: Maintenance:
✓ In Maintenance Phase 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.
i. Corrective Maintenance: This type of maintenance is carried out to correct errors
that were not discovered during the product development phase.
ii. Perfective Maintenance: This type of maintenance is carried out to enhance the
functionalities of the system based on the customer’s request.
iii. 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.
09-09-2025 Bunil K Balabantaray 81
Features of Waterfall Model
Following are the features of the waterfall model:
✓ 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.
✓ Document-Driven: The waterfall model depended on documentation to ensure that the
project is well-defined and the project team is working towards a clear set of goals.
✓ 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.
✓ Rigorous Planning: The waterfall model involves a careful planning process, where the
project scope, timelines, and deliverables are carefully defined and monitored throughout
the project lifecycle.
09-09-2025 Bunil K Balabantaray 82
Features of Waterfall Model
✓ 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.
09-09-2025 Bunil K Balabantaray 83
Importance of Waterfall Model
Following are the importance of waterfall model:
✓ Clarity and Simplicity: The linear form of the Waterfall Model offers a simple and
unambiguous foundation for project development.
✓ Clearly Defined Phases: The Waterfall Model phases each have unique inputs and
outputs, guaranteeing a planned development with obvious checkpoints.
✓ Documentation: A focus on thorough documentation helps with software comprehension,
maintenance, and future growth.
✓ Stability in Requirements: Suitable for projects when the requirements are clear and
stable, reducing modifications as the project progresses.
✓ Resource Optimization: It encourages effective task-focused work without continuously
changing contexts by allocating resources according to project phases.
✓ Relevance for Small Projects: Economical for modest projects with simple specifications
and minimal complexity.
09-09-2025 Bunil K Balabantaray 84
Disadvantages of Waterfall Model
Major Drawbacks:
✓ No Feedback Path:
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.
✓ Difficult to accommodate Change Requests:
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.
✓ No Overlapping of Phases:
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.
09-09-2025 Bunil K Balabantaray 85
Disadvantages of Waterfall Model
Major Drawbacks:
✓ Limited Flexibility:
The Waterfall Model is a rigid and linear approach to software development, which means that it
is not well-suited for projects with changing or uncertain requirements. Once a phase has been
completed, it is difficult to make changes or go back to a previous phase.
✓ Limited Stakeholder Involvement:
The Waterfall Model is a structured and sequential approach, which means that stakeholders are
typically involved in the early phases of the project (requirements gathering and analysis) but may
not be involved in the later phases (implementation, testing, and deployment).
✓ Late Defect Detection:
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.
✓ Lengthy Development Cycle:
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.
09-09-2025 Bunil K Balabantaray 86
Real-Life Example of Waterfall Model: Developing an Online Banking System
1. Analysis 4. Testing and Deployment
This phase will be tasked with gathering all the information available As with any example of the Waterfall Model, the
on customer banking requirements, transactions, security protocols, testing phase is about ensuring that all features of the
and devising the different parameters that’ll be used for determining online banking system function smoothly. This
the core functionalities of the online banking system, such as account includes testing for security vulnerabilities, transaction
management, fund transfers, bill payments, and loan applications. accuracy, performance under heavy load, and user
2. Design interface responsiveness. Special attention is given to
In this example of the Waterfall Model, the design phase is all about testing secure logins, data encryption, and ensuring
fine-tuning the parameters established in the analysis phase. The that sensitive data is handled correctly throughout the
system’s architecture will be designed to manage sensitive data system.
securely, avoid transactional errors, and ensure high performance. 5. Maintenance
This includes database structure, user interface design, encryption In the final phase, the online banking system should
protocols, and multi-factor authentication to protect user accounts. be checked for any necessary updates or alterations
3. Implementation that may be required, besides the expected inclusion
This all-important phase involves doing dummy runs of the online of new features or changes in banking regulations.
banking system with a provisional set of banking transactions and Regular updates will also be needed for security
customer data to see the accuracy with which the system can handle patches, performance improvements, and the addition
transactions, balance inquiries, fund transfers, and bill payments. of new services like mobile banking, instant loans, or
These results should be matched with results from banking experts personalized financial advice.
and auditors who ensure compliance with banking regulations and
accuracy in transactions.
09-09-2025 Bunil K Balabantaray 87
Waterfall Model in Software Development Life
Cycle
Case Study: Library Management System using Waterfall Model
Project Overview
A university wants a Library Management System to track book issues, returns, and manage
students' records.
Phase 1: Requirement Analysis
•Functional Requirements:
• Add, update, delete book records.
• Track issue/return of books.
• Generate reports (e.g., overdue books).
•Non-Functional Requirements:
• Must work on Windows OS.
• Response time < 2 seconds.
Deliverable: SRS document approved by the university.
09-09-2025 Bunil K Balabantaray 88
Waterfall Model in Software Development Life
Cycle
Case Study: Library Management System using Waterfall Model
Project Overview
A university wants a Library Management System to track book issues, returns, and manage
students' records.
Phase 2: System Design
•High-Level Design:
• Modules: User Management, Book Management, Reports.
•Low-Level Design:
• Database schema: Tables for books, users, transactions.
Deliverable: Design documents and database ER diagrams.
09-09-2025 Bunil K Balabantaray 89
Waterfall Model in Software Development Life
Cycle
Case Study: Library Management System using Waterfall Model Project Overview
Phase 3: Implementation
•Code developed in Java with MySQL database.
•Modules built separately, then integrated.
Phase 4: Testing
•Unit Testing: Check individual modules.
•Integration Testing: Ensure modules work together.
•System Testing: Validate against SRS.
•UAT: University library staff tests the system.
09-09-2025 Bunil K Balabantaray 90
Waterfall Model in Software Development Life
Cycle
Case Study: Library Management System using Waterfall Model Project Overview
Phase 5: Deployment
✓ Installed on the university server.
✓ Staff trained on how to use the system.
Phase 6: Maintenance
✓ Bugs fixed after launch (e.g., incorrect fine calculation).
✓ Added feature: Email notifications for due dates.
Why Waterfall was Suitable
✓ Requirements were clear and stable from the beginning.
✓ The university wanted fixed cost and timeline.
✓ Minimal expected changes during development.
09-09-2025 Bunil K Balabantaray 91
Waterfall Model in Software Development Life
Cycle
Case Study: Library Management System using Waterfall Model Project Overview
Phase 5: Deployment
✓ Installed on the university server.
✓ Staff trained on how to use the system.
Phase 6: Maintenance
✓ Bugs fixed after launch (e.g., incorrect fine calculation).
✓ Added feature: Email notifications for due dates.
Why Waterfall was Suitable
✓ Requirements were clear and stable from the beginning.
✓ The university wanted fixed cost and timeline.
✓ Minimal expected changes during development.
09-09-2025 Bunil K Balabantaray 92
Incremental Process Model
✓ The Incremental model is a software Development approach which is used to
breakdown the project into smaller and easily manageable parts.
✓ In these, each part passes through Requirement, Design, Testing phases and
Implementation phase. The overall process continue until we got the complete System.
✓ Instead of delivering the whole system at once, it is developed and delivered in small
parts called increments.
✓ Each increment builds upon the previous one by adding new functionality, until the
complete system is finished.
09-09-2025 Bunil K Balabantaray 93
Key Characteristics of Incremental Process Model
✓ Partial System Delivery: The system is developed and delivered in small, manageable pieces.
Each part adds new features to the previous version.
✓ Early Functionality: Basic functionality is available early in the project. This allows users to
start using and testing the system quickly.
✓ Customer Feedback Loop: Feedback is collected after each part is delivered. This helps
improve the next version of the system.
✓ Flexible to Changes: Changes or new features can be added between increments. This makes
the model flexible to evolving needs.
✓ Combination of Linear and Iterative Approaches: Combines the structured approach of
Waterfall with flexibility. Supports both planning and ongoing improvements.
09-09-2025 Bunil K Balabantaray 94
Phases of the Incremental Model
Phases of the Incremental Model
The phases of Incremental model is divided into the four parts which is Requirement,
Design, Testing phases and Implementation phase. In those phase, the process continues until
we got the expected output at the end.
09-09-2025 Bunil K Balabantaray 95
Phases of the Incremental Model
✓ Requirement Analysis
▪ The first step in the Incremental Model is understanding what the software needs to do.
▪ The team gathers the requirements from the product experts and clearly defines the system’s
functional needs.
▪ This phase is important because it sets the foundation for everything else in the development
process.
✓ Design & Development
• Next, the team focuses on designing how the software will function and starts developing it.
• They work on adding new features and making sure the system works as expected.
• The design and development steps go hand-in-hand to build the functionality of the software.
09-09-2025 Bunil K Balabantaray 96
Phases of the Incremental Model
✓ Testing
• Once a feature is developed, it goes through testing.
• The testing phase checks how the software performs, including both new and existing
features.
• The team uses different testing methods to make sure everything is working correctly.
✓ Implementation
• This phase involves writing the final code based on the design and development steps.
• After testing the functionality, the team verify that everything is working as planned.
• By the end of this phase, the product is gradually improved and updated until it becomes the
final working version.
09-09-2025 Bunil K Balabantaray 97
Types of Incremental Model
✓ The Incremental Model has two main types; each offers different approaches to how
software is developed in parts. Here are the two types:
▪ Staged Delivery Model
▪ Parallel Development Model
09-09-2025 Bunil K Balabantaray 98
Incremental Model: Staged Delivery Model
✓ The Staged Delivery Model
develops software in a sequence of
planned stages, where each stage
delivers a functional part of the
system. Each release brings the
product closer to completion,
allowing it to evolve gradually.
✓ Working versions are delivered at
regular intervals, making progress
visible and manageable throughout
the development process.
✓ The diagram shows this model :
09-09-2025 Bunil K Balabantaray 99
Incremental Model: Parallel Development Model
✓ The Parallel Development Model
divides the system into multiple
modules that are developed
simultaneously at the same time
by different teams.
✓ By working on separate
components in parallel, the
development process becomes
faster and more efficient.
✓ This approach reduces overall
project time and allows teams to
focus on specific functionalities
concurrently.
09-09-2025 Bunil K Balabantaray 100
Use Cases of Incremental Process Model
✓ When the requirements are well-defined and clear: Because increments can be planned and developed
step-by-step with minimal requirement changes.
✓ If the project has a long development timeline: Incremental delivery helps manage complexity over time
by breaking the project into smaller, manageable parts.
✓ If the customer needs a quick product release: You can deliver the most critical features early in the first
increment, allowing the customer to start using the software sooner.
✓ When you want to develop the most important features first: This allows early feedback on key
functionalities and better prioritization for subsequent increments.
Note: The Model is not ideal when the software development team is not highly skilled or
experienced because managing increments and integrating them well requires a competent team.
09-09-2025 Bunil K Balabantaray 101
Advantages of Incremental Process Model
✓ Faster Software Delivery
• Initial working versions of the software can be delivered quickly.
• Early delivery increases customer satisfaction and feedback opportunities.
✓ Clear Understanding for Clients
• Clients get to see parts of the system at each stage.
• This visibility ensures that the final product meets their expectations.
✓ Easy to Implement Changes
• Requirements can evolve, and changes can be incorporated in subsequent increments.
• It supports flexibility without heavily disrupting earlier stages.
✓ Effective Risk Management
• Risks can be identified and handled early due to the staged approach.
• Each increment allows for testing and validation, reducing the impact of unforeseen issues.
09-09-2025 Bunil K Balabantaray 102
Advantages of Incremental Process Model
✓ Flexible Criteria and Scope
• Requirements can be adjusted without a major cost increase.
• Better scope management helps keep the project aligned with business goals.
✓ Cost-Effective
• Compared to models like the Waterfall, the incremental model is generally more cost-efficient.
• Budget is spread across stages, making it easier to manage finances.
✓ Simpler Error Identification
• Since development is done in parts, it's easier to pinpoint and fix errors within a specific increment.
• Testing each module separately enhances quality and reliability.
09-09-2025 Bunil K Balabantaray 103
Disadvantages of Incremental Process Model
Below are the key disadvantages:
✓ Requires a Skilled Team and Proper Planning
• Successful implementation demands an experienced team.
• Poor planning or coordination can lead to confusion between increments.
✓ Cost Can Increase Over Time
• Due to repeated testing, redesign, and integration in every cycle, the overall project cost may rise.
• Continuous iteration involves added overhead
✓ Incomplete Requirement Gathering Can Cause Design Issues
• If all requirements are not identified early, the system architecture may not support future needs.
• Inadequate upfront design can lead to rework and architectural mismatches.
✓ Lack of Smooth Flow Between Increments
• Each iteration may function independently, which can create inconsistencies.
• There might be integration challenges when combining all the increments into a unified product.
✓ High Effort to Fix Repeated Issues
• A defect in one increment may exist in others.
• Fixing the same issue across multiple units can be time-consuming and resource-intensive.
09-09-2025 Bunil K Balabantaray 104
Iterative Waterfall Model?
✓ The iterative model is a type of software development life cycle model that focuses on an initial,
basic implementation that gradually adds more complexity and a broader feature set until the final
system is complete.
✓ Iterative development, in a nutshell, is a method of breaking down the software development of a
massive program into smaller components.
It is almost the same as the
classical Waterfall Model, except
some changes are made to
increase the efficiency of
the software development.
09-09-2025 Bunil K Balabantaray 105
What is the Iterative Waterfall Model?
✓ The Iterative Waterfall Model is a software development approach that combines the
sequential steps of the traditional Waterfall Model with the flexibility of iterative design.
✓ It allows for improvements and changes to be made at each stage of the development
process, instead of waiting until the end of the project.
✓ The Iterative Waterfall Model provides feedback paths from every phase to its preceding
phases, which is the main difference from the classical Waterfall Model.
09-09-2025 Bunil K Balabantaray 106
Iterative Waterfall Model
Feasibility Study
Requirement Analysis
and Specification
Design
Coding and Unit Testing
Integration and
System Testing
Maintenance
09-09-2025 Bunil K Balabantaray 107
Iterative Waterfall Model
09-09-2025 Bunil K Balabantaray 108
Phases of Iterative Model
1. Requirement Gathering & Analysis
• The customer requirements are gathered during this phase of the iterative model.
• Then, an analyst determines whether they can be met within the financial constraints.
• This phase details the business needs, and system information (hardware or software) is acquired
and assessed for viability.
2. Design
✓ During this phase of the iterative model, the project team receives the complete list of criteria for
starting work in a specific direction.
✓ Then, they use various diagrams, like a data flow diagram, class diagram, activity diagram, state
transition diagram, and so on, to gain explicit knowledge of the program design and to help them
progress with development.
✓ Based on their investigation, developers provide viable solutions. Furthermore, the project's scale and
criticality are crucial factors in deciding the complexity of the design for the project.
09-09-2025 Bunil K Balabantaray 109
Phases of Iterative Model
3. Implementation
▪ At this point in the project, according to the iterative model, the actual coding of the system
begins.
▪ This stage will be influenced by the Design Stage's analysis and design.
▪ All needs, planning, and design plans have been carried out. The chosen design will be
implemented by the developer using predefined coding and metrics standards.
▪ They must implement a unit test at each stage of code development and should strive to produce a
fully functional, testable system for that iteration.
▪ The complexity of work and time spent on this iteration will vary depending on the project.
09-09-2025 Bunil K Balabantaray 110
Phases of Iterative Model
4. Testing
✓ This stage entails comparing the current build iteration to a set of rules and norms to determine
whether or not it fits them.
✓ This sort of testing includes performance testing, stress testing, security testing, requirements testing,
usability testing, multi-site testing, disaster recovery testing, and so on.
✓ The tester can create new test cases or reuse those from previous releases, but testing is a key priority
because any failures would affect the software's specification, affecting the business.
✓ We can also check in with the project stakeholders to perform some tests and get their input.
✓ A developer or tester must guarantee that correcting one bug does not result in the appearance of new
bugs in the system.
09-09-2025 Bunil K Balabantaray 111
Phases of Iterative Model
5. Deployment
After completing all the phases, the software is deployed to its work environment.
6. Review
In this phase, after the product deployment, we check the behavior and validity of the deployed
product. And if any errors are found, the process starts again from requirement gathering.
7. Maintenance
In the maintenance phase, after software deployment in the working environment, there may be
some bug fixes or new updates required.
09-09-2025 Bunil K Balabantaray 112
When to Use the Iterative Model?
The iterative model is suitable for the following use cases:
▪ When the project is huge, it can be broken down into smaller pieces and developed by adhering
to the iterative paradigm.
▪ When the requirements can be understood and defined clearly at the beginning of the project.
▪ When there is a need to incorporate customer feedback at every stage - The major requirements
are laid down initially; however, as the development process progresses, some functionalities
are altered, and additions are suggested.
▪ While working on the project, the development team is experimenting with and learning new
technology.
09-09-2025 Bunil K Balabantaray 113
Advantages of the Iterative Model
The most important advantage of this approach is that software is built in iterations, allowing
developers and testers to identify design or functionality faults as quickly as possible, allowing them
to take corrective actions within a limited budget.
Here is a list of advantages of this SDLC model:
✓ Phase Containment of Errors: Errors are detected and fixed as close to their source as possible,
reducing costly rework and delays.
✓ Collaboration: Continuous collaboration between business owners and developers ensures the
product meets business needs and improves with feedback at each iteration.
✓ Flexibility: The model allows for easy incorporation of new requirements or features in
subsequent iterations, ensuring the product evolves with the business.
✓ Testing and Feedback: Regular testing and feedback cycles help identify and fix issues early,
improving the product's quality and relevance.
✓ Faster Time to Market: Incremental development allows parts of the product to be delivered
sooner, enabling user feedback while further improvements are made.
✓ Risk Reduction: Continuous feedback and testing help identify risks early, reducing the
likelihood of costly errors and delays.
09-09-2025 Bunil K Balabantaray 114
Advantages of the Iterative Model
In a more shorter way:
✓ A working product is produced much early in the lifecycle, unlike the waterfall model, where a
working product is available only at the end of the lifecycle.
✓ We can detect errors and bugs at an early stage and prevent them from flowing downwards. We
test the output of every iteration and do not let bugs from the previous iteration propagate to the
next iteration.
✓ Changing the requirements does not incur much cost in this model, although it may not always be
possible to accommodate new requirements due to system structure and design constraints.
✓ Customer feedback can be incorporated in every iteration and implemented quickly.
✓ In this model, less time is spent on documenting and more time on designing and developing.
✓ to manage.
09-09-2025 Bunil K Balabantaray 115
Disadvantages of the Iterative Model
Although the iterative model is hugely beneficial, it has various faults and drawbacks. The biggest
one is system structure or design issues may arise since not all requirements are collected at the
advent of the entire life cycle. The disadvantages of the iterative model are listed below:
✓ Problems relating to the system architecture can arise because all the requirements are not
gathered upfront. Design can be changed repeatedly because of defective requirements gathered in
the first phase.
✓ Although the cost of change is lower, it is not well suited to frequently shifting requirements.
✓ It is not a good option for small projects as it may not be realistic or possible to break down a
small project into smaller parts.
✓ It is more resource-intensive than the waterfall model. To avoid risk, this strategy necessitates the
use of highly trained resources for the project's analysis.
✓ The entire procedure is challenging to manage.
09-09-2025 Bunil K Balabantaray 116
Disadvantages of the Iterative Model
The disadvantages of the Iterative and Incremental SDLC Model are as follows −
✓ More resources may be required.
✓ Although cost of change is lesser, but it is not very suitable for changing requirements.
✓ More management attention is required.
✓ System architecture or design issues may arise because not all requirements are gathered in the
beginning of the entire life cycle.
✓ Defining increments may require definition of the complete system.
✓ Not suitable for smaller projects.
✓ Management complexity is more.
✓ End of project may not be known which is a risk.
✓ Highly skilled resources are required for risk analysis.
✓ Projects progress is highly dependent upon the risk analysis phase.
09-09-2025 Bunil K Balabantaray 117
Examples
✓ The iterative model is prevalent in the area of electronics. The evolution of mobile
phones over time, how speakers have become smaller and more portable over time, or
even how refrigerators from the same company have altered to accommodate new family
needs. These are all iterative procedures. Every day, the industry is changing itself in
response to client feedback.
✓ Digital marketing teams test different advertising methods to discover which one
generates the most engagement. They comprehend the advertisement's requirements,
build appealing designs based on thorough analysis, and implement them in their product
marketing. These copies are then distributed to members for input, and modifications are
made. This strengthens their marketing strategies.
09-09-2025 Bunil K Balabantaray 118
Capability Maturity Model
✓ The Capability Maturity Model (CMM) is a tool used to improve and refine software
development processes.
✓ It provides a structured way for organizations to assess their current practices and
identify areas for improvement.
✓ CMM consists of five maturity levels: initial, repeatable, defined, managed, and
optimizing.
✓ By following the CMM, organizations can systematically improve their software
development processes, leading to higher-quality products and more efficient project
management.
09-09-2025 Bunil K Balabantaray 119
Capability Maturity Model
✓ Capability Maturity Model (CMM) was developed by the Software Engineering Institute
(SEI) at Carnegie Mellon University in 1987.
✓ It is not a software process model. It is a framework that is used to analyze the approach
and techniques followed by any organization to develop software products.
✓ It also provides guidelines to enhance further the maturity of the process used to develop
those software products.
✓ It is based on profound feedback and development practices adopted by the most
successful organizations worldwide.
09-09-2025 Bunil K Balabantaray 120
Capability Maturity Model
✓ This model describes a strategy for software process improvement that should be
followed by moving through 5 different levels. Each level of maturity shows a process
capability level. All the levels except level 1 are further described by Key Process Areas
(KPA).
09-09-2025 Bunil K Balabantaray 121
Importance of Capability Maturity Model
✓ Optimization of Resources: CMM helps businesses make the best use of all of their resources,
including money, labor, and time. Organizations can improve the effectiveness of resource
allocation by recognizing and getting rid of unproductive practices.
✓ Comparing and Evaluating: A formal framework for benchmarking and self-evaluation is offered
by CMM. Businesses can assess their maturity levels, pinpoint their advantages and disadvantages,
and compare their performance to industry best practices.
✓ Management of Quality: CMM emphasizes quality management heavily. The framework helps
businesses apply best practices for quality assurance and control, which raises the quality of their
goods and services.
✓ Enhancement of Process: CMM gives businesses a methodical approach to evaluate and enhance
their operations. It provides a road map for gradually improving processes, which raises
productivity and usefulness.
✓ Increased Output: CMM seeks to boost productivity by simplifying and optimizing processes.
Organizations can increase output and efficiency without compromising quality as they go through
the CMM levels.
09-09-2025 Bunil K Balabantaray 122
Principles of Capability Maturity Model (CMM)
✓ People's capability is a competitive issue. Competition arises when different organizations are
performing the same task (such as software development). In such a case, the people of an
organization are sources of strategy and skills, which in turn results in better performance of the
organization.
✓ The people's capability should be defined by the business objectives of the organization.
✓ An organization should invest in improving the capabilities and skills of the people as they are
important for its success.
✓ The management should be responsible for enhancing the capability of the people in the
organization.
✓ The improvement in the capability of people should be done as a process. This process should
incorporate appropriate practices and procedures.
✓ The organization should be responsible for providing improvement opportunities so that people can
take advantage of them.
✓ Since new technologies and organizational practices emerge rapidly, organizations should
continually improve their practices and develop the abilities of people.
09-09-2025 Bunil K Balabantaray 123
Shortcomings of the Capability Maturity Model (CMM)
✓ It encourages the achievement of a higher maturity level in some cases by displacing the true mission, which is improving
the process and overall software quality.
✓ It only helps if it is put into place early in the software development process.
✓ It has no formal theoretical basis and in fact, is based on the experience of very knowledgeable people.
✓ It does not have good empirical support, and this same empirical support could also be constructed to support other
models.
✓ Difficulty in measuring process improvement: This model may not provide an accurate measure of process improvement,
as it relies on self-assessment by the organization and may not capture all aspects of the development process.
✓ Focus on documentation rather than outcomes: The SEI/CMM model may focus too much on documentation and
adherence to procedures, rather than on actual outcomes such as software quality and customer satisfaction.
✓ May not be suitable for all types of organizations: The SEI/CMM model may not be suitable for all kinds of
organizations, particularly those with smaller development teams or those with less structured development processes.
✓ May not keep up with rapidly evolving technologies: The SEI/CMM model may not be able to keep up with rapidly
evolving technologies and development methodologies, which could limit its usefulness in certain contexts.
✓ Lack of agility: The SEI/CMM model may not be agile enough to respond quickly to changing business needs or
customer requirements, which could limit its usefulness in dynamic and rapidly changing environments.
09-09-2025 Bunil K Balabantaray 124
Capability Maturity Model
Key Process Areas (KPA)
✓ Each of these KPA (Key Process Areas) defines the basic requirements that should be met by a software
process to satisfy the KPA and achieve that level of maturity.
✓ Conceptually, key process areas form the basis for management control of the software project and establish a
context in which technical methods are applied, work products like models, documents, data, reports, etc. are
produced, milestones are established, quality is ensured, and change is properly managed.
09-09-2025 Bunil K Balabantaray 125
Levels of CMM
There are 5 levels of
Capability Maturity
Models.
09-09-2025 Bunil K Balabantaray 126
Levels of CMM
Level-1: Initial
✓ No KPIs defined.
✓ Processes followed are Adhoc and immature and are not well defined.
✓ Unstable environment for software development.
✓ No basis for predicting product quality, time for completion, etc.
✓ Limited project management capabilities, such as no systematic tracking of schedules, budgets, or
progress.
✓ We have limited communication and coordination among team members and stakeholders.
✓ No formal training or orientation for new team members.
✓ Little or no use of software development tools or automation.
✓ Highly dependent on individual skills and knowledge rather than standardized processes.
✓ High risk of project failure or delays due to a lack of process control and stability.
09-09-2025 Bunil K Balabantaray 127
Levels of CMM
Level-2: Repeatable
✓ Focuses on establishing basic project management policies.
✓ Experience with earlier projects is used for managing new similar-natured projects.
✓ Project Planning- It includes defining resources required, goals, constraints, etc. for the project.
It presents a detailed plan to be followed systematically for the successful completion of good-
quality software.
✓ Configuration Management- The focus is on maintaining the performance of the software
product, including all its components, for the entire lifecycle.
✓ Requirements Management- It includes the management of customer reviews and feedback
which result in some changes in the requirement set. It also consists of accommodation of those
modified requirements.
✓ Subcontract Management- It focuses on the effective management of qualified software
contractors i.e. it manages the parts of the software developed by third parties.
✓ Software Quality Assurance- It guarantees a good quality software product by following
certain rules and quality standard guidelines while developing.
09-09-2025 Bunil K Balabantaray 128
Levels of CMM
Level-3: Defined
✓ At this level, documentation of the standard guidelines and procedures takes place.
✓ It is a well-defined integrated set of project-specific software engineering and management
processes.
✓ Peer Reviews: In this method, defects are removed by using several review methods like
walkthroughs, inspections, buddy checks, etc.
✓ Intergroup Coordination: It consists of planned interactions between different development
teams to ensure efficient and proper fulfillment of customer needs.
✓ Organization Process Definition: Its key focus is on the development and maintenance of
standard development processes.
✓ Organization Process Focus: It includes activities and practices that should be followed to
improve the process capabilities of an organization.
✓ Training Programs: It focuses on the enhancement of knowledge and skills of the team
members including the developers and ensuring an increase in work efficiency.
09-09-2025 Bunil K Balabantaray 129
Levels of CMM
Level-4: Managed
✓ At this stage, quantitative quality goals are set for the organization for software products as
well as software processes.
✓ The measurements made help the organization to predict the product and process quality
within some limits defined quantitatively.
✓ Software Quality Management: It includes the establishment of plans and strategies to
develop quantitative analysis and understanding of the product's quality.
✓ Quantitative Management: It focuses on controlling the project performance
quantitatively.
09-09-2025 Bunil K Balabantaray 130
Levels of CMM
Level-5: Optimizing
✓ This is the highest level of process maturity in CMM and focuses on continuous process
improvement in the organization using quantitative feedback.
✓ The use of new tools, techniques, and evaluation of software processes is done to prevent the
recurrence of known defects.
✓ Process Change Management: Its focus is on the continuous improvement of the organization's
software processes to improve productivity, quality, and cycle time for the software product.
✓ Technology Change Management: It consists of the identification and use of new technologies
to improve product quality and decrease product development time.
✓ Defect Prevention It focuses on the identification of causes of defects and prevents them from
recurring in future projects by improving project-defined processes.
09-09-2025 Bunil K Balabantaray 131
Capability Maturity Model Integration (CMMI)
✓ The Capability Maturity Model Integration (CMMI) is an advanced framework designed
to improve and integrate processes across various disciplines such as software
engineering, systems engineering, and people management.
✓ It builds on the principles of the original CMM, enabling organizations to enhance their
processes systematically.
✓ CMMI helps organizations fulfill customer needs, create value for investors, and
improve product quality and market growth.
✓ It offers two representations, staged and continuous, to guide organizations in their
process improvement efforts.
09-09-2025 Bunil K Balabantaray 132
Capability Maturity Model Integration (CMMI)
What is Capability Maturity Model Integration (CMMI)?
✓ Capability Maturity Model Integration (CMMI) is a successor of CMM and is a more evolved
model that incorporates best components of individual disciplines of CMM like Software CMM,
Systems Engineering CMM, People CMM, etc.
✓ Since CMM is a reference model of matured practices in a specific discipline, so it becomes
difficult to integrate these disciplines as per the requirements.
✓ This is why CMMI is used as it allows the integration of multiple disciplines as and when
needed.
✓ It is a process improvement framework that helps organizations enhance their performance and
develop better products and services. It provides a structured approach to process improvement,
guiding organizations through defined maturity levels and capability levels.
09-09-2025 Bunil K Balabantaray 133
09-09-2025 Bunil K Balabantaray 134
Capability Maturity Model Integration (CMMI)
Objectives of CMMI
✓ Fulfilling customer needs and expectations.
✓ Value creation for investors/stockholders.
✓ Market growth is increased.
✓ Improved quality of products and services.
✓ Enhanced reputation in Industry.
09-09-2025 Bunil K Balabantaray 135
CMMI Representation
CMMI Representation - Staged and Continuous
A representation allows an organization to pursue a different set of improvement objectives.
There are two representations for CMMI :
Staged Representation :
• uses a pre-defined set of process areas to define improvement path.
• provides a sequence of improvements, where each part in the sequence serves as a
foundation for the next.
• an improved path is defined by maturity level.
• maturity level describes the maturity of processes in organization.
• Staged CMMI representation allows comparison between different organizations for
multiple maturity levels.
09-09-2025 Bunil K Balabantaray 136
CMMI Representation
Continuous Representation :
• allows selection of specific process areas.
• uses capability levels that measures improvement of an individual process
area.
• Continuous CMMI representation allows comparison between different
organizations on a process-area-by-process-area basis.
• allows organizations to select processes which require more
improvement.
• In this representation, order of improvement of various processes can be
selected which allows the organizations to meet their objectives and
eliminate risks.
09-09-2025 Bunil K Balabantaray 137
CMMI Representation
09-09-2025 Bunil K Balabantaray 138
CMMI Model - Maturity Levels
In CMMI with staged representation, there are five maturity levels described as follows :
[Link] level 1 : Initial
• processes are poorly managed or controlled.
• unpredictable outcomes of processes involved.
• ad hoc and chaotic approach used.
• No KPAs (Key Process Areas) defined.
• Lowest quality and highest risk.
[Link] level 2 : Managed
• requirements are managed.
• processes are planned and controlled.
• projects are managed and implemented according to their documented plans.
• This risk involved is lower than Initial level but still exists.
• Quality is better than Initial level.
[Link] level 3 : Defined
• processes are well characterized and described using standards, proper procedures, and methods, tools, etc.
• Medium quality and medium risk involved.
• Focus is process standardization.
09-09-2025 Bunil K Balabantaray 139
CMMI Model - Maturity Levels
[Link] level 4 : Quantitatively managed
• quantitative objectives for process performance and quality are set.
• quantitative objectives are based on customer requirements, organization needs, etc.
• process performance measures are analyzed quantitatively.
• higher quality of processes is achieved.
• lower risk
[Link] level 5 : Optimizing
• continuous improvement in processes and their performance.
• improvement has to be both incremental and innovative.
• highest quality of processes.
• lowest risk in processes and their performance.
09-09-2025 Bunil K Balabantaray 140
CMMI Model - Capability Levels
CMMI Model - Capability Levels
A capability level includes relevant specific and generic practices for a specific process area that
can improve the organization's processes associated with that process area. For CMMI models with
continuous representation, there are six capability levels as described below :
[Link] level 0 : Incomplete
• incomplete process - partially or not performed.
• one or more specific goals of process area are not met.
• No generic goals are specified for this level.
• this capability level is same as maturity level 1.
[Link] level 1 : Performed
• process performance may not be stable.
• objectives of quality, cost and schedule may not be met.
• a capability level 1 process is expected to perform all specific and generic practices for this
level.
• only a start-step for process improvement.
09-09-2025 Bunil K Balabantaray 141
CMMI Model - Capability Levels
[Link] level 2 : Managed
• process is planned, monitored and controlled.
• managing the process by ensuring that objectives are achieved.
• objectives are both model and other including cost, quality, schedule.
• actively managing processing with the help of metrics.
[Link] level 3 : Defined
• a defined process is managed and meets the organization's set of guidelines and
standards.
• focus is process standardization.
09-09-2025 Bunil K Balabantaray 142
CMMI Model - Capability Levels
[Link] level 4 : Quantitatively Managed
• process is controlled using statistical and quantitative techniques.
• process performance and quality is understood in statistical terms and metrics.
• quantitative objectives for process quality and performance are established.
[Link] level 5 : Optimizing
• focuses on continually improving process performance.
• performance is improved in both ways - incremental and innovation.
• emphasizes on studying the performance results across the organization to ensure that
common causes or issues are identified and fixed.
09-09-2025 Bunil K Balabantaray 143
CMMI Model
09-09-2025 Bunil K Balabantaray 144
CMM (Capability Maturity Model) vs CMMI (Capability Maturity
Model Integration)
Capability Maturity Model
Aspects Capability Maturity Model (CMM)
Integration (CMMI)
Expands to various disciplines like
Primarily focused on software
Scope systems engineering, hardware
engineering processes.
development, etc.
Initially had a staged representation;
Had a five-level maturity model (Level 1
Maturity Levels it introduced continuous
to Level 5).
representation later.
More rigid structure with predefined Offers flexibility to tailor process
Flexibility
practices. areas to organizational needs.
Gained wider adoption across
Adoption and Gained popularity in the software
industries due to broader
Popularity development industry.
09-09-2025 Bunil K Balabantaray applicability. 145
Rapid Application Development Model (RAD)
✓ Rapid application development is a software development methodology that uses minimal planning in
favor of rapid prototyping. A prototype is a working model that is functionally equivalent to a component of
the product.
✓ The RAD model is a type of software development methodology that emphasizes quick and iterative release
cycles, primarily focusing on delivering working software in shorter timelines.
✓ Unlike traditional models such as the Waterfall model, RAD is designed to be more flexible and responsive to
user feedback and changing requirements throughout the development process.
✓ IBM first proposed the Rapid Application Development or RAD Model in the 1980s. The RAD model is a type
of incremental process model in which there is a concise development cycle.
✓ The RAD model is used when the requirements are fully understood and the component-based construction
approach is adopted.
✓ Various phases in RAD are Requirements Gathering, Analysis and Planning, Design, Build or
Construction, and finally Deployment.
09-09-2025 Bunil K Balabantaray 146
Rapid Application Development Model (RAD)
09-09-2025 Bunil K Balabantaray 147
Rapid Application Development Model (RAD)
Key aspects of the IBM RAD model:
✓ Iterative and Incremental:
• The RAD model breaks down development into smaller, manageable iterations, with each
iteration producing a working prototype or a functional part of the system.
✓ Emphasis on Speed:
• A core goal of RAD is to deliver functional software quickly, often within short timeboxes (e.g.,
60-90 days).
✓ User Involvement:
• Continuous and active user feedback is crucial throughout the development process, ensuring
the software meets evolving requirements.
✓ Prototyping:
• Extensive use of prototypes allows users to visualize and interact with the software early,
leading to clearer requirements and reduced rework.
✓ Component-Based Construction:
• The model encourages the reuse of existing components and the parallel development of
different modules by separate teams, which are then integrated.
09-09-2025 Bunil K Balabantaray 148
Rapid Application Development Model (RAD)
✓ Phases:
• While variations exist, common phases include requirements gathering, user
description/prototyping, construction (refining and building), and cutover (deployment and
testing).
✓ Tools and Techniques:
• The RAD model often leverages powerful development tools and techniques, including visual
programming environments and code generation tools, to expedite development.
Benefits:
• Faster development cycles and quicker time to market.
• Improved user satisfaction due to continuous feedback and involvement.
• Increased flexibility to accommodate changing requirements.
• Potential for higher quality through early defect detection.
• Considerations:
• Requires highly skilled and committed developers and users.
• May not be suitable for all types of projects, especially those with unclear requirements or high
technical risk.
• Can be resource-intensive, particularly in the initial stages.
09-09-2025 Bunil K Balabantaray 149
Objectives of Rapid Application Development Model
1. Fast (Speedy) Development: RAD aims to create and launch software swiftly by using
quick cycles of prototyping and development.
2. User Involvement (Stakeholder Participation): It prioritises involving users
throughout the process to ensure the software meets their needs effectively.
3. Adaptability and Flexibility
4. : RAD is designed to be flexible, making it easier to adjust and improve the software as
needed during development.
5. High Quality: By testing and refining prototypes early on, RAD aims to deliver
software that works well and satisfies users.
6. Cost Efficiency: It focuses on minimising costs by reducing rework and using
resources efficiently.
7. Risk Management: RAD helps identify and address potential problems early, ensuring
smoother project progress and reducing the chance of failure
09-09-2025 Bunil K Balabantaray 150
When to use the RAD Model?
✓ Well-understood Requirements: When project requirements are stable and transparent, RAD is
appropriate.
✓ Time-sensitive Projects: Suitable for projects that need to be developed and delivered quickly due
to tight deadlines.
✓ Small to Medium-Sized Projects: Better suited for smaller initiatives requiring a controllable
number of team members.
✓ High User Involvement: Fits where ongoing input and interaction from users are essential.
✓ Innovation and Creativity: Helpful for tasks requiring creative inquiry and innovation.
✓ Prototyping: It is necessary when developing and improving prototypes is a key component of the
development process.
✓ Low technological Complexity: Suitable for tasks using comparatively straightforward
technological specifications.
09-09-2025 Bunil K Balabantaray 151
RAD Model Design
RAD model distributes the analysis, design, build and test phases into a series of short, iterative development
cycles. Following are the various phases of the RAD Model −
Business Modelling
✓ The business model for the product under development is designed in terms of flow of information and the
distribution of information between various business channels.
✓ A complete business analysis is performed to find the vital information for business, how it can be obtained,
how and when is the information processed and what are the factors driving successful flow of information.
Data Modelling
✓ The information gathered in the Business Modelling phase is reviewed and analyzed to form sets of data
objects vital for the business.
✓ The attributes of all data sets is identified and defined. The relation between these data objects are established
and defined in detail in relevance to the business model.
09-09-2025 Bunil K Balabantaray 152
RAD Model Design
Process Modelling
✓ The data object sets defined in the Data Modelling phase are converted to establish the business
information flow needed to achieve specific business objectives as per the business model.
✓ The process model for any changes or enhancements to the data object sets is defined in this phase.
Process descriptions for adding, deleting, retrieving or modifying a data object are given.
Application Generation
✓ The actual system is built and coding is done by using automation tools to convert process and data
models into actual prototypes.
Testing and Turnover
✓ The overall testing time is reduced in the RAD model as the prototypes are independently tested
during every iteration.
✓ However, the data flow and the interfaces between all the components need to be thoroughly tested
with complete test coverage. Since most of the programming components have already been tested,
it reduces the risk of any major issues.
09-09-2025 Bunil K Balabantaray 153
RAD Model Design
09-09-2025 Bunil K Balabantaray 154
Advantages of the RAD Model
• Quick Development: RAD allows for faster delivery of software through rapid prototyping and
iterative cycles. This means you can get usable software into users’ hands more swiftly.
• User Involvement: It emphasizes involving users throughout the development process, ensuring
the final product meets their needs and expectations effectively.
• Flexibility: RAD is adaptable to changes in requirements and can accommodate adjustments
easily during development, making it suitable for dynamic project environments.
• High Quality: Early and frequent testing through prototyping helps identify and address issues
early on, resulting in software that is more reliable and meets quality standards.
• Cost Efficiency: By reducing rework and optimizing resources, RAD helps lower development
costs, making it a cost-effective approach for many projects.
• Improved Communication: RAD promotes better collaboration between developers,
stakeholders, and users through regular feedback loops, enhancing project transparency and
reducing misunderstandings
09-09-2025 Bunil K Balabantaray 155
Disadvantages of the RAD Model
• Dependency on User Involvement: RAD requires active participation and continuous feedback
from users throughout the project. If users are not available or engaged, it can slow down the
development process.
• Complexity in Large Projects: RAD may struggle with large-scale projects or those with highly
complex requirements. Managing and integrating multiple components quickly can become
challenging.
• Cost of Resources: Rapid development cycles in RAD may require more resources, such as
skilled developers and prototyping tools, which can increase project costs.
• Risk of Scope Creep: The flexibility of RAD can lead to scope creep, where new features and
changes are added continuously, potentially impacting project timelines and budgets.
• Documentation Challenges: With its focus on rapid iterations, RAD may sometimes prioritise
working software over comprehensive documentation, which can affect long-term maintenance
and support.
• Compatibility Issues: Integrating RAD-developed modules with existing systems or third-party
components may pose compatibility challenges, requiring additional effort to resolve.
09-09-2025 Bunil K Balabantaray 156
Disadvantages of the RAD Model
✓ It requires multiple teams or a large number of people to work on scalable projects.
✓ This model requires heavily committed developers and customers. If commitment is
lacking then RAD projects will fail.
✓ The projects using the RAD model require heavy resources.
✓ If there is no appropriate modularization then RAD projects fail. Performance can be a
problem for such projects.
✓ The projects using the RAD model find it difficult to adopt new technologies. This is
because RAD focuses on quickly building and refining prototypes using existing tools.
Changing to new technologies can disrupt this process, making it harder to keep up with
the fast pace of development. Even with skilled developers and advanced tools, the rapid
nature of RAD leaves little time to learn and integrate new technologies smoothly.
09-09-2025 Bunil K Balabantaray 157
Applications of the RAD Model
• This approach is appropriate for systems with clearly defined requirements and a need
for rapid development.
• It is also effective for projects that break down requirements into modular components
and utilise reusable elements.
• Additionally, this model suits scenarios where existing system components can be
leveraged with minimal modifications for new system development.
• Effective implementation of this model requires teams with domain expertise, as they
possess the necessary knowledge and skills to utilise advanced techniques.
• Moreover, choosing this model is advisable when budget constraints allow for the use of
automated tools and techniques essential for development.
09-09-2025 Bunil K Balabantaray 158
Evolutionary Process Model
✓ The evolutionary model is based on the concept of making an initial product and then
evolving the software product over time with iterative and incremental approaches with
proper feedback.
✓ In this type of model, the product will go through several iterations and come up when
the final product is built through multiple iterations.
✓ The development is carried out simultaneously with the feedback during the
development.
✓ This model has a number of advantages such as customer involvement, taking feedback
from the customer during development, and building the exact product that the user
wants. Because of the multiple iterations, the chances of errors get reduced and the
reliability and efficiency will increase.
09-09-2025 Bunil K Balabantaray 159
Evolutionary Process Model
09-09-2025 Bunil K Balabantaray 160
Types of Evolutionary Process Models
[Link] Model
[Link] Model
[Link] Model
09-09-2025 Bunil K Balabantaray 161
Advantages of the Evolutionary Process Model
✓ During the development phase, the customer gives feedback regularly because the customer's
requirement gets clearly specified.
✓ After every iteration risk gets analyzed.
✓ Suitable for big complex projects.
✓ The first build gets delivered quickly as it used an iterative and incremental approach.
✓ Enhanced Flexibility: The iterative nature of the model allows for continuous changes and
refinements to be made, accommodating changing requirements effectively.
✓ Risk Reduction: The model's emphasis on risk analysis during each iteration helps in identifying
and mitigating potential issues early in the development process.
✓ Adaptable to Changes: Since changes can be incorporated at the beginning of each iteration, it is
well-suited for projects with evolving or uncertain requirements.
✓ Customer Collaboration: Regular customer feedback throughout the development process
ensures that the end product aligns more closely with the customer's needs and expectations.
✓
09-09-2025 Bunil K Balabantaray 162
Disadvantages of the Evolutionary Process Model
Scope creep is the uncontrolled expansion of a project's goals,
requirements, or features beyond the initially defined and approved scope,
often happening after a project has begun.
✓ It is not suitable for small projects.
✓ The complexity of the spiral model can be more than the other sequential models.
✓ The cost of developing a product through a spiral model is high.
✓ roject Management Complexity: The iterative nature of the model can make
project management and tracking more complex compared to linear models.
✓ Resource Intensive: The need for continuous iteration and customer feedback
demands a higher level of resources, including time, personnel, and tools.
✓ Documentation Challenges: Frequent changes and iterations can lead to challenges
in maintaining accurate and up-to-date documentation.
✓ Potential Scope Creep: The flexibility to accommodate changes can sometimes
lead to an uncontrolled expansion of project scope, resulting in scope creep.
✓ Initial Planning Overhead: The model's complexity requires a well-defined initial
plan, and any deviations or adjustments can be time-consuming and costly.
✓
09-09-2025 Bunil K Balabantaray 163
Types of Evolutionary Process Models Iterative Model
✓ In the iterative model first, we take the initial requirements then we enhance the
product over multiple iterations until the final product gets ready.
✓ In every iteration, some design modifications were made and some changes in functional
requirements is added. The main idea behind this approach is to build the final product
through multiple iterations that result in the final product being almost the same as the user
wants with fewer errors and the performance, and quality would be high.
09-09-2025 Bunil K Balabantaray 164
Types of Evolutionary Process Models
Incremental Model
In the incremental model, we first build the project with basic features and then evolve the
project in every iteration, it is mainly used for large projects. The first step is to gather the
requirements and then perform analysis, design, code, and test and this process goes the
same over and over again until our final project is ready.
09-09-2025 Bunil K Balabantaray 165
Types of Evolutionary Process Models
Spiral Model
✓ The spiral model is a combination of waterfall and iterative models and in
this, we focused on risk handling along with developing the project with the
incremental and iterative approach, producing the output quickly as well as
it is good for big projects.
✓ The software is created through multiple iterations using a spiral approach.
Later on, after successive development the final product will develop, and the
customer interaction is there so the chances of error get reduced.
09-09-2025 Bunil K Balabantaray 166
Types of Evolutionary Process Models
09-09-2025 Bunil K Balabantaray 167
The Spiral Model / Winding model/ Cyclic model.
✓ The Spiral Model is one of the most important SDLC model. The Spiral
Model is a combination of the waterfall model and the iterative model. It
provides support for Risk Handling.
✓ The Spiral Model was first proposed by Barry Boehm. This article focuses
on discussing the Spiral Model in detail.
Why is it called a spiral model?
✓ The Spiral Model repeats steps of a project, starting with modest goals and
expanding outward in ever-wider spirals (called rounds). Each round of the
spiral constitutes a project, and each round may follow traditional software
development methodology such as modified waterfall. A risk analysis is
performed each round.
09-09-2025 Bunil K Balabantaray 168
The Spiral Model
✓ The Spiral Model is a Software Development Life Cycle (SDLC) model that provides a
systematic and iterative approach to software development. In its diagrammatic
representation, looks like a spiral with many loops. The exact number of loops of the
spiral is unknown and can vary from project to project. Each loop of the spiral is called
a phase of the software development process.
✓ The spiral model in software development is also known as a meta model or a risk-
driven model.
✓ It's called a meta model because it integrates principles from other SDLC models like
Waterfall and Prototyping into a flexible, risk-based framework. The emphasis on risk
analysis and mitigation throughout the process also leads to it being referred to as a risk-
driven model,
09-09-2025 Bunil K Balabantaray 169
The Spiral Model
Some Key Points regarding the Stages of a Spiral Model:
✓ The exact number of phases needed to develop the product can be varied by the project
manager depending upon the project risks.
✓ As the project manager dynamically determines the number of phases, the project
manager has an important role in developing a product using the spiral model.
✓ It is based on the idea of a spiral, with each iteration of the spiral representing a complete
software development cycle, from requirements gathering and analysis to design,
implementation, testing, and maintenance.
09-09-2025 Bunil K Balabantaray 170
Phases of the Spiral Model
The Spiral Model is a
risk-driven model,
meaning that the focus
is on managing risk
through multiple
iterations of the
software development
process. Each phase
of the Spiral Model is
divided into four
Quadrants:
09-09-2025 Bunil K Balabantaray 171
Phases of the Spiral Model
1. Objectives Defined
✓ In first phase of the spiral model we clarify what the project aims to achieve, including functional
and non-functional requirements.
✓ Requirements are gathered from the customers and the objectives are identified, elaborated, and
analyzed at the start of every phase. Then alternative solutions possible for the phase are proposed
in this quadrant.
2. Risk Analysis and Resolving
✓ In the risk analysis phase, the risks associated with the project are identified and evaluated.
✓ During the second quadrant, all the possible solutions are evaluated to select the best possible
solution.
✓ Then the risks associated with that solution are identified and the risks are resolved using the best
possible strategy. At the end of this quadrant, the Prototype is built for the best possible solution.
3
09-09-2025 Bunil K Balabantaray 172
Phases of the Spiral Model
3. Develop the next version of the Product
✓ During the third quadrant, the identified features are developed and verified through testing. At the
end of the third quadrant, the next version of the software is available.
✓ In the evaluation phase, the software is evaluated to determine if it meets the customer's
requirements and if it is of high quality.
4. Review and plan for the next Phase
✓ In the fourth quadrant, the Customers evaluate the so-far developed version of the software. In the
end, planning for the next phase is started.
✓ The next iteration of the spiral begins with a new planning phase, based on the results of the
evaluation.
Note: The Spiral Model is often used for complex and large software development projects, as it
allows for a more flexible and adaptable approach to Software development. It is also well-suited to
projects with significant uncertainty or high levels of risk.
The Radius of the spiral at any point represents the expenses (cost) of the project so far, and the
angular dimension represents the progress made so far in the current phase.
09-09-2025 Bunil K Balabantaray 173
Risk Handling in Spiral Model
A risk is any adverse situation that might affect the successful completion of a software project. The
most important feature of the spiral model is handling these unknown risks after the project has
started. Such risk resolutions are easier done by developing a prototype.
✓ The spiral model supports coping with risks by providing the scope to build a prototype at every
phase of software development.
✓ The Prototyping Model also supports risk handling, but the risks must be identified completely
before the start of the development work of the project.
✓ But in real life, project risk may occur after the development work starts, in that case, we cannot
use the Prototyping Model.
✓ In each phase of the Spiral Model, the features of the product dated and analyzed, and the risks at
that point in time are identified and are resolved through prototyping.
✓ Thus, this model is much more flexible compared to other SDLC models.
09-09-2025 Bunil K Balabantaray 174
Why Spiral Model is called Meta Model?
The Spiral model is called a Meta-Model because it subsumes all the other SDLC models. For
example, a single loop spiral actually represents the Iterative Waterfall Model.
✓ The spiral model incorporates the stepwise approach of the Classical Waterfall Model.
✓ The spiral model uses the approach of the Prototyping Model by building a prototype at the
start of each phase as a risk-handling technique.
✓ Also, the spiral model can be considered as supporting the Evolutionary model - the
iterations along the spiral can be considered as evolutionary levels through which the
complete system is built.
09-09-2025 Bunil K Balabantaray 175
Example of Spiral Model
Real-Life Example of Spiral Model: Developing an E-Commerce Website
1. First Spiral - Planning and Requirements:
✓ In this first phase, the team gathers the basic requirements for the e-commerce website, like product listings,
shopping carts, and payment options. They also identify potential risks, like security issues or scalability
concerns.
✓ To get started, they build a simple prototype, like a homepage with a basic product catalog, to see how users
interact with it and spot any initial design problems.
2. Second Spiral - Risk Analysis and Refining the Design
✓ After getting feedback from the first prototype, the team moves to the next phase. They add more features and
address the problems that were found earlier.
✓ This includes verifying secure payment processing and testing how the site handles more users. They also add a
basic shopping cart and user registration system, and they run tests with dummy transactions to make sure
everything is secure. 176
09-09-2025 Bunil K Balabantaray
Example of Spiral Model
Real-Life Example of Spiral Model: Developing an E-Commerce Website
3. Third Spiral - Detailed Implementation
✓ With more feedback in hand, the team adds advanced features, like order tracking, customer
reviews, and a search function. They also revisit any remaining risks, especially around scalability
making sure the website can handle a growing number of users.
✓ During this phase, the team tests the site to verify it can handle large orders, especially during busy
times like sales or holidays.
4. Final Spiral - Full Deployment
✓ In the last phase, the website is fully implemented, tested properly, and then launched to the public.
✓ Any remaining risks, like potential crashes or user feedback issues, are closely monitored and dealt
with.
This example shows how the Spiral Model allows for continuous improvement, with feedback and risk
assessment at each step to make sure the final product is solid and reliable.
09-09-2025 Bunil K Balabantaray 177
Advantages of the Spiral Model
Below are some advantages of the Spiral Model.
1. 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.
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 a 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 and thus, they habituated with the system by using it before completion of the total
product.
5. 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.
6. 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.
7. Improved Communication: The Spiral Model provides for regular evaluations and reviews, which can
improve communication between the customer and the development team.
8. Improved Quality: The Spiral Model allows for multiple iterations of the software development process,
which can result in improved software quality and reliability.
09-09-2025 Bunil K Balabantaray 178
Disadvantages of the Spiral Model
Below are some main disadvantages of the 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: 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.
4. Difficulty in time management: As the number of phases is unknown at the start of the project,
time estimation is very difficult.
5. Complexity: The Spiral Model can be complex, as it involves multiple iterations of the software
development process.
6. Time-Consuming: The Spiral Model can be time-consuming, as it requires multiple evaluations
and reviews.
7. Resource Intensive: The Spiral Model can be resource-intensive, as it requires a significant
investment in planning, risk analysis, and evaluations.
09-09-2025 Bunil K Balabantaray 179
When To Use the Spiral Model?
Here are the reasons where the Spiral Model is used:
✓ When a project is vast in Software Engineering, a spiral model is utilized.
✓ A spiral approach is utilized when frequent releases are necessary.
✓ When it is appropriate to create a prototype
✓ When evaluating risks and costs is crucial
✓ The spiral approach is beneficial for projects with moderate to high risk.
✓ The SDLC's spiral model is helpful when requirements are complicated and ambiguous.
✓ If modifications are possible at any moment
✓ When committing to a long-term project is impractical owing to shifting economic priorities.
09-09-2025 Bunil K Balabantaray 180
Specific Examples
✓ Early Microsoft Windows versions:
• Cloud Intel mentions Microsoft used the Spiral Model for early Windows development.
✓ Gantt Chart Software (GanttPRO):
• The XB Software team applied principles of the Spiral Model and Scrum for the development of
GanttPRO, a task management tool.
✓ Gaming Applications:
• The Spiral Model is well-suited for developing large-scale gaming applications, where complex
features are added incrementally.
✓ Healthcare Applications:
• Developing electronic health record systems is an example where the model is used to handle
complex requirements and potential risks, according to Simplilearn.
✓ E-commerce Platforms:
• Incorporating new features or improving existing functionalities on e-commerce sites is done
using the Spiral Model to ensure stability and security.
09-09-2025 Bunil K Balabantaray 181
Concurrent Development Model (also known as Concurrent
Engineering)
✓ The Concurrent Development Model (also known as Concurrent Engineering) is a software development
approach where multiple development phases, such as design, coding, and testing, are performed
simultaneously and overlap, rather than strictly sequentially.
✓ This overlapping of activities, managed through a system of states (like "under development" or "awaiting
changes"), aims to reduce overall development time, cost, and time-to-market by allowing teams to work
on different parts of the project concurrently.
✓ This model supports the concept of concurrency in that design, code, test and another related phase occur
simultaneously.
✓ They include minimizing development time, encouraging effective interaction between development
teams, and increasing the versatility of the resulting product due to the possibility of feedback at any step of
the cycle. In their operation, each team is in harmony with the other, reporting details in real-time thus
making the processes much more coherent and active.
09-09-2025 Bunil K Balabantaray 182
Features of the Concurrent Development Model
Features of the Concurrent Development Model
✓ Parallel Workflow: Several phases start and run concurrently like the design phase, development
phase, and the testing phase allowing completion of a project more expediently.
✓ Real-time Communication: Everyone gets repeated feedback hence the team works and
solutions together to ensure the common goal is achieved.
✓ Flexibility: Stakeholders can incorporate new changes and improvements easily since one phase
operates in tangent to another.
✓ Iterative Development: The model is also suitable for iterative activities in which input and
testing are received continually, and prototypes are revised.
✓ Reduced Time-to-Market: The work is divided between the tasks and stages, making the project
faster since many tasks are done concurrently.
09-09-2025 Bunil K Balabantaray 183
Types of Concurrent Development Model
1. Waterfall Model
While the Waterfall Model is traditionally sequential, it can allow for some parallelism in specific
sub-phases (e.g., testing specific modules). However, it is not inherently a concurrent development
model. Although the Waterfall model itself doesn’t support concurrent development, certain sub-
phases (e.g., testing of specific modules) can run in parallel, but the overall flow is sequential. It
works best for projects where requirements are well-defined and unlikely to change during
development.
09-09-2025 Bunil K Balabantaray 184
Pros and Cons of Waterfall Model in Concurrent Development
Process
Pros
✓ Simple and Easy to Understand: Due to its clear structure and logical sequence of the presented
steps, it is very convenient to navigate.
✓ Well-Defined Stages: This makes each phase the project has to go through to be compact and
easier to monitor due to its deliverables.
✓ Documentation-Centric: The emphasis at every phase of the project requires documentation to
make certain comprehensive records.
✓ Easy to Manage: The rigidity enshrined here makes it easy to manage, especially where it is a
small project you are working on.
✓ Structured Process: Applicable for the project where requirements are definite and clearly
defined.
09-09-2025 Bunil K Balabantaray 185
Pros and Cons of Waterfall Model in Concurrent Development
Process
Cons
✓ Inflexibility: Once a phase is complete, there is no provision to make changes or accept feedback.
✓ Late Testing: Testing is conducted after development and therefore can present major problems
that are difficult to solve.
✓ High Risk: Ensuring that quality is built into a system at its’ developmental stage is much cheaper
than having to retrofit it later.
✓ Not Ideal for Complex Projects: It has problems with iterative development and with the
development of distinct project phases.
✓ Longer Delivery Time: The entire system is only delivered after all these phases and this elevates
the time to be in the market.
09-09-2025 Bunil K Balabantaray 186
2. Prototype Model in Concurrent Development Process
Prototype Model
✓ In the prototype Model, an initial version or prototype is created and presented to users for
feedback.
✓ The prototype is revised concurrently with other system components, making it a model conducive
to continuous user involvement and iterative improvements.
✓ After the user provides feedback, the prototype is refined and modified until the final system is
developed.
✓ This model encourages concurrent development, especially in the initial phases, as the prototype is
developed alongside other parts of the system.
✓ This approach allows for ongoing user involvement and iterative improvements.
09-09-2025 Bunil K Balabantaray 187
2. Prototype Model in Concurrent Development Process
Pros
✓ Improves Understanding of Requirements: Prototyping stimulates the definition of user needs
and expectations in the early stage.
✓ User Feedback Driven: People can touch and give a sort of live input from the design, which
makes for a better product at the end of the day.
✓ Flexibility: Modifications are possible at every stage of development if necessary.
✓ Risk Reduction: Lead time identification of the concerns minimizes the chances of failing the
project.
✓ Enhances Communication: Prototypes are useful mainly on two fronts; communication among
the developers and the user hence, helping to keep the desired goals and objectives in a similar
line.
09-09-2025 Bunil K Balabantaray 188
2. Prototype Model in Concurrent Development Process
Cons
✓ Time-Consuming: Continual rehearsals and feedback seem to prolong the time of the activity.
✓ Increased Costs: Cumulative alterations and modifications in the documentation can become
expensive for the implementers.
✓ Scope Creep: This means that there will be constant changes that stakeholders may ask for hence
causing more scope creep.
✓ Limited Scalability: A prototype actuality may not contain a necessary system’s scalability, which
may result in necessary work redoing.
✓ Inadequate Documentation: Emphasis on the physical construction of the prototypes may result
in inadequate documentation to support the subsequent maintenance.
09-09-2025 Bunil K Balabantaray 189
3. Spiral Model in Concurrent Development Process
✓ The Spiral Model focuses on iterative development with an emphasis on risk management. It
allows for concurrent phases where feedback is integrated at each iteration, making it a good fit
for ongoing refinement, though not entirely a 'concurrent development' model.
✓ The development process is divided into cycles (or spirals), each of which involves planning, risk
analysis, design, development, and testing.
✓ These cycles are iterative, with each spiral producing a refined version of the system.
✓ The Spiral Model encourages concurrent development, as feedback and changes are integrated at
every cycle, allowing teams to continuously refine the system.
09-09-2025 Bunil K Balabantaray 190
3. Spiral Model in Concurrent Development Process
Pros
✓ Risk Management Focus: Every build entails risk analysis, which lowers the risk of project failure
significantly.
✓ Flexibility: Readable and reusable allowing for changes and refinements throughout the software
development making it appropriate for projects with changing requirements.
✓ Early Detection of Problems: Review and assessment are conducted at the end of every spiral, this
facilitates early discovery of risks and issues.
✓ User Feedback Integration: More often, user feedbacks are integrated into the development
process hence enhancing the overall results of the development process in an improved user-centric
final product.
✓ Iterative Development: Enables the concept of building a system incrementally and refining the
09-09-2025 Bunil K Balabantaray 191
design in each assembly cycle.
3. Spiral Model in Concurrent Development Process
Cons
✓ Complex and Costly: There can be high costs of risk analysis and it becomes very much a
complex structure that is difficult to manage.
✓ Requires High Expertise: One of the most important factors of successful risk analysis is the team
of experienced specialists, which means that the option is more challenging for organizations
without sufficient experience.
✓ Not Suitable for Small Projects: Sometimes it might be too much for a project or it may call for
too many resources than needed for a small project.
✓ Difficult to Set Timelines: The repetitiveness inherent in the cycle leads to the unpredictability of
timeframes and failure to deliver on project deadlines.
✓ Documentation Overload: Much documentation can be carried out at every spiral, but this can be
09-09-2025 Bunil K Balabantaray 192
tiring.
Concurrent Development Model (also known as Concurrent
Engineering)
Key Characteristics:
✓ Simultaneous Activities: Different software development activities, like communication,
modeling, and construction, occur at the same time.
✓ State-Based Management: Each activity exists in a defined state (e.g., inactive, under
development, awaiting changes, under revision, under review, baseline, done), and activities
transition between these states based on trigger events.
✓ Intertwined Phases: Phases are not entirely separate but are intertwined, allowing for a more fluid
and iterative process where feedback from later phases can influence earlier ones.
✓ Focus on Concurrency: The model explicitly represents the concurrent, but not necessarily
parallel, nature of activities within the software development lifecycle (SDLC).
09-09-2025 Bunil K Balabantaray 193
Concurrent Development Model (also known as Concurrent
Engineering)
How it Works
1. Activities and States: The model tracks various framework activities (e.g., communication,
modeling, coding) as they move through different states throughout the development process.
2. Trigger Events: Events, such as a customer requesting changes or a phase completing its review,
trigger a transition of an activity from one state to another.
3. Parallel Processing: While one activity is in a state like "under development," another might be
"under review" or "awaiting changes," all existing concurrently but in different states.
4. Iterative Feedback: The model's structure supports iterative loops, where feedback from testing or
customer requests can cause activities to return to earlier states for revisions.
09-09-2025 Bunil K Balabantaray 194
Concurrent Development Model (also known as Concurrent
Engineering)
Stages in the Concurrent Development Model
In the Concurrent Development Model, multiple phases like System Requirements Gathering,
Design, Development, and Testing run concurrently. For example, design and coding happen in
parallel with real-time testing and integration, significantly speeding up delivery.
✓ System Requirements Gathering: Defining the project requirements, which can evolve
throughout the project.
✓ Design and Prototyping: Design happens alongside development and testing. Prototypes may
be created concurrently to help stakeholders understand the project’s progress.
✓ Development and Coding: Development is done in parallel with design and testing phases.
Different teams might work on separate modules or features.
✓ Integration and Testing: Continuous integration ensures that newly developed modules are
tested and integrated into the system as they are completed. Testing occurs iteratively during
development.
✓ Deployment and Maintenance: Deployment occurs progressively with feedback from users,
and maintenance continues as the system evolves.
09-09-2025 Bunil K Balabantaray 195
Benefits of the Concurrent Development Model
Here are the benefits of the Concurrent Development Model:
✓ Reduced Development Time: By running multiple phases in parallel, tasks are completed faster, leading to
shorter time-to-market.
✓ Improved Collaboration: Teams working across different phases simultaneously create constant feedback
loops, allowing real-time problem-solving, faster issue resolution, and better collaboration across all stages.
✓ Early Detection of Issues: Continuous testing and feedback integration allow for issues to be detected early
in the development process.
✓ Flexibility and Adaptability: Changes can be incorporated at any stage of the development, allowing for a
more adaptable approach to evolving project needs.
✓ Enhanced Product Quality: With real-time feedback and iterative testing, the final product benefits from
higher quality due to continuous improvements throughout the development cycle.
09-09-2025 Bunil K Balabantaray 196
Challenges of the Concurrent Development Model
✓ Complex Project Management: Managing concurrent tasks across multiple teams requires
effective coordination and real-time communication to ensure that the teams’ efforts align
properly.
✓ Communication Overload: Since multiple teams work in parallel, maintaining constant
communication and synchronizing updates across teams becomes crucial.
✓ Higher Resource Demand: Concurrent development increases resource allocation, as teams
must manage overlapping tasks. This can lead to resource conflict, higher costs, and
logistical challenges.
✓ Difficulty in Managing Dependencies: Teams often depend on each other’s work, and if
one team lags behind, it can affect the entire project’s progress.
✓ Increased Complexity in Integration:Bunil
09-09-2025 Integrating
K Balabantaray modules developed by different teams
197
Challenges of the Concurrent Development Model
Real-World Applications of the Concurrent Development Model
✓ Aerospace and Defense: Aerospace projects often involve multiple teams working on different subsystems, such as
avionics, propulsion, and control systems, all developing in parallel. This approach ensures that components are
integrated efficiently and meet strict deadlines.
✓ Automotive Industry: In automotive development, components like engines, safety systems, and electronics are
developed simultaneously, ensuring that the final product is ready for production on schedule.
✓ Software Development: In Agile and DevOps methodologies, concurrent development is integral. Teams work on
different aspects of the software while continuously integrating, testing, and deploying new features.
✓ Consumer Electronics: Companies like Samsung use the concurrent development model to develop hardware and
software for products like smartphones, where both components need to be ready for launch simultaneously.
✓ Construction and Architecture: In large infrastructure projects like airports or bridges, multiple teams work on
different parts of the project (e.g., design, construction, and planning) concurrently, ensuring faster project completion.
✓ Video Game Development: In game development, designers, developers, and artists work in parallel on various
elements (game mechanics, story, graphics) to create a unified final product. 198
09-09-2025 Bunil K Balabantaray
Unified Process Model
The Unified Process (UP) is a software development framework used for object-oriented modeling.
The framework is also known as Rational Unified Process (RUP) and the Open Unified Process
(Open UP). Some of the key features of this process include:
✓ It defines the order of phases.
✓ It is component-based, meaning a software system is built as a set of software components. There
must be well-defined interfaces between the components for smooth communication.
✓ It follows an iterative, incremental, architecture-centric, and use-case driven approach
09-09-2025 Bunil K Balabantaray 199
Unified Process Model
09-09-2025 Bunil K Balabantaray 200
Unified Process Model
There are three different approaches followed in this model of software development.
✓ The case-driven approach
✓ The architecture-centric approach
✓ The iterative and incremental approach
09-09-2025 Bunil K Balabantaray 201
Unified Process Model: The case-driven approach
The case-driven approach
✓ Use a case-driven approach that follows a set of actions performed by one or more entities.
✓ A use case refers to the process of the team performing the development work from the
functional requirements.
✓ The functional requirements are made from the list of requirements that were specified by the
client.
For example, an online learning management system can be specified in terms of use cases such
as "add a course," "delete a course," "pay fees," and so on.
09-09-2025 Bunil K Balabantaray 202
Unified Process Model : The case-driven approach
✓ In software engineering's Unified Process (UP) model, a case-driven approach means that the
development process is centered around identifying, prioritizing, and developing use cases –
detailed descriptions of system functionalities from a user's perspective.
✓ These use cases guide the design, implementation, and testing phases, ensuring the system
fulfills the actual needs of its users.
✓ For example, in an online bookstore, use cases like "Browse Books," "Add Book to Cart," and
"Checkout" would drive the development of the system's features.
09-09-2025 Bunil K Balabantaray 203
Unified Process Model : The case-driven approach
How the Case-Driven Approach Works
1. Identify Actors and Use Cases:
✓ The process begins by identifying "actors" – users or other systems that interact with the
software.
✓ Then, use cases are created to describe the specific functions each actor will perform with the
system.
2. Prioritize Use Cases:
✓ Not all use cases are developed at once.
✓ The team prioritizes them based on importance and risk to determine which ones will be
developed in each iteration.
09-09-2025 Bunil K Balabantaray 204
Unified Process Model : The case-driven approach
How the Case-Driven Approach Works
3. Drive the Development Process:
✓ Use cases serve as the foundation for various activities:
❑ Requirements: They form the basis of the functional requirements, replacing traditional
functional specifications.
❑ Design: Architects and designers use use cases to guide the creation of the system's
structure and components.
❑ Implementation: Developers focus on building the features defined by the use cases.
❑ Testing: Use cases help in creating test cases to verify that the system behaves as
expected.
Example: Online Banking System
Let's consider a case-driven approach for developing an online banking system:
➢ Actors: Bank Customer, Bank Administrator.
➢ Use Cases:
• Customer: "Login," "View Account Balance," "Transfer Funds," "Pay Bills".
• Bank Administrator: "Add New User," "Manage Account Details," "Generate Reports".
09-09-2025 Bunil K Balabantaray 205
Unified Process Model : The case-driven approach
Example: Online Banking System
Development Iterations:
1. Inception Phase:
✓ Initial requirements gathering identifies the core use cases like "Login" and "View Account Balance."
2. Elaboration Phase:
✓ The architecture is designed, focusing on secure data handling, and the "View Account Balance" use case
is refined with details on data sources and display.
3. Construction Phase:
The system is iteratively built.
• Iteration 1: Develops the "Login" functionality, ensuring authentication works correctly.
• Iteration 2: Focuses on the "View Account Balance" use case, integrating with the banking backend.
• Iteration 3: Builds the "Transfer Funds" use case, including validation and transaction processing.
4. Transition Phase:
✓ The system is deployed to users, and feedback is gathered to refine existing use cases or add new ones, such
as "Schedule Recurring Transfers".
By focusing on these user-centric use cases, the Unified Process ensures that the final
system is functional, valuable, and meets the evolving needs of its users.
09-09-2025 Bunil K Balabantaray 206
Unified Process Model
❑ The architecture-centric approach
✓ The architecture-centric approach defines the form of the system and how it should be
structured to provide a specific functionality whereas the use case defines the
functionality.
❑ The iterative and incremental approach
✓ An iterative and incremental approach means that the product will be developed in
multiple phases. During these phases, the developers evaluate and test.
09-09-2025 Bunil K Balabantaray 207
Unified Process Model
09-09-2025 Bunil K Balabantaray 208
Unified Process Model: Phases
Phases:
We can represent a unified process model as a series of cycles. Each cycle ends
with the release of a new system version for the customers. We have four
phases in every cycle:
✓ Inception
✓ Elaboration
✓ Construction
✓ Transition
09-09-2025 Bunil K Balabantaray 209
Unified Process Model: Phases
❑ Inception
The main goal of this phase involves delimiting the project scope. This is where we define
why we are making this product in the first place. It should have the following:
✓ What are the key features?
✓ How does this benefit the customers?
✓ Which methodology will we follow?
✓ What are the risks involved in executing the project?
✓ Schedule and cost estimates.
09-09-2025 Bunil K Balabantaray 210
Unified Process Model: Phases
❑ Elaboration
We build the system given the requirements, cost, and time constraints and all the risks
involved. It should include the following:
✓ Develop with the majority of the functional requirements implemented.
✓ Finalize the methodology to be used.
✓ Deal with the significant risks involved.
09-09-2025 Bunil K Balabantaray 211
Unified Process Model: Phases
❑ Construction
This phase is where the development, integration, and testing take place. We build
the complete architecture in this phase and hand the final documentation to the
client.
❑ Transition
This phase involves the deployment, multiple iterations, beta releases, and
improvements of the software. The users will test the software, which may raise
potential issues. The development team will then fix those errors.
09-09-2025 Bunil K Balabantaray 212
Workflows in Unified Process
Below are the different workflows in the Unified Process:
✓ Requirements Workflow: Identifies, analyzes, and prioritizes system requirements, ensuring alignment with
stakeholder needs.
✓ Analysis and Design Workflow: Translates requirements into system designs, defining the architecture and
high-level structure of the system.
✓ Implementation Workflow: Implements system functionality based on design specifications, coding and
integrating components as needed.
✓ Test Workflow: Designs and executes test cases to verify system functionality, ensuring the software meets
quality standards.
✓ Deployment Workflow: Prepares and transitions the system for deployment, ensuring a smooth transition from
development to production.
✓ Configuration and Change Management: Manages configuration items and tracks changes, ensuring version
control and integrity throughout development.
✓ Project Management Workflow: Oversees project progress, resources, and schedule, ensuring timely delivery
and adherence to quality standards.
✓ Environment Workflow: Sets up and maintains development, testing, and production environments, enabling
efficient software development.
09-09-2025 Bunil K Balabantaray 213
Artifacts and Deliverables in Unified Process
✓ Artifacts and deliverables in the Unified Process (UP) are documents and work products
that are created and used throughout the software development process.
✓ These artifacts and deliverables help to capture and communicate important information
about the project, including requirements, design decisions, and implementation details.
Some common artifacts and deliverables in the UP include:
➢ Vision Document: Provides an overview of the project's objectives, scope, and stakeholders'
needs.
➢ Use Case Model: Describes the system's functionality from the user's perspective, detailing use
cases and actors.
09-09-2025 Bunil K Balabantaray 214
Artifacts and Deliverables in Unified Process
➢ Design Model: Represents the system's architecture and design, including class
diagrams, sequence diagrams, etc.
➢ Implementation Model: Provides detailed specifications for implementing system
functionality, often including code.
➢ Test Plan: Outlines the approach and strategy for testing the system, including test cases
and test scenarios.
➢ Deployment Plan: Describes the steps and considerations for deploying the system to
users or production environments.
➢ User Manual: Provides instructions and guidelines for users on how to interact with and
use the system effectively.
➢ Project Schedule: Specifies the timeline and milestones for project activities, helping to
track progress and deadlines.
09-09-2025 Bunil K Balabantaray 215
Roles and Responsibilities of Unified Process
Roles and Responsibilities of Unified Process
In the Unified Process (UP), there are several roles with specific responsibilities that contribute to the
successful development of a software system. These roles and their responsibilities include:
✓ Project Manager: Responsible for overall project planning, scheduling, resource allocation, and
coordination of activities. The project manager ensures that the project is completed on time,
within budget, and meets the specified requirements.
✓ Architect: Responsible for defining the overall architecture of the system, including its structure,
components, and interactions. The architect ensures that the system is scalable, maintainable, and
meets the desired quality attributes.
09-09-2025 Bunil K Balabantaray 216
Roles and Responsibilities of Unified Process
Roles and Responsibilities of Unified Process
✓ Analyst: Responsible for gathering and analyzing requirements from stakeholders and translating
them into detailed specifications. The analyst also helps to identify risks and propose mitigation
strategies.
✓ Designer: Responsible for creating detailed designs for the system, including class diagrams,
sequence diagrams, and other UML diagrams. The designer works closely with the architect to
ensure that the design aligns with the overall architecture.
✓ Developer: Responsible for implementing the system according to the design specifications. The
developer writes code, tests it, and integrates it with other components of the system.
✓ Tester: Responsible for testing the system to ensure that it meets the specified requirements and is
free of defects. The tester develops test cases, executes them, and reports any issues found.
09-09-2025 Bunil K Balabantaray 217
How to Adapt and Scale Unified Process to Different
Project Needs
How to Adapt Unified Process?
✓ Customize phases, workflows, and artifacts to fit the project's size and complexity.
✓ Adjust iteration lengths and team roles based on project timelines and requirements.
✓ Tailor documentation and deliverables to meet specific project needs and stakeholder expectations.
How to Scale Unified Process?
✓ Integrate UP practices with other methodologies like Agile or Scrum for larger projects.
✓ Establish governance structures and standardized processes for consistency across teams.
✓ Invest in training and skill development to ensure teams can effectively apply UP principles.
✓ Continuously evaluate and refine the adapted UP process based on feedback and performance
metrics.
09-09-2025 Bunil K Balabantaray 218
Benefits of Unified Process
Benefits Description
Early and continuous delivery of working software, leading to faster
Iterative Development
validation of requirements.
Identifying and addressing risks early in the project lifecycle,
Risk Management
minimizing project delays and budget overruns.
Focus on quality throughout the development process, resulting in
Quality Assurance
higher-quality software.
Active involvement and collaboration among stakeholders, ensuring
Stakeholder Collaboration
that the final product meets their needs.
Ability to accommodate changing requirements and project
Flexibility and Adaptability
09-09-2025
conditions, allowing for adjustments at each iteration.
Bunil K Balabantaray 219
Challenges of Unified Process
Challenges Description
Perceived complexity and resource-intensiveness, requiring
Complexity
additional time and effort, especially for small teams.
The associated overhead, including documentation and formalized
Overhead
processes, may increase project costs and reduce productivity.
Requirement for a solid understanding of UP principles and
Learning Curve practices, posing challenges for teams transitioning from
traditional methods.
Difficulty in managing project scope due to scope creep or changes
Scope Management
in requirements, requiring careful monitoring and adjustment.
Resistance to change from stakeholders or team members
Adoption Resistance accustomed to traditional methods, hindering successful
09-09-2025 implementation.
Bunil K Balabantaray 220