software reusability assessment using soft computing ...fumblog.um.ac.ir/gallery/847/6.pdf ·...

7
SOFTWARE REUSABILITY ASSESSMENT USING SOFT COMPUTING TECHNIQUES Yogesh Singh 3 Pradeep Kumar Bhatia 2 Omprakash Sangwan 1 1 Amity Resource Centre for Information Technology, Amity Institute of Information Technology, Amity University, Uttar Pradesh, India 2 Guru Jambheshwar University of Science & Technology, Hisar, Haryana, India 3 Prof. & COE, GGS Indraprastha University, New Delhi, India [email protected] [email protected] [email protected] Abstract Software reuse, widely used now a days, is the development of software using some existing software components. In this paper we have proposed a model based on four parameters: Changeabil- ity, Interface Complexity, Understandability of Software and Doc- umentation Quality for accessing software reusability levels using soft computing techniques viz. Fuzzy Logic, Neural Network and Neuro-Fuzzy. The proposed model using Neuro-Fuzzy technique is trained well and predicts satisfactory results with MARE 22% (21% for validation set 2) and MRE 0.007% (0.04 for validation set 2) when compared with other soft computing techniques. Keywords: Software reusability, Changeability, Interface Com- plexity, Understandability of Software, and Documentation Quali- ty, Fuzzy Logic, Neural Networks, Neuro-Fuzzy 1. Introduction Component based development has been widely accepted in both academia and industry for building reusable components. Industri- al observers suggest that a reuse strategy could save up to 20% of development costs [17]. Software reuse has been used as a tool to reduce the development cost and time. According to Caldiera & Basti the cost of developing the software from scratch can be saved by identifying and extracting the reusable components from already developed and existing systems or legacy systems [10]. The past decade has seen considerable progress in fulfilling this goal, both with respect of research ideas and industrial practices [11,22,38]. The requirement today is to relate the reusability attributes with the metrics and to find how these metrics collectively determine the reusability of the software component. Our approach, for iden- tification and evaluation of reusable software, is based on software models and metrics. As the exact relationship between the pro- posed attributes of reusability is difficult to establish, so Neural Network (NN) approach could serve as an economical, automate tool to predict reusability ranking of software by formulating the relationship based on its training [7,8]. But when one designs with NNs alone, the network is a black box that needs to be defined, which is a compute-intensive process. Fuzzy systems, on the other hand require thorough understanding of the fuzzy variables and membership function, of the input-output relationship, as well as the good judgment (expert judgment) to select the fuzzy rules that contribute the most to the solution of the application. Neural nets and fuzzy systems, although very different, have close relation- ship: they work with impression in a space that is not defined by crisp, deterministic boundaries [20]. With the objective of taking the advantage of both [18], we have proposed neuro-fuzzy ap- proach to economically determine reusability of software compo- nents in existing systems as well as the reusable components. In our study, we have considered four factors: Changeability (CH), Interface Complexity (IC), Understandability of Software (UOS) and Documentation Quality (DQ) for determining automatically software reusability level using soft computing techniques viz., Fuzzy Logic, Neural Network and Neuro-fuzzy. This paper is organized as follows: Section 2 summarizes the software reusability work studied. Section 3 presents the proposed factors affecting software reusability. Fuzzy model is proposed in section 4. Section 5 presents NN methodology used in paper. A Neuro-Fuzzy Based approach is described in section 6 and conclu- sion and future directions are presented in section 7. 2. Research Background Software reusability can measure the degree of features that are reused in guiding application. Reusing existing software compo- nents is a key feature in increasing productivity. The value of software reuse can be readily observed by the growth of the open source community of developers and reusers of software. The widespread reuse of existing software needs to be supported by tools that can assist both developers who create reusable software and users who reuse existing software. Measures are needed to meet the common needs of both developers and users of the soft- ware to measure the maturity of software for reuse can provide both groups with uniform support that meets the needs of both groups. Common measures are needed so that each group can as- sess software, at any point during its development, to determine extent to which the software is ready for reuse. Object-Oriented design and development has become a popular way of software development [5]. There are numbers of metrics available for measuring the reusability of object-oriented systems [6,13,19,21]. Aggarwal et al. proposed set of two object oriented code metric. These metric are evaluated on the basis of weyuker’s properties [2]. From the experimental results, metric presented ACM SIGSOFT Software Engineering Notes Page 1 January 2011 Volume 36 Number 1 DOI: 10.1145/1921532.1921548 http://doi.acm.org/10.1145/921532.1921548

Upload: vanlien

Post on 25-Mar-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software reusability assessment using soft computing ...fumblog.um.ac.ir/gallery/847/6.pdf · SOFTWARE REUSABILITY ASSESSMENT USING SOFT COMPUTING TECHNIQUES Yogesh Singh3 Pradeep

SOFTWARE REUSABILITY ASSESSMENT USING SOFT COMPUTING TECHNIQUES

Yogesh Singh3 Pradeep Kumar Bhatia2 Omprakash Sangwan1

1Amity Resource Centre for Information Technology, Amity Institute of Information Technology, Amity University, Uttar Pradesh, India 2Guru Jambheshwar University of Science & Technology, Hisar, Haryana, India 3Prof. & COE, GGS Indraprastha University, New Delhi, India

[email protected]

[email protected] [email protected]

Abstract

Software reuse, widely used now a days, is the development of software using some existing software components. In this paper we have proposed a model based on four parameters: Changeabil-ity, Interface Complexity, Understandability of Software and Doc-umentation Quality for accessing software reusability levels using soft computing techniques viz. Fuzzy Logic, Neural Network and Neuro-Fuzzy. The proposed model using Neuro-Fuzzy technique is trained well and predicts satisfactory results with MARE 22% (21% for validation set 2) and MRE 0.007% (0.04 for validation set 2) when compared with other soft computing techniques.

Keywords: Software reusability, Changeability, Interface Com-plexity, Understandability of Software, and Documentation Quali-ty, Fuzzy Logic, Neural Networks, Neuro-Fuzzy

1. Introduction

Component based development has been widely accepted in both academia and industry for building reusable components. Industri-al observers suggest that a reuse strategy could save up to 20% of development costs [17]. Software reuse has been used as a tool to reduce the development cost and time. According to Caldiera & Basti the cost of developing the software from scratch can be saved by identifying and extracting the reusable components from already developed and existing systems or legacy systems [10]. The past decade has seen considerable progress in fulfilling this goal, both with respect of research ideas and industrial practices [11,22,38].

The requirement today is to relate the reusability attributes with the metrics and to find how these metrics collectively determine the reusability of the software component. Our approach, for iden-tification and evaluation of reusable software, is based on software models and metrics. As the exact relationship between the pro-posed attributes of reusability is difficult to establish, so Neural Network (NN) approach could serve as an economical, automate tool to predict reusability ranking of software by formulating the relationship based on its training [7,8]. But when one designs with NNs alone, the network is a black box that needs to be defined, which is a compute-intensive process. Fuzzy systems, on the other hand require thorough understanding of the fuzzy variables and membership function, of the input-output relationship, as well as the good judgment (expert judgment) to select the fuzzy rules that

contribute the most to the solution of the application. Neural nets and fuzzy systems, although very different, have close relation-ship: they work with impression in a space that is not defined by crisp, deterministic boundaries [20]. With the objective of taking the advantage of both [18], we have proposed neuro-fuzzy ap-proach to economically determine reusability of software compo-nents in existing systems as well as the reusable components. In our study, we have considered four factors: Changeability (CH), Interface Complexity (IC), Understandability of Software (UOS) and Documentation Quality (DQ) for determining automatically software reusability level using soft computing techniques viz., Fuzzy Logic, Neural Network and Neuro-fuzzy.

This paper is organized as follows: Section 2 summarizes the software reusability work studied. Section 3 presents the proposed factors affecting software reusability. Fuzzy model is proposed in section 4. Section 5 presents NN methodology used in paper. A Neuro-Fuzzy Based approach is described in section 6 and conclu-sion and future directions are presented in section 7.

2. Research Background Software reusability can measure the degree of features that are reused in guiding application. Reusing existing software compo-nents is a key feature in increasing productivity. The value of software reuse can be readily observed by the growth of the open source community of developers and reusers of software. The widespread reuse of existing software needs to be supported by tools that can assist both developers who create reusable software and users who reuse existing software. Measures are needed to meet the common needs of both developers and users of the soft-ware to measure the maturity of software for reuse can provide both groups with uniform support that meets the needs of both groups. Common measures are needed so that each group can as-sess software, at any point during its development, to determine extent to which the software is ready for reuse. Object-Oriented design and development has become a popular way of software development [5]. There are numbers of metrics available for measuring the reusability of object-oriented systems [6,13,19,21]. Aggarwal et al. proposed set of two object oriented code metric. These metric are evaluated on the basis of weyuker’s properties [2]. From the experimental results, metric presented

ACM SIGSOFT Software Engineering Notes Page 1 January 2011 Volume 36 Number 1

DOI: 10.1145/1921532.1921548 http://doi.acm.org/10.1145/921532.1921548

Page 2: Software reusability assessment using soft computing ...fumblog.um.ac.ir/gallery/847/6.pdf · SOFTWARE REUSABILITY ASSESSMENT USING SOFT COMPUTING TECHNIQUES Yogesh Singh3 Pradeep

have been found to be useful in finding the extent of reusability included in the code in the form of class and function templates. Sandhu and Singh proposed neuro-fuzzy model for software reus-ability assessment with optimized rule selection [31]. The devel-oped reusability evaluation system has produced high precision results. Hence, the developed system can be used for identification and extradition of OO based reusable component from legacy sys-tem and evaluation of developed or developing reusable compo-nent. Poulin et al. presented a set of metrics used by IBM to estimate the efforts saved by reuse [27]. The study suggests the potential bene-fits against the expenditures of time and resources required to identify and integrate reusable software into a product. Schach and Yang proposed metrics for targeting candidates for reuse [30]. Experimental results confirmed that a prediction of reusability is possible but it involves more than the set of metrics that are being used. Gill [14] discussed various issues concerning component reusabil-ity and its benefits in terms of cost and time-saving. It provides some guidelines to augment the level of software reusability in component-base development. Washizaki et al. proposed a metrics suite for measuring the reusability of black-box component based on limited information that can be obtained from the outside of component without any source code [39]. As a result of evaluation experiments, it was found that proposed metrics can effectively identify black-box components with high reusability. Several researchers considered similar factors to assess software reusability. Boxall and Araban considered that understandability of the component affects the level of reuse [9]. Understandability of a component can be made through its interface properties. Gill and Grover proposed an Interface Complexity Metric (ICM) aimed at measuring the complexity of a software component based on the interface characterization model of a software component that mainly include interface signature, interface constraints, inter-face packaging and configurations [15]. Based on the value of this metric, the complexity of the software component could be man-aged within reasonable complexity limits. Rotaru et al. considered adaptability, compose-ability and com-plexity of component to describe its reusability [29]. Mili et al. considered two aspects, usability and usefulness while REBOT (Reuse Based on Object Oriented Techniques) considered factors namely portability, flexibility, understandability and confidence to assess the reusability [26]. Sandhu et al. proposed fuzzy, neuro-fuzzy and fuzzy-GA based approaches to evaluate the reusability of software components [28]. Fuzzy-GA hybrid algorithm is proved to be best as compared to the other algorithms. From the simulation and result obtained, it has been shown that the percent-age average error is least in the case of Fuzzy-GA algorithm and maximum in the case of fuzzy algorithms. The developed reusabil-ity model has produced high precision results as expected by the human experts. Sharma et al. proposed Artificial Neural Network (ANN) to assess the reusability of software component. Results obtained shows that neural network is able to predict the reusabil-ity of software component with desired accuracy [33].

3. Factor Affecting Software Reusability

Based on the researchers view, we have proposed four attributes: Changeability (CH), Interface Complexity (IC), Understandability of Software (UOS) and Documentation Quality (DQ) to predict software reusability level automatically using soft computing techniques. Their details are as follows:

Changeability (CH): Changeability is defined as the ability to modify a component as per the application requirement. Better changeability will lead to a component with better reusability in applications and thus help in maintaining the component. Change-ability of a component may vary from 0 to 1. In our study we cat-egorize it from low to high.

Interface Complexity (IC): Being the black box nature of the component, the source code is not available. Application may in-teract with these components only through their well-defined in-terface. Interface acts as primary source for understanding, use and implementation and finally maintenance for the component. For better reusability, interface complexity should be as low as possi-ble. In our work we categorise it as Low, Medium and High.

Understandability of Software (UOS): Since software is a col-lection of programs and documents; it is very important that there is cohesiveness between software comments and various docu-ments of the software. Laitnen [23] suggested a tool to measure the understandability of software documents. The measurement is on basis of the common symbols in source code and other docu-ments. The method defines a new term language of the software, which contains all symbols used in the software excluding the reserved words of the source language. If the language of the source code and language of the documents are closely related then understandability is high. For the better reusability, under-standability of a software component should always be as high as possible.

Documentation Quality (DQ): Software is a collection of pro-grams, documentation and the procedures used to setup and oper-ate the software system. To understand software component, documentation quality of software is very crucial. The best-known metric to judge the quality of documentation is Gunning’s Fog Index, which is a measure of the readability of a passage of text [25, 37]. The Fog Index is based on length of sentences and the number of difficult words where difficulty of a word is based on the number of syllables in the word. Lower value of Fog Index indicates better quality of the documentation while higher value is reflection of poor documentation quality.

4. Proposed Fuzzy Logic Model

In this section we have proposed fuzzy model and trained a Fuzzy Inference System (FIS) with these four inputs, namely changeabil-ity, interface complexity, understandability of software and docu-mentation quality to predict software reusability as output, as shown in Figure 1.

ACM SIGSOFT Software Engineering Notes Page 2 January 2011 Volume 36 Number 1

DOI: 10.1145/1921532.1921548 http://doi.acm.org/10.1145/921532.1921548

Page 3: Software reusability assessment using soft computing ...fumblog.um.ac.ir/gallery/847/6.pdf · SOFTWARE REUSABILITY ASSESSMENT USING SOFT COMPUTING TECHNIQUES Yogesh Singh3 Pradeep

Figure 1. Software Reusability Model (Fuzzy Inference Sys-tem) with 4 inputs, 1 output, and 81 rules

All inputs can be classified into fuzzy sets viz., Low, Medium and High. The output software reusability is classified as very Low, Low, Medium, High and Very High. In order to fuzzify the inputs, triangular membership function (trimf) is choosen namely Low, Medium and High. Similarly the output variable i.e. software reus-ability has five membership functions (trimf) namely Very Low, Low, Medium, High and Very High. The proposed model consid-ers all four inputs and provides a crisp value of software reusabil-ity using rule base. All 81rules are inserted and a rule base is created as shown in figure 2, which represents all possible combi-nation of inputs which leads to 34 i.e. 81 sets.

Figure 2. Rule Base for Proposed Fuzzy Model

Mamdani style of inference is used as shown in figure 1. Using the rule viewer, output i.e. software reusability is observed for particu-lar set of inputs using MATLAB Fuzzy Tool Box as shown in figure 3.

Figure 3. Rule Viewer for the Proposed Fuzzy Model

Defuzzification of the above output can be obtained by finding the Centre of Gravity [28] of the above fuzzy output. The effect of these rules was observed by simulating the model in MATLAB Fuzzy Tool Box. The proposed fuzzy model is used for creating the input set with respective output as an input to the Neural Net-work for further validation.

5. Proposed Neural Network Model

In this section we have explored the potential of machine learning techniques i.e. neural networks as they are adaptable, have learning capabilities and non-parametric [34, 36]. The data sets generated by the fuzzy model now acts as input datasets to our proposed Neural Network Model. It is known that NN model can be used to model any arbitrary input-output mapping and are capable of approximating any measurable function. So NN should be able to model the functionality of the software reusability also. In a broad sense, the neural network itself is a model because the topology and transfer functions of the nodes are usually formulated to match the current problem [16,24]. The NN model is further validated on the two validation sets generated by the fuzzy models. In our study backpropagation supervised algorithm is used. Back propagation is the most popular training algorithm for multilayer networks [1, 4, 35]. The model is trained with four inputs namely: Changeability, Interface Complexity, Understandability of Software and Documentation Quality with one output i.e. software reusability. Trainbr, training function is used to train the network. We have used the linear transfer functions Tansig for the experimentation. The network is best trained with four inputs, one output and 4 neurons at the hidden layer as shown in figure 4.

ACM SIGSOFT Software Engineering Notes Page 3 January 2011 Volume 36 Number 1

DOI: 10.1145/1921532.1921548 http://doi.acm.org/10.1145/921532.1921548

Page 4: Software reusability assessment using soft computing ...fumblog.um.ac.ir/gallery/847/6.pdf · SOFTWARE REUSABILITY ASSESSMENT USING SOFT COMPUTING TECHNIQUES Yogesh Singh3 Pradeep

Figure 4. Trained Neural Network Model with 04 Inputs, 1 Output and 4 Neurons at the Hidden Layer

5.1 Experimental Design The experiment is conducted to explore the possibilities of usage NN for assessing software reusability level. The network used in this work belongs to multilayer feed forward networks and is re-ferred to as M-H-Q network with M source nodes, H nodes in hid-den layer and Q nodes in the output layer [3]. The summary of ANN used in this study is shown in Table 1.

Architecture

No. of Neurons at Layer 1 (hidden layer)

04

No. of Neurons at Layer 2 (output layer)

01

Input Units 04

Output Unit 01

Training

Algorithm Back Propaga-tion

Training Function Trainbr

Transfer Function Tansig

Table 1. NN Model Summaries

5.2 Training The network is trained with four inputs by using trainbr as training functions with an output i.e. software reusability. The training and validation data set is randomly generated from the proposed fuzzy model. The ANN was trained on these data sets (140 sets of dif-ferent data sets generated by the fuzzy model) by the standard er-ror back propagation algorithm at a learning rate of 0.005, having the minimum square error as the training stopping criterion, as shown in figure 5.

Figure 5. Training with Trainbr function 5.3 Experimental Results In this section we present the analysis performed to find relation-ship between independent variables (changeability, interface com-plexity, understandability of software and documentation quality) and one dependable variable i.e. software reusability. The data set contains 140 different data sets generated by the rule base of fuzzy logic. The performance function used here is Mean Absolute Error (MRE) and Mean Absolute Relative Error (MARE) [12]. The model is trained using training data sets and was evaluated on two validation data sets. Table 2 shows the MARE, and MRE results of ANN model evaluated on validation data set.

Performance Measures

Validation Set 1 Validation Set 2

MARE 0.26 0.20

MRE 0.15 0.08

Table 2. Validation Results of ANN Model Comparison of the experimental results and measured software reusability of the two validation sets is shown in figure 6 and 7. From which it becomes evident that our proposed model produces reusability levels that are comparable to the measured reusability levels as predicted by the proposed fuzzy model.

ACM SIGSOFT Software Engineering Notes Page 4 January 2011 Volume 36 Number 1

DOI: 10.1145/1921532.1921548 http://doi.acm.org/10.1145/921532.1921548

Page 5: Software reusability assessment using soft computing ...fumblog.um.ac.ir/gallery/847/6.pdf · SOFTWARE REUSABILITY ASSESSMENT USING SOFT COMPUTING TECHNIQUES Yogesh Singh3 Pradeep

Validation Results Data Set1

00.10.20.30.40.50.60.70.80.9

1

1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 65 69

Actual Reusability

Pre

dic

ted

Reu

sab

ilit

y

Actual Reusability

Predicted Reusability

Figure 6. Validation Result (Data Set 1) with 04 neurons

Validation Results Data Set 2

00.10.20.30.40.50.60.70.80.9

1

1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55

Actual Reusability

Pre

dic

ted

Reu

sab

ilit

y

Actual Reusability

Predicted Reusability

Figure 7. Validation Result (Data Set 2) with 04 neurons

6. Proposed Neuro-Fuzzy Model

Fuzzy logic approach is beneficial for measuring the reusability of software components as the conventional model based approaches are difficult to be implemented. Unfortunately, with the increase in the complexity of the problem being modeled various constitutes for measuring the reusability, has led to rely on another technique which is mostly known as neuro-fuzzy approach. The neuro-fuzzy hybrid system combines the advantages of fuzzy logic system, which deal with explicit knowledge that can be explained and un-derstood, and neural networks, which deals with implicit knowledge, which can be acquired by learning.

Neuro-Fuzzy Inference system using given input/output dataset has been constructed a Fuzzy Inference System (FIS) whose membership function parameters are tuned (adjusted) using either a back propagation algorithm alone or in combination with the least squares type of method. The parameters associated with the membership function (trimf is used here) will change through the learning process. The computation of these parameters (or their adjustment) is facilitated by a gradient vector, which provides a measure of how well the fuzzy inference system is modeling the input/output for a given set of parameters. Sugeno-type neuro-fuzzy inference system is used for the experimental purposes, as sugeno output member functions are either constant or linear.

6.1 Adaptive Neuro-fuzzy Inference System (ANFIS) Train-ing

To train an ANFIS, training data set (data sets generated by fuzzy model) is loaded from the load data option of ANFIS editor as shown in figure 8.

Figure 8. Training data set for ANFIS In the fuzzy inference system linguistic variables are then assigned to the input parameters based on their values. The assignment of the linguistics variables depends on the range of the input meas-urement. CH, IC, UOS and DQ are assigned three linguistic varia-bles Low, Medium and High. The output i.e. reusability is assigned five linguistic variables Very Low, Low, Medium, High and Very High as discussed in the proposed fuzzy model of this paper. A network type structure similar to that of a neural network (as shown figure 9) which maps input through input membership function and associated parameters, and then through output membership functions and associated parameters to output, is used to interpret the input/output map. After successfully loading the data, FIS structure will be generated using grid portioning as shown in figure 9.

Figure 9. Neural Network incorporating the Fuzzy Inference System

ACM SIGSOFT Software Engineering Notes Page 5 January 2011 Volume 36 Number 1

DOI: 10.1145/1921532.1921548 http://doi.acm.org/10.1145/921532.1921548

Page 6: Software reusability assessment using soft computing ...fumblog.um.ac.ir/gallery/847/6.pdf · SOFTWARE REUSABILITY ASSESSMENT USING SOFT COMPUTING TECHNIQUES Yogesh Singh3 Pradeep

The error tolerance is used to create training stopping criteria, which is related to the error size. The training will stop after the training data error remains within this tolerance. In our study we have kept error tolerance to a value 0.005. To start training, hybrid optimization (the default, mixed least squares and back propaga-tion) method is used. The numbers of training epochs is set to 60 and the training error reduces after each epoch as shown by the figure 10 and stabilizes at the error value of 0.0483, so at this point the network is said to be converged.

Figure 10. Plot of Training Error V/s Epochs 6.2 Testing Fuzzy Inference System During the testing phase, when developed system is tested against the validation data sets and an average testing error 0.045 is ob-tained. The performance function used here is Mean Relative Er-ror (MRE) and Mean Absolute Relative Error (MARE) [12]. The model is trained using training data sets and is evaluated on two validation data sets. Table 3 shows the MARE, and MRE results of Neuro-fuzzy model evaluated on two validation data sets. The table also indicates that the proposed model trained and predicts well using Neuro-Fuzzy approach.

Performance Measures

Validation Set 1 Validation Set 2

MARE 0.22 0.21

MRE 0.007 0.04

Table 3. Validation Results of Neuro-Fuzzy Model

The plot between the actual outputs of validation sets (set1 and set2) and the expected output of validation sets (set1 and set2) are shown in figure 11 and 12 respectively.

Figure 11. Validation Result (Data Set 1)

Validation Results Dataset2

-1

-0.5

0

0.5

1

1.5

2

1 5 9 13 17 21 25 29 33 37 41

Actual Reusability

Pre

dic

ated

Reu

sab

ility

Actual Reusability

PredicatedReusability

Figure 12: Validation Result (Data Set 2) As the actual output produced by the proposed “Neuro-Fuzzy Re-usability Evaluation System” is close to the expected output, so the proposed model may be recommended for automatic predic-tion of software reusability level for the component based system. 7. Conclusions

We have proposed a soft computing technique to automatically predict software reusability levels i.e. Very Low, Low, Medium, High and Very High. Firstly, Fuzzy Logic is used here to con-struct set of rules (34 i.e. 81 rules) and generate training (140 train-ing data sets) and testing data sets (130 validation sets). The data sets generated by the fuzzy logic, are given as input to the Neural Networks and the performance was evaluated using performance parameters, MARE 0.26 % (20 % for validation set 2) and MRE 0.15 % (0.08 for validation set 2). In our proposed work, we also combined the neuro-fuzzy approach with the data sets generated by the fuzzy logic to take the advantage of some of the desirable features of a neuro-fuzzy approach, such as learning ability and good interpretability. In addition, we chose fixed triangular mem-

Validation Results Dataset1

-0.2

0

0.2

0.4

0.6

0.8

1

1.2

1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 65

Actual Reusability

Pre

dic

ted

Reu

sab

ility

ActualResuability

PredicatedReusability

ACM SIGSOFT Software Engineering Notes Page 6 January 2011 Volume 36 Number 1

DOI: 10.1145/1921532.1921548 http://doi.acm.org/10.1145/921532.1921548

Page 7: Software reusability assessment using soft computing ...fumblog.um.ac.ir/gallery/847/6.pdf · SOFTWARE REUSABILITY ASSESSMENT USING SOFT COMPUTING TECHNIQUES Yogesh Singh3 Pradeep

bership functions and hybrid optimization method for training. The model was trained well and predicts satisfactory results with MARE 22% (21% for validation set 2) and MRE 0.007% (0.04 for validation set 2) when compared with neural network.

Finally, the neuro-fuzzy technique allows the integration of nu-merical data and expert knowledge; it can be a powerful tool to tackle important problems in Software Engineering and can be further extended as software metric model, cost estimation model, effort prediction model, software reliability and quality prediction.

References

[1]. Aggarwal K K, Singh Yogesh, Kaur Arvinder, Sangwan OP (2004). A Neural Net Based Approach to Test Oracle. ACM SIGSOFT, Vol. 29, No.4, May 2004. [2]. Aggarwal K K, Yogesh Singh, Arvinder Kaur, Ruchika Malhotra (2005) Software Reuse Metrics for Object-Oriented Systems. Proceedings of the 2005, Third ACIS Int'l Conference on Software Engineering Re-search, Management and Applications (SERA’05), 11-13 Aug. 2005. [3]. Aggarwal K K, Singh Yogesh, Kaur Arvinder (2005). Empirical Studies on Application of Neural Networks as Approximation Oracle. Journal of Computer Science 1(3): pp 341-345, 2005. [4]. Aggarwal K K, Singh Yogesh, Arvinder Kaur, Malhotra Ruchika (2006). Application of Neural Network for Predicting Maintainability Using Object-Oriented Metrics. Transaction on Engineering, Computing and Technology, Vol. 15, 2006. [5]. Aggarwal K K, Yogesh Singh. Software Engineering: Program, Doc-umentation and Operating Procedure (2008). New Age International Pub-lishers, 3rd edition, 2008. [6]. Banker R D, Kauffman R J, Wright C R, Zweig D (1991) Automating Output Size and Reusability Metrics in an Object-Based Computer Aided Software Engineering (Case) Environment. Information Systems Working Papers Series, available at http://www.ssrn.com/abstract=1289052. [7]. Boetticher G, Eichmann D (1993) A Neural Net Paradigm for Charac-terizing Reusable Software. Proceeding of the first Australian Conference on Software Metrics, pp 41-49. [8]. Boetticher G, Srinivas K, Eichmann D (1993) A Neural Net-Based Approach to Software Metrics. Proceeding of the 5th International Confer-ence of Software Engineering and Knowledge Engineering, San Francis-co, CA, June 16-18, 1993: pp 271-274. [9]. Boxall M A S, Araban S (2004) Interface Metrics for Reusability Analysis of Components. Proceeding of Australian Software Engineering Conference (ASWEC’2004), Melbourne, Australia, pp 40-46. [10]. Caldiera G, Basili V R (1991) Identifying and Qualifying Reusable Software Components. IEEE Computer, pp 61-70. [11]. Diaz R P (1993) Status Report: Software Reusability. IEEE Soft-ware 10(1993), pp 61-66. [12]. Finnie G R, Wittig G E (1996) AI Tools for Software Development Effort Estimation. IEEE Transaction on Software Engineering, pp 346-353. [13]. Frakes W, Terry C (1996) Software Reuse: Metrics and Models. ACM Computing Surveys, Vol. 28, Issue 2, pp 415-435. [14]. Gill N S (2003a) Reusability Issues in Component-Based Develop-ment. ACM SIGSOFT Software Engineering Notes, Vol. 28, Issue 4, pp 1-5. [15]. Gill N S, Grover P (2004) Few Important Considerations For Deriv-ing Interface Complexity Metric For Component-Based Systems. ACM SIGSOFT Software Engineering Notes, Vol. 29, No. 2, pp 1-4. [16]. Haykin S (2003) Neural Network, A Comprehensive Foundation. Prentice Hall India. [17]. Henderson-Seller B (1996) Object Oriented Metrics: Measure of Complexity. Prentice Hall. [18]. Jang J-S R, and Sun C T (1995) Neuro-Fuzzy Modeling and Control.

Proceeding of the IEEE. [19]. Kamiya T, Kusumoto S, Inoue K, Mohri Y (1999) Empirical Evalu-ation of Reuse Sensitiveness of Complexity Metrics. Information and Software Technology, Vol. 41, pp 297-305. [20]. Kartalopoulos S V (1996) Understanding Neural Networks and Fuzzy Logic Basic Concepts and Applications. IEEE Press, pp 153-160. [21]. Karunanithi S, Bieman J M (1993) Candidate Reuse Metrics for Object Oriented and Ada Software. Proceeding of IEEE International Software Metrics Symposium available at http://www.cs.colostate.edu/-bieman/pubs/santhibiemanmetrics93.pdf. [22]. Krueger C (1992) Software Reuse. ACM Computer Survey 24 (1992), pp 131-183. [23]. Laitnen Kari (1996) Estimating Understandability of Software Doc-uments. ACM SIGSOFT Software Engineering Notes, Vol. 21, pp 81-92. [24]. Laurene Fausett, (1994) Fundamentals of Neural Networks. Prentice Hall: Englewood Cliffs, New Jersey. [25]. McCall J A, Richards P K,Walters G F (1977) Factors in Software Quality. Vol. 1, 2 and 3, AD/A-049-014/015/055, National Tech. Infor-mation Service, Springfield, VA. [26]. Mili H, Mili F, Mili A (1995) Reusing Software: Issues and Re-search Directions. IEEE Transaction on Software Engineering, Vol. 21, Issue 6, pp 528-561. [27]. Poulin J, Caruso J, Hancock D (1993) The Business Case for Soft-ware Reuse. IBM Systems Journal, Vol. 32, Issue 40, pp 567-594. [28]. Roger Jang, Gulley Ned (1995) Fuzzy Logic Toolbox for MATLAB. User’s Guide, the Math Works Inc., USA. [29].Rotaru O P, Dobre M, Petrescu M (2005) Reusability Metrics for Software components. Proceeding of the 3rd ACS/IEEE International Con-ference on Computer Systems and Applications (AICCSA-05), Cairo, Egypt, pp 24-29. [30]. Schach Stephen R, Yang X (1995) Metrics for Targeting Candidates for Reuse: An Experimental Approach. ACM, SAC, pp 379-383. [31]. Sandhu Singh Parvinder, Singh Hardeep (2006) A Neuro-Fuzzy Based Software Reusability Evaluation System with Optimized Rule Se-lection. 2nd International Conference on Emerging Technologies, IEEE-ICET 2006, Peshawar, Pakistan 13-14 Nov., pp 664-669. [32]. Sandhu Singh Parvinder, Salaria Singh Dalwinder, Singh Hardeep (2008) A Comparative Analysis of Fuzzy, Neuro-Fuzzy and Fuzzy-GA based Approaches for Software Reusability Evaluation. Proceeding of World Academy of Science, Engineering and Technology, Vol. 29, pp 342-345. [33]. Sharma Arun, Kumar Rajesh, Grover P S (2009) Reusability As-sessment for Software Components a Neural Network Based Approaches. ACM SIGSOFT Software Engineering Notes, USA, Vol. 34, No. 2, pp 1-6. [34] Singh Yogesh, Pradeep Kumar Bhatia, OP Sangwan (2007) “A Re-view of Studies on Machine Learning Techniques”, Published in Interna-tional Journal of Computer Science & Security (IJCSS), vol.1, issue1, July 2007, Malaysia [35] Singh Yogesh, Pradeep Kumar Bhatia, OP Sangwan (2009) “ANN Model for Predicting Software Function Point Metric”, Published in ACM SIGSOFT, Software Engineering Notes, USA, Vol. 34, No.1, pp: 1-4, January 2009. [36]. Singh Yogesh, Pradeep Kumar Bhatia, Arvinder Kaur, OP Sangwan (2009) “Application of Neural Networks in Software Engineering: A Re-view”, International Conference on Information Technology and Man-agement (ICISTM) 2009, CCIS 31, pp. 128–137, 2009, © Springer-Verlag Berlin Heidelberg 2009. [37]. Tsai T, Lopez, A Rodreguez V, Volovik D (1986) An Approach to Measuring Data Structure Complexity. COMPSAC86, pp 240-246. [38]. Van Vliet H (2000) Software Engineering: Principles and Practice. 2nd Edition, John Wiley. [39]. Washizaki H, Y Hirokazu, F Yoshiaki (2003) A Metrics Suite for Measuring Reusability of Software Components. Proceeding of the 19th International Symposium on Software Metric, pp 211-223.

ACM SIGSOFT Software Engineering Notes Page 7 January 2011 Volume 36 Number 1

DOI: 10.1145/1921532.1921548 http://doi.acm.org/10.1145/921532.1921548