Maintainability assessment for software by using a hybrid fuzzy multi-criteria analysis approach

© 2017 Growing Science Ltd. All rights reserved.


Introduction
Maintainability is the procedure of finding and correcting mistakes or bugs within instance period and under specified resource (Gyimothy et al., 2005).It may also raise efficiency of software by adding several new features.In the spirited global markets, maintainability is becoming a substance of growing importance for many companies.Planning for maintainability may minimize changes during intend and decrease maintenance-related transform orders and rework in structure.It is observed that generally maintenance activity is based on some factors which belong to software: Analyzability, Modifiability, Stability, Testability and Understandability.Maintainability may also be measured as an internal feature if it is solely derived from software system.Several models have used maintainability including its factors as one of the major characteristics of software quality.The factors influencing maintainability are Analyzability, Modifiability, Stability, Testability and Understandability.
Multi-Criteria Analysis (MA) requires the decision maker (DM) to provide qualitative assessments.In addition, it provides many ways of disaggregating difficult problems, of measuring the scope to which options attain objectives, of weighting the objectives, and of reassembling the sections.Fortunately, many computer programs that are simple to use have been developed to support the technical features of MA.It establishes the performance of every alternative with respect to every criterion and the relative weight of the evaluation criteria with respect to the overall objective of the problem.As a result, uncertain, inaccurate and subjective data are usually present which make the decision-making process complex and challenging.The AHP of Saaty (1980) is a popular method for tackling MA problems involving qualitative data, and has successfully been applied to several actual decision states.An eigenvector method is used to solve the reciprocal matrix for determining the criteria and alternative performance.Most popular MA method is AHP, which was developed by Saaty in 1980, where alternatives and criteria are represent in hierarchical structure (Zhang, 2010).

Literature review
Various researchers have worked in this field to estimate the software maintainability.But maintainability estimation is much difficult for real time problems.Here some important soft computing techniques for maintainability estimation are analyzed in this section.Ghosh et al. (2012) proposed a method to compare the maintainability of object-oriented software system.The inputs for the method are size, complexity, coupling and inheritance which affect the software maintainability in different object-oriented programming languages.These inputs were determined on the basis of survey from different experts which consist of project managers, system developers, researchers and others who are working on this field.This method shows any program build in the object-oriented language C++ has highest degree of maintainability as compared to other languages.Goel et al. (2012) developed a methodology that facilitates the qualitative evaluation of object-oriented software systems based on fuzzy approach.Maintainability model as illustrated in ISO/IEC-9126 was taken as the support model.Object-oriented factors that carried out in recognizing plan and code characteristics in object-oriented software which in turn helps in assessing software maintenance effort had also been incorporated.The results indicate that improved evaluation accuracy has been achieved by applying this model.It also reveals the effectiveness of fuzzy layered approach in predicting objectoriented software maintainability; it can be a useful and practical addition to the framework of software maintainability assessment.Dubey et al. (2012) proposed a fuzzy model for maintainability estimation of object-oriented software system.The inputs are taken as coupling, inheritance, complexity, class, and number of children on which maintainability depends.Rule base were produced by expert's knowledge, with 243 rules for evaluating object-oriented software system.The planned model predicted the maintainability on two software systems.The results are validated by the AHP technique.A fuzzy catalog system utilizing AHP was developed to resolve the problem of software maintainability factors by (Chen & Liu, 2009).A new synthetic maintainability evaluation model based on fuzzy entropy theory was recommended by Cai et al. (2012).They analyzed the maintainability related design factors from regular perspective and planned a fuzzy set based approach to quantitatively assess design for the maintainability.
Jeet and Dhir (2012) planned a system using fuzzy inference approach which uses activity-based quality model to contract with software maintainability.A lot more similar studies can be found elsewhere in literature.Momeni and Zahedian (2014) presented that ANFIS can more correctly predict maintainability as compared to other models.For this they chosen four metrics and used them for training, validation and testing.Chidamber and Kemerer (1991) defined some initial suggestion for language-independent OO design factors and proposed six object oriented design factors to forecast the maintainability of OO software systems.This suite is further enhanced in 1994 and the factors suite was tested on systems developed in Smalltalk(TM) and C++ by Chidamber and Kemerer (1994).Two more factors were added into presented C&K factors suite by (Li, 1998).
The projected metrics group became quite accepted and evaluated analytically in a number of studies by different researchers which were conducted to authenticate C&K metrics suite.Many estimation models were constructed using statistical algorithms also by machine learning algorithms.

Hierarchical structure of software maintainability factors
Many researchers have used and developed a number of factors to forecast the maintainability of software.Here the various types of factors which influence the software maintainability as recommended by Kumar et al. (2012).So, let us take a short outline of most significant contributory factors affecting the maintainability.There are five basic factors Analyzability, Modifiability, Stability, Testability and Understandability that affects the maintainability of software (Table 1).These factors are affected by their sub factors as shown in Fig. 1.It describes the effort required for find out the defects; fault or causes of failures or, for analyze the parts to be customized

An α M
Raising the level of analyzability of the component increase the maintainability of the component.So make the components as analyzable as possible.

Modifiability (Mf)
Modifiability describes the ability to alteration or modifications of the software programs.

Mf α M
Adding more detail to the component will affect and motivate the maintainability in term of increase.

Stability (St)
Stability refers to the risk of unforeseen cause of modifications.

St α M
Stability helps in understanding and organizes the module.If stability will increase then maintainability will increase.

Testability (Te)
Testability defines the ability to authorize the alteration.

Te α M
It is an evaluation of how simple it is to make tests for the system and its mechanisms, and to perform these tests in order to verify if the criteria are met by ISO/IEC (1996).So that maintainability is directly influence by understandability.

Understandability (Un)
Understandability is a factor of maintainability that relate to the user's attempt for identifying the logical theory and its applicability.

Un α M
If a module is free from errors then it will be accurate and easy to understand.So that if understandability will increase then understandability will increase.

Material and methods
Various researchers have effort in this area to predict the software maintainability.But maintainability is more difficult for real time problem.MCDM is an approach which is associated for solving, planning, structuring and decision problems.The combination of multi-criteria analysis and pairwise comparison is used with similarity based approach.

Triangular fuzzy numbers
A fuzzy number may be symbolized as a function which is known as membership function.This membership function is signified between 0 and 1.The triangular fuzzy number (Gani & Assarudeen, 2012) is determined by triplet as (n1, n2, n3).The membership function µA(x) (Deng, 1999(Deng, , 2007) ) is show in Fig. 2 and describes as: where n1, n2 and n3 are the lower bound, most possible value, and upper bound respectively (denoted by l, m, u).

Fig. 2. Triangular membership function
For making quantitative assessment in pair-wise comparison, fuzzy numbers are used as shown in Table 2.
It is a combination of fuzzy pair-wise comparison and similarity based approach.Here software product as alternatives and identified factors are used as criteria.

Similarity-based approach
Deng (2007), Moradi and Ebrahimi (2014) introduced the similarity based approach for ranking process.In MCDA, TOPSIS approach is also used to denote the multi-criteria analysis decision problem.Performance index is considered for each alternative across all criteria by using TOPSIS (Hwang & Yoon, 1981).In similarity based approach, the overall performance index is calculated by using degree of similarity between each alternative and best solution via alternative gradient and magnitude.

The basic steps of Fuzzy Multi-criteria Analysis
Step 1 By using Table 1 define the fuzzy judgment matrix either by criteria importance (W) or alternatives with respect to criteria (Cj). where Step 2 The decision matrix (D) and weight vector (W) for MA can be calculated as: where where i = 1 2, . .., n; j = 1, 2, . .., m and k = m or n, and dij and wj are the resulting fuzzy performance of Ai (i = 1, 2, . .., n) with criterion Cj .
Step 3 Fuzzy performance matrix Z will be obtained with the decision matrix (D) by multiplying the weight vector.
Step 4 Find interval performance matrix, by determining a-cut on the performance matrix, where 0 where Step 5 The crisp performance matrix is calculated as following matrix- Since this k is a regular value and its value can be considered as k = 0, k = 0.5 and k = 1.These values are used to denote as pessimistic, moderate, or optimistic view, correspondingly for decision maker.So that, for calculating the crisp performance matrix, k = 0.5 will be using.
Step 6 Normalization process is applied on crisp performance to find the normalized performance  a Z as shown below. Where Step 7 Positive ideal solution and negative ideal solution is calculated as shown below.
Step 8 The similarity between each alternatives Ai and positive ideal solution and negative ideal solution is calculated as shown in Eqs.(15)(16). where Step 9 Finally, the overall performance index for every alternative across all criteria may be calculated as Step 10 Using overall performance indexes, the ranking will be taken for all alternatives.Larger index value Ai is favored over the lesser index value alternative.

An empirical study
For software maintainability estimation three software products S1, S2, and S3 are taken.Software is graded according to factors of maintainability using similarity based approach.First, we will apply the method on sub goal analyzability, modifiability, stability, testability and understandability and then ranking of software for maintainability.Fuzzy AHP and TOPSIS are applies as combined approach.In Figure 3 there is a hierarchical structure for maintainability estimation.According to the maximum performance index it is concluded that S1 is much maintainable.

Estimation of Analyzability
First, the method will be applied on analyzability and its factors.Here Analyzability is considered as the goal and traceability, simplicity, modularity and accessibility are taken as criteria, S1, S2 and S3 are the software product.In Fig. 4 a hierarchical construction of analyzability is presented.Here we will ranking the software based on analyzability by applying fuzzy multi-criteria analysis with similarity based approach.

Fig. 4. Hierarchical Structure of analyzability estimation
Step 1 By using the expert advice for all criterions fuzzy judgment matrix generates.These values are provided by experts who are working in this field for previous five years.All these matrices are, given below.
By using the Table 1, each assessment of fuzzy judgment matrices are indicate in the figure of triangular fuzzy numbers (l, m, u) as follow.
W By applying Eq. ( 6) Decision matrix D will be calculated as Step 2 Similarly for C2, C3, C4 we write D2, D3, and D And finally we find the decision matrix (D) as Step 3 Now, by applying Eq. ( 7) the fuzzy performance matrix Z is calculating by using fuzzy arithmetic.9), for this we using a = 0.5, then the interval performance is attained as shown below.Step 6 For obtaining normalized performance matrix, we need to normalize the crisp performance matrix by using Eq. ( 12) as follow.Step 7 Finding the positive and negative ideal solutions, by applying Eq. ( 14) on normalized performance matrix.Step 8 We find the degree of similarity between each alternative for each positive and negative ideal solution by using Eq. ( 15)-( 16) as shown below.0.975, 0.466, 0.757, 1.093, 0.605, 0.794, Step 9 Finally, the ranking of all alternative may be decided by using performance index as follow.P1=0.470,P2=0.299,P3=0.488 Step 10 Table 3 shows the outcome of all alternatives position by using performance index.According to the result, grading the first choice order of these software is S3, S1 and S2.Therefore, the best analyzability estimation is S3.

Estimation of modifiability
Similarly, performance index for modifiability is calculated according the alternatives and criteria as shown in Fig. 5.

Fig. 5. Hierarchical Structure of modifiability
Step 1 Fuzzy judgment matrix generates are given below.

W
Step 2 Similarly for C2, C3, C4 we write D2, D3, and D And finally we find the decision matrix (D) as

W
Step 3 By applying Eq. ( 7) the fuzzy performance matrix Z is finding using fuzzy arithmetic.9), for this we taking a = 0.5, then the interval performance is attained as given below.Step 5 Final crisp performance matrix is considered by using optimism index λ= 0.5 as reasonable view.Step 7 Finding the positive and negative ideal solutions, by applying Eq. ( 14) on normalized performance matrix.Step 8 We find the degree of similarity between each software for each positive and negative ideal solution by using Eq. ( 15)-( 16) as shown below..878, 0.217, 0.256, 3.197, 1.893, 1.567, Step 9 Finally, the ranking of all alternative may be decided as follow (by using performance index).P1=0.215,P2=0.102,P3=0.140

0
Step 10 Table 4 shows the results of all software and grading by considering performance index.According to the result, ranking the first selection order of software is S1, S3 and S2.Therefore, the best analyzability estimation is S2.

Table 4
Ranking of software for modifiability using performance index Software Performance index Ranking S1 0.215 1 S2 0.102 3 S3 0.140 2

Estimation of Stability
Similarly, performance index for stability is calculated according the alternatives and criteria as shown in Fig. 6.

Fig. 6. Hierarchical Structure of Stability
Step 1 The fuzzy judgment matrix generates are given as below.

W
Step 2 The decision matrix (D).The fuzzy judgment matrix (W) as

W
Step 3 Now, by applying Eq. ( 7) the fuzzy performance matrix Z is finding using fuzzy arithmetic.9), for this we using a = 0.5, then the interval performance is attained as given below.0.327, 0.355 7.194, 2.281, 2.651 Step 9 Finally performance index is calculated as below.
P1=0.455, P2=0.125,P3=0.118 Step 10 Table 5 shows the result of all software grading by using performance index.According to the result, ranking the first selection order of these alternatives is S2, S1 and S3.Therefore, the best analyzability estimation is S2.

Estimation of Testability
Similarly, performance index for testability is calculated according the alternatives and criteria as shown in Fig. 7.

Fig. 7. Hierarchical Structure of Testability
Step 1 The fuzzy judgment matrix given below.

W
Step 2 The decision matrix (D).The fuzzy judgment matrix (W) as

W
Step 3 Now, the fuzzy performance matrix Z is finding as below.
Step 5 Final crisp performance matrix is calculated by using optimism index λ= 0.5 as reasonable view.Step 7 Finding the positive and negative ideal solutions, by applying Eq. ( 14) on normalized performance matrix.Step 8 Find the degree of similarity between each alternative for each positive and negative ideal solution by using Eq. ( 15)-( 16) as shown below.Step 9 The performance index for the ranking of all software is calculated as follow.
P1=0.238, P2=0.181,P3=0.212 Step 10 Table 6 shows the result of all software ranking by using performance index.According to the result, ranking the first selection order of these alternatives is S1, S3 and S2.Therefore, the best Testability estimation is S1.

Estimation of Understandability
Similarly, performance index for understandability is calculated according the alternatives and criteria as shown in Fig. 8.

Fig. 8. Hierarchical Structure of understandability
Step 1 The fuzzy judgment matrix are given below.

W
Step 2 The decision matrix (D).The fuzzy judgment matrix (W) as '  a Z Step 6 For obtaining normalized performance matrix, normalizing the crisp performance matrix by using Eq. ( 12) as follow.Step 7 Finding the positive and negative ideal solutions, by applying Eq. ( 14) on normalized performance matrix.Step 8 Find the scale of similarity between each alternative for each positive and negative ideal solution by using Eq. ( 15)-( 16) as shown below.
0.467, 0.565, 0.276, 2.310, 6.989, 3.070, Step 9 Finally, the performance index of all software will decide as follow.P1=0.433,P2=0.143,P3=0.326 Step 10 Table 7 shows the result of all alternatives ranking by using performance index.According to the result, grading the first choice order of these alternatives is S1, S3 and S2.Therefore, the best understandability estimation is S1.

Estimation of Maintainability
In this section, maintainability performance index has been estimated by normalizing the performance indexes of analyzability, modifiability, stability, testability and understandability.Normalization of performance indexes is carried out by taking the average of all these five factors.Table 8 presents the overall ranking of software for maintainability by using performance index of all factors.According to the result, ranking the first choice order of these alternatives is S1, S3 and S2.Therefore, the best maintainability estimation is S1.

Discussions
A visualization of comparative ranking within factors (analyzability, modifiability, stability, testability and understandability) from data of Table 3 to Table 8, a comparative graph is generated as shown in Figure 9.This graph infer that software S3 is best for analyzability, S1is best for modifiability, S2 is best for stability, S1 is best for testability, S1 is best for understandability.Therefore, the best maintainability estimation is S1.A novel approach to rank the software for maintainability estimation is presented in this thesis.Maintainability estimation of software by ranking them based on their performance index resulted from operating a soft computing technique has emerged as a new concept in this area.This approach is based on factors assessments that affect the software maintainability.As we know there are number of factors that affect the software maintainability.In this research work we have identified and classified critical factors that affect the software maintainability along with their relationship to the software maintainability.Accordingly we present a hierarchy of factors to determine the best alternative for maintainability prediction by using multiple criteria analysis approach.We proposed the approach by which we have the best decision that promises greater maintainability of software.This approach provides a new direction for software maintainability based on hierarchy of factors assessment is present in literature, so comparison is not given.Importantly, this research work offered a significant benefit of the implementation process that are more readily identified, analyzed and a satisfactory study undertaken.

Fig. 9. Visualization of software ranking 6. Conclusion
In this paper, the MA analysis has been used for similarity based approach and proposed a new method for maintainability estimation.A similarity-based approach using fuzzy AHP and TOPSIS has been used at 2-level hierarchy to evaluate the identified significant factors that affect maintainability.Weight determination is a challenging task in decision making problems, in this paper, the pair-wise comparison matrix has been employed with fuzzy elements for this purpose.On the basis of generated performance index by TOPSIS, a ranking of candidate software is established for maintainability estimation.Maximum performance index is calculated for each sub goal and then for major goal.The approach is illustrated by using the example.
Final crisp performance matrix is considered by using optimism index λ= 0.5 as practical view For obtaining normalized performance matrix, normalizing the crisp performance matrix by using Eq.(12) as follow.
Final crisp performance matrix is given as below.After normalizing the crisp performance matrix we obtain normalized performance matrix as follow.Finding the positive and negative ideal solutions, by applying Eq. (14) on normalized perfor-The positive and negative ideal solution is calculated as below.0.999, By using normalizing the crisp performance matrix we obtain normalized performance matrix, by using Eq.(12) as follow.

Table 1 Maintainability relation with factors Factors Description Relation Relation Description Analyzability (An)
By taking Eq. (

Table 5
Ranking of software for stability using performance index

Table 8
Ranking of software for maintainability using performance index