Unit 1: Software Engineering
Unit 1: Software Engineering
Software Engineering :
- rocess: The process in software engineering refersto the structured set of activities,
P
methods, practices, and transformations used to develop and maintain software
systems.
- Methods: Methods in software engineering are the specifictechniques and approaches
used to achieve various tasks within the software process.
- Tools: tools in software engineering refer to softwareapplications and platforms that
support the various processes and methods used in the development lifecycle. They
automate or facilitate different tasks, improving efficiency and accuracy.
- Quality Focus: Quality of focus in software engineeringemphasizes the importance of
ensuring that the software meets predefined standards and requirements, delivering
value to users and stakeholders.
.No Physical Wear and Tear: Unlike physical products,software doesn't degrade over time
1
due to physical wear and tear. It doesn't suffer from mechanical failures or deterioration of
physical components. However, it may require updates or maintenance to keep it compatible
with evolving environments or to fix bugs.
.Custom Build Nature: Software can be tailored tomeet specific needs or requirements,
3
making it highly customizable. Unlike mass-produced physical products, software can be
designed and developed according to the unique preferences and specifications of the end-user
or organization. This customizability allows for a wide range of applications across various
industries and domains.
.Intangibility of Software:Software is intangible, meaning it cannot be touched or perceived
4
through physical senses. It exists as digital data stored in electronic devices or accessed
through networks. Its intangible nature poses unique challenges in terms of quality assurance,
intellectual property protection, and user interaction design. However, it also offers flexibility,
scalability, and ease of distribution compared to physical products.
. Planning: This phase involves defining the project scope, objectives, requirements, and
1
constraints. Project planning also includes resource allocation, scheduling, and risk
assessment.
. Analysis: During this phase, the project team gathers and analyzes requirements from
2
stakeholders. This involves understanding end-user needs, workflows, and system
functionalities.
. Design: In this phase, the system architecture and software design are developed based on
3
the requirements gathered in the analysis phase. Design includes both high-level architectural
design and detailed design of software components.
. Implementation (Coding): This phase involves actual coding or programming based on the
4
design specifications. Developers write code according to coding standards and best practices.
. Testing: After coding, the software undergoes various types of testing to ensure its quality and
5
functionality. This includes unit testing, integration testing, system testing, and acceptance
testing.
. Deployment (or Implementation): Once the software passes all testing phases, it is deployed
6
to the production environment or released to end-users.
. Maintenance: After deployment, the software enters the maintenance phase where it is
7
monitored, updated, and modified to meet changing requirements or to fix defects.
. System Software
1
System software manages and controls hardware components, enabling the execution of
application software. It acts as a bridge between hardware and user applications.
xamples:
E
Operating Systems: Windows, macOS, Linux. These systems manage hardware resources and
provide services for application software.
Device Drivers: NVIDIA GPU drivers, printer drivers. They enable communication between the
operating system and hardware devices.
. Application Software
2
They are standalone software that solves a specific business need. Application software helps
users perform specific tasks or activities. It is designed for end-users to perform various
productive tasks.
Examples:
Word Processors: Microsoft Word, Google Docs. These applications are used for creating,
editing, and formatting text documents.
Web Browsers: Google Chrome, Mozilla Firefox. They allow users to access and navigate
websites.
. Scientific Software
3
Scientific software is specialized for conducting scientific research and analysis. It is used for
simulations, data analysis, and solving complex scientific problems.
Characterized by number-crunching algorithms.
Examples:
MATLAB: Used for numerical computing and simulations in engineering and scientific research.
Gaussian: A software for computational chemistry that enables the study of molecular structures
and reactions.
. Embedded Software
4
Embedded software is designed to operate hardware systems in specific applications. It is
typically found in devices, products, or systems to control features and functions for the user
and for the system itself.
Examples:
Automotive Systems: Engine control units (ECUs) in cars that manage engine functions.
Consumer Electronics: Firmware in smart TVs and microwave ovens that control device
operations.
. AI Software
7
AI software encompasses applications that simulate intelligent behavior, including learning,
reasoning, and self-correction.
Examples:
Virtual Assistants: Amazon Alexa, Google Assistant. They use natural language processing to
assist users with tasks.
II. lan the Solution (Software Design) : Planning the solution involves designing the
P
architecture and components of the software system, ensuring it meets all requirements
and can be efficiently implemented and tested.
- identifying if similar problems have been experienced before. This can save time and
reduce the risk of unforeseen issues.
- existing solutions and practices can provide valuable insights and potentially reusable
components, frameworks, or design patterns.
- Develop a design model that outlines the system architecture, component interactions,
and data flow. Tools like UML class diagrams, component diagrams, and ER diagrams
for databases are useful here.
III. arry Out the Plan (Code Generation): Implementing the solution involves writing the
C
code according to the design specifications and ensuring it adheres to the plan.
- erify that the code being written follows the design model and meets the specified
V
requirements.
- Regular code reviews and progress tracking.
- Unit tests, and code verification techniques to ensure each component functions
correctly as per the design specifications.
IV. xamine the Result (Testing and Quality Assurance): Testing and quality assurance
E
ensure that the developed software meets all requirements and functions correctly in all
scenarios.
- ensuring that they produce results that conform to the data, functions, and features
required as per stakeholder needs and requirements.
Project Management
efinition:
D
Project management is the application of knowledge, skills, tools, and techniques to project
activities to meet the project requirements. It involves planning, organizing, leading, and
controlling resources to achieve specific goals within a defined timeframe and budget.
MOI Teams
1. Motivation:
● Ensuring that team members are motivated is crucial for the success of any
project. This involves understanding individual and team needs, providing
incentives, recognizing achievements, and fostering a positive work environment.
2. Organization:
● Effective organization involves structuring the project team and resources
efficiently. This includes defining roles and responsibilities, establishing
communication channels, and creating a clear hierarchy to streamline
decision-making and workflow processes.
3. Innovation/Ideas:
● Encouraging innovation and the generation of new ideas helps the team to
overcome challenges and improve project outcomes. This involves creating an
environment where team members feel free to suggest improvements,
experiment with new methods, and think creatively.
4 P's Concept
1. People:
● The success of a project largely depends on the people involved. This includes
assembling a competent team, managing human resources effectively, and
ensuring good leadership and teamwork. Understanding the skills, strengths, and
weaknesses of team members is vital.
2. Product:
● The product aspect focuses on defining what is to be delivered. This includes
specifying the project scope, requirements, and deliverables. Ensuring that the
end product meets the users' needs and expectations is a primary goal.
3. Process:
● The process refers to the methodology and procedures used to complete the
project. This includes selecting appropriate project management methodologies
(e.g., Agile, Waterfall), defining workflows, and implementing best practices to
ensure efficiency and quality.
4. Project:
● Managing the project involves overseeing all aspects from initiation to closure.
This includes planning, executing, and monitoring project activities, managing
risks, handling changes, and ensuring that the project is completed on time,
within scope, and within budget.
onfiguration Management
C
Configuration Management (CM) is a discipline in software engineering that focuses on
systematically controlling and managing changes in software systems. It ensures that the
integrity and consistency of the product's performance, functionality, and design are maintained
throughout its lifecycle.
teps:
s
1. Configuration Identification: This involves identifying and defining the configuration items
(CIs) in the system, such as source code, documents, models, test scripts, and tools. Each CI is
uniquely identified to track its versions and changes accurately.
2. Configuration Control: This is the process of managing changes to the CIs. It includes
evaluating change requests, approving or disapproving changes, and ensuring that all changes
are documented.
3. Configuration Status Accounting: Recording and reporting the status of CIs along with the
changes. It involves keeping track of the versions of each CI, the status of change requests, and
the configuration of baselines at any given time.
4. Configuration Audits: reviews and inspections to ensure that the system is correctly built and
maintained according to the configuration documentation.
enefits:
B
1. consistency of the system
2. improving the product quality by managing changes and maintaining the integrity of the
system.
3. Traceability: CM provides traceability of changes, making it easier to track what changes
were made, who made them, and why. This is crucial for debugging, maintenance, and auditing
purposes.
Components of Sofware:
- Software refers to acollection of programs, data,and documentation that performs
specific tasks on a computer system. It includes bothexecutable programs and
non-executable datasuch as configuration files, documentation,etc.
- Components:
1. Program: The program consists of the executable code written in a programming
language. It includes the instructions that the computer executes to perform
specific tasks or functions.
2. D
ocumentation: This includes all the written materials produced during the
software engineering process, such asrequirementsspecifications, design
documents, user manuals, and technical documentation.Documentation
provides guidance and information about thesoftware'sfunctionality,
architecture, and usage.
3. O
perating Procedures: These are the guidelines and instructions fordeploying,
configuring, and operating the software. Operatingprocedures detail how to
install, run, maintain, and troubleshoot the software effectively.They ensure
that the software is deployed and operated correctly in different environments.
Unit 2:
- oftware process:A process is a collection of activities,actions, and tasks that are
S
performed when some work product is to be created.
- Activity: An activity aims to achieve a broad objective,such as communicating with
stakeholders and is applied in all projects regardless of the domain, size of the project,
or complexity of the effort.
- Action: An action includes a set of tasks that togetherproduce a significant/major work
product, like an architectural design model.
- Task: A task focuses on a specific, well-defined goal,such as conducting a unit test, and
produces a tangible result.
- Generic Process Framework:A process framework establishesthe foundation for a
complete software engineering process by identifying a small number offramework
activitiesthat are applicable to all software projects,regardless of their size or
complexity. In addition, the process framework encompasses a set ofumbrella
activitiesthat are applicable across the entire softwareprocess. It defines a set of core
activities, tasks, and deliverables common to most software projects. These activities are
typically linear, iterative, evolutionary, parallel, and overlapping.
- Generic Process Framework:
1. Communication: This activity involves establishing communication channels
between stakeholders, gathering and clarifying requirements, and managing
expectations.
2. Planning:This activity involves defining the projectscope, schedule, budget, and
resources. It also involves identifying risks and mitigation strategies.
3. Modeling:This activity involves creating models torepresent the software
requirements, design, and architecture. These models help stakeholders
understand the system and identify potential problems early on.
4. Construction:This activity involves developing, testing,and integrating the
software.
5. Deployment:This activity involves releasing the softwareto production and
providing ongoing support.
- mbrella Activities: These are overarching tasks that support and enhance the main
U
software development activities to ensure a successful project outcome.
1. S oftware Project Tracking: Monitoring project progress to ensure it stays on
schedule and within budget.
2. Risk Management: Identifying, analyzing, and mitigating potential risks that could
impact the project.
3. Software Quality Assurance: Ensuring that the software meets specified quality
standards through systematic processes and practices.
4. Technical Reviews: Evaluating the technical aspects of the software to identify
defects and improvements.
5. M easurement: Collecting and analyzing data to improve processes, productivity,
and quality.
6. Software Configuration Management: Managing changes to software artifacts to
maintain integrity and traceability.
7. Reusability Management: Promoting and managing the use of reusable
components to increase efficiency.
8. Work Product Preparation and Production: Preparing and producing necessary
documents and artifacts related to the software project.
very software team encounters various problems during the software development
E
process. Process patterns offer proven solutions to these problems, enabling teams to
address issues quickly and effectively. A process pattern describes a process-related
problem, identifies the environment in which the problem occurs, and suggests one or
more solutions. Below is a detailed explanation of process patterns, their types, and how
they can be documented and used.
well-defined template helps ensure consistency and clarity when documenting process
A
patterns. The template includes the following sections:
. **Pattern Name**: A meaningful name describing the pattern within the software
1
process context.
2. **Forces**: The environment where the pattern is encountered and the issues that
make the problem visible.
3. **Type**: The pattern type (stage, task, or phase).
4. **Initial Context**: Conditions under which the pattern applies, including prior
activities, entry state, and existing information.
5. **Problem**: The specific issue the pattern aims to solve.
6. **Solution**: Steps to implement the pattern and how it modifies the initial state.
7. **Resulting Context**: The conditions after the pattern has been implemented,
including exit state and developed information.
8. **Related Patterns**: List of directly related patterns, often represented hierarchically.
9. **Known Uses and Examples**: Instances where the pattern has been successfully
applied.
#### Example of a Process Pattern
- **Intent**: To build a prototype so stakeholders can better understand and specify their
requirements.
- **Forces**: Stakeholders have a general idea but cannot articulate specific
requirements.
- **Type**: Phase pattern
- **Initial Context**: Stakeholders identified, initial communication established, general
problem and scope understood.
- **Problem**: Stakeholders cannot specify detailed requirements.
- **Solution**: Develop a prototype to help stakeholders visualize and refine their
requirements.
- **Resulting Context**: Clearer, more detailed requirements from stakeholder feedback
on the prototype.
- **Related Patterns**: *Requirements Gathering*, *Stakeholder Meetings*
- **Known Uses and Examples**: Frequently used at the beginning of projects with
ambiguous requirements.
.Revision: Revision quality factors focus on theease with which a software system can be
1
modified or corrected. This category emphasizes the software's flexibility and maintainability.
- aintainability: Refers to the ease with which softwarecan be modified, updated, or
M
enhanced. It assesses factors such as code readability, modularity, and documentation
quality.
- Flexibility: Measures the extent to which softwarecan accommodate changes or
extensions without requiring major modifications to its structure or design.
- Testability: Evaluates how easily software can betested to ensure its correctness and
reliability. It considers factors such as the availability of test cases, test coverage, and
debugging capabilities.
. Adaptation: Adaptation quality factors focus on the software's ability to adapt to changes in its
2
environment or requirements.
- Portability: Measures the ease with which softwarecan be transferred or adapted to
different hardware, operating systems, or environments.
- Reusability: Evaluate the extent to which softwarecomponents can be reused in
diverse contexts or projects.
- Interoperability: Assesses the software's capabilityto seamlessly interact and operate
with other systems or components.
. Operation: Operation quality factors focus on the software's performance, reliability, and
3
efficiency during its execution or operation.
1. People:
- People are the individuals involved in the project, including project managers, team
members, stakeholders, and other relevant parties.
- The success of a project heavily depends on the skills, expertise, collaboration,
coordination, and commitment of the people involved.
- Project managers need to effectively communicate, motivate, and manage their team
members to ensure that everyone is aligned with project goals and responsibilities.
2. Processes:
- Processes refer to the methods, procedures, and workflows used to develop a
project/product.
- These processes are used to plan, execute, monitor, control, and close a project.
- Establishing clear and efficient processesis essentialfor ensuringconsistency,
quality, and predictability in project delivery.
- It involves a set of framework activities that remain the same for all project development
cycles (communication, planning, modeling, constructing, deployment)and supporting
activities called umbrella activities.
- This includes defining project objectives and goals, creating work breakdown structures,
establishing timelines, allocating resources, managing risks, and implementing change
control procedures.
3. Product:
- The product is the deliverable or outcome of the project.
- It could be a tangible product, such as a software application or a building, or an
intangible outcome, such as a marketing campaign or a research report.
- The product must meet the requirements and expectations of the stakeholders and
satisfy the needs of the end-users.
- Project managers are responsible for ensuring that the product is delivered on time,
within budget, and to the required quality standards.
4. Project :
- A project is a temporary endeavor undertaken to create a unique product, service, or
result within specified constraints, such as time, budget, and scope.
- he project serves as the container for all activities related to achieving the desired
T
outcomes. It provides the framework within which people, products, and processes
operate.
- Project management involves defining project objectives, scope, constraints, and
success criteria.
- Project managers oversee planning, execution, monitoring, and controlling activities to
ensure the project stays on track and delivers value to stakeholders.
OR
1. People:
- Importance: Effective software development requires skilled and motivated individuals who
work collaboratively towards common goals.
- Responsibilities: Software development managers play a crucial role in managing,
motivating, encouraging, guiding, and controlling team members.
- Management Tasks: This includes tasks such as resource allocation, team building,
providing leadership, resolving conflicts, and fostering a positive work environment.
- Focus on People: Recognizing that software development is fundamentally a people-centric
activity ensures that the human aspect of the process is prioritized, leading to higher
productivity, better quality, and increased satisfaction among team members.
3. Process:
- Definition: The process refers to the systematic approach or methodology used to produce
software.
- Activities: It comprises a collection of activities that lead to the development of the product,
including planning, requirements analysis, design, implementation, testing, deployment, and
maintenance.
- Efficiency and Quality: An efficient and well-defined process is essential for producing a
high-quality product within the allocated resources and schedule.
- Framework Activities: This includes the framework activities and software engineering tasks
necessary to accomplish the project objectives effectively.
4. Project:
- Definition: A project in software development is essentially a problem scheduled for solution.
- Characteristics: Projects are temporary endeavors undertaken to achieve specific objectives
within defined constraints, such as time, budget, and scope.
- Management Focus: Project management involves planning, organizing, leading, and
controlling resources to ensure the successful completion of the project within the specified
constraints.
2. Estimation:
- Estimation involves predicting the resources, time, and effort required to complete the
software project.
- Project managers use various estimation techniques, such as expert judgment, historical
data analysis, and parametric modeling, to forecast project parameters.
- Accurate estimation helps in setting realistic expectations, allocating resources effectively,
and managing project schedules and budgets.
4. Schedules:
- Scheduling involves creating atimeline and sequenceof activities required to complete
the software project.
- Project managers develop project schedules, includingmilestones, deadlines, and
dependencies, to ensure timely delivery of project deliverables.
- Schedules help incoordinating activities, allocatingresources, and tracking progress
against planned timelines.
Process Metrics:
efinition:
D
Process metrics are quantitative measures that assess various aspects of the software
development process itself. They focus on evaluating how efficiently and effectively the process
is being executed.
Purpose:
- The primary purpose of process metrics is to provide insights into the software
development process, identify areas for improvement, and support long-term process
optimization efforts.
- By collecting and analyzing process metrics, organizations can better understand their
development practices, identify bottlenecks or inefficiencies, and make data-driven
decisions to enhance overall productivity and quality.
. Overall Development Time: Measures total time from requirements gathering to product
a
deployment, indicating process efficiency and aiding in setting project timelines.
. Type of Methodology Used: Tracks software development methodology (e.g., Agile, Waterfall)
b
and related practices (iterations, CI/CD), guiding process optimization.
. Defect Density: Counts defects per unit of software size, revealing software quality and
c
highlighting areas needing improvement.
. Code Churn: Measures codebase change rate over time, providing insights into codebase
d
stability and maintainability.
. Lead Time: Gauges time from requirement identification to implementation and delivery,
e
assessing process agility in meeting customer needs.
rocess metrics are collected across all projects and over extended periods to provide
P
indicators for long-term software process improvement. They help in identifying areas for
enhancement and optimizing the software development process.
Process Metrics:
. Definition: Process metrics focus on evaluating the efficiency and effectiveness of the
1
software development process itself.
. Purpose: They provide insights into the development process, identifying areas for
2
improvement and guiding long-term process optimization efforts.
. Examples: Include overall development time, type of methodology used, defect density, code
3
churn, and lead time.
. Usage: They are collected across all projects and over extended periods to support process
4
improvement initiatives and enhance productivity and quality.
. Focus: Process metrics assess the execution of the development process, measuring factors
5
like time, methodology adherence, quality, and responsiveness.
Project Metrics:
. Definition: Project metrics focus on monitoring and controlling the progress, schedule, and
1
cost of individual software projects.
. Purpose: They help project managers track project progress, compare estimates with actuals,
2
and make timely adjustments to avoid delays and mitigate risks.
. Examples: Include metrics like time, cost, effort, schedule variance, cost variance, and
3
product quality.
. Usage: They are used by project managers to assess project health, identify potential
4
problems or risks, and make data-driven decisions to keep projects on track.
. Focus: Project metrics evaluate specific projects, measuring factors like time, cost, effort, and
5
quality against planned estimates and objectives.
In summary, process metrics focus on evaluating the software development process itself to
drive long-term improvement, while project metrics monitor individual project progress and
performance to ensure timely delivery and successful outcomes. Both types of metrics are
essential for effective software project management and continuous improvement efforts.
Project Estimation:
Factors:
- Cost
- Time
- Size and scope
- Risk
- Resources
. Empirical Estimation Technique: This technique uses historical data and mathematical
2
models to estimate project effort and cost.
a. COCOMO (Constructive Cost Model): A model that estimates the effort, cost, and
schedule of software projects based on their size and complexity.
- Organic Mode: For small, simple projects with a small team and well-understood
requirements. Developing a small utility software with clear requirements and a
small team.
- Semi-Detached Mode: For medium-sized projects with mixed experience levels
and moderately complex requirements.Building a medium-sized enterprise
application with a team of varying experience levels.
- Embedded Mode: For large, complex projects with strict constraints and
extensive hardware-software integration. Developing a real-time control system
for an aircraft, involving complex interactions with hardware.
b. P
utnam Model (SLIM - Software Life Cycle Management): Uses historical project data
and statistical techniques to estimate the time, effort, and resources required.Focuses on
the relationship between time to deliver, effort, and system size.
Unit 6:
ISO 9001:
ISO 9001 is an internationally recognized standard for Quality Management Systems (QMS).
Developed and published by the International Organization for Standardization (ISO), ISO 9001
sets out criteria for organizations to establish, implement, maintain, and continually improve
their quality management processes and systems.
. Process Orientation: ISO 9001 emphasizes a process approach to quality management. It
1
encourages organizations to identify and manage interconnected processes that contribute to
the organization's effectiveness and efficiency in meeting customer requirements.
. Customer Focus: Customer satisfaction is a central focus of ISO 9001. Organizations are
2
required to understand and meet customer needs and expectations, monitor customer
satisfaction, and continually improve customer-related processes.
. Risk-Based Thinking: The latest version of ISO 9001 (ISO 9001:2015) introduced a greater
4
emphasis on risk-based thinking. Organizations are required to identify and address risks and
opportunities that could affect the quality management system and its ability to achieve desired
outcomes.
. Documentation and Records: ISO 9001 outlines requirements for documenting processes,
5
procedures, and quality records to ensure consistency, traceability, and accountability within the
organization.
ISO 9001 certification is recognized globally and can provide organizations with various
benefits, including enhanced credibility, increased customer satisfaction, improved process
efficiency, and access to new markets.
Scrum Master:
he scrum master serves to facilitate scrum to the larger team by ensuring the scrum framework
T
is followed. He or she is committed to the scrum methodology, agile principles, and best
practices—but should also remain flexible and open to opportunities for the team to improve
their workflow. Here are the roles and responsibilities of a Scrum Master:
1. Facilitator:
- Facilitate Scrum events, including Sprint Planning, Daily Standups, Sprint Reviews, and
Sprint Retrospectives.
- Ensure that the Scrum team understands the purpose and objectives of each event and
follows the Scrum framework effectively.
2. Coach:
- Coach the Scrum team on Scrum principles, practices, and values.
- Help team members understand their roles and responsibilities within the Scrum framework.
- Provide guidance on agile practices, collaboration, and self-organization.
3. Servant-Leader:
- Serve the Scrum team by removing obstacles, impediments, and distractions that may
hinder their progress.
- Protect the team from external interruptions and ensure they have the resources and support
needed to succeed.
- Act as a servant-leader, focusing on the needs of the team and empowering them to make
decisions and solve problems autonomously.
S
● tandups: Lead daily meetings to keep everyone on track and address any hurdles.
● Iteration/Sprint Planning: Help the team set realistic goals for each sprint, preventing
overload and scope creep.
● Sprint Reviews: Gather feedback and insights from stakeholders to improve future
iterations.
● Retrospectives: Reflect on past sprints, identify areas for improvement, and plan
actionable steps.
● Board Administration: Maintain accurate task records on scrum boards and tools like Jira
for transparency.
● 1-on-1s: Address individual concerns and conflicts to foster better team dynamics and
understanding.
● Internal Consulting: Provide guidance and best practices to team members and
stakeholders for smoother collaboration.
● Reporting: Analyze project progress through charts and tools to make informed
decisions and optimize workflow.
gile Coach:https://agilemania.com/roles-and-responsibilities-of-an-agile-coach
A
An Agile Coach is a seasoned professional who guides organizations and teams in adopting
and implementing agile principles, practices, and methodologies effectively. Here are the roles
and responsibilities of an Agile Coach:
4. Facilitator:
- Facilitate agile ceremonies, such as Sprint Planning, Daily Standups, Sprint Reviews, and
Retrospectives.
- Enable collaboration, communication, and transparency within agile teams and across the
organization.
1. Background:
- CMMI was developed by the Software Engineering Institute (SEI) at Carnegie Mellon
University and is widely used across various industries, including software development,
engineering, and services.
- It builds upon previous maturity models, such as the Capability Maturity Model (CMM) and
the Software Capability Maturity Model (SW-CMM), to provide a comprehensive and integrated
approach to process improvement.
2. Framework:
- CMMI consists of a set of best practices organized into maturity levels and process areas.
Maturity levels represent evolutionary stages of process improvement, while process areas
define specific areas of interest within an organization's processes.
- There are five maturity levels in CMMI:
- Level 1: Initial - Processes are ad hoc and chaotic.
- Level 2: Managed - Processes are planned, executed, monitored, and controlled.
- Level 3: Defined - Processes are documented, standardized, and integrated across the
organization.
- Level 4: Quantitatively Managed - Processes are measured and controlled quantitatively to
achieve specific quality and performance objectives.
- Level 5: Optimizing - Continuous process improvement is institutionalized and focused on
achieving organizational goals.