DESIGNING INFORMATION SUPPORT FOR EVALUATING THE QUALITY

OF

Ключевые слова: принятие решений, нечёткая логика, встраиваемые системы, качество программного обеспечения, оценка программного обеспечения, тестирование программного обеспечения. Due to the growth of device functionality and, accordingly, the growth of software code sizes, quality is becoming an increasingly urgent problem. The literature uses many different ways to evaluate software quality. The main problem of all the proposed solutions is that they do not take into account the specific features of embedded software (for example, a small amount of memory in devices). To solve the problem of software quality, it is proposed to use fuzzy logic. The advantage of using fuzzy logic is that this approach will allow you to take into account the features of this type of software.
In this article, to solve the problem, we use literature describing fuzzy logic and the ISO 25010 standard to determine the main criteria for software quality. Zade [2] was one of the first to describe the basics of fuzzy logic. Gieseckea [3] examined various architectural constraints that should have served as the basis for software quality assessment. Siavvas [4] created the QATCH framework, which allows you to evaluate software quality based on customer requirements. Pasrija [5] used the choquet integral Approach to evaluate software quality. Ahrem [6] illustrates an example of the use of fuzzy logic in the decision-making system. Gorbachenko [7] is considering an ISO standard to create a software testing system. In the work of Klyuyev [8], fuzzy logic is used for a general assessment of the quality of software.
The advantage of fuzzy logic is that it allows you to take into account the features of a particular type of software. Such an approach has the advantage over others that increases the accuracy of the assessment.
The aim of this work is to develop a method for testing embedded software based on fuzzy logic.
This article consists of such sections. Introductionwhere basic information is presented. In literature review discusses the main sources that was used when writing the article. Methods, the methodology of building a system is considered in this section. The results section discusses the results for the methods section. The conclusions section contains conclusions regarding to this work. Literature review. In an age when embedded systems are becoming an increasingly large part of our lives, its quality should never be lower than ever. Now there are many new approaches to assessing the quality of software.
Zade [2] is one of the first to describe fuzzy logic. Gieseckea [3] considered various architectural constraints that can be used for reuse and to improve the quality of software. He proposed to use two classes of architectural restrictions: Pattern-based concepts and Stylebased concepts. The disadvantage of this approach is that it is always applicable. Since there are many programming languages and types of software, these architectures are not always possible to implement.
Siavvas [4] in his work proposed an adaptive framework for assessing the quality of the software QATCH (Quality Assessment Tool CHain). Based on the criteria of the ISO 25010 standard, this framework allows software evaluation. The disadvantage of this approach is that it is embedded in the program code. This approach does not take into account the limited resources of embedded systems and cannot be effectively used in such systems.
Pasrija [5] in his work suggested using Choquet Integral to evaluate software quality. This approach uses fuzzy numbers. But in this paper, a generalized example is used that does not take into account the features of each software.
The work of Ahrem [6] describes examples of the use of fuzzy logic in the decision-making system. Gorbachenko [7] described the criteria and methodology for assessing software quality.
Klyuyev [8] uses fuzzy logic to evaluate software quality.
Garusi [9] gave a full review of the literature on evaluating the quality of embedded software. In his work, Google scholar and scopus were used as the main source of articles. As a result, the sample articles were classified by this type: 1. As a result, five of the most cited articles were highlighted.
The Minhas [10] in his article uses Regression testing to determine the quality of embedded software. The main idea of this approach is that it does not value the software of embedded systems itself, but rather shows the influence of the new functionality on the quality of the system.
Seo [11] in their article developed a system for evaluating the performance of embedded system software based on a kernel hack. This system is only capable of evaluating performance; therefore, it is not inconvenient to show possible errors in the software of the embedded system and other problems. An additional disadvantage of this system is that it requires output to connect the system and evaluate it.
Burakov [12] described the criteria and methodology for assessing software quality. The downside of this work is that some criteria are not suitable for embedded systems.
The work of and Pronina [13] describes examples of the use of fuzzy logic in the decision-making system. Rudkovska [14] and Grinyaev [15] describe additional information about fuzzy sets. Those works describes the basic laws of fuzzy logic. This article uses ISO 25010, on the basis of which linguistic variables are taken. The disadvantage of this approach is that it does not take into account the features of the programming language and the type of system.
Methods. The quality of a system is the degree to which the system satisfies the stated and implied needs of its various stakeholders, and thus provides the value. Those stakeholders' needs are precisely what is represented in the quality model, which categorizes the product quality into characteristics and sub-characteristics. To test the quality of testing, special quality criteria are used. One of the sources of such criteria is the ISO25010 standard. ISO/IEC 25010 comprises the eight quality characteristics [1] shown in the following fig. 1.
According to the ISO standard, these criteria have the following meaning: Functional Suitability. This characteristic represents the degree to which a product or system provides functions that meet stated and implied needs when used under specified conditions. This characteristic is composed of the following sub-characteristics: functional completeness, functional correctness and functional appropriateness.
Performance Efficiency. This characteristic represents the performance relative to the amount of resources used under stated conditions. This characteristic is composed of the following sub-characteristics: time behavior, resource utilization and capacity.
Compatibility. Degree to which a product, system or component can exchange information with other products, systems or components, and/or perform its required functions while sharing the same hardware or software environment. This characteristic is composed of the following sub-characteristics: co-existence, interoperability.
Usability. Degree to which a product or system can be used by specified users to achieve specified goals with effectiveness, efficiency and satisfaction in a specified context of use. This characteristic is composed of the following sub-characteristics: appropriateness recognizability, learnability, operability, user error protection, user interface aesthetics and accessibility.
Reliability. Degree to which a system, product or component performs specified functions under specified conditions for a specified period. This characteristic is composed of the following sub-characteristics: maturity, availability, fault tolerance, recoverability.
Security. Degree to which a product or system protects information and data so that persons or other products or systems have the degree of data access appropriate to their types and levels of authorization. This characteristic is composed of the following sub- characteristics: confidentiality, integrity, nonrepudiation, accountability, authenticity.
Maintainability. This characteristic represents the degree of effectiveness and efficiency with which a product or system can be modified to improve it, correct it or adapt it to changes in environment, and in requirements. This characteristic is composed of the following subcharacteristics: modularity, reusability, analysability, modifiability, testability.
Portability. Degree of effectiveness and efficiency with which a system, product or component can be transferred from one hardware, software or other operational or usage environment to another. This characteristic is composed of the following sub-characteristics: adaptability, installability, replaceability.
For a more effective assessment of software quality, each criterion should be divided according to the degree of influence. To separate the criteria, the basic properties of the software of embedded systems should be determined.
An embedded system is a controller programmed and controlled by a real-time operating system (RTOS) using a special function in a larger mechanical or electrical system.
The main features of the embedded systems are:  real-time work (almost always);  various, often difficult, operating conditions;  autonomy of work (lack of operator, power restrictions);  high requirements for reliability and safety of operation;  limited resources;  critical applications (Dependable Applications) related to human health and life. Based on the features of embedded systems, quality criteria can be divided into the following categories:  Criteria of high importance: Performance Efficiency, Usability, Reliability;  Criteria of medium importance: Functional Suitability, Maintainability;  Criteria of low importance: Compatibility, Security, Portability. Fuzzy logic is used to evaluate the criteria. This approach is able to take into account how much each of the criteria is significant for determining the quality of software in embedded systems.
A fuzzy set is a class of objects with a continuum of grades of membership. Such a set characterized by a membership (characteristic) function that assigns to each object a grade of membership ranging between zero and one. The notions of inclusion, union, intersection, complement, relation, convexity, etc., extended to such sets, and various properties of these notions in the context of fuzzy sets are established. In particular, a separation theorem for convex fuzzy sets proved without requiring that the fuzzy sets be disjoint. L. A. Zadeh represented fuzzy sets algorithm in 1965. In that work for mathematical definition use , which a space point (objects), with a generic element of denoted by . Thus, = { }. A fuzzy set (class) in is characterized by a membership (characteristic) function ( ) which associates with each point 2 in a real number in the interval [0, 1], with the value of ( ) at x representing the "grade of membership" of x in . Thus, the nearer the value of ( ) to unity, the higher the grade of membership of in . When is a set in the ordinary sense of the term, its membership function can take oil only two values 0 and 1, with ( ) = 1 or 0 according as does or does not belong to . Thus, in this case ( ) reduces to the familiar characteristic function of a set [2].
In the theory of fuzzy systems, fuzzy sets are those that are on the axis of real numbers. Fuzzy number can determine the set , which is on the set of real numbers ⊆ , the membership function of which has the value μ A : [0, 1] and meets the conditions: 1. sup ∈ μ ( ) = 1, in other way the fuzzy set is normalized; 2.
Where L and R are functions that have the properties: The function decreases monotonically on the interval [0, +∞]. is the mean value of the fuzzy number, α is the deviation from the mean value on the left, β is the deviation of the value on the right. If α = β = 0, then the fuzzy number becomes clear.
To solve the problem of choosing an automated testing system, using a fuzzy inference, which determines the non-linear mapping of the input data vector into a scalar output value using fuzzy rules. A fuzzy logic output with a multidimensional output considered as a set of independent fuzzy logic outputs with a multidimensional input and a one-dimensional output.
Fuzzy inference consists of three components: a fuzzifier, a logical inference mechanism, and a defuzzifier. The fuzzifier determines the degree to which input values belong to fuzzy input setslinguistic variables.
The core of the inference mechanism is a rule base containing linguistic rules derived from static numeric data. Rule base consists of a set of rules in the format: where 1 , 2 , is linguistic variables, 1 , 2 , , is rules, is linguistic output. If more than one condition is used, then it is necessary to use a fuzzy operator to determine the result of applying this rule, that is, determine the degree of membership for a fuzzy set of outputs. To do this, use the minimum operators (3) and products (4): μ( ) = μ( 1 ) · μ( 2 ) · … · μ( ), where μ( 1 ) · μ( 2 ) · … · μ( )degree to which the input values and the application result belong to the corresponding fuzzy sets of linguistic variables.
A defuzzifier maps a fuzzy output set to a fuzzy set containing a range of output values. Defuzzifier converts to a single numerical value, convenient for further use. There are several methods of defuzzification: centroid, maximum and maximum centeroid method. In this paper, the centroid method is used.
In the centroid method, the center of gravity (centroid) is determined, which is the result of ̅. For continuously and discretely defined values of fuzzy numbers of a set, respectively: The scheme of the mechanism of logical conclusion is shown in fig. 2.
Results. An example of software evaluation is given as a result. To start the assessment, linguistic variables and their value of a fuzzy number should be determined.
Each of the criteria has such linguistic variables: = {bad, normal, good}, where = 1, 2, … , , where is total number of criteria.
Each criterion has its own range of values depending on the importance of this criterion. The ranges of values are presented in table 1. The assessments of experts according to table 1 are converted from numerical variables to linguistic ones. Based on linguistic variables, a rule base is constructed according to formula (5). Based on these rules, a final grade is derived. The final grade is also a linguistic variable and has its own meanings: = {bad quality, low quality, normal quality, above normal quality, high quality}. These linguistic variables have the following numerical values: According to the rule base, based on these values, the output score of this software is equal to: above average or in a garble value of 8.
Conclusions. This article describes the quality criteria and their impact on evaluating the quality of software for embedded systems, the basics of fuzzy logic and at the end describes an example of software evaluation. The described approach is noteworthy in that it allows to get an assessment of the quality of software based on its features, which allows you to improve the assessment of software quality.
This approach can be used not only to assess software quality. For example, in article [13], a system for spinning a solution based on fuzzy logic is used.
As a future work, writing a framework that, based on this issue, will evaluate the system.