Adaptive Neuro-Fuzzy Inference System for Measuring software quality Product

Computer systems are involved in many critical human applications today, so that a small error can lead to serious and dangerous problems. These errors can be from an error in the incorrect design of the user interface to an error in the program code. The success of a software product depends on several factors. Given that different organizations and institutions use software products, the need to have a quality and desirable Software according to the goals and needs of the organization makes measuring the quality of software products. an important issue for most organizations and institutions, To be sure of having the right software. It is necessary to use a standard quality model to examine the features and sub-features for a detailed and principled study in the quality discussion. In this study, the quality of Word software was measured by Adaptive Neural Fuzzy Inference System. In recent years, powerful systems called fuzzy inference systems on The basis of adaptive neural network (ANFIS) has been used in various sciences. Using the power of neural network training and the linguistic advantage of fuzzy systems, these types of systems have been able to realize the advantages of the two in terms of analyzing very powerful complex processes. Considering the importance of software quality and to have a good and usable software in terms of quality and measuring the quality of software during the study. It was applied at different levels to make the result of measuring the quality of Word software more accurate and closer to reality. In this research, the quality of the software product is measured based on the adaptive neural-fuzzy inference system in ISO standard. According to the results obtained in this study, it is understood that quality is a continuous and hierarchical concept and the quality of each part of the software at any stage of production can lead to high quality products.


Introduction
Computer systems are involved in many critical human applications today, so that a small error can lead to serious and dangerous problems. These errors can be from an error in the incorrect design of the user interface to an error in the program code. The impact of software on the world today is tremendous and overshadows almost every aspect of modern society (Adolph,2013). Software has shifted from being a highly specialized commodity to a common and essential commodity. This commodity in the software industry has resulted in increasing pressure to develop and deliver more high quality products and services amid cost and scheduling constraints that are stronger than ever. The American Heritage Dictionary defines quality as "a feature or attribute of something." Quality as a characteristic of something refers to the measurable properties of something, things that we can compare with known standards such as length, color, electrical properties, malleability, etc. (Modiri et al, 1388). Software metrics deals with the evaluation and measurement of different attributes of the software product and the software development process (Jibitesh, 2011). Software quality is one of the most important and significant issues in the software development life cycle. Software quality is a critical indicator for the production of high quality software that, while increasing productivity in software production, leads to the creation of powerful and invincible software. In order to evaluate and review the software, the features and specifications of the software must first be evaluated. In other words, it is necessary to identify the quality parameters and quality characteristics and sub-characteristics of the software and examine them. For a detailed and principled study in the discussion of quality, a standard quality model is used to examine the characteristics and subcharacteristics. There are different quality models, each of which has a specific application according to the situation and the issue, but in general, today there are two types of software quality models, quality models that evaluate a series of special features, such as Albercht model and Hallstead model. These models focus only on certain quality parameters and generally cannot assess the overall quality of the software. Integrated hierarchical models such as McCall and Boom, etc., as well as ISO series standard models such as ISO 9126, ISO 25000, etc. These integrated hierarchical models show all the factors and relationships that affect software quality. Gives. We can use these models to express and show the relationships between factors. It is important to note that most definitions of measurement targets and judgments are largely based on the mental factors of end users and customers and QA (Quality Assurance and Control Groups) groups, with significant deviations. Judging and measuring better and superior quality is a relative matter and varies among different human beings. The purpose of the measurement is a kind of ambiguity and uncertainty, which is better to obtain values that are appropriate and closer to reality.

2-ISO 25000 standard
Is a new set of international standards for measuring the quality of software Products. This standard details the design and management requirements of product quality requirements. The purpose of this standard is to clarify the requirements that must be introduced by the organization to ensure the successful identification of quality requirements and the implementation of evaluation. The ISO 25000 standard series includes 5 main parts: quality management, quality model, quality measurement, quality requirements and quality evaluation. This standard details the design and management requirements of product quality requirements. The purpose of this standard is to clarify the requirements that must be introduced by the organization to ensure the successful identification of quality requirements and the implementation of evaluation (Zubrow, 2004).

3-Adaptive Neuro-Fuzzy Inference System
One accurate measurement tool for ambiguous and nonlinear concepts is the Fuzzy inference system. In recent years, powerful systems called fuzzy inference systems on The basis of adaptive neural network (ANFIS) has been used in various sciences. Using the power of neural network training and the linguistic advantage of fuzzy systems, these types of systems have been able to realize the advantages of the two in terms of analyzing very powerful complex processes. Today, fuzzy systems based on adaptive neural network are one of the efficient methods in predicting and modeling. ANFIS model is ideal for describing and interpreting nonlinear systems. Most fuzzy inference systems include three types: Mamdani system, Sugeno system and Sokamoto system. In most cases, the Mamdani system is used, but the Sugno system has a better performance in calculations and has a definite output.
ANFIS, proposed by Jang (1993), is a hybrid model composed of a fuzzy and artificial neural network, where the nodes in the different layers of a feedforward network handle fuzzy parameters (Almorox,2017). This is equivalent to fuzzy inference systems (FIS) with distributed parameters. At its core, the technique splits the representation of prior knowledge into subsets in order to reduce the search space, and uses the back propagation algorithm to adjust the fuzzy parameters. The resulting system is an adaptive neural network functionally equivalent to a first-order Takagi-Sugeno inference system, where the input-output relationship is linear. ANFIS technique uses neural network learning algorithms and fuzzy logic to design nonlinear mapping between input and output space and has good training, construction and classification capabilities. It also has the advantage of allowing fuzzy rules to be extracted Gives expert numerical information or knowledge and naturally builds a rule-foundation. In addition, it can regulate the complex transformation of human intelligence into fuzzy systems. The learning rule is based on the error propagation algorithm with a view to minimizing the average squares of error between the network output and the actual output. In this project we used Matlab Software. In the first step, we imported the training data and testing data.in the second step we generated FIS system by using grid partitioning and in this step we can choose the type of membership function for the input and output. Next step, is training Phase. In this step we selected the type of optimization method, Error tolerance and number of epochs.in this project we used hybrid optimization method. The next step is testing phase and we can plot data against training data, testing data and checking data and record the plot of training and testing data set. The last step is evaluation. If the root mean square error is lower than reference root mean square error, the procedure is finished otherwise we must start again from the first step. we can see the percentage of output in Rule viewer section of ANFIS toolbox. In this project we used some important factors, subcharacteristics, and characteristics for measuring the Quality of word. The Quality characteristic which can be seen in Table 1.    The picture 3 shows the testing phase with Gaussian membership function in hybrid optimization error. The average testing error is 0.518.

Figure 3: Testing Phase for Gaussian mebership function
The picture 4 shows the testing phase with Triangular membership function in hybrid optimization error. The average testing error is 0.907.

4-Evaluate research results
At this stage, after completing the training and Testing Phase. Using the ANFIS technique, we can obtain the amount of software in three levels which was determined by MATLAB software in Rule viewer section.

4-1 First level results:
In the rule viewer of ANFIS, we can see the percentage of output of first layer. The two inputs of this layer are the important factors and the output is the sub-characteristic of our ANFIS model. In the figure 6 shows the percentage of learning-ability sub-characteristic which is 43 percent. In fig 5 shows the Sugeno model of learning ability subcharacteristic in ANFIS model.

4-3 Third level results:
In the rule viewer of ANFIS, we can see the percentage of output of second layer. The two inputs of this layer are the characteristics which are the output of second layer and the output is the Quality of our ANFIS model. In the figure 9 shows the percentage of Quality which is 48.9 percent Figure 9: Software Quality

5-Results and discussion
As mentioned before, after importing data and generating FIS system. Finally, after training Phase and Testing Phase and selecting type of optimization method, In the Rule viewer of ANFIS toolbox, we can see the amount of quality in each level of our Quality model according to important factors, subcharacteristics and characteristics of ISO Standard.
In this Proposed Model we selected Gaussian Membership function and Hybrid Optimization method and the percentage of our Quality model which is 48.9 Percent

6-Conclusion
Considering the important and significant role of software products in today's world and the increasing use of them in human life, both in the organizational dimension and individually and personally, and considering the fact that the quality of software products as an advantage It is a competition for the teams and organizations that produce these products. , It is necessary to use a standard quality model to examine the characteristics and sub-characteristics for a detailed and principled study in the discussion of quality. To get information about the quality of a software product, you must first consult with the customers or users of that software product, the developers and stakeholders, and the people who deal with it in some way. Therefore, in the discussion of quality, there is a kind of ambiguity and uncertainty. For this reason, in order to obtain clear and citationable results that can be used to review, analyze and compare the quality of software products, the use of Adaptive Neural Fuzzy Inference System to turn quality issues into quantitative seems necessary. Which is Using the power of neural network training and the linguistic advantage of fuzzy systems, these types of systems have been able to realize the advantages of the two in terms of analyzing very powerful complex processes.