0% found this document useful (0 votes)
41 views

Authors: Rupali & Japuneet Kaur Bajwa: M.Tech. (CSE)

The document summarizes a proposed approach for classifying reusable software components using neural networks and genetic algorithms. The main objectives are to select optimal features for component classification and to retrieve the best matching components from a repository. Genetic algorithms are used to optimize feature selection by evaluating features based on their distance from the average. Neural networks are then used to classify components based on the selected optimal features. The results showed improved recall and precision over other retrieval methods.

Uploaded by

Rupali
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views

Authors: Rupali & Japuneet Kaur Bajwa: M.Tech. (CSE)

The document summarizes a proposed approach for classifying reusable software components using neural networks and genetic algorithms. The main objectives are to select optimal features for component classification and to retrieve the best matching components from a repository. Genetic algorithms are used to optimize feature selection by evaluating features based on their distance from the average. Neural networks are then used to classify components based on the selected optimal features. The results showed improved recall and precision over other retrieval methods.

Uploaded by

Rupali
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 57

Authors :

Rupali & Japuneet Kaur Bajwa

Presented By:
Rupali
M.Tech.(CSE), Department of Computer Science
Punjabi University, Patiala
Abstract
Introduction
Literature review
Genetic Algorithm
Problem definition
Objectives
Results and evaluation
Conclusion and future scope
References
In proposed work, we have tried to solve the problem
of component reusability using neural network, in
which neural network is being used for retrieval of
components from repository.

With the development of multimedia data, there is


urgent need of high bandwidth for retrieval process.

Selection of extracted features plays an important role


in retrieval process. Good selection features also save
time and enhance the accuracy rate.
The main objective of this proposed work is to classify
the reusable components using neural network (NN)
and genetic algorithm (GA).

From result analysis it has been seen that proposed


work has provided good results in terms of recall and
precision rate.
Software is essential for every corporate to perform
business. As business and software are inter
dependent. Widespread use of the personal
computers and the Internet has created a new
dimension in the international market.

New users, mainly consumers; require to drastically


reduce the cost of software in order to match the
decreasing hardware price.

Component based software engineering has the


potential to enable software developers to effectively
and economically construct meaningful programs
from a toolkit of existing components.
Software reuse is the way toward making software
frameworks from existing software as opposed to
building them without any preparation.

Two processes are considered for the reusability of the


code:
To build the code with no help from outside.
To separate the code made from the code that was
reused.

Those organizations that deals in developing the


software and had an experience in the same field
but are not using the concept of reusability of the
software, would take extra charges for the development
for the components of reusability starting from the
building.

The charges of the software developed from starting


would be saved by checking and taking the
components reused from the software already
developed and from the softwares existed or the
inherited systems.
It is a procedure that means to plan and develop
programming frameworks utilizing reusable
programming segments.

Programming reuse is one of the principle inspirations


for CBSE.

This lesser both the improvement cost and exertion


and enhances the nature of the framework.
An imperative issue in CBSE is that it is more attractive
to reuse a current part than to build up another one.

This diminishes both cost and time to market, yet


obliges a looking instrument to get to all the
accessible parts.

Along these lines, to be viable, a CBSE must give


approaches for discovering, joining and adjusting
existing segments [1].
Neural networks are very good method for pattern
matching based on weight factors.

Neural networks process data in a similar way as the


brain of a human being works.

The network is made of a huge number of highly


interrelated processing components (neurons)
working in corresponding to resolve a definite issue.
Target

Neural Network
including Compare

Input connections (called Output


weights) between
neurons.

Adjust weights
Neural network learn by Training. Training can be divided
into two types:
Supervised Training

Unsupervised Training

When the predications are compared with the results


produced and when the system learns from the errors, it
is known as Supervised Training System.

When, the results or outcome are not known as training


part, it is unsupervised system.
A.Singh, Janhavi [2] This paper proposes a software repository for
storage and recovery of programming reusable segments. This vault
executes two sorts of pursuit methods Keyword based and decisive
based.

S.Yadav, K.Kaur [3] has developed an algorithm. This algorithm not


only solve the problem of ambiguity but is very user friendly. In this
paper a calculation is proposed which is the mix of two most
mainstream recovery strategies i.e. Essential word based
methodology and Semantics based segment recovery technique.

S.Gupta, A.Kumar [4] has presented that the new software


component retrieval method can evidently improve the
component retrieval precision and take care of the full-scale of the
searching results.
This paper shows a meta-information display and faceted order
for capacity and recovery of programming parts that considers
space semantic data in light of ontologies and texonomies.

K.Sandhu, T.Gaba [5] proposed a system in which a suffix tree


based component representation is defined in the form of a tree
model. It is a structural model for information generation and
representation so that the effective component modeling and
component specification will be obtained.

C.Srinivas, V.Radhakrishna [6] proposes a system in which the


fundamental thought is to bunch the product parts and structure
a subset of libraries from the accessible vault.
P.Vohra, A.Singh [7] proposes a new approach in which a
product store is developed which stores consequently, divided
code on the premise of inputs and yields.

A.Bakhshi, S.Bawa [8] produced a product segment archive to


store reusable component. Various look procedures are utilized to
pursuit the obliged part and recovery of those parts. The
procedures utilized for looking and recovering of parts are
decisive word based hunt.

J.Sudhakarn, R.Vasantha [9] proposes another strategy for part


grouping and recovery comprising K-closest Neighbor (KNN)
calculation and vector space model methodology.
C.Srinivas, V.Radhakrishna [10] proposes another methodology for
bunching of reusable segments or archives by utilizing crossover
XOR capacity which finds the level of comparability between any
two parts or records.

N.Madaan, J.Kaur [11] proposes a system which shows the part of


Requirement examination in segment choice process that helps
the product engineers to model their necessities.
The related literature focuses on techniques and strategies of
component grouping and reusability : Cyclometric Complexity
Using Mc Cabe's Measure, Halstead Software Science Indicator,
Regularity Metric, Reuse recurrence metric, Coupling Metric,
Clustering software components, Cluster Based Selection Process.

Problems such as selecting and retrieving the best component


from a repository can be solved by using the combination of
Genetic algorithm and Neural network respectively.

Nowadays, in the software development practice, the


percentage of time and effort allocated must be low. So, it can
only be achieved by above mention combination.
We developed Genetic Algorithms based approach
for selection component.

The strength of a genetic algorithm lies in its ability to


find a good solution to a problem where the iterative
solution is too prohibitive in time and the
mathematical solution is not attainable. The way that
the Genetic algorithm works allows it to find this
solution in a fast manner.

The selection rules are used by GA that are not


deterministic.
In present work we proposed a Component
classification using neural network with Genetic
algorithm for optimization of data. Firstly we load all
extracted feature point for the feature reduction
process.

Before applying Genetic Algorithm we need to


initialize the GA basic function using optimset
function like population size, mutation function,
crossover etc. After that we use ga function for
feature reduction according to the fitness function.
We set fitness function according to our requirement
like which type of feature we can use for classification
purpose.[12]
Genetic algorithm here in our proposed algorithm
accepts three input parameters namely e,Fs,Ft.

Fs is the current element of the feature value and Ft is


the average feature value of the feature set. Consider
the following set of example
Suppose we do have feature set like: 1 2 3 4
5678

Here in this case Fs would be 1, 2, 3,4 respectively


where as Ft for row 1 would be (1+2+3+4)/4 and in the
same manner for second row it would be (5+6+7+8)/4.
The fitness function says that if Fs < Ft then the feature
point is ok else the feature point is terminated. The
selected feature point for each data goes for the
training section into the neural network.

e is the error rate which is generated by the tool box


itself.

Instead of doing the programming we could have


used the toolbox directly which would appear by
typing OPTIMTOOL. This tool is a little difficult to
operate every time hence the programming has been
suggested.
On the basis of given condition we check the fit value
which can exist in new feature set.

Where f(fit) is fit value according to the fitness


function.
According to fitness function of GA we optimize the
feature point and we got more appropriate feature
value according to fitness function. Here 1 (true) and
0 (false) represent the feature value, if Fs is less than Ft
then selected value is true and is stored in feature set,
if Fs doesnt satisfy the condition then selected feature
value Fs is false and not stored as optimized features.
The fitness function is smooth (so derivative methods
cannot be applied).
The number of parameters is very large and it provides
good optimization for noisy environments.
When we use Genetic Algorithm then we got less
feature sets and accurate feature sets.

Because of above benefits GA seems to be more efficient


for other techniques like Bacterial Foraging Optimization,
Particle Swarm Optimization, Ant Colony Optimization,
Artificial Bee Colony.
The issue of reusability of component is generally
related to the efficient storage and retrieval of
reusable components from software repository.

The reusability of the component depends on the


suitability and match of retrieved component with
that of the user query.

To further enhance the relevance of the retrieved


component classification, clustering and ranking
needs to be done before hand effectively.
Component searching and retrieval are the main
issues in CBSE. Efficient searching and retrieval
technique is required so that good quality software is
developed.

Component retrieval is the process of comparison of


the query and the documents for the purpose of
identifying and retrieving those components that are
relevant to that query.
So this work solved the problem of component
reusability using neural network, in which neural network
will help out for retrieval of reused components.
To develop a dedicated repository for storage of
components that can be reused.

To design and develop an efficient retrieval


mechanism based user selection using neural network.

To develop proposed technique with interfacing of


Application Programming Interface (API).
To retrieve only relevant components while not
retrieving the non-relevant ones.

To evaluate the performance of proposed system on


the basis of certain parameters such as accuracy,
precision, recall, response time.
Retrieving the components considering these features
becomes more difficult and time consuming. The
purpose of this work is to select the best component
from a repository that can be reused. We are
interfacing our proposed work with Application
programming interface (API).

APIs are sets of requirements that govern how one


application can talk to another. APIs arent at all new
in this environment; whenever you use a desktop or
laptop, APIs are what make it possible to move
information between programs. In the proposed work
API used for the interfacing the proposed work. Using
API, data is collected from repository.
In the proposed system one component repository is
developed. From repository best component has to be
found. Best components are retrieved in a two step
process. The first step gives all the relevant
components, and the second step gives the best
component to the user. This enhances the chances of
retrieval of best component from a repository.

Neural network give satisfactory results for those


components which have attributes and weights. The
neural network based technique is very effective when
the repository size is very large.
Interface With API
Start and Input Data

Extract Keywords

Apply Genetic
Algorithm to
query items
Load Neural
Network

Neural network trained using


epochs, gradient function, and
validation setup

Reusable components
optimization using
neural
Optimized
search results Stop
When we extract the optimized feature using GA then
we train data using Neural Network for the
classification purpose. The initialization is done using
the syntax newff in Matlab. It accepts three
parameters, the first one is the training data, second
one is the group to which each element of the data
belongs to and the third is the number of hidden
neurons in one hidden layer

The other main factor is the total number of epochs in


network represented as
Net.trainparam.epochs=50;

Here the syntax says that there are total 50 number of


iteration. It does not mean that it is necessary for the
neural network to run 50 iterations. There are two
parameters of validations and to stop the training of the
neural network. The first is the validation checks which
are 6 in MATLAB 2010 and in our proposed algorithm. It
may vary according to the versions of Matlab.

Either the validation gets complete or the gradient


becomes equal to the decided gradient of the Neural
network would be sufficient enough to stop the training
of the Neural Network.
After the feature reduction using Genetic algorithm we
pass the reduced value to neural network for training
purpose of feature data which create the category
according to the feature data.

In neural network we use newff function for the


initialization of neural network. After that we set number
of iteration how much iteration will be sufficient for
complete training.

For the neural network training we use train function for


the training of data according to the initialized function.
In the classification section neural network analyze the
testing data. For the classification we use sim function
which operates on the basic of training net structure
with feature data of test dataset.
Following figure shows the view of adding component in the
component panel. At the end it shows data is added in which cluster
in the repository.
Following figure shows the component retrieval in the component
panel. While retrieving a component the various features has to be
added in the work panel. Then we will get component related to
features added.
Previous figure shows the status of process. After searching is
complete, it returns the retrieved record showing accuracy and
recall rate.

It shows the component retrieval in the component panel using


NN training tool box. NN toolbox has used the various features like
validation checks = 6. This structure contains all of the information
concerning the training of the network.
The obtained values for retrieval of components are
Precision rate = .20, recall rate = .19 and accuracy =
93.96
The evaluation of proposed algorithm will be done on
following parameters:

Definition: 1
Recall rate (r) is the positives that have been
detected by algorithm.

Definition: 2
Precision rate (p) is the negatives that have been
recognized by the algorithm.
Definition: 3
The accuracy is the exactness of the true values
obtained by implementation of proposed algorithm.

Recall rate is defined as

Precision Rate is defined as


Accuracy is defined as

Where
Components Recall rate Precision rate

1 .19 .201

2 .189 .198

3 .178 .203

4 .190 .189

5 .193 .187

6 .198 .200

7 .198 .234

8 .193 .201

9 .189 .234

10 .179 .222
Components Accuracy

1 93.94

2 93.45

3 93.77

4 93.22

5 93.66

6 93.56

7 93.87

8 93.78

9 93.66

10 93.76
Main aim of component retrieval storing system is to
build the prototype of software component retrieval.
These components can be used for three basic
actions that are: store, search and reuse.

Basically, the software components can include


description, entity and the information of the
metadata in the repository of the software
component. These can be store either statically or
dynamically.
The objective of this research lies in classifying the
software components that can be reused, by using
FFBPNN (Feed forward back propagation neural
network) as a training algorithm and Genetic
algorithm as optimizing algorithm.

Neural network is used in the research for training the


process quickly for achieving the solution. For the
learning process, Sigmoid and hyperbolic tangent
functions are used for the learning process. FFBPNN is
used for the classification purpose for reusing the
software components as per the needs of the
attributes and the characteristics.
For the training purpose of the proposed work, feature
vector data-cases are used. After the training process
of the training data, end weights are saved for the
testing part. Neural Network is used for the reusable
software component classification. The accuracy of
the proposed work came out to be 93.94 %.

Future Scope lies in the utilization of other classification


algorithm.
[1] G.N.K.SURESHBABU (2009). Analysis And Measures Of
Software Reusability. International Journal of Reviews in
Computing 41-46.

[2] Singh, S and Janhavi (2014). Development of Component


repository. International Journal of Advanced research in
Computer Science and Software Engineering. ISSN, 2277
128X.

[3] Yadav, S., & Kaur, K. (2013). Design of Rank Based


Reusable Component Retrieval Algorithm. International
Journal of Advanced Research in Computer Science and
Software Engineering, 3(11).
[4] Gupta, S., & Kumar, A. (2013). Reusable Software
Component Retrieval System. International Journal of
Application or Innovation in Engineering and
Management, 2(1), 187-194.

[5] Sandhu, K., & Gaba, T. (2014). A Novel Technique for


Components Retrieval from Repositories. Compusoft, 3(6),
912.

[6] Srinivas, C., Radhakrishna, V., & Rao, C. G. (2014).


Clustering and classification of software component for
efficient component retrieval and building component reuse
libraries. Procedia Computer Science, 31, 1044-1050.
[7] Vohra, P., & Singh, A. Automatic Fragmentation and
Storage of Code in Component Repository wrt their Input and
Output Interfaces: A Tool.

[8] Bakshi, A. (2013). Development of a software repository for


the precise search and exact retrieval of the
components (Doctoral dissertation, THAPAR UNIVERSITY
PATIALA).

[9] Sudhakaran, J. K., & Vasantha, R. (2011). A mixed method


approach for efficient component retrieval from a
component repository. Journal of Software Engineering and
Applications, 4(07), 442.
[10] Srinivas, C., Radhakrishna, V., & Rao, C. G. (2013).
Clustering software components for program restructuring and
component reuse using hybrid XOR similarity function. AASRI
Procedia, 4, 319-328.

[11] Madaan, N., & Kaur, J. A Survey on Selection Techniques


of Component Based Software. International Journal of
Information & Computation Technology. ISSN, 0974-2239.

[12] Codreanu, I. (2005, October). A parallel between


differential evolution and genetic algorithms with
exemplification in a microfluidics optimization problem. In CAS
2005 Proceedings. 2005 International Semiconductor
Conference, 2005. (Vol. 2, pp. 421-424). IEEE.

You might also like