• No results found

Performance Evaluation of Reusable Software Components

N/A
N/A
Protected

Academic year: 2021

Share "Performance Evaluation of Reusable Software Components"

Copied!
5
0
0

Loading.... (view fulltext now)

Full text

(1)

International Journal of Emerging Technology and Advanced Engineering

Website: www.ijetae.com (ISSN 2250-2459, Volume 2, Issue 4, April 2012)

578

Performance Evaluation of Reusable Software Components

Anupama Kaur 1 , Himanshu Monga 2 , Mnupreet Kaur 3

1

M.Tech Scholar, CSE Dept., Swami Vivekanand Institute of Engineering and Technology, Punjab, India

2

HOD, CSE Dept., Swami Vivekanand Institute of Engineering and Technology, Punjab, India

3

Lecturer, CSE Dept., Swami Vivekanand Institute of Engineering and Technology, Punjab, India

1

saimbianupama_23@yahoo.co.in

2

himanshumonga@gmail.com

3

mnupreet.cse@sviet.ac.in

Abstract— For the enhancement of quality in the software development, to eliminate the repeated work and to improve the efficiency, we require a effective solution that is software reuse. But how to identify and evaluate the performance of reusable software from the existing systems has remained the task for developers. Defining metrics to reusable components has given the structural analysis to the different procedures.

Neural Network gives the oppurtutinity to evaluate the attributes of reusability and work as the automatic tool to define reusability of procedures by calculation based on training. Metrics’s values turn as input dataset for the Neural Network systems. Different algorithms have been experimented and results are recorded in terms of Accuracy, Mean Absolute Error (MEA) and Root Mean Square Error (RMSE). In this paper, the proposed model defined in the future scope can become a effective and efficient way to state the reusability of software components.

Keywords Software Reusability, Software Metric, Neural Network, Accuracy, MAE, RMSE.

I. I NTRODUCTION

Software reuse is the improvement efforts of the productivity of the software because reuse can result in higher quality software at a lower cost and delivered within a shorter time [1]. Reused software is more accurate than new software because already it has been tried and tested in working system [5]. Reusable software components have been promoted in recent years. There are two approaches for reuse of code: develop the code from scratch or identify and extract the reusable code from already developed code [3]. With the existence of the software there is less uncertainty in the cost of reusing which is an important factor for project management as it reduces the margin of error in project cost estimation. Reusing software can speed up system production because both development and validation time will be reduced. Thus the reuse of software in systems development is a strategy that increases productivity and quality.

Code reuse is the idea that a partial or complete computer program written at one time can be, should be, or is being used in another program written at a later time.

The reuse of programming code is a common technique which attempts to save time and energy by reducing redundant work[5].

Tracz observed that for programmers to reuse software they must first find it useful [20]. Experimental results confirm that prediction of reusability is possible but it involves more than the set of metrics that are being used [21]. According to Poulin [11], in some sense, researchers have fully explored most traditional methods of measuring reusability: complexity, module size, interface characteristics, etc., but the ability to reuse software also depends on domain characteristics. It means we should concentrate on evaluating the software in terms of its relevancy to a particular domain [4].

Major challenge is to develop a robust framework for

software reuse. Neural network learns about its

environment through a set of input-output training samples

and is an interactive process of adjustment applied to its

synaptic weights and bias levels [3]. The proposed

framework has two layers. The first layer is formed by best

practices related to software reuse. Non-technical factors,

such as education, training, incentives, and organizational

management are considered. This layer constitutes a

fundamental step before of the introduction of the

framework in the organizations. The second layer is formed

by important technical aspects related to software reuse,

such as processes (reuse, reengineering, adaptation,

component certification), environments, and tools

(repository systems and its associated tools). This

framework constitutes a solid basis for organizations that

are moving towards an effective reuse program. Its

elements not only help the organization in adopting reuse,

but also guide it in the migration process, reducing its risks

and failure possibilities.

(2)

International Journal of Emerging Technology and Advanced Engineering

Website: www.ijetae.com (ISSN 2250-2459, Volume 2, Issue 4, April 2012)

579

Reuse is an act of synthesizing a solution to a problem based on predefined solutions to sub problems. The reuse activity is divided into six major steps performed at each phase in preparation for the next phase [5].

These steps are as following:

1. Developing a reuse plan or strategy after studying the problem and available solutions to the problem.

2. Identifying a solution structure for the problem following the reuse plan or strategy.

3. Reconfiguring the solution structure to improve the possibility of using predefined components available at the next phase.

4. Acquiring, instantiating, and modifying predefined components.

5. Integrating the components into the products for this phase, and. evaluating the products.

Figure 1: Phases of Reuse Activity

Neural networks have seen an explosion of interest over the years, and are being successfully applied across a range of problem domains, in areas as diverse as finance, medicine, engineering, geology and physics. Indeed, anywhere that there are problems of prediction, classification or control, neural networks are being introduced. It can learn by example. In order to make a neural network useful, the user needs to gather representative data, and then invokes training algorithms to train the neural network. Neural network learns about its environment through a set of input-output training samples and is an interactive process of adjustment applied to its synaptic weights and bias levels [22].

The learning algorithm involves the following steps:

 The neural network receives the normalized inputs that are available in the input-output training data samples.

 The output of the artificial neural network is then computed.

 The output of the network is then compared with that given in the training data samples. The error in the output is computed by taking the difference of the desired output and computed output from the network.

 The synaptic weights and biases are then changed so as to decrease the error based on the error gradient with respect to the different synaptic weights.

The process is repeated until the desired error goal is achieved [3].

II. R ELATED W ORK

Normal one possible measure of a component’s reusability comes from its success; how many other applications modules access this common code? Other measures come from static code metrics. There are basically two approaches to evaluate software reusability:

qualitative and empirical. The qualitative methods require substantial manual effort, as these methods generally rely on a subjective value attached to how well the software adheres to some guidelines or principles. On the other hand, empirical methods depend on the objective data that can be collected automatically and cheaply with the help of some tool [2].

Sonia Manhas [3] In this research work, structural attributes of function oriented software components are explored using software metrics and reusability of the software is evaluated by experimenting five different Neural Network based approaches, taking the metric values as input. The calculated reusability value enables to identify a good quality code automatically. The results are recorded in terms of Accuracy, Mean Absolute Error (MAE) and Root Mean Squared Error (RMSE) and are convincing enough to propose the system for the identification of reusable software components. The proposed metrics for Function Oriented Paradigm are as follows: Cyclometric Complexity Using Mc Cabe’s Measures, Halstead Software Science Indicator , Regularity Metric, Reuse-Frequency Metric, Coupling Metric and resulted with best result with Resilient Back propagation algorithm.

Parvinder S. Sandhu [4] Automatic reusability appraisal is helpful in evaluating the quality of developed or developing reusable software components and in identification of reusable components from existing legacy systems; that can save cost of developing the software from scratch.

Plan of reuse

Preparing for solution

Analysing the solution structure

Evaluating and integrating the components into products

Acquiring the predefined components

(3)

International Journal of Emerging Technology and Advanced Engineering

Website: www.ijetae.com (ISSN 2250-2459, Volume 2, Issue 4, April 2012)

580

But the issue of how to identify reusable components from existing systems has remained relatively unexplored.

The calculated reusability value enables to identify a good quality code automatically. It is found that the reusability value determined is close to the manual analysis used to be performed by the programmers or repository managers.

The metrics of are used and details of the metrics are as under: Weighted Methods per Class (WMC), Depth of Inheritance Tree (DIT), Number of Children (NOC), Coupling Between Object Classes (CBO), Lack of Cohesion in Methods (LCOM) and resulted with the best accurate value with conjugate gradient algorithm.

Ajay Kumar [5] Here we presented classification of the reusability of software components using Support Vector Machine (SVM). The identification of Reusable Software modules in Procedure Oriented Software System. Metrics has been used for the structural analysis of the different procedures. Software metrics for Procedure oriented paradigm has been used in this paper Cyclometric Complexity Using Mc Cabe’s Measure, Halstead Software ,

Science Indicator, Regularity Metric, Reuse frequency metric, Coupling Metric. The values of these Metrics will become the input dataset for the different neural network systems. Selby [6] identified a number of characteristics of those components, from existing systems, that are being reused at NASA laboratory and reported that the developers were successful in achieving a 32 percent reusability index. Selby’s recent experimental study has identified two categories of factors that characterize successful reuse-based software development of large-scale systems: module design factors and module implementation factors [7]. The module design factors that characterize module reuse without revision were: few calls to other system modules (i.e. low coupling), many calls to utility functions (i.e. high cohesion), few input-output parameters, few reads and writes, and many comments.

The module implementation factors that characterize module reuse without revision were small in size (source lines) and with many assignment statements (i.e. low Cyclometric Complexity). The modules reused without revision had the fewest faults, fewest faults per source line, and lowest fault correction effort. The modules reused with major revision had the highest fault correction effort.

Reformat et al have used decision tree based approach to the problems of identification of good or bad software based on Java and C++ objects. In the study fifteen metrics have been used and 55 to 72% accuracy has been reported [8].

Prieto-Diaz and Freeman encouraged white-box reuse and identified five program attributes for evaluating reusability [9]. The attributes used are:

Program Size Program Structure Program Documentation Programming Language Reuse Experience

Chen and Lee developed about 130 reusable C++

components and used these components in a controlled experiment to relate the level of reuse in a program to software productivity and quality [10]. In contrast to Selby, who worked with professional programmers, Chen and Lee’s experiment involved a team of 19 students, who had to design and implement small database system. The software metrics collected included the Halstead size, program volume, program level, estimated difficulty and effort. They found that lower the value of the software complexity metrics, the higher the programmer productivity [11].

Dunn and Knight also experimented and reported the usefulness of reusable code scavenging [12]. Chen, Nishimoto and Ramamoorty discussed the idea of subsystem extraction by using code information stored in a relational database [13]. They also described a tool called the C Information Abstraction System to support this process. Esteva and Reynolds [14] proposed the use of Inductive Learning techniques based on software metrics used to identify reusable modules. Their system was able to recognize reusable components.

Caldiera and Basili [15] proposed a tool called “Care‟ that was used to identify reusable components according to a set of “reusability attributes” based on software metrics. The paper proposed four candidate measures of reusability based largely on McCabe and Halstead metrics. These attributes include measurement of utilization of the component in the problem domain, the cost of reuse and its quality. The “Care‟ is expected to do the initial identification of the components having strong reusability characteristics; and then a domain expert will do a further examination of these components to determine their appropriateness to the domain, and package them to reuse.

Mayobre [16] described how these techniques can be

extended and used to help in identifying data

communication components of Hewlett-Packard.

(4)

International Journal of Emerging Technology and Advanced Engineering

Website: www.ijetae.com (ISSN 2250-2459, Volume 2, Issue 4, April 2012)

581

III. M ETHODOLOGY OF W ORK

Reusability evaluation System for function Based Software Components can be framed using following steps:

A. Selection of Metric Suit for Procedure Oriented Paradigm:

A framework of metrics is proposed for structural analysis of procedure or function oriented software. The code of software is parsed to calculate the metric values. The following suits of metrics are able to explore different structural dimensions of procedure oriented components [5].

The proposed metrics for Function Oriented Paradigm are as follows:

 Cyclometric Complexity Using Mc Cabe’s Measure [17][18]

 Halstead Software Science Indicator [17] [19]

 Regularity Metric [17][19]

 Reuse-Frequency Metric [17][19]

 Coupling Metric [17]

After generating the values of these mentioned metrics, these values will become the input dataset of different Neural Network systems to evaluate the reusability.

B. Design & Evaluate Neural Network System:

The following are the steps for each Neural Network based system:

(a) Perform the training of the different neural networks with the training dataset.

(b) The trained Neural Network is evaluated against the testing data on the different comparison criteria as described in the next step [5].

The following proposed Neural Network algorithms have been experimented:

 Batch Gradient Descent

 Batch Gradient Descent with momentum

 Variable Learning Rate

 Variable Learning Rate training with momentum

 Resilient Back propagation

 Scaled Conjugate Gradient

 Conjugate Gradient with Powell/Beale Restarts

 Fletcher-Powell Conjugate Gradient

 Polak-Ribiére Conjugate Gradient

 Levenberg-Marquardt

C. Comparison Criteria

The comparisons are made on the basis of value of MAE, RMSE and Accuracy values of the neural network model.

The details of the MAE and RMSE are given below:

Mean absolute error (MAE) Mean absolute error, MAE is the average of the difference between predicted and actual value in all test cases; it is the average prediction error [5].

The formula for calculating MAE is given in equation shown below:

(1)

Assuming that the actual output is a, expected output is c [3].

Root mean-squared error (RMSE) RMSE is frequently used measure of differences between values predicted by a model or estimator and the values actually observed from the thing being modelled or estimated [5]. It is just the square root of the mean square error as shown in equation given below [3]:

(2)

IV. C ONCLUSIONS

From the above sections, it can be proposed that more and more algorithms based on Neural Network can be implemented on the matrices of reusable components to enhance the values of accuracy which helps to state the maximum reliability of reusable software components with using the Matlab7.1 or greater environment and Neural Network toolbox. It can be proposed that the implementation of Self Organizing Network (SON), as it is one of the most fascinating topics in the neural network field which learns to recognize groups of similar input vectors in such a way that neurons physically near each other in the neuron layer respond to similar input vectors.

Learning vector quantization (LVQ) is a method for

training competitive layers in a supervised manner. A

competitive layer automatically learns to classify input

vectors. Thus, SON can be applied on proposed matrices

(i.e. Cyclometric Complexity Using Mc Cabe’s Measure,

Halstead Software Science Indicator, Regularity Metric,

Reuse frequency metric, Coupling Metric) to attain the

maximum value of accuracy so the software components

which will be evaluated with these proposed matrices and

algorithm based on the Neural Network can then be

identified and stated as the reliable and performance

oriented reusable software components.

(5)

International Journal of Emerging Technology and Advanced Engineering

Website: www.ijetae.com (ISSN 2250-2459, Volume 2, Issue 4, April 2012)

582

REFERENCES

[1] Anderson, J.A (2003)., “An Introduction To Neural Networks”, Prentice Hall of India.

[2] Poulin, J. S., 1997 Measuring Software Reuse–Principles, Practices and Economic Models, Addison-Wesley.

[3] Sonia Manhas, Rajeev Vashisht, Parvinder S. Sandhu and Nirvair Neeru (2010) “Reusability Evaluation Model for Procedure Based Software Systems”, International Journal of Computer and Electrical Engineering, Vol.2, Dec, 2010.

[4] Parvinder S. Sandhu, Harpreet Kaur, and Amanpreet Singh (2009)

“Modeling of Reusability of Object Oriented Software System”

World Academy of Science, Engineering and Technology 56 2009.

[5] Ajay Kumar (2012) “measuring software reusability using svm based classifier approach”, International Journal of Information Technology and Knowledge Management January-June 2012, Volume 5, No. 1, pp. 205-209.

[6] Selby, R. W., 1988 Empirically Analyzing Software Reuse in a Production Environment in Software Reuse: Emerging Technology, W. Tracz, ed., IEEE Computer Society Press.

[7] Selby, Richard W., 2005 "Enabling Reuse-Based Software Development of Large-Scale Systems", IEEE Trans. On Software Eng., vol. 31, no. 6, pp. 495-510.

[8] Reformat, M., Prdrycz, W. and Pizzi, N. J., 2003 “Software Quality Analysis with use of Computational Intelligence”, Journal of Information and Software Technology, 45, pp. 405-417.

[9] Prieto-Diaz, Ruben Freeman, P., 1987 “Classifying Software for Reusability”, IEEE Software, vol. 4, no. 1, pp. 6-16.

[10] Chen, Deng-Jyi and Lee, P.J., 1993 “On the Study of Program Reuse using Reusable C++ Components”, Journal of Software System, vol. 20, no. 1, pp. 19-36.

[11] Poulin, J. S., 1997. Measuring Software Reuse–Principles, Practices and Economic Models, Addison-Wesley.

[12] Dunn, M. F. and J. C. Knight, 1993. “Software reuse in Industrial Setting: A Case Study”, Proceeding 13

th

International Conference on Software Eng., Baltimore, MA.

[13] Chen, Y. F., Nishimoto, M. Y., and Ramamoorty, C. V., 1990 “The C Information Abstraction System”, IEEE Trans. on Software Eng., vol. 16, no. 3.

[14] Esteva, J. C. and Reynolds, R. G., 1991 “Identifying Reusable Components using Induction”, International Journal of Software Eng. and Knowledge Eng., vol. 1, no. 3, pp. 271-292.

[15] Caldiera, G. and V. R. Basili, 1991 “Identifying and Qualifying Reusable Software Components”, IEEE Computer, pp. 61-70.

[16] Mayobre, G., 1991 “Using Code Reusability Analysis to Identify Reusable Components from Software Related to an Application Domain”, Proceedings 4th Workshop on Software Reuse, Reston.

VA.

[17] Parvinder Singh Sandhu and Hardeep Singh, 2006,“Automatic Reusability Appraisal of Software Components using Neuro-Fuzzy Approach”, International Journal Of Information Technology, vol.

3, no. 3, pp. 209- 214.

[18] T. MaCabe, 1976 “A Software Complexity measure”, IEEE Trans.

Software Eng., vol. SE-2 pp. 308-320.

[19] G. Caldiera and V. R. Basili, (1991), Identifying and Qualifying Reusable Software Components, IEEE Computer, pp. 61-70.

[20] W. Tracz, A Conceptual Model for Mega programming, SIGSOFT Software Engineering Notes, 16( 3, July 1991) 36-45.

[21] Stephen R. Schach and X. Yang, Metrics for targeting candidates for reuse: an experimental approach, ACM, (SAC 1995) 379-383

[22] Sonia Manhas, Rajeev Vashisht, and Reeta Bhardwaj (2010)

“Framework for Evaluating Reusability of Procedure Oriented System using Metrics based Approach”, International Journal of Computer Applications (0975 – 8887), Volume 9– No.10, November 2010.

.

References

Related documents

The nascent literature examining the outcomes of fear appeals, used prior to high-stakes examinations, has shown that when fear appeals are appraised as threatening they result in a

The Chassis & Safety Division develops and produces electronic and hydraulic brake and chassis control systems, sensors, driver assistance systems, air bag control systems, washer

PLGA, vitamin e, montmorillonite In vitro and in vivo Improved oral pharmacokinetics with a 21-fold increased oral bioavailability and sustained release over 3 weeks as compared

Although the finding that the majority of isolates were dog-specific rather than zoonotic genotypes suggests that the zoonotic risk from this pathogen is less than previously thought,

Overall, the average crime rate of future displaced workers in the years prior to displacement is 1.33% for total crime, and 0.13% for property crime; as our sample focuses

Changes in permeability of the Nojima fault damage zone inferred from repeated water injection experiments Kitagawa and Kano Earth, Planets and Space (2016) 68 185 DOI 10 1186/s40623

LETTER Earth Planets Space, 52, 1067?1071, 2000 The impact of geomagnetic substorms on GPS receiver performance S Skone and M de Jong Department of Geomatics Engineering, University