Selection of metrics in software quality evaluation

An expert method is proposed, both for assessment and for ensuring the software quality with a lack of information. Quality metrics (factors, indicators) are offered, which are most often used in assessing the software quality. Modified method for assessing the software quality is considered, which allows both improving the quality of software and evaluating the material costs necessary to improve the quality of software. This method can be applied to assessing the quality of various things, in particular, to assess the software quality, educational, medical and other services.


Introduction
The development of software products has its own specifics, which is manifested in the fact that, on the one hand, this is art [1], and on the other hand, this is production on an industrial scale and software products are not similar to other products of material production [2][3][4][5][6][7]. The software product industry is facing significant difficulties due to the complexity, imperfection, variety of computers and organizational, technological and economic factors in the development of software products on an industrial scale. One of the main strategies in the production of software products in economically developed countries is planning, ensuring optimal management and economic incentives for quality institutions, based on the desire to reduce the level of defects.
Various authors interpret the term "quality" differently. Some consider it a philosophical category and believe that it is primarily certainty identical with being, while others believe that quality means meeting requirements or being usable. However, almost everyone agrees that any quality has an infinite number of quantitative gradations. There are no qualities in themselves, but only things that possess infinitely many qualities, as well as sense organs that allow us to distinguish things in a qualitative sense [8][9][10].
As for the "quality of software", here the situation is similar to the situation with "quality". Each developer understands the quality of software products as his own, and in practice uses his own system of metrics (properties, factors, indicators) of quality. Nevertheless, over the past 30 years of program evaluation practice, a certain set of characteristics has been developed that is recommended both in our country and abroad for software evaluation. Such characteristics include reliability, efficiency, correctness, complexity, safety, and others. When analyzing the quality of software, two problems are important: evaluation and assurance of quality, as well as their relationship. Production of programs 2. Convolution procedure When solving problems in the field of quality of any things or services, there is usually not enough information to make the right decision. Therefore, in this case, a quality assessment is made with some error. An algorithm for assessing quality is proposed, which can be used to assess the quality of a fairly wide range of things and services. We consider a thing that is determined by a finite set of indicators. Each of the indicators has a normalized measure from the interval from 0 to 1. We consider the weighted sum S of these indicators with weighting factors. The difference from other quality assessment approaches is that the weighting coefficients are not explicitly calculated, but several restrictions are imposed on these coefficients. Firstly, it is assumed that the weighting coefficients take values from 0 to 1 and their sum is 1 (normalization condition). Secondly, it is assumed that the weights can take a finite number of values between 0 and 1, for example, in increments of 0.1 or 0.01 and others (discreteness condition). Thirdly, it is assumed that all indicators are arranged according to their importance for solving a specific task (priority condition). A relation is established between each two adjacent indicators. If Ki and Ki+1 have coefficients for Pi and Pi+1, then the following options are possible: 1) Ki ≥ Ki+1, in the case when the indicators Pi and Pi+1 are approximately the same or Pi is slightly more than Pi+1 ; 2) Ki > Ki+1, in the case when Pi is more than Pi+1 ; 3) Ki >> Ki+1, in the case when Pi is much more than Pi+1.
We find the weighted sum S of these indicators taking into account the listed conditions and options. It turns out that there are several such amounts. We find the average sum Sm, i.e. their arithmetic mean. It is possible to determine the variance and standard deviation. The resulting numerical value of Sm is an estimate of the quality of the thing. The procedure for obtaining Sm is called convolution.

Software life cycle
The software life cycle includes system analysis, program design, program operation and program support. After the emergence of needs and problem statement, a system analysis is carried out. At the end of the system analysis, a technical task is developed, after which the design of the programs is carried out. The result of program design is a software product. After this, the stage of operation of the programs and their support begins. Operation of the programs stops after a certain period of time [5].
The quality criteria at the design stage of software products include: • The criterion for the complexity of creating software products and checking its adequacy to the goals that are set for developers of software products. The complexity depends on the task and the algorithms used to solve it, data structure, software modules, and software products in general and other indicators. • The criterion for the correctness of software products and the correspondence of the functional capabilities of software products to the technical specifications and stated goals. • The criterion of the complexity of creating software products of a certain complexity and correctness. The complexity is determined by the qualifications of specialists, design technology and other indicators. • The quality criteria at the stage of operation of software products include: • The criterion for the functional complexity of software products, which is determined by the completeness of the solution and the variety of targets. • The criterion of reliability of functioning, which is determined by the duration of obtaining the correct (reliable) results or the probability of the correct output data that does not go beyond the established limits. • The criterion for the efficiency of using the resources of a computer system to solve specific problems of a given complexity and reliability. This criterion takes into account the amount of memory used and the duration of solving problems with various ways of using the resources of a computer system. • The criterion for the volume of source and resulting data, which will determine the quality of software products for interaction with subscribers and external relations.
The quality criteria at the stage of software product maintenance include: • The criterion for the ability to modernize software products is determined by the transparency of the structure of building software products and the structure of intermodular communications. • The criterion for the mobility of software products regarding changes in the structure, type and system of computer commands characterizes the ability to effectively use and maintain operating software products in the process of developing computer hardware. • The criterion of the complexity of the study and modification of programs at the maintenance stage is determined by the degree of documentation of software products, its structure, programming language and other indicators. • The criterion of time indicators of the life cycle of software products is determined by the duration of the design of software products, the duration of operation of the next version of software products and the duration of each subsequent modification of software products.

Expert method for software quality evaluation
Expert methods for evaluating the quality indicators of software products are one of the most important methods of quality control of software products. Such methods are usually expensive, and their use requires a lot of time and money. Therefore, it would be good to have a method that would quickly and efficiently allow a preliminary assessment of the quality of software products without unnecessarily expensive resources. After that, if desired, it would be possible to conduct a more accurate assessment of the quality of software products by more expensive methods. The proposed expert method for evaluating the quality of software products allows you to quickly evaluate the quality of software products to the software manufacturer itself, both in the process of designing and manufacturing software products, and after completing work on software products. The algorithm allows us to evaluate the numerical values of the following factors: practicality, integrity, efficiency, correctness, security, reliability, ease of use, evaluation, flexibility, the possibility of use in other conditions, mobility and the possibility of interaction.
A software product has a factor: • practicality if the software product is convenient for use; • integrity if unauthorized access to software and data is controlled; • efficiency if the required functions are performed without unnecessarily expensive resources; • correctness if the program meets the specifications and achieves the goals set by the user; • security if the software product allows avoiding danger; • reliability if the software product satisfactorily performs the necessary functions; • ease of use if the software product provides for the possibility of updating it in accordance with new requirements; • evaluation if it is possible to establish a criterion for the acceptability of a software product for a particular application; • flexibility if the effort required to modify the work program is negligible; • the possibility of use in other conditions if the reorientation of the program for other applications is possible; • mobility if the software product can be easily and efficiently used on computers of a different type; • the possibility of interaction if the effort required to connect one system with another is negligible.
The algorithm includes the following steps: • The formation of the names of indicators and factors.
• Formation of numbers of indicators that determine factors. • Determining the quality of a software product.
• Outputting results to a display screen or printing device.
• If the result is satisfied, then the end of the program. Otherwise, go to step 3.
We consider the following 26 indicators: operability, the ability to learn, communicative, input / output volume, input / output speed, access regulation, access control, memory efficiency, efficiency functioning, traceability, completeness, robustness, accuracy, error tolerance, consistency, simplicity, brevity, the availability of measuring instruments, redistribution, commonality, informational content, modularity, machine independence, independence from others software, unified communication procedures, unified data.
The user is invited to choose from 26 indicators those that must be taken into account when analyzing this software product. The software product has the following indicators: • operability, if the program operates in the prescribed modes and processes the required amounts of information in accordance with the documentation in the absence of problems with technical means; • the ability to learn, if there is documentation and programs such that the logic of the functioning of the program as a whole and its parts is understandable to specialists; • communicative, if the software product and documentation contain a description of the input and output data, the contents and presentation of which are clear to specialists and carry useful information; • input / output volume, if the amount of input and output information satisfies the user; • input / output speed, if the speed of input and output of information satisfies the user; • access regulation, if it is possible to use individual components of software products; • access control, if possible, to restrict access to resources and objects of the computer system in accordance with the required data protection model; • memory efficiency, if memory is used without unnecessarily expensive resources; If we choose K indicators, then we have F factors that characterize the software product. If the numerical values of the selected indicators are known, then, using the convolution procedure, it is possible to determine the numerical values of factors. If we apply the convolution procedure to the factors, we obtain a numerical quality estimate. If the quality obtained does not satisfy the user, then it is necessary to change the choice of criteria and / or the relationship of order of importance between them. After several changes, the program allows us to get the option that corresponds to the maximum value of the quality of the software product. The number of indicators and factors can be changed depending on the specific task. This algorithm can be used to assess the quality of software products in a first approximation.

Modified method of software quality evaluation
It is assumed that the user wishes to have a software product characterized by factors F1, F2,..., Fn with numerical values A1, A2,..., An. In addition, he has the means to produce a software product, which is determined by indicators K1, K2 6 criteria, upon convolution of which we obtain the desired values of the factors with a predetermined accuracy. The selection of one set of criteria values is carried out taking into account the minimization of material costs that are necessary to change the initial values of the criteria. The numerical value of product quality is defined as the convolution of the obtained factor values. If the quality does not meet the requirements imposed by the user, then the choice of criteria or order relations between the selected criteria should be changed. After several changes, the algorithm allows you to get the option that corresponds to the required quality value of the software product. The algorithm is designed in such a way that the number of indicators and factors can be easily increased or changed. With the help of this program, an expert assessment of the quality of a software product can be carried out as a first approximation.

Conclusion
Thus, an expert method for assessing the quality of software products has been developed, which allows, to a first approximation, using a computer with minimal time and money to carry out an expert assessment of the quality of software products. This approach allows you to evaluate and minimize the material costs that are necessary for the development of software products with predefined properties. The proposed expert method can be extended to other tasks. In particular, with the help of algorithms and programs developed on the basis of the proposed method, an expert assessment of the quality and correction of education of schoolchildren or students, the state of the oxygen transport system in the human body, medical and rehabilitation assistance, and sanatorium and resort services and other tasks can be carried out as a first approximation.