Keywords: CMMI;; ; Software metrics; Software process capability; Measurement items; threshold value
introduce
The purpose of software measurement is to provide full visibility of project implementation for project management, so that the project manager can know the deviation between the actual progress of the project and the project plan, so as to take corrective measures and ensure the smooth progress of the project. Effective software measurement process promotes the improvement of the organization's software process capability. Software measurement is a quantitative representation and analysis method of software characteristics; Software metrics can be divided into software product metrics and software process metrics. Software product measurement (quantitative expression and analysis of software product characteristics) is a measurement independent of product production process; Software process measurement (quantitative expression and analysis of software process characteristics) is to provide managers with state information and guiding basis of product production process.
The elements of software product measurement are quality elements, evaluation criteria and measurement elements. Here, the software process metrics are mainly analyzed through demand metrics, scale metrics, progress metrics, workload metrics, risk management metrics and quality assurance metrics.
1 Three-tier architecture software product index
1. 1 quality factor
Software quality can be divided into six elements, which are the basic characteristics of software. Functionality: the degree to which the functions realized by the software meet the needs of users; Reliability: the degree to which the software can maintain its performance level under the specified time and conditions; Ease of use: for a software, the degree of efforts made by users in learning, operating, preparing input and understanding output; Efficiency: the effectiveness of software in using computer resources (including time) to achieve a certain function under specified conditions; Maintainability: the degree of effort required to modify the software to meet user needs, environmental changes or software errors; Portability: the ease with which software can be transferred from one computer system or environment to another.
1.2 evaluation criteria
Evaluation criteria include: accuracy, robustness, security, communication effectiveness, processing effectiveness, equipment effectiveness, operability, training, integrity, consistency, traceability, visibility, hardware system independence, software system independence, expansibility, universality, modularity, clarity, self-description, simplicity, structure and product file integrity.
1.3 metric element
According to the seven stages of software requirements analysis, overall design, detailed design, implementation, assembly test, confirmation test and maintenance, the measurement elements of each stage are formulated.
2 software process measurement based on CMMI
From the point of view of software enterprises, software measurement is to measure each element in the software life cycle through various metrics, provide various important information about the project for the project manager, and is also the basis of software evaluation activities.
SEI of Carnegie Mellon University proposed the following software measurement process architecture diagram:
Figure 1 software measurement process architecture
Let's analyze the above architecture.
Planning for the measurement process includes two activities, one is to confirm the scope, and the other is to define the program steps. Confirmation scope: define the size of measurement requirements to define the measurement process suitable for the enterprise's own needs. Because limited human and material resources need to be spent in the whole measurement process, it is unrealistic to be large and complete or not enough to reflect the actual results, which will affect the reliability of the measurement process and the development ability of enterprises. Define procedure steps: after determining the scope, define the steps of operation and measurement process, and file them in writing. The main work includes defining complete, consistent and operable measurement standards; Define data collection methods and how to record and save data; Define related technologies that can analyze measurement data, so that users can get substantial results according to the measurement data.
The implementation of the process includes two activities, one is data collection and the other is data analysis. Data collection: collect, record and store data according to the defined measurement operation; In addition, the data should be properly checked to confirm its validity. When carrying out this activity, it should be targeted. It should be noted that different projects or activities need different actual data, so it is very important to track the activity status. Data analysis: including data analysis, report preparation, report submission and review to ensure that the report is accurate enough. These procedures may need to be repeated, because the report may not provide useful help to users, or users may not understand the contents of the report. In both cases, feedback should be given and the measurement process should be restarted for data analysis.
Process improvement only includes one aspect of activities, that is, optimization process. Optimization process: used to dynamically improve the process and ensure that a structured method is provided to synthesize and deal with multiple problems related to process improvement. In addition, the activity should evaluate the measurement process itself, and the users of the report will provide feedback on the validity of the data. These feedbacks may come from other activities, but they will generally be integrated into the life cycle of the new round of measurement process, and the measurement process will be newly confirmed and defined.
In the realization project, after the project is started, the project measurement work is officially started. In the project planning stage, the project manager should make corresponding measurement plans according to the characteristics of the project, and formulate strategies for measurement data collection and quantitative analysis and control. During the implementation of the project, the relevant members of the project collect all kinds of measurement data according to the preset period, and fill in the relevant software measurement record table. According to the project measurement table, the person in charge of measurement compares and analyzes the project-level measurement data with appropriate methods, and obtains the measurement analysis report. Take corrective measures when necessary, such as modifying the project plan and conducting relevant training. At the end of the project, the person in charge of measurement and relevant personnel shall verify the measurement regulations and related documents, data collected by measurement, analysis results and reports, and then put them into the corresponding measurement database.
Determine the measurement project according to the actual software project situation. If we pay more attention to the project schedule, workload and quality, we can take the project schedule deviation as less than 25%, the project workload deviation as less than 20% and the defect repair rate as less than 90%.
2. 1 demand measurement
The stability of demand greatly affects the scale, workload and progress of the project. Unstable demand will bring negative effects, such as the decline of software product quality, the increase of project cost and the delay of project progress. Tracking and analyzing the stability of requirements can reflect the ability of project members to manage and control software requirements. At present, the demand analysis and control of domestic software projects are relatively weak, and developers have redoubled their efforts, but the user satisfaction is still unsatisfactory. Therefore, it is necessary to measure and manage the project requirements effectively.
Demand measurement items mainly include: total original demand, new demand at this stage, deleted demand at this stage and modified demand at this stage.
The number of demand changes at this stage, the total number of demand changes at this stage, the total number of demand changes at the end of the project, the total number of demand changes at the end of the project, the proportion of demand changes, the rate of demand realization, etc.
The change of demand may directly lead to the increase of scale, the delay of progress, the increase of cost and rework. Project members should regularly measure the changes of demand (including adding, modifying and deleting demand) and total demand, control the changes of demand and take corresponding actions. Figure 2 shows the stability of demand, and the two dotted lines respectively represent the change of total demand and the change of demand change times during the monitoring process. Assuming that the demand baseline review takes place during the third project monitoring, it can be seen from the figure that after the demand review, the total demand for the fourth time and the number of demand changes for the fourth, fifth and sixth times have obviously increased, and the demand tends to be stable after the seventh time. It shows that the demand is still unstable for a long time after the demand baseline review. There may be the following reasons: (1) Need
The original text of this article is insufficient, misunderstood, ambiguous, incomplete and incorrect. (2) Customer needs change frequently. Solution: When conducting demand research, fully tap the needs of customers and confirm them. For frequently changing requirements, project members may have to take measures, such as redistributing resources and reassessing the scale, workload and progress.
Figure 2 Trend diagram of demand change
2.2 Scale measurement
Scale is the basic measure of a project, the most basic factor that determines the cost of a software project, and the basis for estimating the workload and progress, calculating productivity, defect density and other project evaluation indicators. Effective estimation, tracking and control of the scale can not only make the project go smoothly according to the predetermined plan, but also ensure the realization of the organization's profit target.
Monitor the deviation between the actual scale and the estimated scale. Re-estimate the workload and progress if necessary.
In the milestone stage (such as demand stage and design stage), when there is a major demand change, or when summarizing the project situation, the project manager needs to analyze the scale change rate and monitor the deviation of the effective scale of the product.
If the scale change rate is within the upper and lower control limits, the measurement result is acceptable.
If the scale change rate exceeds the upper and lower control limits, analyze the reasons and take corresponding measures.
Measurement projects mainly include: estimated project scale, actual project scale, scale change rate, estimated project cost, actual project cost, reusable code lines, etc. You can choose according to the actual situation.
2.3 progress measurement
Ensuring the progress of software projects is the key to control project costs and win users' satisfaction. Software projects are prone to problems in progress. Quantitative and transparent management of project progress can find the delay of progress as early as possible and make corresponding adjustments quickly. Specific measurement items include: estimated project progress, actual project progress, schedule deviation, total days of milestone plan, actual total days of milestone, total days of milestone difference, total days of project plan, actual total days of project and total days of project difference. If the progress deviation exceeds the control limit, analyze the reasons, take measures and track the progress until the progress is controlled.
2.4 workload measurement
The purpose of tracking workload is to evaluate whether the project manpower is sufficient and whether the workload assigned to each stage is appropriate. The correct estimation and control of the workload is conducive to allocating appropriate human resources for the project and controlling the project cost. Statistically summarize the proportion of the workload of each stage and activity in the total workload, and compare it with the planned proportion, so as to find the deviation in project implementation; Summarizing the experience and lessons is conducive to gradually forming the best workload combination suitable for the characteristics of software enterprise development teams.
The specific method of workload measurement is to determine the basic measurement items of workload measurement, and the relevant personnel select the basic measurement items to fill in the work log, and count the basic measurement items at a certain moment to calculate the related derived measurement items. Relevant measurement items include: total workload of each activity, total workload of each stage, workload distribution of each activity, workload distribution of each stage, estimated (total) workload of the project, actual (total) workload of the project and workload deviation.
Figure 3 Analysis diagram of rework workload
Analysis: According to the data and charts, the rework workload is about 16%, which is within the normal range. The threshold has not been exceeded.
2.5 Risk management indicators
Identify and measure risks, and count the number of identified risks and risks that become future project problems. Risk measurement items mainly include: the number of risks identified at this stage, the number of risks transformed into problems at this stage, the total number of risks identified by projects, and the total number of risks transformed into problems by projects.
Risk management is to identify the potential problems of the project, so as to make a management plan, deal with these problems in the project life cycle, and reduce the impact and probability of potential problems. Risk measurement will provide reference data for risk management of future projects.
Figure 4 Project Risk and Problem Trend Diagram
2.6 Quality assurance indicators
Through the statistics of unqualified items in the process of software quality assurance, we can understand the degree of compliance of project members with software development process specifications, prevent defects and improve the process. By counting the workload of quality assurance activities, the workload data of project support activities can be accumulated.
Figure 5 does not conform to the solution trend chart.
The measurement items mainly include: the workload of QA activities, the total number of nonconformities, the number of nonconformities of various problems, the number of newly added nonconformities, the number of solved nonconformities, the number of currently unresolved nonconformities, the nonconformity resolution rate, the time delay of solving nonconformities, the workload of solving nonconformities, and the workload of cutting the organization's standard process set.
3 practice results
How to improve software quality has always been an important research direction in the field of software engineering. Quantitative management based on measurement is one of the most effective quality assurance methods at present, and many domestic software enterprises are also conducting research and practice in this field. The measurement analysis model has been used in several specific projects, and passed the SEI expert review and CMMI3 formal review. This paper makes some explorations and practices on software process improvement and software metric analysis, and describes the specific practices with specific software projects, which has certain practical significance for the application of software metric analysis in the future and the improvement of software process in China.
4 conclusion
In the next step, we should strengthen the construction and application of software metrics library (such as e-government application security software metrics library), and insist on software metrics analysis as a long-term mechanism to ensure the orderly and healthy development of software processes.