0% found this document useful (0 votes)
68 views132 pages

Module 1

The document outlines the principles and practices of Software Engineering (SE), emphasizing its role in designing, developing, testing, and maintaining reliable software systems. It details the core responsibilities of software engineers, the importance of structured development, and the various classifications of software. Additionally, it highlights the significance of software engineering in addressing real-world problems and preparing for tech careers.

Uploaded by

saimadhuribaip
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
68 views132 pages

Module 1

The document outlines the principles and practices of Software Engineering (SE), emphasizing its role in designing, developing, testing, and maintaining reliable software systems. It details the core responsibilities of software engineers, the importance of structured development, and the various classifications of software. Additionally, it highlights the significance of software engineering in addressing real-world problems and preparing for tech careers.

Uploaded by

saimadhuribaip
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

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.

30-07-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

30-07-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

30-07-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.

30-07-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).

30-07-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.).

30-07-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.

30-07-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
30-07-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.

30-07-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.

30-07-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
30-07-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.

30-07-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

30-07-2025 Bunil K Balabantaray 27


What?

30-07-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.

30-07-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.

30-07-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

30-07-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.

30-07-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.
30-07-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.
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.

30-07-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).
30-07-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.

30-07-2025 Bunil K Balabantaray 36


Classification of Software (Cont…)

It can be categorized into different types:

• Based on Application
• Based on Copyright

30-07-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.

30-07-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.
30-07-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

30-07-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.
30-07-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.

30-07-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.

30-07-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.

30-07-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.

30-07-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]
30-07-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

31-07-2025 Bunil K Balabantaray 47


Software Development Life Cycle (SDLC)
The SDLC Model involves six phases or stages while developing any software:

31-07-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
04-08-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.

31-07-2025 Bunil K Balabantaray 50


Stage 1: Planning and Requirement Analysis

31-07-2025 Bunil K Balabantaray 51


Stage 1: Planning and Requirement Analysis

01-08-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.

01-08-2025 Bunil K Balabantaray 53


Stage 1: Planning and Requirement Analysis

01-08-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.
01-08-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.”

01-08-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.
01-08-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.

06-08-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.

31-07-2025 Bunil K Balabantaray 59


Stage 2: Defining Requirements

31-07-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.

31-07-2025 Bunil K Balabantaray 61


Stage 3: Designing Architecture

31-07-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.
04-08-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.

31-07-2025 Bunil K Balabantaray 64


Stage 4: Developing Product

31-07-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.

31-07-2025 Bunil K Balabantaray 66


Stage 5: Product Testing and Integration

31-07-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.

31-07-2025 Bunil K Balabantaray 68


Stage 6: Deployment and Maintenance of Products

31-07-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.

31-07-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.

04-08-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.
04-08-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.
04-08-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.

05-08-2025 Bunil K Balabantaray 74


Classical Waterfall Model

06-08-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.

06-08-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.

06-08-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.

06-08-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.

06-08-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.

06-08-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.

06-08-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.

06-08-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.

06-08-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.

06-08-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.

06-08-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.
06-08-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.

06-08-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.
05-08-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.


05-08-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.

05-08-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.
05-08-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.
07-08-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.

07-08-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.
07-08-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.

07-08-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.

07-08-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.
07-08-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

07-08-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 :

07-08-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.
07-08-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.

07-08-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.
07-08-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.

07-08-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.

07-08-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.

07-08-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.

07-08-2025 Bunil K Balabantaray 106


Iterative Waterfall Model

Feasibility Study

Requirement Analysis
and Specification

Design

Coding and Unit Testing

Integration and
System Testing

Maintenance

07-08-2025 Bunil K Balabantaray 107


Iterative Waterfall Model

07-08-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.
07-08-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.

07-08-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.
07-08-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.

07-08-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.

07-08-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.
07-08-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.

13-08-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.

07-08-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.

13-08-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.
07-08-2025 Bunil K Balabantaray 118
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.

13-08-2025 Bunil K Balabantaray 119


Capability Maturity Model Integration (CMMI)
Capability Maturity Model (CMM)
✓ 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.
13-08-2025 Bunil K Balabantaray 120
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. 121
13-08-2025 Bunil K Balabantaray
Capability Maturity Model Integration (CMMI)

13-08-2025 Bunil K Balabantaray 122


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.

13-08-2025 Bunil K Balabantaray 123


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.

13-08-2025 Bunil K Balabantaray 124


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.

13-08-2025 Bunil K Balabantaray 125


CMMI Representation

13-08-2025 Bunil K Balabantaray 126


CMMI Model - Maturity Levels
In CMMI with staged representation, there are five maturity levels described as follows :

[Link] level 1 : Initial


1. processes are poorly managed or controlled.
2. unpredictable outcomes of processes involved.
3. ad hoc and chaotic approach used.
4. No KPAs (Key Process Areas) defined.
5. Lowest quality and highest risk.
[Link] level 2 : Managed
2. requirements are managed.
3. processes are planned and controlled.
4. projects are managed and implemented according to their documented plans.
5. This risk involved is lower than Initial level, but still exists.
6. Quality is better than Initial level.
[Link] level 3 : Defined
3. processes are well characterized and described using standards, proper procedures, and methods, tools,
etc.
4. Medium quality and medium risk involved.
5. Focus is process standardization.
13-08-2025 Bunil K Balabantaray 127
CMMI Model - Maturity Levels
[Link] level 4 : Quantitatively managed
4. quantitative objectives for process performance and quality are set.
5. quantitative objectives are based on customer requirements, organization needs,
etc.
6. process performance measures are analyzed quantitatively.
7. higher quality of processes is achieved.
8. lower risk
[Link] level 5 : Optimizing
5. continuous improvement in processes and their performance.
6. improvement has to be both incremental and innovative.
7. highest quality of processes.
8. lowest risk in processes and their performance.

13-08-2025 Bunil K Balabantaray 128


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
1. incomplete process - partially or not performed.
2. one or more specific goals of process area are not met.
3. No generic goals are specified for this level.
4. this capability level is same as maturity level 1.
[Link] level 1 : Performed
2. process performance may not be stable.
3. objectives of quality, cost and schedule may not be met.
4. a capability level 1 process is expected to perform all specific and generic practices for this
level.
5. only a start-step for process improvement.

13-08-2025 Bunil K Balabantaray 129


CMMI Model - Capability Levels

[Link] level 2 : Managed


3. process is planned, monitored and controlled.
4. managing the process by ensuring that objectives are achieved.
5. objectives are both model and other including cost, quality, schedule.
6. actively managing processing with the help of metrics.
[Link] level 3 : Defined
4. a defined process is managed and meets the organization's set of guidelines and
standards.
5. focus is process standardization.

13-08-2025 Bunil K Balabantaray 130


CMMI Model - Capability Levels

[Link] level 4 : Quantitatively Managed


5. process is controlled using statistical and quantitative techniques.
6. process performance and quality is understood in statistical terms and metrics.
7. quantitative objectives for process quality and performance are established.
[Link] level 5 : Optimizing
6. focuses on continually improving process performance.
7. performance is improved in both ways - incremental and innovation.
8. emphasizes on studying the performance results across the organization to ensure that
common causes or issues are identified and fixed.

13-08-2025 Bunil K Balabantaray 131


CMMI Model

13-08-2025 Bunil K Balabantaray 132

You might also like