0% found this document useful (0 votes)
31 views9 pages

Capability Maturity Model

Uploaded by

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

Capability Maturity Model

Uploaded by

piyushshorts8101
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

Capability Maturity Model (CMM) – Software Engineering

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.

What is the Capability Maturity Model (CMM)

Capability Maturity Model (CMM) was developed by the Software Engineering Institute (SEI)
at Carnegie Mellon University in 1987. It is not a software process model. It is a framework
that is used to analyze the approach and techniques followed by any organization to develop
software products. It also provides guidelines to enhance further the maturity of the process
used to develop those software products.

It is based on profound feedback and development practices adopted by the most successful
organizations worldwide. This model describes a strategy for software process improvement
that should be followed by moving through 5 different levels. Each level of maturity shows a
process capability level. All the levels except level 1 are further described by Key Process
Areas (KPA).

Importance of Capability Maturity Model

1. Optimization of Resources: CMM helps businesses make the best use of all of their
resources, including money, labor, and time. Organizations can improve the
effectiveness of resource allocation by recognizing and getting rid of unproductive
practices.
2. Comparing and Evaluating: A formal framework for benchmarking and self-evaluation
is offered by CMM. Businesses can assess their maturity levels, pinpoint their
advantages and disadvantages, and compare their performance to industry best
practices.
3. Management of Quality: CMM emphasizes quality management heavily. The
framework helps businesses apply best practices for quality assurance and control,
which raises the quality of their goods and services.
4. Enhancement of Process: CMM gives businesses a methodical approach to evaluate
and enhance their operations. It provides a road map for gradually improving processes,
which raises productivity and usefulness.
5. Increased Output: CMM seeks to boost productivity by simplifying and optimizing
processes. Organizations can increase output and efficiency without compromising
quality as they go through the CMM levels.

Key Process Areas (KPA)


Each of these KPA (Key Process Areas) defines the basic requirements that should be met by
a software process to satisfy the KPA and achieve that level of maturity.
Levels of Capability Maturity Model (CMM)
There are 5 levels of Capability Maturity Models. We will discuss each one of them in detail.
1.Level-1: Initial

 No KPIs defined.
 Processes followed are Adhoc and immature and are not well defined.
 Unstable environment for software development.
 No basis for predicting product quality, time for completion, etc.
 Limited project management capabilities, such as no systematic tracking of
schedules, budgets, or progress.
 We have limited communication and coordination among team members and
stakeholders.
 No formal training or orientation for new team members.
 Little or no use of software development tools or automation.
 Highly dependent on individual skills and knowledge rather than standardized
processes.
 High risk of project failure or delays due to a lack of process control and stability.

Level-2: Repeatable

 Focuses on establishing basic project management policies.


 Experience with earlier projects is used for managing new similar-natured
projects.
 Project Planning- It includes defining resources required, goals, constraints, etc.
for the project. It presents a detailed plan to be followed systematically for the
successful completion of good-quality software.
 Configuration Management- The focus is on maintaining the performance of the
software product, including all its components, for the entire lifecycle.
 Requirements Management- It includes the management of customer reviews and
feedback which result in some changes in the requirement set. It also consists of
accommodation of those modified requirements.
 Subcontract Management- It focuses on the effective management of qualified
software contractors i.e. it manages the parts of the software developed by third
parties.
 Software Quality Assurance- It guarantees a good quality software product by
following certain rules and quality standard guidelines while developing

3. Level-3: Defined

 At this level, documentation of the standard guidelines and procedures takes


place.
 It is a well-defined integrated set of project-specific software engineering and
management processes.
 Peer Reviews: In this method, defects are removed by using several review
methods like walkthroughs, inspections, buddy checks, etc.
 Intergroup Coordination: It consists of planned interactions between different
development teams to ensure efficient and proper fulfillment of customer needs.
 Organization Process Definition: Its key focus is on the development and
maintenance of standard development processes.
 Organization Process Focus: It includes activities and practices that should be
followed to improve the process capabilities of an organization.
 Training Programs: It focuses on the enhancement of knowledge and skills of the
team members including the developers and ensuring an increase in work
efficiency.

4.Level-4: Managed

 At this stage, quantitative quality goals are set for the organization for software
products as well as software processes.
 The measurements made help the organization to predict the product and process
quality within some limits defined quantitatively.
 Software Quality Management: It includes the establishment of plans and
strategies to develop quantitative analysis and understanding of the product’s
quality.
 Quantitative Management: It focuses on controlling the project performance
quantitatively.

Level-5: Optimizing
 This is the highest level of process maturity in CMM and focuses on continuous
process improvement in the organization using quantitative feedback.
 The use of new tools, techniques, and evaluation of software processes is done to
prevent the recurrence of known defects.
 Process Change Management: Its focus is on the continuous improvement of the
organization’s software processes to improve productivity, quality, and cycle time
for the software product.
 Technology Change Management: It consists of the identification and use of new
technologies to improve product quality and decrease product development time.
 Defect Prevention: It focuses on the identification of causes of defects and
prevents them from recurring in future projects by improving project-defined
processes.
ISO 9000:
ISO 9000 is a series of international standards developed by the International
Organization for Standardization (ISO) that provide guidelines for quality
management systems. It focuses on ensuring that organizations consistently meet
customer requirements, enhance customer satisfaction, and continually improve their
processes. ISO 9000 certification signifies that an organization has implemented
quality management practices that align with the ISO 9000 standards.

Key features of ISO 9000 include:

• Process Approach: ISO 9000 emphasizes the adoption of a process-oriented


approach to quality management. Organizations are encouraged to define and
document their processes, identify interactions between processes, and monitor and
measure their performance.

• Customer Focus: ISO 9000 promotes customer satisfaction by ensuring that


organizations understand customer requirements, communicate effectively with
customers, and deliver products or services that meet or exceed customer
expectations.

• Continuous Improvement: ISO 9000 advocates for a culture of continuous


improvement within organizations. It requires the establishment of mechanisms to
monitor and measure processes, collect feedback, and implement corrective actions to
address issues and enhance performance over time.

Engagement of People: Involvement of people at all levels is necessary to make the


quality management system (QMS) effective.

Improved Marketability: Being ISO 9001 certified can improve a company's image
and make it more attractive to potential customers or partners.
Object Oriented Testing :
Introduction
 Whenever large scale systems are designed, object oriented
testing is done rather than the conventional testing strategies as
the concepts of object oriented programming is way different from
that of conventional ones.
 The whole object oriented testing revolves around the
fundamental entity known as “class”.
 With the help of “class” concept, larger systems can be divided
into small well defined units which may then be implemented
separately.
 The object oriented testing can be classified as like conventional
systems. These are called as the levels for testing.

Object Oriented Testing : Levels / Techniques


 The levels of object oriented testing can be broadly classified into
three categories. These are:

Object Oriented Testing : Techniques

1. Class Testing

o Class testing is also known as unit testing.


o In class testing, every individual classes are tested for
errors or bugs.
o Class testing ensures that the attributes of class are
implemented as per the design and specifications. Also, it
checks whether the interfaces and methods are error free of
not.

2. Inter-Class Testing

o It is also called as integration or subsystem testing.


o Inter class testing involves the testing of modules or sub-
systems and their coordination with other modules.
3. System Testing

o In system testing, the system is tested as whole and


primarily functional testing techniques are used to test the
system. Non-functional requirements like performance,
reliability, usability and test-ability are also tested.

Benefits of Object-Oriented Testing:

1. Early Detection of Defects:

• Object-oriented testing facilitates early defect detection, reducing the cost of


fixing issues at later stages of development.

2. Improved Maintainability:

• Rigorous testing ensures that modifications to one part of the code do not
adversely affect other components, enhancing the system’s maintainability.

3. Enhanced Reusability:

• Proper testing validates the reusability of classes and objects, allowing


developers to confidently integrate them into various parts of the system.

4. Increased Quality and Reliability:

• Comprehensive testing leads to a higher-quality software product with


increased reliability, meeting user expectations.
S.No. objexcObject-Oriented Conventional
Testinghg TConventional
Testingesting
This emphasises testing a software
This emphasises performing isolated
1 system's functionality against
testing on certain objects or classes
predetermined criteria or requirements

It verifies the behaviour of each It verifies the behaviour of the entire


2
object or class in the system. software system.

Tests the interactions between Tests the interactions between software


3
objects or classes. components or modules.

It uses mock objects to simulate the


4 behaviour of dependent objects or It does not use mock objects.
classes.

It can be more time-consuming than It can be faster than object-oriented


5
conventional testing. testing.

Requires a thorough understanding Requires a thorough understanding of


6 of the system's design and the system's requirements and
implementation. specifications.
Involves testing at multiple levels,
Involves testing at multiple levels,
including unit testing, integration
7 including unit testing, integration
testing, system testing, and acceptance
testing, and system testing.
testing.
Can be more complex than Can be simpler than object-oriented
8
conventional testing. testing.

Focuses on testing the individual Focuses on testing the overall


9
behaviour of objects or classes. behaviour of the software system.

Can detect defects or issues that


May not detect all types of software
10 may not be detected by conventional
defects or issues.
testing.

Can be more effective in testing May be less effective in testing


11
complex object-oriented systems. complex object-oriented systems.

Involves creating test cases that


Involves creating test cases that cover
simulate different scenarios or
12 all possible scenarios or requirements
inputs that the object or class might
of the software.
encounter in the real world.
Requires the ability to create Requires the ability to write test cases
13 effective test cases that cover all that cover all predetermined
possible scenarios. requirements or specifications.
May require the use of specialized May not require specialized testing
14
testing tools and frameworks. tools and frameworks.

You might also like