Software Component Selection Based on Quality Criteria Using the Analytic Network Process

,


Introduction
With the passage of time software intensive systems are becoming larger and more complex which ultimately leads to the need to reuse previously developed components in order to raise productivity, reduce cost, and improve quality.Due to these economic considerations, there is a tendency towards components based software development, and studies show that recently such systems development is exceeding 40% of the total developed software systems [1].In component based software development, software development is characterized by piecing together some prefabricated components into a working software system.These prefabricated components must be well-defined, easy to comprehend, simple to accept, suitably general, and easy to replace.
Compositional approaches for software development have benefitted greatly from the emergence of component based software development which has subsequently generated considerable interest in research and development in industry standards for component interaction, domain specific architectures, toolkits, and many other related areas.However, it is also evident that all this research has not been able to construct large scale industrial systems from existing parts on an economical scale.One of the reasons can be a lack in the compatibility of existing components for a new system to be constructed and another reason can be our inability to locate the desired pieces when they do exist [2].
2 Abstract and Applied Analysis Literature [3,4] from the past ten years reveals that the integration process for open source and COTS components is quite different from custom software development.Custom software development is normally characterized by a traditional process consisting of requirements, design, development, test, and deployment activities whereas COTS based development is characterized by assessment, selection, composition, integration, test, and deployment activities [5,6].The assessment and selection are the vital steps for the selection of most suitable COTS components and connectors [7].The suitability for selection requires consideration of many factors for a particular tool in order to build an expert system [8].The software developer selects the framework for their projects which helps them to establish the best components model [9].
The contribution of this paper is to offer a methodology for the selection of software components.In the proposed method, analytic network process (ANP) developed by Saaty [10] has been used for software component selection.ANP applies feedback and dependencies with a structure of a network.In certain circumstances, where elements are dependent on each other and feedback is also needed, the ANP is sufficient.In ANP elements are grouped in a network of different clusters.The clusters consist of different elements or nodes connected in a network to each other.ANP uses pairwise comparison of elements in different stages and for different attributes.It finds the eigenvector (E.V.) of pairwise comparison.The advantage of ANP over other methods is that it allows tangible or intangible factors.The ANP is also the best approach for weight comparison.It is a powerful tool to deal with complex networks in decision making [11].
The rest of the paper is organized as follows.Next section presents related work.ANP method for software component selection is presented in Section 3. Quality attributes for selection of software components are discussed in Section 4. Section 5 presents ANP and ISO/IEC 25010:2011 mapping.Derivation of weights from expert opinion is presented in Section 6.The paper is concluded in Section 7.

Related Work
Several diverse methodologies are used and recommended by the software engineering community for the selection of COTS software components.Rikard et al. present the literature survey of different methodologies used for selection of COTS components and explain the practices of these methods [12].Kaur and Mann present an approach for evaluation criteria of reusable software components [13].The approach for component selection is part of the off-theshelf option (OTSO) method.Fahmi and Choi maintain that the earlier decision and knowledge on component selection reduce time and also help to guide whether the selection was successful or failed.They introduced case based reasoning (CBR) for the selection of components [14].Aamodt and Plaza present an overview of the basic issues related to case based reasoning [15].Cai et al. present a survey on software component technologies.They show their merits and demerits and the features which they inherit.They also proposed the QA model for component based software development.The method focuses on superiority analysis of components, maturity of components, customization of components, design and amalgamation of components, and their maintenance [16].
Boehm et al. developed a set of data for three activities which consists of COT assessment, COT tailoring, and glue code development and integration [17].Merceron and Pinna worked on verification of synchronous setting of components.The methodology is illustrated by using a protocol as a case study [18].Kwong et al. have proposed a model which has two objectives: maximizing the purposeful performance in the CBSS and maximizing the consistency and decreasing the blend of module of software [19].Velazquez et al. have proposed a study to find out the impact by using computer assisted software for measurement and selection of components [20].Horváth measures the complex network properties and describes the method with the help of some examples [21].Dias-Neto and Travassos designed a Porantim based strategy which selects model based testing for software projects [22].Liu and Moughal presented a dynamic multicriteria decision making procedure [23].Nazir et al. proposed a novel fuzzy logic based software component selection for the selection of software components.In the proposed model different fuzzy rules are designed and on the basis of these rules inputs are given to the model.It gives output and selects the highest priority components [24].
Jadhav and Sonar described the general methodology for software selection, the evaluation criteria, and hybrid based knowledge which assess the decision maker in the decision making for the selection of software [25].Cai et al. proposed quality assurance for both the component and the system of the component.ComPARE is used to assess real life component evaluation and validation [26].Ke et al. [27] proposed a method called the rCOS, used to focus on the model of a system at different levels, faultlessly, for the development of software process, and their integration, analysis, transition, validation, and verification.Zhiqiao et al. proposed an integrated decision model which assists the decision maker in the selection for component accomplishment and concurrently the best possible number of test cases for corroboration [28].Ayala et al. explore the industrial practice for component selection which provides early experimental basis to allow the understanding of research and manufacturing activities [29].Becker and Rauber have proposed evidence based approach which helps in component evaluation [30].The condition of functional homogeneity of components and high number of component can improve repeatability and reproducibility.
Lee et al. used component specification technique and definitions of some components are described.The operators defined are component version, functional requirements, nonfunctional requirements, and cooperating component.Z scheme is used for the specification of components [31].Alghabban and Qureshi proposed a component selection framework based on pliability metric for software quality.The method is validated by a sample of online questionnaire [32].Tang et al. proposed an optimization model to solve the problem of reusability and compatibility.The model evaluates software developers in selecting software components [33].
Panagiotou and Mentzas used KnowBench that supports the knowledge management process for the designing and implementation of software [34].Khan and Mahmood have proposed a component selection process that uses a graph model which in turn is signed for interdependencies of CBS and group related goals into clusters [35].
However, no previous work has been done on the selection of software components based upon attributes of quality criteria when there are dependencies among the attributes.Hence, to overcome this limitation of dependencies among attributes, the proposed ANP method is suggested that is well-organized and incorporates the quality attributes of ISO/IEC 25010:2011 [36].

Analytic Network Process for Software Component Selection
The motivation of the ANP method toward selection of software components is to the dependencies existing among attributes of the network of elements.The ANP method is very efficient in dealing with such phenomena.ANP has various applications such as [37][38][39].The details on ANP can be found in Saaty (1996) [10]; however, the main steps are summarized as follows. ( The problem is divided into a network of subproblems. (2) A qualitative scale of importance which is presented by Saaty is as follows: (equal importance allocate similarity to objectives), moderately important (somewhat good turn action above a new), reasonable plus, strong weight (powerfully good turn one action above another), strong plus, very well-built confirmed important (very powerfully favor above another), very, very strong, and excessive importance are given.The scale is converted into a quantitative scale of range between 1 and 9.
(3) Pairwise comparison is done in step (3).The criteria in the "i" row are compared with the criteria in the "j" column in the form of ( ).If the criteria of "I" row are superior to "j" column, then it is written as ( ), and ( ) is the reciprocal of ( ).
(4) The relative importance is calculated by finding the principal eigenvalue and the related eigenvector of the comparison matrix.The elements are normalized and are termed as weights of the criteria or subcriteria.
(5) After pairwise comparisons the consistency of the matrix is measured.
Priority vector "" is calculated as follows: where  max is the major eigenvalue of matrix "" and "" is its eigenvector.The value of "" is obtained by summing the column values of the original matrix multiplied by the normalized eigenvector.The principal eigenvector is obtained by the sum of all "." The "consistency index (CI)" and "consistency random (CR)" of pairwise comparison matrix are computed by the following equation: The random consistency (RI) table is given by Saaty [40] (see Table 1).
The value of consistency ratio (CR) must be less than 0.1; otherwise, normalize the matrix.
(6) A super matrix is obtained by combining the entire matrix in a whole.In the super matrix if the column sum is greater than 1, it is unweighted super matrix.Normalize the unweighted super matrix till its column values become equal to or less than 1.
(7) Convert the weighted super matrix (summarized matrix in which the column sum is less than or equal to 1) to the limit matrix.
(8) Decide the most appropriate alternative from limit matrix.The matrix is in the form shown in Figure 1.
Figure 2 visually shows the different steps involved in the ANP method.
Figure 3 shows the phases in the proposed method based on ANP method.

Quality Attributes for Selection of Software Component
Various models such as McCall et al. [41], Boehm et al. [42], FURPS [43], Chen et al. [44], ISO/IEC 9126 [45], and ISO/IEC 25010:2011 [36] e 11 e 12 ... e 1n1 e 21 e 22 ... e 2n2 e N1 e N2 ...  of ISO/IEC 27002 standard for the evaluation of security of software component [46].All of these approaches generally categorize quality attributes into the following three categories: (i) product operation: quality attributes expected in operations of final product such as correctness, efficiency, usability, and integrity; (ii) product revision: quality attributes are essential when making changes in the software such as maintainability, testability, and flexibility; (iii) product transition: quality attributes are essential when organization is transforming one product into another product such as portability, reusability, and interoperability.
Boehm et al. [42] devised their own quality model which is highly inspired by McCall's quality model.This new model adds further two qualities attributes, that is, understandability and modifiability.The overall quality attributes in this model are modifiability, portability, reliability, efficiency, usability, testability, and understandability.
Another quality model called FURPS quality model was initially applied by Unified Process which was later extended to FURPS+ with some additional quality requirements [43].The FURPS name was coined after the first letter of the five quality attributes that comprise this model which are functionality, usability, reliability, performance, and supportability.An ISO standard termed ISO/IEC 9126 describes software product quality in terms of internal quality, external quality, and quality in use [45].This model helps in identifying tradeoffs between various software product capabilities.This model establishes a one-to-one relationship between a quality attribute and its subattributes, thus making it more comprehensive and providing a wider coverage to various software capabilities and their tradeoffs.Liu [47] mentioned that informal methods in software engineering are facing great challenges in making certain software quality.On the other hand formal methods endeavor to deal with these challenges by using some mathematical notation.Ma et al. [48] present a systematic approach to metamodel quality assessment.The model effectively assesses the quality of metamodels and describes and classifies the quality attributes.Wang and Li present the topological structure of vague soft sets [49].Galli et al. work on the framework to trace software product quality and address ambiguity existing in quality measurement [50].
In the proposed method, the ISO/IEC 25010:2011 software product quality model has been used for the component selection.The model includes attributes which are effectiveness, efficiency, satisfaction, safety, and usability.

Mapping ANP and ISO/IEC 25010:2011
In the proposed method the selection of software components is based upon the quality criteria.We also know that for system quality criteria ISO/IEC 25010:2011 standard is used [36].ANP is based on (1) goal, (2) criteria, and (3) alternatives.
According to Saaty's algorithm, the fundamental scales for judgment are given that show us which component is more important than the other.Table 2 [40] also shows how much one component is important than the other.

Derivation of Weights from Expert Opinions
Weights for various parameters are a result of a conscious brainstorming between multiple domain experts.These experts have been actively involved in the development of various ERP solutions in nationally recognized universities.Initially, a set of 15 experts was chosen who were given a complete overview of the model and parameters which contribute to its formation.These experts after a long debate came up with the relative importance of each parameter in pairwise qualitative comparisons.A normalized geometric means of inputs from 15 experts was applied to overcome variations in opinion of experts while extreme values were excluded.This resulted in the relative consensus weight of each parameter.For validation purposes, initially four components, component 1 (1), component 2 (2), component 3 (3), and component 4 (4), were selected and inserted into an n * n matrix.Relative weights of components are shown as   , where "i" indicates the rows and "j" indicates the columns of the matrix.If the relative importance of component   is equal to component   than   = 1,   = 1.So, "1" will be inserted into the position where   is compared to   (main diagonal).As shown in the following matrix (5), we inserted "1" in 11, 22, 33, and 44: ) .Once the parameter weights were decided, the step-bystep ANP process for the selection of student registration components (proposed component selection) was as follows.This matrix (6) shows the comparison of components with respect to effectiveness Matrix (7) presents the normalization process involved in the process of pairwise comparison in matrix (6) as follows: ) .
Matrix (8) shows the normalized values derived from the normalization process in matrix (7) as follows: ( ) .
For finding the eigenvalues, the sum of the columns of the original matrix (weights derived from expert opinions) and the sum of the row of normalized (new) matrix are multiplied.The process is shown in Figure 5.
Find the consistency ratio by using the formula in (3).The same process of calculation has been done for the remaining matrices below.Matrix (9) shows the pairwise comparison of components with respect to efficiency as follows: Matrix (10) shows the pairwise comparison of components with respect to satisfaction as follows: Matrix (11) shows the pairwise comparison of components with respect to safety as follows: Matrix (12) shows the pairwise comparison of components with respect to usability as follows: ) .
The following values from matrices (13) to (16) Matrix ( 14) represents the pairwise comparison of component with respect to Component (2) The following matrix (15) represents the pairwise comparison of component with respect to Component (3) ) .
Figure 6 visually describes the final weights (output).
From Figure 6 it is clear that "component (1)" is the best choice for selection followed by "component (2)" followed by "component (3)" and then by "component (4)." This selection of component has been done based on the predefined ISO/IEC 25010:2011 quality criteria.The selected component is well functional and reliable for the purpose of its selection.

Conclusion
The selection of the most suitable software component can increase productivity, reduce cost, and improve overall quality to its full potential.These economic considerations of component based software development have ultimately resulted in considerable investment in the development of domain specific architecture, several toolkits, and industry standards development for components and interaction.However, despite all these efforts paramount to the success of the entire component based software development process, is the selection of the most suitable component(s) based upon some certain quality criteria.
In this research study, we evaluated the applicability of ANP method for the selection of software component(s) based on a set of quality attributes.ANP method is widely used for the problems of decision making in complex environments.Initially in the proposed method of software component selection the network of goal criteria and their associated alternatives were designed.The network was structured according to the criteria of ANP.These network structures, different components along with their criteria, help developer to easily understand the details of the components with their criteria.After the network structure designing weights were derived from experts' opinions.The pairwise comparison has been done for both the components and their criteria.When the calculations of the pairwise comparisons are done, the consistency ratio is also found.All the pairwise comparison is summarized in weighted and limit matrix.The limit matrix shows the final weight of the available software components and from this matrix developer can make decisions about the most appropriate and suitable software component.
The results of the proposed method clearly show that the method is quite beneficial and favorable in decision making regarding the most suitable software component selection.Hence, it is concluded that ANP is one of the best choices for software component selection.
have been presented.The works by McCall et al. have been created to organize heterogeneous quality attributes of software.Nazir et al. used the attributes

Figure 2 :
Figure 2: Graphical representation of the steps involved in ANP process.

Figure 3 :
Figure 3: Phases involved in the proposed method based on ANP.

Figure 4
visually describes ANP using ISO/IEC 25010:2011 quality model.Mathematical software component selection is represented as selection = ∑ ∈   ,
are used for the quality attributes with respect to components.This Efficiency Satisfaction Safety Usability E.V.
Efficiency Satisfaction Safety Usability E.V.