Capability Maturity Model
Capability Maturity Model
The Capability Maturity Model (CMM) is a tool used to improve and refine software
development processes. It provides a structured way for organizations to assess their
current practices and identify areas for improvement. CMM consists of five maturity
levels: initial, repeatable, defined, managed, and optimizing. By following the CMM,
organizations can systematically improve their software development processes,
leading to higher-quality products and more efficient project management.
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).
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.
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
3. Level-3: Defined
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.
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.
1. Class Testing
2. Inter-Class Testing
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: