Measurement of software quality
Absrtact: With the increasing complexity of software, the period of software development and the increasing cost, the guarantee and improvement of software quality become more and more important. With the development of the theory and research of software quality measurement, good measurement model and standard can effectively improve the efficiency of software development and software quality. This paper mainly introduces the concept and measurement model of software quality and the method of software quality measurement, and makes some prospects for the future development trend.
Keywords: Software quality, measurement model, development trend, software quality measurement 0. Introduction
In the past few decades, because of the quality problem of software, the failure of the whole system has been a common occurrence, which has caused great loss to human life safety and environment. The operating system of the IBM360 series machine developed by IBM in the United States in 1963 ~1966 years. The software system spent about 5 000 people a year of work, at most, 1000 people into the development work, write nearly 1 million lines of the source program. In spite of all the human and material input, the results were extremely poor. In June 1996, in less than a minute after the first launch of the Ariane 5th rocket, the rocket exploded due to software failure, resulting in huge economic losses and delays in the corresponding plan. Therefore, the quality problem of software has aroused people's attention, and the measurement of software quality has been paid attention to naturally.
Due to the rapid development of computer technology, data fusion technology, network technology and communication technology, the requirement of software performance and function is more and more high, and the measurement software quality has become an urgent problem to be solved. How to evaluate the quality of software by choosing the appropriate Software quality index system and determining the quantitative process and method of software quality is a key step for the evaluation, and it is of great significance to reduce the occurrence of software failure and improve the overall quality of software. 1. Theoretical basis of software quality 1.1 Definition of software quality
So far, the quality of software has not been a unified, unique definition, different organizations or applications may have different definitions. Ansi/ieee STD 729-1983 defines the quality of the software as: all of the features or characteristics related to the ability of the SOFTWARE product to meet the required and implied requirements; M.j.fisher is defined as a collection of all attributes that characterize the degree of excellence in computer software. Different people look at software quality issues from different perspectives and have different understandings. From the user's point of view, quality is to meet the needs of customers, from the developer's point of view, quality is consistent with the requirements, from the product point of view, quality is the intrinsic characteristics of the product, from a value point of view, quality is the customer is willing to buy. In a nutshell, software quality is "the degree to which software is consistent with the need for explicit and implicit definitions." Specifically, software quality is the degree to which the software complies with clearly described functional and performance requirements, the development standards clearly described in the documentation, and the implied features that all specialized software developers should have. 1.2 problems with software quality
M.j.fisher defines software quality as "a combination of all characteristics that describe the degree of excellence in computer software." That is to say, in order to meet the software's precise definition of function, performance requirements, conform to the documented development standards, we need to give or design some quality characteristics and combinations, as an important consideration in software development and maintenance. If these quality characteristics and their combination can be satisfied in the product, then the quality of this software PRODUCT is high.
The quality of software reflects the following three issues:
(1) Software requirements are the basis for measuring software quality, and software that does not meet the requirements does not have quality.
(2) Standardized standards define a set of development guidelines that instruct software personnel to develop software in an engineered way. If these development guidelines are not adhered to, software quality is not guaranteed.
(3) There are often implicit requirements that are not explicitly raised. If the software should have good maintainability. Software quality is not guaranteed if the software satisfies only those requirements that are precisely defined and does not meet these implicit requirements.
Software quality is a complex combination of various features. It varies depending on the application and varies with the quality requirements that the user proposes. Therefore, it is necessary to discuss various quality characteristics, as well as the criteria for evaluating quality, and to describe the various activities undertaken to ensure quality. 1.3 Software quality metrics model
The quality of the software consists of a series of quality elements, each of which is made up of a number of metrics, each of which is quantified by a number of measures. Quality measurement throughout the whole process of software engineering and after the delivery of the system, the measurement before the software delivery mainly includes the program complexity, the module's effectiveness and the overall program size, and the measurement after the software delivery mainly includes the residual defect number and the maintainability aspect.
Bum (Barry W. Boehm) presented a hierarchical model of software quality metrics for the first time in software risk management (software Risk Management). and McCall the software quality to the level that can measure, proposed FCM 3 layer model (see table below): Software quality factor (factor), measure standard (criteria) and measure standard (metrics), including 11 standard, divide into product operation Products operation, product revision, and product transfer (products transition).
Level |
Name |
Content |
First floor |
Quality essentials: A set of attributes that describe and evaluate the quality of the software. |
Quality characteristics such as functionality, ease of use, reliability, maintainability, portability, and sub-characteristics that result in refinement of quality characteristics |
Second floor |
Metrics: A combination of metrics that reflect a software quality element. |
Accuracy, robustness, security, communication effectiveness, processing effectiveness, equipment availability, operability, training, completeness, consistency, traceability, visibility, hardware system independence, software system independence, extensibility, commonality, modularity, clarity, self-description, simplicity, structure, completeness of documentation, etc. |
Third floor |
Measurement criteria: Customizable by individual units of use |
According to the software requirements analysis, summary design, detailed design, coding, testing, validation, maintenance and use of the stage, in order to develop a questionnaire for each stage, so as to achieve the quality measurement of the software development process. |
Table 1 Software quality measurement FCM model
One can simply describe the use of defect density (defect quantity/software size), defect detection rate (defect found at a certain stage at that time/all defects at that stage 100%), pre-release defect removal rate (defects found prior to release/defects found during the first 3 months of defect software found before release) 100%), Number of potential defects ((100% pre-release defect removal rate) defect density), average failure time (software duration/number of defects), average repair time (∑ defect repair time/defect quantity), etc. as a product quality indicator.
In software quality measurement activities, it is also necessary to establish a performance baseline as a starting point for the quality of software products, evaluation of software testing performance, and as a criterion for the adoption of system evaluations. The baseline of a defect assessment is a measure of the outcome of a class or organization, which may be common or typical, such as 10 000 row source program (LOC) is a benchmark for the size of the program, and 3 errors per 1000 lines of code are the benchmark for error detection rates in the test. Benchmarks are a great help in managing expectations, and the goal is to exist relative to the benchmark, which is the benchmark for defining acceptable behavior, as shown in table 3.
Entry |
Goal |
Low |
Defect Clearance Rate |
>95% |
<70% |
Defect Density |
Each function point <4 |
Each function point >7 |
Costs beyond the risk |
0% |
>=70% |
All demand function points |
<1% Monthly Average |
>=50% |
All program Documentation |
Pages per function point <3 |
Pages per function point >6 |
Table 3 Benchmarks and objectives for the quality of a software project
ISO 9126 summarizes software quality to 6 major features each feature includes a series of sub-characteristics its software quality model includes 3 layers, i.e. high-level: Software quality requirements Evaluation criteria (QSRC); Middle: Software Quality design evaluation criteria (SQDC); low level: Software quality metrics evaluation criteria (SMQC).
Hyatt (Lawrence E.hyatt) and Rosinbeck (Linda H. Rosenberg) in the software quality model and measures for identifying project risks and evaluating software quality (A software quality model and Metrics for The 3 most commonly used software quality models are compared in identifying Project risks and assessing software quality, and the basic situation is as shown in the following table.
Metrics/Goals |
Macaulay |
Bum |
ISO 9126,1993 |
Correctness (correctness) |
X |
X |
Maintainability |
Reliability (Reliability) |
X |
X |
X |
Completeness (Integrity) |
X |
X |
|
Availability (Usability) |
X |
X |
X |
Efficiency (efficiency) |
X |
X |
X |
Maintainability (maintainability) |
X |
X |
X |
Testability (testability) |
X |
X |
Maintainability |
Interoperability (Interoperability) |
X |
|
|
Adaptability (flexibility) |
X |
X |
|
reusability (REUSABLE) |
X |
X |
|
Portability (portability) |
X |
X |
X |
Clarity (Clarity) |
|
X |
|
Changeable (modifiability) |
|
X |
Maintainability |
Documentation (documentation) |
|
X |
|
Recovery Force (Resilience) |
|
X |
|
Easy to understand line (understandability) |
|
X |
|
Validity (validity) |
|
X |
can be maintained |
Functionality (functionality) |
|
|
X |
Universality (generality) |
|
X |
|
Economy (Economy) |
|
X |
|
Table 23 Comparison of software quality models 2. Measurement of software quality 2.1 Software quality measurement process
The software measurement process can be divided into five steps:
(1) Determine the quality measurement requirements of the software. This step is one of the most prerequisite and fundamental steps in software quality measurement, including the design of a set of possible quality factors, the optimization and determination of this set of factors and the establishment of a software quality model.
(2) Determine the software quality measure element. This is a key step in the software measurement process, and the selection of metric elements directly affects the quality evaluation results. First, based on the software quality metrics framework, the mass characteristics are decomposed into measures, and then the cost-benefit analysis is performed to optimize the selected set of measures based on the results of the measurement.
(3) Perform software quality measurement. This includes defining the measurement data collection process and collecting data, calculating measures based on existing data, and so on. It should be noted that the data collected should be based on properly defined metrics and models to ensure the correctness, accuracy, and accuracy of the data, so that data acquisition objectives should be set and meaningful issues defined before collection.
(4) Analyzing the results of software quality measurement. By analyzing and comparing the collected measurement data with the target values, the difference between the two is found. Determine those unacceptable metrics, analyze the measurements of those values that deviate from the key values in detail, and redesign the software quality metrics based on the results of the analysis.
(5) Validation of software quality metrics. The purpose of verification is to demonstrate that specific software quality factor values can be predicted through software products and process metrics. During the verification process, the software quality factor sample and the measurement sample must be determined, and then the statistical analysis of the measurement can be carried out to verify the effect of the measurement, using the relevant verification methods and standards. The entire concrete process is shown in Figure 1.
Figure 1 Software quality measurement process schematic 2.2 validation and prediction of software metrics
In the process of software development and maintenance, quantitatively evaluate the quality of software, it is necessary to measure the quality characteristics of software to determine the degree of quality characteristics required by software.
There are two types of software quality characteristic measurement: predictive and acceptance type.
Predictive measurement is to estimate the value of software quality by quantitative or qualitative method, in order to get a more accurate estimate of software quality. It is used in the software development process. And the acceptance measure is in the software development each stage inspection point, to the software request quality carries on the confirmation examination the concrete appraisal value, it can be regarded as a kind of confirmation to the forecast measure, is evaluates in the development process the forecast.
There are two types of predictive measures. The first one is called a scale measure, which is a quantitative measure. It is suitable for some features that can be measured directly, for example, the error rate is defined as: Number of Errors/kloc/unit time. It is generally measured as a relative amount. The second is called a two-dollar metric, which is a qualitative measure. It applies to some features that can only be measured indirectly, such as usability, flexibility, and so on. Generally, the quality characteristics of the development of a checklist, through the control of the inspection project, to determine whether a quality characteristics. For example, in the design and coding phase of the complexity of measurement, the use of scale measurement method to do. The measurement of module complexity uses the Mc-cabe loop metric. The basic idea is to estimate the complexity of the structure in the module based on the branch, loop, and order of the program, and give a checklist for evaluating the completeness of the design document, which is an example of the two-yuan metric. We should give a score for each item in the checklist, specify "1" when the information is present, or "0". The scores of all the items in the table are added, which means the results are measured. 2.3 Methods of software quality measurement
(1) Structure-oriented measurement method
The earlier measurement is based on the thought of structured programming and modularization, including the control flow diagram of the program, the operational complexity in the implementation, the transfer coupling between the methods and the process coupling. Among them, there is a large number of McCabe proposed cycle count complexity measurement, until today, has been improved, still adopted by practitioners. McCabe in 1976, the Theory of annular complexity (cyclomatic complexity) was proposed, which was based on graph theory, and the complexity of program was obtained by analyzing the control flow graph of program, which provided a good method to measure the complexity of program logic.
(2) Metrics for software reuse
In the late the 1990s, the research of software reuse arose. Reusable metrics mainly include reusable metrics and multiplexing metrics. Reusable metrics are primarily used to determine the reusability and quality of a component, which is primarily used to determine the effect of multiplexing on productivity, quality, and development time, and it can be measured at different levels, including component, product, project, and institutional levels. The measures for reuse are broadly divided into the following 4 categories: Economic model class, maturity model, reuse ratio model and reuse potential measurement model.
(3) Object-oriented measurement method
The further development of software measurement is mainly in the 80 and 90 's, especially in the 90 's, the research of software measurement has been developed in unprecedented. In 1989, Morris studied the measurement of object-oriented application, and Bieman discussed the measurement of software reuse under object-oriented condition. In 1993, Chinese Taiwanese scholar J-y Chen and J-f Liu proposed Chen Liu method to measure object-oriented software from eight aspects, such as operability, Complexity, reusability and properties of class. 1994 Chidamber and Kemerer published a set of object-oriented metrics based on an inheritance tree, which is called the C-K metric method, is used to measure the complexity of object-oriented design related to the influence of external mass properties. In the 1995, Brito and others put forward a set of metric algorithms called mood for object-oriented properties, and it gives six metrics of object-oriented software from four aspects such as encapsulation, inheritance, coupling and polymorphism. In 1998, Nesi and Querci proposed a new method of software complexity and size measurement.
By the year 2000, Arlene F proposed a method for predicting point metrics based on objects and their characteristics, creating a method for predicting workload and tracking productivity, with the core being the number of weighted methods per class (Weighted Methods per class WMC). In 2001, Victor and daily proposed a method called Spectre, which is based on component point metrics, to predict development task time and module size. In 2003, Washizaki proposed a measure of reusable components to measure the ease of understanding and reusability of object-oriented components. In the same year, Hastings and Sajeev introduced a new vector size Measure (VSM) method for measuring software size, software classification, software development results early in the software life cycle. 2005 Gyimothy A method of object-oriented measurement based on experience is proposed, which can effectively realize the error prediction measure of source code. In the same year, Del Bianco, using the empirical assertion method, extended the function point measurement method and applied it to object-oriented measures. 3. Summary
School Number |
Name |
Learning experience |
08212155103 |
Wangyun |
In this small paper writing, I learned that software quality measurement is a key part of the engineering discipline. The quality of a software is good and bad is decided by many factors, the flaw is certain to have. What we want to do is how to minimize the defect of software and maximize the efficiency of software operation. This requires us to be familiar with every process of software development and maintenance, to make constant assessments and revisions, and to make timely decisions. The development of software quality measurement has made it possible to quantify the evaluation of software quality by means of models and metrics. In this way, we can make decision according to the standard, make the software development and maintenance efficiency improve, and discover the defects of software in time. At the same time, in this small paper writing process, also let me have a deeper understanding of software engineering. Software Engineering introduces the development and maintenance process, and also instilled in us a concept of design and team work awareness. I will be in the future life and study, to develop their own design concepts and team work awareness. |
08212155101 |
Binana |
082121551 |
Hong Feifei |
082121551 |
Study of |
08212155129 |
Yu Zonghong |
With the development of information industry, people's demand for software quality is more and more high. So the measurement of software quality is more and more important, in the course of this paper, I learned a lot about software quality measurement knowledge, also know the software quality measurement of the importance of software development, the course has a deep understanding, Recognizing that software quality measurement is an indispensable part of software development, it can improve the efficiency of software development and maintenance, and discover some software bugs. Our group in cooperation in the case of the completion of this paper, let us recognize the importance of teamwork, at any time can not be separated from the team's cooperation, occasionally some of the discussion will let us reap a great deal, in the future we still inseparable from the team cooperation. |
4. References
[1]. Chengno, Wan Lin, Zhangwei. The software quality measurement method based on quantitative index analysis [J]. Beijing University Journal, 2007,34.
[2]. Guo British Army, once, Cheng, Feng Wei. A measurement method of software process quality [J]. Computer Engineering and Applications, 2008 (9).
[3]. Meihong, Shafiqul, Hong Wanghong, et. The component metrics of the Bluebird component library [J]. Chinese Journal of Software Science, 2000 (11).
[4]. Jianting. Introduction of a Software quality measurement method [J]. Information Systems Engineering, 1991 (1).
[5]. Luojianjun. C + + Programming tutorial. Beijing: Tsinghua University Press, 2002.