I.J. Intelligent Systems and Applications, 2015, 10, 55-62
Published Online September 2015 in MECS (http://www.mecs-press.org/)
DOI: 10.5815/ijisa.2015.10.07
Copyright © 2015 MECS I.J. Intelligent Systems and Applications, 2015, 10, 55-62
Classification of Reusable Components Based on
Clustering
Muhammad Husnain Zafar
Dept. of Computer Science and Information Technology, University of Sargodha, Sargodha, Punjab, Pakistan
E-mail: husnainzafarmscs@gmail.com
Rabia Aslam
Dept. of Computer Science and Information Technology, University of Sargodha, Sargodha, Punjab, Pakistan
E-mail: aizelsajday@gmail.com
Muhammad Ilyas
Dept. of Computer Science and Information Technology, University of Sargodha, Sargodha, Punjab, Pakistan
E-mail: m.ilyas@uos.edu.pk
Abstract—Software reuse is the process of implementing
or updating software systems using existing software
components. A good software reuse process facilitates
the increase of productivity, quality and reliability. It
decreases the cost and implementation time as compared
to develop new system. Despite its many benefits we
cannot achieve its full benefits. The reason behind this is
that software reuse is often done in an informal and
haphazard way. If done systematically, then we can
achieve its full benefits. This research proposes a method
through which we will classify the reusable components
in proper way to get the full benefits of reusability. We
classify the reusable components according to their
clusters. Clusters are made on the basis of parameters
provided with components. We develop an algorithm for
assigning clusters to the reusable components.
Index Terms—Software Components, Software
Clustering, Software Reusability, Software Classification.
I. INTRODUCTION
Due to the benefits of reusability like, reduction in
time, cost and work as compared to develop a new
system, it has turn into useful tool for software
development [1, 2, 3]. If we apply reusability into
software components then reusable components are
maintaining easily and usually have a higher quality
value [4]. In order to make reuse an effective
methodology, it is necessary that the designer must know
how to retrieve the suitable solution, how to adopt that
solution to fulfill the requirement of new problem and
how to evaluate the result of that solution [5]. That [5] is
the biggest problem in many organizations. To overcome
this weakness, there is a need to organize and classify
collection of components so that we can identify the
suitable component for potential reuse [6]. This solution
provides an aid to the software developer [7].
This research proposes a method through which we
classify the reusable components in proper way. We
classify the reusable components according to their
clusters. Cluster analysis is a system used for cataloging
of data in which data elements are screened into groups
called clusters that represent collections of data elements
that are based on dissimilarity or distance [8]. A cluster
analysis acts a big job in software alliance. Cluster
analysis is the proposal for sorting out data into clusters
or groups in a situation where no prior information about
a structure is vacant [9]. It divides data into groups
(clusters) that are meaningful, useful or both [10]. The
clustering approach is a key gadget in decision making
and an effective inspiration method in generating ideas
and obtaining solutions. Clusters combine the similar
units into one cluster and clusters should be different as
possible. If there exist high similarity in intra-cluster and
low similarity in inter-cluster, the quality of clustering
becomes high [11]. For solving classified problem,
clustering is an uncertain data analysis tool. Its objective
is to sort cases into groups or clusters, so that the degree
of friendship is strong between members of the same
cluster and weak between members of different clusters
[8].
Rest of the paper compromise the following sections.
Section II describes related work. Proposed framework
and algorithms are given in Section III and Section IV
respectively. Results and discussions are explained in
Section V. Section VI compromises the conclusion and
future work.
II. RELATED WORK
Reusability becomes very effective elements of
software development because it gives many benefits to
the developer like less time, less effort and less cost as
compared to develop new component [15]. It also
reduces the risk that is related to software development.
Instead of its many advantages, there is a lack of
symmetric way to use the reusable components in proper
way. This paper tries eliminating this flaw. M. Ilyas et al
[15] gives a frame work that gives a systematic way to