Estimation of Software Reusability for Component based System using Soft Computing Techniques Charu Singh Department of Computer Science & Engg., ASET, Amity University, Noida, Uttar Pradesh, India
[email protected]
Amrendra Pratap Department of Computer Science & Engg., ASET, Amity University, Noida, Uttar Pradesh, India
[email protected]
reusability is estimated by measuring the reuse of these components. In this paper, we discussed the reusability in relation to component based development and proposed reusability metrics for components. We also identified the various parameters depending on reusability of the components and established an association between the reusability and parameters. Since it is difficult to establish the relationship between the reusability and the proposed reusability attributes, therefore, the technique Neural Network (NN) is used to predict the reusability levels of software by establishing the relationship between the inputs and outputs based on its training [1]. Fuzzy logic, on the other hand, is a methodology that deals with uncertain and imprecise data and establishes the input-output relationship with the help of the fuzzy values and membership functions. Neural nets and fuzzy models are different to each other but still have close relationship. This paper is organized into following sections: related work, factors affecting software reusability, fuzzy logic and fuzzy model, implementation of fuzzy systems, artificial nueral network, machine training and learning functions, proposed fuzzy logic model, proposed nueral network model, discussion of results, conclusion and future prospects.
Abstract – Soft computing techniques play very important role in developing software engineering applications. These consist of fuzzy logic system, neural network model and genetic algorithm techniques. Among these fuzzy logic and neural network techniques are broadly used to assess software reusability, software maintainability, software understandability etc. Software reuse is defined as software development with several existing modules. This paper presents a model based on different factors namely Modularity (MD), Interface Complexity (IC), Maintainability (MN), Flexibility (FX) and Adaptability (AD) for the assessment of software reusability using soft computing techniques via fuzzy logic and neural network. This is done by assuming different membership functions such as Triangular (trimf), Trapezoidal (trapmf) and Gaussian (guassmf) membership functions defined in MATLAB for these parameters in order to predict the reusability values. Then these data sets are applied to our proposed Neural Network Model. Our work compares the sensitivity analysis of the two models and shows which one is better. Our approach is depending on these software metrics for the identification and evaluation of reusable components. Software reusability is likely to have a bright future and a remarkable work for research. This effort will help developers and researchers to choose the finest component related to the reusability, which would help in improving the performance and efficiency of the whole software system.
II.
Key Terms - Software reusability, Fuzzy logic, Artificial Neural network, Machine Training, Learning Functions, Modularity (MD), Interface Complexity (IC), Maintainability (MN), Flexibility (FX), Adaptability (AD), Membership functions.
I.
RELATED WORK
A very broad study by researchers, which considered some factors for the assessment of software reusability. Aggarwal et al. [2] suggested two object oriented code metric sets. From the experimental results, these proposed metric are considered to be helpful in order to discover the reusability level. Sandhu and Singh [3] proposed a Neuro-fuzzy based model for the optimization of rule selection for the assessment of software reusability. Poulin et al. [4] measured the efforts saved by reusing the components with the help of metrics set offered by IBM. Schach and Yang [5] suggested metrics for reuse of targeting candidates. Gill [6] discussed various benefits of software reusability related to its cost and time-saving as well as different problems regarding component reusability. Washizaki et al. [7] measured the reusability of black-box components by proposing a set of metrics depending on partial information acquired from the exterior of the factor with no code. Gill and Grover [8] suggested an Interface Complexity Metric (ICM) designed to measure software component complexity depending upon the interface categorization form
INTRODUCTION
Software engineering is one of the disciplines of computer science, which provides high quality software, satisfies all predefined requirements and delivered within budget and time. Software reusability is one of the quality attribute in software engineering, which means “the extent to which a software module or work product can be used again in other applications in order to include new features”. Industrial researchers suggest that about 20% of development costs can be saved by using reuse approach. Software reuse helps to reduce the development time and cost. Component based software engineering has been broadly used in industry for building reusable components. This technique uses the reusable components for the construction and implementation of various systems. Software components
c 978-1-4799-4236-7/14/$31.00 2014 IEEE
Abhishek Singhal Department of Computer Science & Engg., ASET, Amity University, Noida, Uttar Pradesh, India a[QVOPIT@IUQ\aML]
788
of a software. Boxall and Araban [9] observed that intensity of reuse is affected by the understandability of the component. Rataru et al. [10] measured the reusability by considering the complexity and composability of component. Sandhu et al. [11] measured the reusability of the software product by proposing fuzzy, neurofuzzy and fuzzy-GA based techniques. Mili et al. [12] estimated the reusability by considering the usefulness and usability aspects while REBOT (Reuse Based on Object Oriented Techniques) measured parameters like understandability, portability and confidence. Sharma et al. [13] proposed Artificial Neutral Network (ANN) in order to estimate the software reusability of components with desired accuracy. Cho et al. [14] suggested metrics sets in order to estimate a variety of software factors such as customizability, maintainability and reusability. Singh et al. [15] proposed a model based on different attributes: Modularity, Interface Complexity, Maintainability, Flexibility and Adaptability for accessing software reusability levels using soft computing techniques. III.
FACTORS AFFECTING SOFTWARE REUSABILITY
Software quality attributes (for example, reusability) cannot be measured directly. They are depending upon many different factors [15, 16, 17, 18, 19]. Hence, software reusability is estimated through some interfaces. Based on the researchers available, we have proposed a model based on different attributes: Modularity, Interface Complexity, Maintainability, Flexibility and Adaptability for accessing software reusability levels using soft computing techniques via fuzzy logic. The details are: A. Modularity (MD) Modularity, in terms of reusability, means the level to which a software component or module can be divided into smaller modules or other work products. It is capable of providing independent service without relying on any other service. In order to be reusable service, the functionality should be modularized well. For better reusability, modularity should be more. The range of modularity may lies between 0 and 1. For our work, we classified it as Less, Modder and More categories.
C. Maintainability (MN) Maintainability means the ability to which a software product or module can be customized leaving its predefined functionality intact; as a result, fault and error can be fixed and lead to high software quality and performance. For better reusability, maintainability should be more. For our work, we categorized Maintainability as Less, Modder and More categories. D. Flexibility (FX) Flexibility, in terms of reusability, means the degree with which changes can be made in the software product or component that can adapt when external changes occur. For reused components, less effort required to modify an operational code or program because fewer software component or products need to be analyzed, designed, coded and tested. For better reusability, flexibility should be more. For our work, we categorized it as Less, Modder and More categories. E. Adaptability (AD) Adaptability is the ability to which the software component is adaptable to new and different platforms and technologies. For software to be reused widely, a component should be adaptable to various platforms. For better reusability, adaptability should always be as high as possible. We categorized adaptability into Less, Modder and More categories for the proposed work in this paper. The overall reusability is not only depending upon these factors but these parameters can help us to measure the reusability of the software product. IV.
FUZZY LOGIC AND FUZZY MODEL
Fuzzy logic is a methodology that deals with uncertain and imprecise data. Prof. Zadeh has introduced the fuzzy set theory in 1965 [20]. Fuzzy logic system can be modeled with little data or without any data. Fuzzy logic technique has many advantages over other soft computing techniques. One of them is that it is less reliant on previous values.
B. Interface Complexity (IC) The interaction between any application and software components is possible with the help of a distinct interface. This interaction provides a principal basis for coding, implementation and lastly maintenance for software. Interface complexity sometimes become difficult for a component to be customized and understood. Hence, interface complexity is considered to be less for better reusability. For our work, we categorized it as Less, Modder and More categories.
In the Fig. 1, the imprecise data and vague statements as inputs are given to a fuzzy logic system, which produces decisions [21] as output as shown below:
Fig. 1: Fuzzy Logic System
2014 5th International Conference- Confluence The Next Generation Information Technology Summit (Confluence)
789
Fuzzy model maps the given inputs to the corresponding outputs. The fuzzy model is shown below in Fig. 2, which is consisting of four main modules.
signals, hidden nodes and output signal in their respective layers as shown in Fig. 3.
Fig. 3: Neural Network Fig. 2: Fuzzy Model
The first module, fuzzification, which accepts the crisp values form user and convert it into fuzzy values. Depending upon the knowledge base (rule base), the fuzzy values obtained, are then processed by an inference engine in the fuzzy domain. At last, processed data obtained from fuzzy domain is transformed into the crisp values by defuzzification [21]. In our work, we proposed that the reusability of componentbased software system is depending upon five parameters. Reusability can be estimated with the help of these parameters. These parameters are given as inputs to the proposed Fuzzy model, which produces reusability as output. V.
VII.
MACHINE TRAINING AND LEARNING FUNCTIONS
Machine training and learning functions are the statistical measures help to regulate the network's weights and biases automatically. There are various training functions namely trainlm, trainscg, trainbfg, traingdm , traincgp, trainrp etc. and other training algorithms available are traincgb, traincgf, trainbr, traingda, traingdx etc. are defined in MATLAB, but we used a trainlm training function in our work. This network is trained by Feed Forward Back Propagation algorithm using Trainlm function to get the output. It is generally the fastest backpropagation algorithm available in MATLAB.
IMPLEMENTATION OF FUZZY SYSTEM VIII.
The implementation of fuzzy logic system consists of various divisions of inputs that can be constituted of different membership functions (fuzzy sets). The range of a membership function lies between 0 and 1. There are 11 membership functions available in fuzzy logic system defined in MATLAB. We have considered 3 Membership Functions i.e. Triangular, Trapezoidal and Gaussian for our work.
PROPOSED FUZZY LOGIC MODEL
In this section, a model has been proposed using fuzzy system based on these factors as inputs, namely, Modularity (MD), Interface Complexity (IC), Maintainability (MN), Flexibility (FX) and Adaptability (AD) to estimate the Software Reusability as output given in Fig. 4.
We also assumed some values for Modularity, Interface Complexity, Maintainability, Flexibility and Adaptability using some tools. And at the end we concluded that for different values for these parameters and for different membership functions to get the best result. VI.
ARTIFICIAL NUERAL NETWORK
Artificial neural networks can be used to represent the complex non-linear associations (input-output relationship) and functions. Neural Network tool defined in MATLAB is used for creating, designing, visualizing, implementing, training and simulating neural networks. It produces the correct output from its training data or incomplete data [22]. We used multilayer feed forward algorithm to train neural network tool with input
790
Fig. 4: Fuzzy Model with 5 inputs, 1 output, and 243 rules
We categorized these parameters into fuzzy sets: Less, Modder, More and the output as Least, Less, Modder, More and Most. We used different membership functions (trimf, trapmf, gaussmf) to fuzzify all these parameters. Then a rule base is fired after inserting all 243 (35) rules.
2014 5th International Conference- Confluence The Next Generation Information Technology Summit (Confluence)
Different rules are proposed as shown in Table 1. Table 1: Rules Rule# 1 2 3 4 5
MD More Modder More Less Modder
IC Less Less Modder More More
Inputs MN Modder Modder Modder Less More
FX More More More Modder Less
AD More More Less Modder More
Output Reusability Most More Modder Least Less
A rule base is fired according to particular values for inputs. Output i.e. Reusability is observed using the rule viewer in the fuzzy logic tool defined in MATLAB.
Fig. 7: Rule Viewer
For different set of inputs [0.785, 0.215, 0.775, 0.785, 0.795], the output Reusability is observed as 0.893 as shown in Fig. 8.
First, Triangular Membership Function (trimf) is used for fuzzification for Modularity (MD) as input 1 in fuzzy logic tool is shown in Fig. 5.
Fig. 8: Rule Viewer with changed values
Second, Trapezoidal Membership Function (trapmf) is used for fuzzification as shown in Fig. 9. Fig. 5: Membership Function
Then a rule base is fired after inserting all 243 (35) rules, which represent all possible combinations of inputs, as shown in Fig. 6.
Fig. 9: Membership Function
Using a rule viewer, Reusability is observed 0.7 by considering the values for all parameters as shown in Fig. 10.
Fig. 6: Rule Base for Proposed Fuzzy Model
A rule base is fired after inserting the various rules in the proposed model. So, using a rule viewer, Reusability is observed by considering the values for all five parameters as shown in Fig. 7. Fig. 10: Rule Viewer
2014 5th International Conference- Confluence The Next Generation Information Technology Summit (Confluence)
791
Third, Gaussian Membership Function (gaussmf) is used for fuzzification as shown in Fig. 11.
A Reusability Network is created as shown in Fig. 13.
Fig. 11: Membership Function
Using a rule viewer, Reusability is observed as 0.699 by considering the values for all parameteras shown in Fig. 12.
Fig. 13: Network Creation
After the creation of the network, when we click on Reusabilitynetwork as shown in Fig. 14.
Fig. 12: Rule Viewer
We have observed Reusability by taking all five values for inputs parameters for different membership functions. IX.
PROPOSED NEURAL NETWORK MODEL
In this section, a model has been proposed based on a neural network system. The data sets that are applied to our proposed Neural Network Model are obtained by the fuzzy model. Neural network model can be used to represent the complex non-linear associations (input-output relationship) and functions. So it is also used to represent the software reusability functionality.
Fig. 14: NN Network/Data Manager screen
Then the view of Reusability Network is obtained as shown in Fig. 15.
A. Experimental Design The experiment is conducted to predict the software reusability level as an input data pattern with the preferred output data. In order to use a network, we need to first create the network, then train it and then simulate it.
Fig. 15: Reusability Network View
792
2014 5th International Conference- Confluence The Next Generation Information Technology Summit (Confluence)
B. Network Training The network is then trained with five inputs namely: Modularity (MD), Interface Complexity (IC), Maintainability (MN), Flexibility (FX) and Adaptability (AD) by using trainlm functions in order to predict Software Reusability as output. The network was trained on the data sets by the back propagation algorithm (the data sets that are applied to the neural network model are obtained by the fuzzy model). The network is trained as shown in Fig. 16.
From the different Training inputs, we get the different values of simulated output. It is concluded that as we train the network again and again, we get the more accurate result. X.
DISCUSSION OF RESULTS
The paper discusses reusability in relation to Component Based Software Engineering and emphasis development of software systems using reusable components. We proposed the various reusability metrics for components and also identify the various parameters depending on reusability of the components and establish an association between the reusability and these parameters. Our work discussed proposed models depending upon different parameters: Modularity, Interface Complexity, Maintainability, Flexibility and Adaptability for accessing Software Reusability levels using Soft computing techniques via. Fuzzy Logic and Neural Network. Our work compares the sensitivity analysis of the two models and shows which one is better. First we have implemented Fuzzy Logic in which we have assumed some values for Modularity (MD), Interface Complexity (IC), Maintainability (MN), Flexibility (FX) and Adaptability (AD) as inputs and to fuzzify these inputs, different membership functions are used namely Triangular membership function (trimf), Trapezoidal membership function (trapmf) and Gaussian membership function (gaussmf) defined in MATLAB in order to predict the Reusability as output. And at the end we have concluded that for different values of these parameters and for different membership functions to get the best result.
Fig. 16: Trained Neural Network Model
C. Network simulation After the trained network, the network is then simulated by selecting different values for training inputs as shown in Fig. 17.
In our work, we considered five inputs, namely Modularity, Interface Complexity, Maintainability, Flexibility and Adaptability to predict software reusability as output. We categorized these all parameters into fuzzy sets: Less, Modder, More and the output reusability as Least, Less, Modder, More and Most. A rule base is fired after inserting all 243 (35) rules, which represent all possible combinations of inputs. The output i.e. Reusability of a Component can be obtained by considering all five values for inputs parameters for different membership functions as shown in Table 2: Table 2: Reusability obtained for different values Membership Functions trimf trapmf gaussmf
Inputs MD 0.5 0.5 0.5
IC 0.5 0.5 0.5
MN 0.5 0.5 0.5
Output FX 0.5 0.5 0.5
AD 0.5 0.5 0.5
Reusability 0.7 0.7 0.699
By taking different sets of inputs that is, for a set of inputs [0.785, 0.215, 0.775, 0.785, 0.795], the output is 0.893. Fig. 17: Neural Network Simulation
Above result shows that for better Reusability of software component, its Modularity (MD), Maintainability (MN),
2014 5th International Conference- Confluence The Next Generation Information Technology Summit (Confluence)
793
Flexibility (FX) and Adaptability (AD) should be more whereas Interface complexity (IC) should be less. Then the data sets that are applied to our proposed Neural Network Model are obtained by the fuzzy model. In a neural network, we first designed it, and then trained it. The network was trained on the data sets by the back propagation algorithm and at last simulates the network. From the different Training inputs, we get the different values of simulated output. It is concluded that as we train the network again and again, we get the more accurate result. XI.
CONCLUSION AND FUTURE PROSPECTS
Reusability plays a vital role in selecting a component for software systems. It helps in better understanding, improve the efficiency for the system and lower the efforts and cost for the applications. Our effort discussed soft computing based techniques i.e. Fuzzy logic and Neural Network to estimate the Reusability of the component. Our work compares the sensitivity analysis of the two models and shows which one is better. Our work has concluded that the neural network model is a more stable than the fuzzy model for building most of the software and applications. Software reusability is likely to have a bright future and a remarkable work for research. This effort will help developers and researcher to choose the finest component related to the reusability, which would help in improving the performance and efficiency of the whole software system. Our aim is to estimate high reusability of components because it has been widely accepted in both academia and industry for building reusable components. REFERENCES [1] Singh Yogesh, Bhatia Pradeep Kumar, Sangwan Omprakash (2011), “Software Reusability assessment using soft computing techniques”, ACM SIGSOFT Software Engineering Notes, Volume 36 Number 1, pp. 1-7. [2] Aggarwal K K, Singh Yogesh, Kaur Arvinder, Malhotra Ruchika (2005), “Software Reuse Metrics for Object-Oriented Systems”, Proceedings of the 2005, Third ACIS Int'l Conference on Software Engineering Research, Management and Applications (SERA’05), pp. 11-13. [3] Sandhu Singh Parvinder, Singh Hardeep (2006), “A NeuroFuzzy Based Software Reusability Evaluation System with Optimized Rule Selection”. 2nd International Conference on Emerging Technologies, IEEEICET. 2006, Peshawar, Pakistan 13-14 Nov., pp. 664-669. [4] Poulin J, Caruso J, Hancock D (1993), “The Business Case for Software Reuse”. IBM Systems Journal, Vol. 32, Issue 40, pp. 567-594. [5] Schach Stephen R, Yang X (1995), “Metrics for Targeting Candidates for Reuse: An Experimental Approach”. ACM, SAC, pp. 379-383.
794
[6] Gill N S (2003), “Reusability Issues in Component-Based Development”. ACM SIGSOFT Software Engineering Notes, Vol. 28, Issue 4, pp. 1-5. [7] 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. [8] Gill N S, Grover P (2004), “Few Important Considerations For Deriving Interface Complexity Metric For Component-Based Systems”. ACM SIGSOFT Software Engineering Notes, Vol. 29, No. 2, pp. 1-4. [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] Rotaru O P, Dobre M, Petrescu M (2005), “Reusability Metrics for Software components”. Proceeding of the 3rd ACS/IEEE International Conference on Computer Systems and Applications (AICCSA-05), Cairo, Egypt, pp. 24-29. [11] Roger Jang, Gulley Ned (1995), “Fuzzy Logic Toolbox for MATLAB”. User’s Guide, the Math Works Inc., USA. [12] Mili H, Mili F, Mili A (1995), “Reusing Software: Issues and Research Directions”. IEEE Transaction on Software Engineering, Vol. 21, Issue 6, pp. 528-561. [13] Sharma Arun, Kumar Rajesh, Grover P S (2009), “Reusability Assessment for Software Components a Neural Network Based Approaches”. ACM SIGSOFT Software Engineering Notes, USA, Vol. 34, No. 2, pp. 1- 6. [14] Cho, E. S., Kim, M. S., Kim, S. D. (2001), “Component Metrics to Measure Component Quality”, 8Asia-Pacific Software Engineering Conference, Macau, pp. 419-426. [15] Singh Charu, Pratap Amrendra, Singhal Abhishek (2014), “An Estimation of Software Reusability using Fuzzy Logic Technique”, International Conference on Signal Propagation and Computer Technology 2014 (ICSPCT 2014) Ajmer, India. [16] Gaur Jatain, Gaur Aman, Gaur Deepti (2012), “Estimation of Component Reusability by identifying Quality Attributes of Component: A Fuzzy Approach”, Proceedings of the Second International Conference on Computational Science Engineering and Information Technology - CCSEIT 12, pp. 738-742. [17] Sagar Shrddha, Nerurkar N.W., Sharma Arun (2010), “A Soft Computing Based Approach to Estimate Reusability of Software Components”, ACM SIGSOFT Software Engineering Notes, Volume 35 Number 4, pp. 1-4. [18] Sharma Arun, Grover P. S., Kumar Rajesh (2009), “Reusability Assessment for software component”, SIGSOFT Software Engineering Notes, Volume 34 Number 2, pp. 1-6. [19] Bhardwaj Vidhu (2010), “Estimating reusability of software components using fuzzy logic”, Thesis, Thapar University, Patiala. [20] Zadeh L.A. (2005), “From Computing with Numbers to Computing with Words-From Manipulation of Measurements to Manipulation of Perceptions”, International Journal of Applied Mathematics and Computer Science, Volume 1 Issue 4. [21] Aggarwal K K, Singh Yogesh, Chandra P., Puri M. (2000), “Measurement of Software Maintainability using a Fuzzy Model”, Journal of Computer Sciences, Volume 1 Issue 4, pp. 538. [22] Singh Yogesh, Bhatia Pradeep Kumar, Sangwan Omprakash (2009), “ANN Model for Predicting Software Function Point Metric”, Published in ACM SIGSOFT, Software Engineering Notes, USA, Vol. 34, No.1, pp. 1-4.
2014 5th International Conference- Confluence The Next Generation Information Technology Summit (Confluence)