How much do you know about CMM

First introduce the emergence and development of CMM
In the mid-1980s, the international software industry attached great importance to the research of software process, because in the process of using software engineering methods to overcome the software crisis, people have realized that whether the software process is perfect or not is the software process. determinants of risk.
In November 1986, the Software Engineering Institute (SEI) of Carnegie Mellon University, in response to the request of the US federal government, studied the "Process Maturity Framework" for the US Department of Defense's ability to evaluate software contractors. ".
In September 1987, SEI developed a Software Capability Maturity Framework and Software Maturity Questionnaire to assess the capabilities of software vendors.
In 1991, SEI summed up the practical experience of the maturity framework and the first version of the maturity questionnaire, and launched the "Software Capability Maturity Model For Software (CMM) Version 1.0" based on this.
In 1993, after widely listening to the opinions of the US government and software experts from all walks of life, SEI launched the popular universal CMM 1.1 version in the world.
At present, CMM is the most popular and practical software production process standard in the world. It has been recognized by the international software industry and has become an indispensable part of today's enterprises engaged in large-scale software production.
In 1998, when draft C of SW-CMM2.0 was released and solicited for comments, the US Department of Defense's department in charge of CMM decided not to revise the separate SW-CMM, but to develop an integrated capability maturity model CMMI, which included software aspects. SW-CMM. In January 2002, the CMMI1.1 version was released.
First, the definition of CMM
CMM is the abbreviation of English Capability Maturity Model for Software -- "Software Capability Maturity Model" abbreviation SW-CMM.
The definition of CMM is: a modeled description of the definition, realization, quality control and improvement of each development stage in the software process process of a software enterprise/organization. This model is used to determine the software process capability of software enterprises/organizations and find out the most critical problems in software quality and process improvement, and provide guidance for the process improvement of enterprises/organizations.
The core idea of ​​CMM is to regard software development as a set of processes, and to carry out process management of software development according to the theory of statistical quality management, so that it can meet the requirements of engineering and standardization, and enable enterprises to better achieve business goals. It focuses on the management of software development and the improvement of software engineering capabilities, so CMM can be used as a guide for enterprise software process improvement, helping software development organizations to establish strict and standardized software development processes, and most effectively improve software engineering capabilities.
Second, the maturity level of
CMM CMM provides a framework of a software capability maturity model, which organizes the evolutionary steps of software process improvement into five maturity levels, laying a step-by-step basis for continuous improvement of software process. Each maturity level provides a platform for continuing the improvement process. The first level is actually a starting point, and any enterprise that is ready to evolve according to the CMM system is naturally at this starting point and from this starting point to the second level. Except for the first level, each level contains a set of process objectives, which are achieved by implementing a corresponding set of key process areas. When this set of objectives is achieved, a correspondingly important component of the software process is stabilized. Each level of the maturity framework achieved, a corresponding stable component of the software process is established, resulting in a certain degree of growth in the process capability of the software development organization.
The main characteristics of the five maturity levels of the CMM are as follows:
(1) Initial level - Undefined arbitrary process
Software processes are characterized by disorder and sometimes chaos. The software process definition is almost in a state of no rules and steps to follow, and the success of software products often depends on the efforts and opportunities of extremely individual people.
(2) Repeatable level—regularized process Basic project management processes
have been established that can be used to track costs, schedules, and functional characteristics. For similar application projects, there are rules to follow and repeat past successes.
(3) Definition level - standard, consistent process Software processes
for management and engineering have been documented, standardized, and formed a standard software process for the entire software organization. All projects are operated using standard software procedures with appropriate modifications that are consistent with the actual situation.
(4) Management level - predictable process There are detailed metrics for
software process and product quality. Software process and product quality are quantitatively recognized and controlled.
(5) Optimization level - the process of continuous improvement
Through quantitative analysis of various useful information from the process, new concepts and new technologies, the process can be continuously and continuously improved.
4. Key process areas of CMM
In CMM, each maturity level (except level 1) specifies different key process areas. If a software organization wants to achieve a certain maturity level, it must fully meet the requirements of the key process areas. different requirements to meet the objectives of each key process area. The so-called key process areas refer to a series of interrelated operational activities, which reflect several aspects that a software organization must focus on improving when improving the process. In other words, the key process areas identify the conditions that must be met to reach a certain maturity level. There are a total of 18 key process areas in the CMM, distributed in levels 2-5.
Level 2 (repeatable) has 6 key process areas, primarily related to establishing software project management controls.
A Requirements Management (Requirements Management, RM)
B Software Project Planning (Software Project Planning, SPP)
C Software Project Tracking and Monitoring (Software Project Tracking and Oversight, SPTO)
D Software Subcontract Management (Software Subcontract Management, SSM)
E Software Quality Assurance (Software Quality Assurance, SQA)
F Software Configuration Management (Software Configuration Management, SCM)
? Level 3 (definition level) has 7 key process areas, mainly related to project and organizational strategy. Enables the software organization to establish the internal details of the effective planning and management process in the project.
? Organization Process Focus (OPF)
? Organization Process Definition (OPD)
? Training Program (TP)
? Integrated Software Management (ISM)
? Software Product Engineering , SPE)
? Intergroup Coordination (IC)
? Peer Reviews (PR)
? Level 4 (management level) has 2 key process areas, the main task is to establish a software process and software product in an understandable quantitative way.
? Quantitative Process Management (QPM)
? Software Quality Management (Software Quality Management, SQM)
? Level 5 (optimization level) has 3 key process areas, mainly involved in the software organization and how to achieve continuity in the project Continuous process improvement issues. ? Defect
Prevention (DP)
? Technology Change Management (TCM) ?
Process Change Management (PCM ) Aspects: ? Software process assessment Use SW-CMM to analyze the current state of the software process and find out its strengths and weaknesses, which can be used by both software purchasing units and software product development units. ? Software process improvement According to the assessment results, determine the weaknesses of the current software process, and develop the software process from the lower level (level 2) to the higher level (level 3, 4, 5) in principle according to the order of the SW-CMM capability level, and formulate the software process Improved strategy. This has become the most important use of the current CMM, any software development organization can use. It should be noted that each level of CMM is the basis of its higher level. If the basic conditions are not met, it is impossible to reach a higher level. ? Software capability evaluation
 








This purpose is mainly because the software procurement unit needs to evaluate the software process capability of the bidder during the bidding process in order to reduce the risk of software procurement (including the risk of capital, cycle, and especially product quality). Of course, bidders can also conduct self-evaluation in order to "know themselves and others", but the results of self-evaluation are generally not used as a reliable basis for software purchasers.
2. Significance of software enterprises implementing CMM
? Standardizing software development process and management
At present many software enterprises in our country are still in a relatively chaotic and liberalized stage in terms of software development process. Even if some enterprises have some regulations, they have not actually implemented or not fully implemented, which is mainly related to the problem of market regulation.
? Standardize market competition
For Chinese software companies, CMM is not only a passport to the international market, but its significance lies in that, in the process of reaching CMM standards at all levels, the application of software engineering methods can achieve the purpose of improving software quality. . So as to standardize the market competition and improve the market competitiveness of software enterprises.
? Help enterprises to improve internal software process
This is the most characteristic place of CMM. The improvement of software process and the enhancement of software process capability can improve product quality, control cost, and increase labor productivity.
? Increase the international competitiveness of enterprises
This is more important for China's accession to the WTO. Different from ISO9000, CMM can clearly point out the level that software enterprises have achieved in terms of software process and software capabilities, and the position of software enterprises. Enterprises should strive to direction and ways to improve, so that the market competitiveness of enterprises can be enhanced. India is a prime example.
CMM is an internationally recognized "fact" standard and a passport for China's software industry to enter the international market.
? It can reduce the risk of software development
This is the original intention of the CMM model design, and it is also extremely beneficial to software companies.
4 ISO9000 and CMM

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326607375&siteId=291194637