Download as pdf or txt
Download as pdf or txt
You are on page 1of 19

Journal of King Saud University – Computer and Information Sciences 34 (2022) 5533–5551

Contents lists available at ScienceDirect

Journal of King Saud University –


Computer and Information Sciences
journal homepage: www.sciencedirect.com

Metrics for reusability of java language components


Amit Rathee ⇑, Jitender K. Chhabra
Department of Computer Engineering, National Institute of Technology, Kurukshetra 136119, Haryana, India

a r t i c l e i n f o a b s t r a c t

Article history: Software reuse is a promising opportunity for a software development process that helps in achieving an
Received 6 November 2021 improved quality of the developed software system. Improved quality also promotes software architec-
Revised 11 April 2022 ture reuse opportunities. From the past few decades, software reuse is actively gaining popularity in the
Accepted 13 May 2022
form of Component Based Software Development (CBSD). The components being the basic unit in CBSD,
Available online 24 May 2022
accessing their reusability is a useful and open area of investigation. The extent of the reusability can be
quantified based on the extent of intra and inter-connectivity of the attributes/ characteristics of the
Keywords:
component. This can be computed by defining suitable metrics to measure the reusability of a compo-
JavaBeans
CBSD
nent. Although, there exist some metric suites such as CK, MOOD, Halstead, McCabe’s metric, etc. for
Component’s Reusability measuring the reusability of the object-oriented software systems, but they are not directly reusable
Metric Suite in the CBSD environment. This is due to the fact that these metrics are applicable only at the class level
and they do not target the interfaces of the component that are important and define the composability of
the component in the CBSD environment. Therefore, this paper aims to study the reusability, flexibility,
composability, and adaptability aspects of the software component. Further, based on the study con-
ducted, we propose a reusability metric suite specially designed for the JavaBeans. This metric helps to
measure the architecture level reusability of the JavaBeans. The JavaBeans component standard is spe-
cially targeted in this paper because components based on this standard are not fully explored and only
a few metric suites exist for measuring the reusability of the JavaBeans. The proposed component
reusability metric suite is validated both experimentally as well as against Briand’s framework.
Ó 2022 The Author(s). Published by Elsevier B.V. on behalf of King Saud University. This is an open access
article under the CC BY-NC-ND license (http://creativecommons.org/licenses/by-nc-nd/4.0/).

1. Introduction cept of reusable components in an international conference held at


Garmisch, Germany (McIllroy, 1968). Based on the study con-
Software reuse is a key technique that helps in developing large ducted by Frakes and Succi aiming at determining the relationship
and complex software systems rapidly and in a cost-effective man- between the extent of reuse, software quality, and productivity
ner. Software reuse can help implement architecture-level gain, it is concluded that promoting reuse always results in
reusability. The importance of software reuse can be easily under- improved underlying software system quality (Frakes and Succi,
stood from the fact that the U.S Department of Defense alone can 2001). With the gain in the popularity of FOSS (Free and Open
annually save a sum of $300 million by only enhancing the soft- Source Software), software components are managed in the form
ware reuse by a factor of 1% (Anthes, 1993). Reusability has been of packages (Cosmo et al., 2009).
an active part of software development for the past several decades
and it has its roots back in 1969 when Mcllroy introduced the con-
1.1. Reusability in Software Development

⇑ Corresponding author. Reusability in software development can be targeted in many


E-mail addresses: amit1983_rathee@rediffmail.com (A. Rathee), jitenderchhab- forms, namely design patterns, architectural patterns, software
ra@gmail.com (J.K. Chhabra). libraries, frameworks, algorithms, test cases, components, artifacts,
In this work we propose a new reusability metric suite for measuring reusability of procedures, requirement specifications, skills, and/ or ideas. One
Java language components.
approach that highly promotes the architectural level reuse is
called Component Based Software Development (CBSD). The CBSD
approach focuses on developing software by integrating indepen-
dent reusable units called components. The important part of a
Production and hosting by Elsevier
component is its interface and it plays a significant role in

https://doi.org/10.1016/j.jksuci.2022.05.010
1319-1578/Ó 2022 The Author(s). Published by Elsevier B.V. on behalf of King Saud University.
This is an open access article under the CC BY-NC-ND license (http://creativecommons.org/licenses/by-nc-nd/4.0/).
A. Rathee and J.K. Chhabra Journal of King Saud University – Computer and Information Sciences 34 (2022) 5533–5551

determining the reusability of a component. An interface of a com- be more reusable as compared to its equivalent small-sized
ponent gives details of the services it offers to the outside world by component with higher dependencies.
defining a collection of operations. The interfaces of a component 7. McCabe’s Cyclomatic Complexity metric also cannot be applied
play an important role and help in integrating different compo- to measure the underlying complexity of a component in every
nents together to have fully functional software in the CBSD case. For instance, for black-box components, only interfaces
environment. are visible for use. Therefore, a quantitative measure based on
To utilize the benefits of reusability, it is important to measure the presence of a total number of linearly independent paths
the reusability factor of a component, and hence it’s underlying becomes useless.
architecture so that its suitability/ usefulness in software develop-
Alongside the above-mentioned software reusability/quality
ment can be determined. This requirement arises because there
metrics, there is another metric known as Turbo Modularization
may exist more than one component that provides the functional-
Quality (TurboMQ) proposed by Mitchell and Mancoridis (2008).
ity needed by the software developer in the CBSD environment. In
This metric is a quality evaluation metric used to evaluate different
such a situation, the developer needs to compare and choose the
recovered architectures of software. It is a ground-truth
single best component out of the pool of similar components. This
architecture-independent approach that promotes cohesive clus-
requires that there must be some metrics, which are capable of
tering and penalizes excessive inter-cluster coupling. Based on this
quantifying the component characteristics and thus help in evalu-
characteristic of the TurboMQ metric, it has also been applied to
ating, comparing, and finally choosing the best component. Such
measure the quality of software components (Rathee and
metrics can help developers in identifying probable risks associ-
Chhabra, 2019). However, here, it is necessary to determine how
ated with the CBSD environment and hence help in improving var-
this metric is useful in determining the overall reusability score
ious underlying software qualities such as reliability,
of JavaBeans.
maintainability, etc.
The rest of this paper is organized as follows: Section 2 provides
a formal definition of a software component, explains the need for
1.2. Object-Oriented Software Reusability Metrics and Their
computing reusability at the component level, and further provides
Limitations
details about contributions and adopted methodology of the paper.
Section 3 provides necessary details about substantial work carried
In the industry as well as the research community, several well-
out in the direction of reusability and metrics available at the com-
established software metrics and models are already proposed in
ponent level. Section 4 briefly discusses about various key termi-
the literature for object-oriented software systems and they have
nologies used during the computation of different metrics in the
been successfully used in combination for measuring reusability
proposed reusability metric suite. In Section 5, different metrics
and/ or quality aspect of Object-Oriented (OO) software Systems
belonging to the metric suite are elaborated in detail along with
(Onyango et al., 2020; Padhy et al., 2018). These well-established
details about a case study. This section is followed by Section 6
software metrics and models include Chidamber and Kemerer met-
which provides details about the theoretical validation of the pro-
rics suite, McCabe’s Cyclomatic Complexity metric, Halstead LOC
posed metric suite. Section 7 provides details about experimental
metric, and MOOD metric suite (Aggarwal et al., 2006; Harrison
steps and formulated different research questions. Section 8 gives
et al., 1998; Chidamber and Kemerer, 1994; Ampatzoglou et al.,
necessary details about obtained results in this paper and their cor-
2018). However, these metrics cannot be directly applied to a com-
responding interpretations in context to formulated research ques-
ponent in the CBSD environment because of several reasons such
tions. Finally, Section 10 completes the paper by specifying
as:
necessary conclusions and possible future work details.
1. Many metrics like McCabe and MOOD metric suites require
access to the internals of the code. However, sometimes 2. Reusability At Component Level: A Formal Representation
such access is restricted in the case of a black-box compo-
nent. Thus, inhibiting the use of many standard OO As discussed in subsection 1.1 of this paper, the reusability in
metrics. software engineering can be implemented in many different forms.
2. A component is generally a collection of two or more software This creates the problem of a lack of a widespread, systematic
elements (class/ interface) and OO metrics are generally defined reuse approach in software engineering. Thus, it is not wrong to
and used in the context of individual software elements. Thus, claim that the current research community does not possess a
OO metrics constitute scalability issues in CBSD. common consensus on what exactly is the reusable form of a soft-
3. Most of the existing OO reusability metrics have a single speci- ware component. In the software engineering world, the word
fic aim and are focused on measuring certain complexity ”component” (aka reusable unit) possesses different synonyms
aspects of software by generally utilizing its structural features. including design pattern, architectural pattern, framework, and/
However, there are other important software assets such as or underlying existing source code in the form of a method, class,
documentation, semantic characteristics, and other external module, package, and library. Therefore, first, it is mandatory to
quality parameters that may be utilized to enhance the formally answer different questions in this paper before actually
reusability measuring accuracy of a component. Hence, there explaining the proposed metric suite: How a software component
is a scope for improving existing metric suites. is defined? What are different component properties that help in
4. Various key component-specific features/ characteristics such promoting reusability and adaptability?.
as the presence of the interfaces, the complexity of the inter-
faces, completeness, and customizability remain undetectable 2.1. Need for Component’s Reusability Metrics
by Conventional OO metrics.
5. The overall architecture of a component is different from the The author in Sametinger (1997) defines a component as an
normal class. Thus, conventional OO metrics cannot optimally identifiable, self-contained, and reusable part of a software system
determine accurate inter and intra component relations. that further describes a specific- functionality. It can be easily inte-
6. Conventional size metrics such as the Halstead LOC metric can- grated with other components in the system through its unique
not measure the reusability of a component. This is because a interfaces (that encapsulate internals) in order to provide broader
lengthy component with fewer dependencies is considered to functionality. These components must follow composition
5534
A. Rathee and J.K. Chhabra Journal of King Saud University – Computer and Information Sciences 34 (2022) 5533–5551

standards as laid out by underlying component models in order to designed for specific functionality. The key contributions of this
be directly reusable in the CBSD environment (Lau and Wang, paper are summarized below:
2007). Different component model standards specified in the liter-
ature include.NET component model, JavaBeans component model, 1. Proposed a metric suite for measuring the reusability score of a
Common Object Request Broker Architecture (CORBA) component component that follows the specifications of the JavaBeans
model, X-MAN component model, Enterprise JavaBeans (EJB) com- Component Model.
ponent model, and Component Object Model (COM) (Niekamp, 2. Proposed multiple criteria, namely cohesion, complexity, com-
2005; Crnkovic et al., 2010). The suitability of the JavaBeans com- pleteness, coupling, and customizability that are not earlier
ponent model is widely considered fruitful in different domains in handled to measure reusability at the component level. To the
(Feljan et al., 2009; Lau and Di Cola, 2017; Furht, 2019). The best of the author’s knowledge, the measurement criteria used
authors in Feljan et al. (2009) utilized the JavaBeans component for these metrics are unique and depend on the key character-
model for proposing a new domain-specific component model istics of the JavaBeans.
called SaveCCM for real-time vehicular embedded systems. More-
The methodology adopted by authors in this paper includes
over, the authors in Rathee and Chhabra (2019) proposed a model-
extracting different key characteristics of the JavaBeans, comput-
ing approach for identifying JavaBeans components by mining
ing different metrics belonging to the metric suite, and performing
object-oriented reusable software components from the underly-
both theoretical and empirical validation of the proposed metric
ing software system. Therefore, due to the wider popularity of
suite. The key information extracted from the JavaBeans includes
the Java programming language and its close resemblance with
association, inheritance, method calls, parameters, return type,
the JavaBeans component model standard (Jendrock et al., xxxx),
attribute usage, indirect usage, co-change, and semantic attributes
this paper focuses on software components designed and available
by utilizing a semi-automated tool designed by the authors. The
in the CBSD environment as per specifications of the JavaBeans
theoretical validation of the proposed metric suite is performed
component model.
against different properties of the Briand’s framework. The exper-
To the best of the author’s knowledge, the existing component
imental validation of the proposed reusability metric suite is done
reusability measurement metrics provide very trivial information
by studying different software systems. The studied software sys-
and missed out on important parameters such as the complexity
tems are divided into three categories. The first category includes
of a component as in (Washizaki et al., 2004). Further, many of
ready-to-use components designed as per the specification of the
these metrics are general in nature and do not target any specific
JavaBeans component model. The second category includes state-
component model such as COM, JavaBeans, CORBA, etc. Moreover,
of-art object-oriented software systems that are designed and
a JavaBeans is one of the most important and usable component
managed with the idea of reusability criteria promotion. Finally,
models for the Java language (Englander, 1997). Based on the man-
the third category includes normal object-oriented software
ual investigation and to the best of the author’s knowledge, there is
systems.
only a single metric suite by (Washizaki et al., 2004) that is espe-
cially proposed to measure the reusability of different JavaBeans
(components). However, this metric suite is having the following 3. Literature Survey
shortcomings:-.
During the last few decades, significant work is done in the
1. This metric suite is especially proposed for only black-box com- direction of software reuse while developing a new software sys-
ponents. Hence, it fails or is not that much effective for the tem. CBSD is one of the widely adopted approaches that promote
white/glass-box components. software reuse in the form of components. Components provide
2. This metric suite does not target measuring the complexity of functional reusability. Szyperski et al. provide a definition of a soft-
the JavaBeans interface. A complex component is hard to under- ware component that is widely been adopted among the research
stand and thus its applicability in the CBSD environment is community (Szyperski et al., 2002). They stress the fact that the
restricted (Gosain and Sharma, 2017; Anguswamy and Frakes, interfaces are the fundamental building blocks and each compo-
2012). Thus measuring the complexity of the JavaBeans compo- nent may have properties, methods, events, and relationships
nent’s interface is necessary. among the interfaces of the different components. A search-
3. The authors in Washizaki et al. (2004) stress the fact that a com- based multi-objective approach is proposed for identifying reusa-
ponent having a higher number of business methods without ble software components from the existing source-code of an
parameters or return value is considered self-completed. This object-oriented software system in Rathee and Chhabra (2019).
restriction in our opinion is not a good choice. Shatnawi et al. give an approach for converting object-oriented
4. The computation of metrics is trivial and considers only the APIs into the corresponding component-based APIs (Shatnawi
presence or absence of the features present in the JavaBeans. et al., 2018). The authors conclude that component-based APIs
are more manageable as compared to their corresponding counter-
2.2. Overview of Contribution and Methodology parts. The authors in Rathee and Chhabra (2019) conclude that
there is plenty of research opportunity for reusable components
Based on the growing trends for CBSD in IT industries, the in multimedia software and propose an approach for identifying
growth of JavaBeans, and the lack of suitable JavaBeans reusability reusable multimedia components from legacy multimedia soft-
estimation metric suite, this paper considers studying and measur- ware systems. The authors in Thapar and Sarangal (2020) proposed
ing JavaBeans reusability by proposing a new metric suite. The pro- a multi-criteria-based hybrid fuzzy metric approach for quantify-
posed metric suite captures many characteristics such as cohesion, ing the reusability of a software component based on its underly-
complexity, completeness, coupling, customizability of the soft- ing quantity. Papamichail et al. proposed a software reusability
ware that is useful to comprehend the architecture, at the macro/ evaluation approach based on trivial static analysis metrics
micro level, of the software under consideration. The proposed (Papamichail et al., 2019). The authors reduced subjectivity by
metric suite measures different quality dimensions of the Java- building a benchmark dataset and extracted the developers’ based
Beans and finally computes its reusability score. This reusability reuse rate at class and package level from it using the AGORA
score reflects the reuse quality of the component and can help in search engine. This reuse rate is used as the actual ground truth
choosing the best component from a pool of components that are and is extracted from the structural properties of the source code.
5535
A. Rathee and J.K. Chhabra Journal of King Saud University – Computer and Information Sciences 34 (2022) 5533–5551

Structural properties of the code, as well as software architecture by conducting a small experiment and proposing a metric for the
such as coupling, cohesion, and complexity (CCC) have been uti- same (Sharma et al., 2008). Bertoa et al. propose a set of usability
lized for automatically identifying vulnerability in software by metric suite for a software component that measures five charac-
proposing a framework (Chowdhury and Zulkernine, 2011). Many teristics, namely operability, compliance, understandability,
of these architectural properties have also been computed at a attractiveness, and learnability (Bertoa et al., 2006). Mijac et al. car-
dynamic level in the form of different dynamic cohesion metrics ried out a systematic survey about reusability metrics proposed by
that help in observing the behavioral aspects of the software sys- different researchers along with important information such as the
tem (Gupta and Chhabra, 2011). The whole purpose of computing most cited papers, different factors that affects the reusability of a
all such metrics is to promote reusability and a component-based software component, the number of factors used to measure
development approach (CBSD). CBSD has also been supported by reusability (Mijač and Stapić, 2015).
using the concept of Access Control Configurations (ACCs) in Sun Besides some OO reusability metrics discussed in subsection -
and Huang (2011), in which authors proposed various algorithms 1.2, several metrics and frameworks have been already proposed
and metrics that can efficiently evaluate and configure software that help measure the reusability of a component (Koteska and
architecture with different ACCs. Through the above-mentioned Velinov, 2012; Gui and Scott, 2009; Bi et al., 2009; Boxall and
metrics and algorithms, many independent and optimized Araban, 2004; Washizaki et al., 2004). The authors in Gui and
classes/components are extracted and represented in the form of Scott (2009) proposed and utilized a new set of weighted static
APIs with suitable interfaces. The concept of APIs was used by coupling and cohesion metrics for evaluating the reusability aspect
Cimino et al. by utilizing client-side APIs and user interfaces to of the Java components retrieved from the internet using a compo-
develop a device-independent mobile application Cimino and nent search engine. Three factors, namely the degree of resem-
Marcelloni (2012). The proposed approach first models the mobile blance among different entities, indirect coupling, and functional
application platform-independent, and finally, the transformation complexity of classes and methods, differentiate proposed static
model is used to convert it to a specific platform application. Many metrics from others. Authors in Washizaki et al. (2004) proposed
of the metrics and approaches of reusability usually contain some a metric suite for measuring the reusability of a black-box software
redundancy and some researchers have reduced such redundan- component based on features such as understandability, portabil-
cies by using deep learning-based convolutional neural network ity, and adaptability factors of a component. A unified model for
in the domain of ubiquitous networks (Song et al., 2019). The measuring the reusability of a component is proposed in Koteska
authors in Papamichail et al. (2019) contributed a large-scale data- and Velinov (2012) that can be easily adapted to accommodate dif-
set to the research community that contains the reusability aspect ferent reusability requirements. Based on the critical survey, new
of software components i.e. the degree to which a particular soft- attribute addition is suggested to efficiently compute component
ware component is reusable. The extent to which a particular com- reusability. Bi et al. (2009) built a quantitative measurement model
ponent is reusable is based upon its actual reuse rate mined using based on the relationship between the reusability of a component
the AGORA code search engine and six source code properties, and its underlying complexity measure. Boxall et al. proposed a set
namely documentation, cohesion, size, complexity, coupling, and of metrics that are considered relevant to measure the understand-
inheritance. An automated Reusable Service Identification (ReSIde) ability and reusability of a black-box software component (Boxall
approach is proposed for identifying reusable services by analyzing and Araban, 2004). Out of these metrics, Washizaki et al. (2004)
variability and commonality from multiple object-oriented soft- and Boxall and Araban (2004) are only applicable to black-box
ware product variants (Shatnawi et al., 2020). The authors in components for which source code is not easily available.
Mohammed et al. (2021) proposed a new approach to retrieve reu- Based on the literature survey, we conclude that some of the
sable software components from repositories using NLP-based already proposed metrics are very basic in nature and do not con-
Information Retrieval (IR) techniques. A multi-period multi- sider the complexity of the underlying component. Especially, the
objective model is proposed in Mehlawat et al. (2020) to optimize more closer metric suite is given by Washizaki et al. (2004) and it
involved maintenance cost and fitness evaluation of software com- consists of five metrics that measure the reusability of JavaBeans
ponents in a multi-phase deliverable system. A generic methodol- based on the limited information available, namely EMI (Existence
ogy is proposed in Papamichail and Symeonidis (2020) to identify of Meta-Information), RCO (Rate of Component Observability), RCC
non-maintainable software components in the early stages of soft- (Rate of Component Customizability), SCCr (Self-Completeness of
ware evolution using a one-class-classification approach based on Component’s Return Value), and SCCp (Self-Completeness of Com-
complexity, coupling, inheritance, and cohesion characteristics of ponent’s Parameters). Out of these metrics, the EMI metric is very
source code. An Artificial Neural Network (ANN) based component trivial (gives binary output). The RCO metric measures only the
reusability assessment approach is proposed in Sharma et al. readable properties and does not measure anything about the pro-
(2009). The reusability assessment approach is based on four key vides and requires interface of the underlying component. The RCC
factors, namely, portability, customizability, understandability, metric measures customizations as the number of writable proper-
and interface complexity. ties/ fields and do not consider the importance of the internal of
Besides these, a few metrics are also proposed for estimating the JavaBeans due to its black-box nature. Finally, the interface
the reusability of the object-oriented software and components. complexity computation is very trivial (using SCCr and SCCp met-
C&K metric is the widely used suite that consists of six metrics. ric) and is based on determining methods that do not return any
Out of these the Weighted Methods per Class (WMC), Depth of value and methods without any parameters. Moreover, the authors
Inheritance Tree (DIT), Lack of Cohesion in Methods (LCOM), and in Washizaki et al. (2004) consider JavaBeans as a black-box. Con-
Coupling Between Object Classes (CBO) are commonly used sidering internals can give much important information that can
reusability metrics that are mainly applied at the class level help in measuring the reusability of JavaBeans with more accuracy.
(Chidamber and Kemerer, 1994). Cho et al. propose metrics for The fuzzy-based approach by Thapar and Sarangal (2020) is also
measuring different component characteristics, namely customiz- not feasible because the fuzzy decision is based on stakeholders’
ability, complexity, and reusability (Cho et al., 2001). The authors opinions and several other factors like security, recoverability,
in Boxall and Araban (2004) propose metrics for measuring the administration efforts, testability, etc. Several of these attributes
understandability and reusability of interfaces of component that are not always present. Most of the proposed metrics lack detailed
is designed using the.NET & COM component model. Sharma empirical analysis in order to validate the proposed metrics. Very
et al. studied the interface complexity of the JavaBeans component few metrics targets estimating the reusability of the components
5536
A. Rathee and J.K. Chhabra Journal of King Saud University – Computer and Information Sciences 34 (2022) 5533–5551

designed using a JavaBeans component model. Moreover, the met- 3. A component is having a more clear distinction between inter-
ric suite that is designed for the black-box components cannot be face and implementation concerns as opposed to its class
directly applied to white-box/ glass-box components whose source counterpart.
code is accessible. Some of the proposed approaches only consider 4. The package also contains a set of classes and sub-packages,
cohesion and coupling factors while determining the overall however, it is not always mandatory that such grouped classes
reusability of the component. Finally, some of the proposed met- are related to each other. Hence, it cannot be considered as a
rics are subjective in nature and are very difficult to measure on reusable component in the CBSD environment.
a real-time application. Therefore, we propose a new suite of met-
rics that measures the reusability of the components with a fresh A software component can be created from scratch or it can be
idea to measure different dimensions of the underlying compo- extracted from existing software as independent clusters. In the
nent. These dimensions include cohesion, coupling, customizabil- component-based software architecture, a component may contain
ity, self-completeness, and corresponding interface complexity. other components (cluster within another cluster) leading to the
Finally, based on these measured dimensions, the final reusability hierarchical organization of the software architecture. Mathemati-
score is computed. th
cally, a component at i level in the software architecture is basi-
cally represented as a pair C i ¼< Ei ; Ri >, where Ei is a set of
th
4. Background and Used Terminologies elements (contents of the component) belonging to the i compo-
nent. The contents of a component are a set of classes (and/ or
Before presenting different metrics for measuring the reusabil- interfaces for Java/ C#). The Ri represents the set of relations that
ity of the JavaBeans, it is mandatory to present various terminolo- the component at i
th
level possesses. Since a component at the i
th

gies and naming conventions used for getting a precise definition th


level may require the services of the components at the ði þ 1Þ
of a software component in an object-oriented software environ-
level and it may provide services to the components at the
ment. It helps a user in understanding the idea and the concept th
presented in this paper. The various terms and mathematical rep- ði  1Þ level. Therefore, the set Ri is defined as
i i iþ1 i1
resentations that are formulated in this paper are as follows: R # E  ðE [E Þ.This set is a binary relation set and it repre-
th
sents the directed connection of the contents of the i level compo-
th th
4.1. Software Component nent with any one of the contents present at ði  1Þ or ði þ 1Þ
level components.
A software component is basically defined as a piece of software
(a modular unit) that provides a unified predefined service via its 4.2. Software Component’s Interface
interface (Provides and Requires interfaces) and it is able to com-
municate with other components (Rathee and Chhabra, 2019). It Interfaces are the crucial part of a component in a component-
encapsulates its contents and can be easily replaced with another based software architecture of a system. These interfaces represent
similar component. It provides plug-and-play functionality in soft- the architectural interaction among different components in a
ware design and it supports software reuse. Moreover, it helps in component-based software system. In a very common way, these
decomposing the software into manageable parts, resulting in interfaces are specified in terms of a set of operations (methods/
reduced complexity. Thus, a software component promotes functions) and they are generally classified as provides interface
architecture-level reuse. (set of operations a typical component provides to its environ-
In OO software engineering, the term class and package are the ment) and requires interface (set of operations a typical compo-
key composing elements that help implement modular program- nent needs from its environment) (Crnkovic et al., 2010). As part
ming in the Java programming language. However, there is a sig- of source code, interfaces of a software component can be specified
nificant difference between a class, package, and component. A using one of two approaches. One method of describing interfaces
class in object-oriented terminology is an implementation-time is the language-independent approach in which various Interface
unit used by programmers. It represents an entity and it generally Description Languages (IDLs) are used. A survey of various IDLs is
performs a micro functionality (a specific small task) in an appli- available in Guerrero-Garcia et al. (2009). Another way to describe
cation. A component in the object-oriented terminology is the interfaces of a component is the language-dependent approach in
design-time unit used by system designers and is larger in gran- which particular programming language styles are used to denote
ularity than classes. A component is generally represented as an a set of methods and attributes. In literature, several techniques
aggregation of classes that together perform a macro functionality exist to identify a set of methods and attributes that constitute
(larger functionality that is closer to the business description such interfaces of a component (Liu et al., 2018; Shatnawi et al., 2018;
as ”Shopping Cart” and ”Inventory”). Interfaces of a component Rathee and Chhabra, 2019; Rathee and Chhabra, 2019). Here, it is
hide its underlying contents from the outside world. A package important to note that a list of methods and attributes that consti-
in Java is a namespace to organize classes, sub-packages in order tutes interfaces of a component may be different as different
to handle naming conflicts and to provide controlled access. The approaches in literature use different mechanisms. Therefore, this
key differences between classes, components, and packages are paper considers a formal definition of interfaces in order to define
summarized below along with highlighting the importance of metrics in an abstract way. In a formal way, interfaces of a compo-
th
components: nent at the i level in the software architecture are basically repre-
sented as a pair InterfacesðC i Þ ¼< Prov ides ; Requires >. Here,
i j

1. A class is generally a less reusable unit as compared to its com-


Prov ides is a set of methods and attributes that belongs to the i
i th

ponent counterpart. This is because a class generally has more


component and represents the set of features that are offered by
dependencies with other classes, whereas a component pos- j
the component to its outside environment. Similarly, Requires is
sesses lesser outside dependencies. Hence, a component is a
a set of methods and attributes that actually belongs to some other
more reusable unit.
th
2. The primary reuse relationship for classes is an inheritance, component say j (another component in the CBSD environment)
th
whereas for the components the reuse relationship is aggrega- and represents the dependency of the i component on its outside
tion/ composition. environment.
5537
A. Rathee and J.K. Chhabra Journal of King Saud University – Computer and Information Sciences 34 (2022) 5533–5551

4.3. Software Sub-component Mathematically, any relation of type i (as mentioned in Table 1)
among a pair of two elements say e1 and e2 is represented as
A component C i identified from the existing source code of an ri ðe1 ; e2 Þ. The presence of any such relation is denoted as
OO legacy software system is generally considered to possess a flat ri ðe1 ; e2 Þ ¼ 1 and it denotes the dependency of e1 on e2 . It is repre-
organization of its contents, i.e. there is no specific organization sented as ei1 ! ei2 . Furthermore, these relations are asymmetric in
among its different contents identified from the existing software nature, meaning that any relation existing as ei1 ! ei2 does not
system (Mishra et al., 2009; Shatnawi et al., 2018; Rathee and automatically imply that ei2 ! ei1 . All these relations exist between
Chhabra, 2019). Rather, all its contents are generally supposed to classes, interfaces, subpackages belonging to different components.
be present at the same level because of the fact that such compo- For the sake of computation, all these relations are categorized into
nents are identified by clustering different individual software ele- the following categories:
ments together. This is unlike packages where the contents of a
package may have a hierarchical organization of its contents, i.e.
a package may contain sub-packages with no limit on the depth 4.6.1. Class- Subpackage relations
of the sub-package. This means a sub-package may contain another These relations exist among the contents of a given component
sub-package in the case of the definition of a package. Since a com- and are referred to as the Intra relations of a component. These
ponent is considered to have a flat organization of its content relations are used to compute the cohesion quality parameter
rather than to have a hierarchical arrangement of its contents (as (aka relatedness among different contents) of a component. It
the case may be with packages). Therefore, this paper considers denotes the correlation of a specific class/ interface with the rest
it worth describing the concept of sub-component (a dynamic of the contents of the same component. These relations help us
group of contents of a component collectively identified as a single to measure the functional relatedness among the contents of a
entity) which is important for measuring the reusability of a com- component and hence is a direct indicator of the quality of the
ponent in the CBSD environment. The concept of sub-component is component. Mathematically, for a component C i ¼< Ei ; Ri >, a
important and helps in providing logical organization of different class-subpackage relation is represented as r t ðei ; Sj Þ where Sj repre-
components. This logical structure helps us to easily understand sents the subpackage of C i and Sj  Ei and ei R Sj . Any class-
a component and to compute various metrics proposed in this subpackage relation of type t exists in a component denoted as
paper. In this paper, a sub-component at any stage is considered rt ðei ; Sj Þ ¼ 1 such that there exists at least one element say ej 2 Sj
as the group of contents of a component except for any one of such that rt ðei ; ej Þ ¼ 1 for some relation of type t. In other words,
the contents currently considered for computing a particular met- we can say that a class-subpackage relation exists if and only if
ric value. For example, say a component has total t contents there is a relation of any type that exists between a given class
belonging to it, then, dynamic collection of (t-1) contents except of a component and any of the classes belonging to the subpackage
for the one for which the metric is to be computed, is commonly of the same component. Here, it is important to note that all kinds
termed as sub-component. Mathematically, a sub-component is of relations as mentioned in Table 1 can belong to the class-
represented as: subpackage category until they are confined to the component,
i.e. the software elements (contents) that are involved with the
C iSC ¼ ðEiSC ; RiSC Þ; s:t:
dependency relation belong to the same component only.
RiSC  Ri ; EiSC  Ei ; & jEiSC j ¼ jEi j  1
The concept of the sub-component is used to determine various 4.6.2. Component- Component relations
quality parameters, namely cohesion, coupling, etc. of the Such relations exist among software components due to inter-
component. action/ dependency among contents belonging to different compo-
nents. These relations are also termed as Inter component
4.4. Disjoint Components relations. These relations are used to compute the coupling quality
parameter (aka functional dependency among components) of a
The components extracted from the software system are non- component. From a reusability point of view, a component that
possesses no/ fewer interdependencies is considered best. Mathe-
overlapping in nature, such that for any two components C i and
matically, for any two components C i ¼< Ei ; Ri > and
C j at different hierarchical levels, there is Ei \ Ej ¼ U. Thus, any
j j j
two different components do not contain common contents and C ¼< E ; R >, a component-component relation is represented as
they are always disjoint in nature. rt ðei ; ej Þ where ei and ej are two distinct software elements (classes/
th th
interfaces) belonging to the i and j component respectively i.e.
i j
4.5. Empty Component ei 2 E and ej 2 E . The value of component- component relation
between any two component C i and C j exist i.e. r t ðei ; ej Þ ¼ 1 if
A component that contains no contents in it and hence there are and only if there exists a relation of type t between two compo-
no relations among the contents of a component is termed as the nents and r t ðei ; ej Þ ¼ 1. In other words, we can say that a
empty component. Mathematically, it is represented as the pair component-component relation exists if and only if there is a rela-
< U; U >. tion of some type between any two classes belonging to a different
component. Here, all types of relations as mentioned in Table 1 can
4.6. Definition of Relations belong to a component-component category as long as the
involved elements in the relation namely ei and ej belongs to a dif-
The term relation in this paper denotes the dependencies ferent component, i.e. the software elements (contents) that are
between different content of a component and the dependency involved with the dependency relation belongs to the same
of a component on other components. These dependency relations component only.
can be of different types, namely inheritance, reference, semantic, Fig. 1 diagrammatically shows these two kinds of relations
aggregation, etc. Mahouachi, 2018; Chhabra et al., 2017. Table 1 existing at class, subpackage, and component level by considering
specifies different kinds of relations considered in order to evaluate a hypothetical example. In this hypothetical component diagram,
the quality of a component. three components are considered, namely C-1, C-2, and C-3 respec-
5538
A. Rathee and J.K. Chhabra Journal of King Saud University – Computer and Information Sciences 34 (2022) 5533–5551

Table 1
Different kinds of dependency relations in a component.

S. Relation Symbol Description


N. Name/Type Used
1 Association AR Represents ”has-a” relationship existing
between two classes say C1 and C2. Here, class
C1 has an association relationship with the
other class C2 iff C1 has an attribute of type C2.
2 Inheritance IR Represents ”Is-A” relationship existing
between two classes say C1 and C2. Here, class
C1 has an inheritance relation with another
class C2 iff C1 (sub/ child class) is a specialized
form of C2 (super/ parent class).
3 Call CR Represents the ”collaboration” relationship
that exists between two classes say C1 and C2.
Here, class C1 has a call relation with class C2
iff class C1 has a method call to one or more
methods belonging to class C2.
4 Parameter PR Two classes say C1 and C2 have this relation iff
a method in C1 has a parameter of class C2.
5 Return RR Two classes say C1 and C2 have this relation iff Fig. 1. Diagram depicting Component, Class, Subpackage, Class-Subpackage
any method in C1 has a return type of class C2. Relations, and Component- Component Relations.
6 Attribute AuR If any method in class say C1 directly accesses
Usage the attribute of another class say C2 or the CBSD technique. These components provide a cost-saving and
same class C1. These relations exist also within accelerated development environment for the developer and help
a given class. in promoting reusing existing resources in the form of compo-
7 Indirect/ InR Represents indirect method calls between
nents. Existing resource usability during the development of new
Transitive classes. Here, the class says C1 has an indirect
relation with another class say C2 if C1 has a software helps in developing it from scratch. However, component
method that has a method call to another reuse is still facing adoption problems due to the requirement that
method of the class say C3 and C3 has a the developers need to choose the best component out of a wide
method call to C2. set of third-party or in–house components. This is because of the
8 Co-Change CCR Represents co-change relations between
classes. Here, the two classes say C1 and C2
fact that multiple existing components can meet the requirement
have the co-change relation iff they are of the developers. This creates the problem of selecting the best
interrelated in the version control system. component out of the pool of possible components. Software met-
9 Semantic SR Represents token-based relations among rics can ease this problem by providing an automated way with
different classes or between methods
which the developers can assess the quality of the components.
belonging to a class.
Moreover, each software component fulfills the specifications laid
down by one of the component models such as JavaBeans. There-
tively. These components are drawn as rectangles and their con- fore, this paper proposes a metric suite that together measures dif-
tents are shown as circles (both filled and empty). The subpackage ferent dimensions of the JavaBeans based on different
of a component at any instance of time is defined as a collection of characteristics of the component and finally gives the overall
its all contents except one (shown by the blank circle). Here, in the reusability score of the JavaBeans and hence its underlying archi-
hypothetical diagram, the subpackage is shown as a collection of tecture. Different proposed metrics in this paper are detailed in
filled circles. In the considered hypothetical example, two types the following subsections:
of relationships are assumed to exist among different contents of
the same or different components (as discussed above) and are
5.1.1. Component Cohesion (CCoh) Metric
shown with two kinds of arrows. The solid arrow represents
A software component is a software element that conforms to a
class-subpackage relations at the component level. These kinds of
component model and its design mainly focuses on providing a
relations are confined only within the component and they are
unique functionality for the overall software system. It means that
due to the interaction of intra classes belonging to a component.
the cohesion of a component must be sufficiently high the consti-
These relations are used to compute the cohesion at the compo-
tuting elements of a component (different classes and interfaces)
nent level. Similarly, the component-component relations are
have different methods that are similar in many aspects and
shown by the dotted arrows. These kinds of relations exist among
related methods are present at one place. Here, the cohesion of a
components due to the interaction between inter classes of compo-
component is dependent on the cohesion among its content. The
nents. These relations help in determining the coupling of a com-
original set of object-oriented metrics cannot be directly applied
ponent with others.
to measure the cohesion of a component. This is because the orig-
inal object-oriented metrics are applicable at the single class level
5. Proposed Software Component’s Reusability Assessment only. However, generally, a component is a collection of two or
Metric Suite more classes. Therefore, they cannot be directly applied to the
component level. Moreover, different kinds of relations existing
This part of the paper presents the mathematical formulation in a component are divided into two categories, namely class-
and details of a case study carried out for the proposed reusability subpackage relations and component- component relations (as
assessment metric suite proposed in this paper. This section is discussed in Section 4 above). Out of these two possible kinds of
divided into the following two sections: relations, the class-subpackage relations are used to compute the
overall cohesion of a component. In this paper, the proposed cohe-
5.1. Metric Suite Definition and Computation sion metric CCoh is based on two kinds of cohesion measurements:

Software components are the key elements for the rapid devel- 1. Inner Cohesion
opment, deployment, and evolution of a software system using the 2. Outer Cohesion
5539
A. Rathee and J.K. Chhabra Journal of King Saud University – Computer and Information Sciences 34 (2022) 5533–5551

The inner cohesion denotes the cohesion of the individual content during inner cohesion measurement. The outer cohesion of a con-
(class/ interface) belonging to a component. The inner cohesion of a tent belonging to a component refers to the cohesion of the content
content ej belonging to the component C i is denoted as InCohði; jÞ with the rest of the contents belonging to a component (referred to
and it aims at measuring the cohesion level among different meth- as subpackage of a component). The outer cohesion of a content ej
ods/ functions and the member variables belonging to the content belonging to the component Ciis denoted as OutCohði; jÞ and it
ej . Because the inner cohesion measures how efficiently different aims at measuring the cohesion of an individual content with the
methods and member variables are functionally related to each other. rest of the contents belonging to the component. In this paper,
Therefore, the inner cohesion measurement in this paper is based on the outer cohesion is computed based on the class-subpackage
two kinds of relations, namely AuR and SR as depicted in Table 1 relations existing in a component. Lager the number of relations
above. The AuR relation denotes the member variable access within between a class and a subpackage more is the class related with
a method belonging to a class that belongs either to the same class other contents of the component. The outer cohesion of a compo-
or to the other class. The SR relations are used to compute the seman- nent for the jth class of the ith component is computed using the
tic cohesion among different pairs of methods belonging to a class. following equation:
The rest of the relations depicted in Table 1 do not contribute to X X
n1
t
 
the inner cohesion of an element because they represent relation- r x ej ; ey
ships between two or more different elements. These relations x¼1 y¼1;;y –j
OutCoh ði; jÞ ¼
denote dependency/ relatedness among distinct elements and they t  ðn  1Þ
do not contribute to the measurement of relatedness within a single
software element. Hence, this paper considers only AuR and SR rela- Here, t denotes the total number of different relations as
depicted in Table 1 above, and (n-1)is the total number of
tions during inner cohesion measurement. For measuring the AuR  
based inner cohesion, the member variable access to the same class classes belonging to a subpackage. The relation r x ej ; ey denotes
is taken into account. In a highly cohesive class, methods belonging the xth kind of relation (total t) existing between a class (de-
to it must have a strong bonding with the member variables belong- noted as ej ) and anyone of the rest of the classes belonging to
ing to it. Similarly, the semantic cohesion is measured among differ- the subpackage (denoted as ey ). This relation exists, i.e.
 
ent pairs of methods and is determined by finding out the common rx ej ; ey ¼ 1 iff there exist xth kind of relation between a jth
tokens shared by both. Here, the tokens are determined by parsing and the yth class that belongs to a package. Here, in the above
the said pair of methods and extracting the elementary tokens equation, the expression t  ðn  1Þ denotes the maximum possi-
belonging to them. These two kinds of inner cohesion (IC) for the ble relations existing between a class and a subpackage. Finally,
th
k class containing a total of m methods are calculated using the fol- the overall cohesion of a component is computed using these
lowing equations: two kinds of cohesion and finally averaging them as shown in
the following equation:
X
m X
m
CommonShareði; jÞ X
N

IC AuR ðkÞ ¼
i¼1 j¼1 ðW 1  InCoh ði; jÞ þ W 2  OutCoh ði; jÞÞ
mðm1Þ
j¼1
X
m X
m CCohi ¼
N
CommonShareði; jÞ
i¼1 j¼1 Here, W 1 and W 2 are the weights and denotes the importance
IC SR ðkÞ ¼ mðm1Þ
given to the inner and the outer cohesion of content respectively.
MatchingðV i ; V j Þ
CommonShareði; jÞ ¼ Matching N is the total number of elements (classes/ interfaces) belonging
ðV i ; V j ÞþNonMatchingðV i ; V j Þ
to the component. The value of these weights varies in the range
Here, the CommonShareði; jÞ measures the extent to which the [0. . .1].
sharing occurs among the ith and jth method of a class. It is mea-
sured using the MatchingðV i ; V j Þ and NonMatchingðV i ; V j Þ func- 5.1.2. Component Coupling (CCup) Metric
tions. These two functions are based on two vectors V i and V j of The reusability of a component is restricted by the outer
size nand they represent the set of member variables (in case dependency of a component (coupling) with other components.
of IC AuR ) or tokens (in case of IC SR ) that are accessed by the corre- In other words, larger the dependency of a component with
sponding method mi and mj respectively. The corresponding entry others, the lesser will be its reusability. This is because the
in these vectors is 1 (one) iff the corresponding method accesses presence of such a component makes it mandatory that other
the corresponding member variable or the corresponding token dependent components are also available in the system. In this
belongs to it, otherwise, it is 0 (zero). These functions return the paper, the coupling of a component is measured using the
total number of matching (entries at corresponding index in two component-component relations existing among different com-
vectors are either both 1 or 0) and nonmatching (entries at corre- ponents due to the interaction between their contents. This
sponding index in two vectors are not either both 1 or 0) entries paper calculates the coupling of a component C i in two steps.
present at different indices of two vectors V i and V j . In the above Let us suppose that the component C i is having component-
formulas, the expression m  ðm  1Þ is used to normalize the val- component relations with other components say C j ; C k ; C l ; . . . ; C t .
ues in the range [0. . .1]. This expression denotes the maximum
Then in the first step, the pairwise coupling of C i with one
possible number of pairwise methods. Since a component contains
many classes that constitute its content. Therefore, the inner cohe- another component say C j is calculated (identified using the
th th component- component relations). Let mand nare the total
sion of the j class belonging to the i component is computed
number of classes belonging to these components respectively.
using the following equation:
Here, the pairwise coupling COUP ij is given by the following
InCoh ði; jÞ ¼ w1  IC AuR ðjÞ þ w2  IC SR ðjÞ equation.

Here, w1 and w2 are the weight (also called importance) factors X


t X
m X
n
 
assigned to two considered relations, namely AuR and SR. More- rx ey ; ez
x¼1 y¼1 z¼1
over w1 þ w2 ¼ 1 and w1 ; w2 2 ½0; 1. These weights are determined COUPij ¼
t m n
by experts (developers) and they help in inculcating expert opinion
5540
A. Rathee and J.K. Chhabra Journal of King Saud University – Computer and Information Sciences 34 (2022) 5533–5551

P P Pn  
In this equation, the expression tx¼1 m y¼1 z¼1 r ey ; ez aims at
x In the second step, the Tentative list is pruned to get the Actual
finding different kinds of relations (as indicated in Table 1) which list that contains the final set of customizable member variables.
The pruning is done by checking for the presence of corresponding
originates from different classes belonging to the component C i
getter and setter methods in the class. The presence of such meth-
and terminates at different classes belonging to another compo-
ods against any member variable helps a member variable in plac-
nent C j . The denominator here again gives the maximum number ing spots in the Actuallist. Here, it is important to note that these
of possible connections among two pairs of components. The
two lists have the following relationships with each other:
denominator is used to obtain values in the range [0. . .1]. Finally,
the overall coupling of a component C i that is dependent on say Actual  Tentativ e
Nother components is obtained by averaging the pairwise coupling In the third step, another list called Presentis obtained that con-
values as measured in the first step. This constitutes the second tains possible customizable member variable names. This list is
step of the proposed component coupling metric. Mathematically, obtained from the BeanInfoclass of the JavaBeans. Finally, the
this step is formulated in the following equation:
degree of customizability of a component C i is computed using
X
N the Actual and Present lists as shown in the following equation.
COUPik The value of the DC i the metric varies in the range [0. . .1].
k¼1
CCupi ¼
N jPresentj
DC i ¼
Here, the denominator used helps us normalize the metric value jActualj
in the range of [0. . .1].
5.1.4. Self-Completeness of Component (SCC) Metric
5.1.3. Degree of Customizability (DC) Metric The self-completeness of a component metric is proposed in
A component is designed aiming that it can be directly reused in order to measure the completeness of the component from two
the software development process. The requirement of a customer aspects namely (1) syntactical completeness, and (2) functional
varies from software to software. This requires that a reusable code completeness. The Syntactical Completeness (SynComp)measures
(component) that provides customization in terms of its features is the extent to which a component fulfills the JavaBeans standards.
considered as more reusable as compared to its counterpart that Similarly, the Functional Completeness (FunComp)measures the
provides few/ no customization. In this paper, the degree of cus- extent to which the provides interface of a component lists the
tomizability for a component C i is measured in terms of the num- functionality defined in the component.
ber of member variables whose value can be customized by the Since the JavaBeans are the reusable software components that
developer before integrating the component with the rest of the encapsulate many objects in a single object called a bean. There-
software being developed. Here, the customization denotes the fore, for a normal Java class to be a JavaBeans, it must follow var-
ability to change the values of different member variables as per ious properties and conventions as given below1:
customer requirements. The previous two metrics (cohesion & cou-
pling) are unable to measure this degree of customization. There- 1. It must have a no-argument constructor so that the JavaBeans
fore, we propose a new metric for this. Our proposed object can be easily instantiated in the bean editing and integra-
customization metric aims at measuring this degree of freedom tion framework.
provided by the underlying JavaBeans. As, in JavaBeans, the BeanIn- 2. It should be serializable.
foclass is generally used by the bean implementers for specifying 3. It should not have any public member variables/ properties.
the methods, properties, and events of a bean. This information 4. It should provide getterand settermethods for accessing differ-
is beneficial for JavaBeans users. Therefore, the total number of ent properties.
properties specified in the BeanInfoclass can be a direct measure 5. It should provide a bean information class that helps third-
of customization in the underlying JavaBeans. However, our pro- party tools in providing various features of JavaBeans such as
posed metric moves one step forward and uses the internals of introspection and customization.
the JavaBeans for measuring the customization provided with
more accuracy. The proposed metric is a three-step process. In Based on the above-mentioned conventions that must be fol-
the first step, the proposed customization metric determines the lowed by any bean, we defined the Syntactical Completeness (Syn-
possible list of member variables (properties) that can be directly Comp) metric for a component. It measures the extent to which a
initialized by the users of the bean. This list named Tentativecon- component is designed as per JavaBeans specifications. The
tains member variable names and is obtained from various con- description of this metric for a component C i is as shown in the
structors as present in different classes belonging to the equation below:
component (JavaBeans). This list is termed Tentativebecause not
all of these member variables are directly accessible outside to x
SynCompi ¼
the bean users. This statement is supported by the fact that the y
process of customization in JavaBeans is provided by special Here, xdenotes the total number of properties that the current
bean-compliant builder tools. Such tools rely on the getterand set- component possesses and ydenotes the total number of properties
termethods to access the member variable’s original value and (as identified above) that a component must fulfill in order for a
assign it a new user-assigned value before integrating the compo- component to be a valid JavaBeans and always x <¼ y. In our case,
nent in the software application. Mathematically, the Tentativelist y = 5 (All these properties must be fulfilled by a valid JavaBeans).
for a component C i containing nclasses is obtained using the below Again, for a component, its services are only available via its
equation. Here, the function getConstructorVariablesðjÞ gives the provides interface. If this provides interface does not fully list the
member variable names that belong to the jth class and are initial- functionality available in its source code, then, its use is by nature
ized in the constructor. limited. In this paper, the functional completeness (FunComp)
X
n metric is proposed aiming at measuring the extent to which the
Tentative ¼ f getConstructorVariablesðjÞg
j¼1 1
http://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/

5541
A. Rathee and J.K. Chhabra Journal of King Saud University – Computer and Information Sciences 34 (2022) 5533–5551

provides interface of a component list functionality defined in the the component is a black-box, then only its interface is visible
underlying source code of the component (source-code of its dif- to the outside world. Therefore, the complexity of the compo-
ferent classes). The proposed metric is based on the Method Call nent’s interface plays a direct role in its reusability. The com-
Graph (MCG) that exists in a component and the presence of inde- plexity of the interface of a component directly affects the
pendent method chains present in the formulated MCG. An MCG is understandability and hence its reusability (Hristov et al.,
a graph G = <V, E>, where V is the set of vertices and different 2012; Washizaki et al., 2004). This is because the developer’s
methods defined in the component (belonging to different classes) decision regarding using a component is based on the fact that
constitutes the vertex set V. Similarly, E is the set of directed edges how efficiently the new requirements met with the functional-
and denotes the method call relation that exists between any two ity provided by the component. This requires that the compo-
vertices (methods). In this graph, the independent method chain is nent possess high understandability. According to Washizaki
the finite path (sequence of edges), which joins a sequence of ver- et al., the understandability of a component means, ‘‘not being
tices such that it has a unique distinct (no cycle) first and last ver- complex”and is measured as the effort required in recognizing
tices. The first node (method name) represents the unique the underlying concept and the applicability of the component.
functionality present in the source code of the component and it A component with high understandability always possesses high
should be present in the provides interface list of the component. reusability. Therefore, in this paper, the CCI metric is proposed
This is because the rest of the methods in the chain will be called for measuring the complexity of the component based on its
only if the first method (identified as the first node) will be called. interface. This complexity measurement is based on two
Any call to a method in the chain other than the first indicates the aspects, namely (1) complexity arising because of the Message
usage of incomplete functionality in the system and it should be Passing (MP) mechanism used in the interface method, and
penalized while determining the reusability of the component. (2) the semantic complexity of the interface method. The MP
The proposed functional completeness metric is based on the func- complexity is based on the understandability efforts required
tionality (methods) depicted in the provides interface of the com- due to the total number of parameters passed and their corre-
ponent and the location of that method in the independent method sponding data type used. Similarly, the semantic complexity is
chains. For a component C i having a provides interface of size N, based on the efficient choice of the naming conventions used
this metric is computed using the following expression as shown to define different symbols, words (aka tokens) used in the
in the equation below: methods defined in the component interface.
The component complexity due to the MP mechanism used in
X
N
the interface methods considers the following three parameters
methodWeightðkÞ
k¼1
for determining the overall complexity of the interface method:
FunCompi ¼ where
N
1. The total number of parameters passed in the interface method.

1  0:1  loc; LocationChainðkÞ – 0 2. The data type used for the parameters passed in the interface
methodWeight ðkÞ ¼ method.
1; LocationChainðkÞ ¼ 0
3. The return type used for the interface method.
Here, methodWeightðkÞ provides the penalized score for the kth
method in the range of [0. . .1] based on its location in the indepen- These three parameters are used because their nature and type
dent method chains. This location denotes the depth of the said directly affect the understandability efforts needed at the devel-
method in the method chain and is determined by the oper’s end for getting the underlying concept and functionality
LocationChainðkÞ function. This function returns the location loc defined in the component. The MP complexity of the kth interface
of the kth method in the independent method chain. This location method is based on the Return Type (RT) used and Parameter Type
starts from 0 (denotes the first node/ method in the chain) and (PT) used for various passed parameters. Mathematically, it is mea-
gradually increases as we move deeper into the method call chain. sured using the following equation:
Greater this location means deeper the presence of the method and
hence more penalty is imposed. The penalty mechanism is chosen X
t
because the location other than 0 denotes the broken functionality ComplexityMP ðkÞ ¼ wRT þ wPT ðiÞ
and is not considered as a good choice. Here, the broken function- i¼1

ality means that a method other than the head (starting method) is Here, tis the total number of arguments/ parameters passed to
directly called. The complete functionality is only available if only the interface method. The expression wRT denotes the weight value
the head of the chain is called. In the proposed metric, we used a based on the used return type in the interface method. Similarly,
penalty of 10% with each increase in depth of the chain. The reason the expression wPT is the weight value based on the data type of
behind choosing such a penalty score is to measure the functional the ith parameter. Different data types used in JavaBeans are clas-
completeness with more accuracy and in this scheme, a 10% pen- sified into four types namely (1) Simple, (2) Medium, (3) Complex,
alty is considered in an ad hoc manner only. In our proposed met- and (4) Highly Complex. The Simple category includes primitive
ric, the penalty on or after the depth of 9 (loc = 9) is taken as 90%. data types of Java such as int, float, Boolean, etc. The Medium cat-
This restriction is chosen in order to maintain the overall value of egory includes extended primitive data types such as Integer,
penalty positive (after the depth of 10, the penalty becomes String, Date, etc. (defined in terms of objects in Java). The complex
negative). category includes non-primitive data types such as Vector, Array.
Finally, based on the above discussed two aspects, namely syn- Finally, the highly complex category includes Java’s reference data
tactic and functional completeness, the Self- Completeness of Com- types such as List, Map, etc., and user-defined data types. Table 2
ponent (SCC) metric for a component C i is defined as follows: shows different weights assigned to different data types used as
the parameter or return type of the interface method. These
SCC i ¼ SynCompi  FunCompi
weights are randomly chosen such that the overall complexity
remains within the range of ½0; 1. When all of these different cat-
5.1.5. Component Complexity Interface (CCI) Metric egories of data types are present together then the complexity
In a software component, its interface plays an important always remains in the range of 0 and 1. The complexity of the
role and all interaction takes place through it. Moreover, if interface method also varies according to the total number of
5542
A. Rathee and J.K. Chhabra Journal of King Saud University – Computer and Information Sciences 34 (2022) 5533–5551

parameters passed in the interface method. The Table 3 depicts dif- Here, the manual investigation of different factors is carried out
ferent weights assigned as per the number of parameters passed by using the hit and trial approach on sample components spe-
and its corresponding category of the data type. cially designed to be reusable in a CBSD environment and assigning
The second part in the complexity measurement of a compo- different random integer weight factors to these coefficients. In
nent is based on the semantic complexity present in the inter- each case, the component’s reusability value is computed and the
face method. The semantic similarity is measured between validation is carried out by presenting it to industry experts. After
different words identified by tokenizing the source code of manual evaluation, the best values are considered as the final coef-
the interface method. The semantic similarity is based on the ficient values in this paper. The main reasons behind using the hit
lexical database known as WordNet (Miller, 1995) that is pre- and trial approach in this paper are manifold. One main reason is
pared by Princeton University for the English language. The the acquired knowledge regarding the importance of various
WordNet group different nouns, verbs, adjectives, and adverbs reusability factors by us based on our previous research investiga-
into sets of cognitive synonyms called synsets. These synsets tions (Rathee and Chhabra, 2018; Rathee and Chhabra, 2019;
are interlinked and arranged in a hierarchical order based on Rathee and Chhabra, 2020). Another reason is the fact that auto-
the conceptual-semantic and lexical relations (Pawar and mated implementation of various existing approaches useful in
Mago, 2018). The semantic similarity among any two pairs of determining the weight-based importance of various parameters
words say w1 and w2 is based on the path length that exists is not readily available (Heng et al., 2020; Zou et al., 2009). There-
in the hierarchical structure. This path length is inversely fore, based on the fact that the importance of different factors is
related to the semantic similarity, i.e. if the path length is more well-known in advance and implementing various weight-based
than the words are not semantically related and vice versa. The importance techniques is time-consuming, this paper uses the hit
understandability based on the semantic complexity is directly and trial approach to validate pre-acquired knowledge.
related to the semantic similarity. If the semantic similarity is
low (i.e. path length is more) then the understandability is also
low and hence higher semantic complexity. In this paper, the 5.2. A Case Study
semantic-based complexity of the kthinterface method is calcu-
lated using the following equation: As the proposed metric suite in this paper aims at measuring
the overall reusability score of a component that is designed as
X
n X
n
1 per specifications of the JavaBeans component model. Therefore,
pathlen ðwi ;wj Þ
i¼1 j¼iþ1 to demonstrate how different metrics belonging to the metric suite
ComplexitySEM ðkÞ ¼ are practically computed, a case study is carried out for a Digital
n
Clock 2JavaBeans. Fig. 2 depicts the UML structure of this JavaBeans
Here, nis the total number of tokens/ words extracted from the
Pn Pn 1
and it consists of two classes, namely DigitalClock and Digi-
interface method. The expression i¼1 j¼iþ1 pathlen ðwi ;wj Þ finds the talClockBeanInfo Out of these two classes, the class named Digi-
semantic similarity between different pairs of words based on talClockBeanInfoprovides introspection properties and gives details
the path length. Finally, the overall complexity of the kth interface about different services that it provides to the outside world. The
method is calculated as follows: source code of this JavaBeans is manually investigated to determine
different structural and semantic information required during com-
Complexity ðkÞ ¼ ComplexityMP ðkÞ þ ComplexitySEM ðkÞ
puting different metrics belonging to the proposed metric suite. For
Based on this the CCI metric for a component having Nmethods computing CCohmetric value, the AuR and SR information are identi-
defined in its provides interface is defined as follows: fied at the method level and this information is presented in the
X
N form of a vector. These vectors are used to compute the inner cohe-
Complexity ðiÞ sion value, which comes out to be 0:47 based on the pairwise com-
i¼1 parison between vector representations of different methods
CCIi ¼
N belonging to the considered JavaBeans. As the considered JavaBeans
Here, the denominator Nis used in order to normalize the values only single class, therefore, the value for outer cohesion for this Java-
in the range of [0. . .1]. Beans is 0. Hence, the overall value for CCoh metric is 0:47. The con-
sidered JavaBeans does not require any external library or
component, therefore, the value of the CCup metric is 0. The value
5.1.6. Component Reusability (CR) Metric
of DC metric depends on the number of member variables for which
Reusability measurement of components is an important
the getterand settermethods are defined. The value of the DC metric
aspect. This helps the developers in choosing the best component
for considered JavaBeans comes out to be 0:54. The considered
that fulfills all the requirements of integrating it with other compo-
example fulfills all the syntactical specifications of the JavaBeans
nents. This proposed metric for measuring the reusability of the
and the value of SynComp is 1. The DigitalClockBeanInfo(provides
component C i is based on above mentioned six metrics and is interface) of the JavaBeans does not list all the functionalities iden-
defined as follows: tified by the presence of different independent paths in the call-
a1  CCohi þ ð1  a2  CCupi Þ þ a3  DC i þ a4  SCC i þ a5  CCIi based graph of the component. The value of the functional complete-
CRi ¼
a1 þ a2 þ a3 þ a4 þ a5 ness comes out to be 0:47. Hence, the overall value of the SCC metric
is 1  0:47 ¼ 0:47. The value of the CCI metric is determined from
Here, a1 ; a2 ; a3 ; a4 ; and a5 are the coefficients that denote the DigitalClockBeanInfoclass based on the complexity of different
importance assigned to different five factors, namely Cohesion, parameters passed to various methods defined in this class and
Coupling, Customizability, Self-Completeness, and Complexity of WordNetbased semantic complexity of the considered JavaBeans.
component interface that affects the reusability of the component. The computed value of the CCI metric is 0:20. Based on these metric
Based on our manual investigation of different factors that affect values, the overall reusability for the considered Digital Clock Java-
the reusability of the component, these coefficients are given Beans is CR ¼ 0:54 based on different alpha parameter values shown
importance in the following order: in Table 5. Further, as the considered JavaBeans does not possess any

a1 > a2 P a5 P a3 > a4 2
https://www.codeproject.com/Articles/3788/Digital-Clock

5543
A. Rathee and J.K. Chhabra Journal of King Saud University – Computer and Information Sciences 34 (2022) 5533–5551

Table 2
Weight values assigned to different Data Types on JavaBeans.

Data Type Category


Simple Medium Complex Highly Complex
Assigned Weight 0.10 0.20 0.30 0.40

Table 3
Weight values assigned based on the total number of parameters passed.

Data Type Category


Simple Medium Complex Highly Complex
1–3 0.10 0.15 0.20 0.25
4–6 0.20 0.30 0.40 0.50
Number Of Parameters/ Arguments Passed 7–9 0.30 0.45 0.60 0.75
>=10 0.40 0.60 0.80 1.0

Fig. 2. Typical structure of a Digital Clock JavaBeans Component.

5544
A. Rathee and J.K. Chhabra Journal of King Saud University – Computer and Information Sciences 34 (2022) 5533–5551

external dependency to other components, therefore, the value of the variations due to the changes in the total number of relations.
the TurboMQmetric comes out to be 1 because a TurboMQmetric The self-completeness (SCC)metric is only dependent on the call
measures the balance between cohesion and coupling. relations among different contents of the component. These call
relations may increase as well as decrease the imposed penalized
score based on the location of the interface methods. However, it
6. Theoretical Validation of the Proposed Reusability Metric is important to note here that this imposed penalized score in no
Suite way affects the methods defined inside the interface of the compo-
nent. Hence, the overall metric value remains unchanged. Based
The theoretical soundness of the newly proposed metric suite upon this, it can be concluded that, this property holds for the pro-
provides strength and validation to the proposed metric suite. posed metric suite because if the degree of relations is increased at
Therefore, this section of the paper provides a theoretical analysis the component level, then the value of the corresponding metric
based on their mathematical properties. The commonly used vali- also increases due to an increase in the CCoh (Cohesion) metric
dation frameworks available in the literature are (Briand et al., value.
1996; Weyuker, 1988). This paper considers evaluation against Property 4:Merging of Unconnected Components
Briand’s framework. The reason behind choosing Briand et al.’s val- This property of Briand’s framework denotes that if two unre-
idation framework is that Weyuker’s validation framework is lated and unconnected components are merged together into a sin-
mainly used to only validate complexity measure metrics. But, gle component, then the value of the corresponding metric for the
Briand’s framework mathematically formalizes all important inter- new component should not increase. This is because of the fact that
nal software attributes such as size, length, cohesion, coupling, and the unconnected components are being encapsulated together in a
complexity. The Briand et al. framework mainly consists of four single component. This means, the total number of class-
   
properties that need to be fulfilled by any metric. These properties subpackage r t ei ; Sj and the component- component r t ei ; ej
are discussed against the proposed reusability metric suite in the relations, on which different proposed metrics are based, do not
following subsections: get changed (total number of such relations before and after merg-
Property 1:Non-Negativity ing remains unchanged). However, because, unconnected compo-
This property of Briand’s validation framework measures the nents are merged together, therefore, the value of OutCoh(Outer
sizeof the underlying system and it states that for any system the Cohesion) decreases due to an increase in the total number of
size should always be non-negative at any instance of time. The classes belonging to the subpackage i.e. (n-1) parameter value in
value of each of the metrics in the proposed component reusability the expression of OutCoh. This happens because of the fact that
metric suite varies in the normalized range of [0, 1] with the fact the merged unconnected components provide a higher degree of
that zero denotes the minimum value and one denotes the maxi- reusability independently as compared to the merged scenario.
mum possible value. Moreover, the Component Reusability (CR) This ultimately results that the overall value of the reusability
Metric computes the overall reusability score to a component score assigned by the CRmetric decreases. Hence, for our proposed
and the assigned value is always positive in nature (based on the metric suite, this property holds, as merging does not result in the
values of used metric values). The higher score to this metric is increase in the final reusability score assigned to the component.
an indication of the more reusable component in the CBSD envi-
ronment. Therefore, our proposed metric suite fulfills the first
property of Briand’s framework. 7. Experimentation
Property 2:Null Value
This property of Briand’s framework denotes that if the size of In the present study, the proposed metrics serve a very clear
and specific purpose of measuring the reusability of JavaBeans
the system is null,i.e. if either the total number of elements belong-
(reusable components) that are already present over the Internet
ing to the system is zero or the relationships between elements is
or are available in the form of a third-party library. As per the
null, then the corresponding metric value is null/ zero. For our pro-
ISO/ IEC 9126-1 standard, in a software product, the external qual-
posed metric suite, this property holds because in such cases the
ity attributes should always be related to the internal measures of
corresponding metric value is always zero. This is because different
the product and vice versa. Therefore, in this paper, we carried out
metrics in the proposed metric suite are calculated based on differ-
  an experimental evaluation of the proposed metric suite. This helps
ent kinds of relations of type tdenoted asr x ej ; ey . Therefore, if
us to validate the proposed metric suite empirically. The carried
there does not exist any kind of dependence relation within or
out experiment is based on GQM (Goal/ Question/ Metric) para-
among components, then the corresponding metric value is always
digm. It provides a basic template and guideline that helps in car-
zero/ null (as the numerator of each metric is always zero because
rying out the experiment in a systematic manner. In the GQM
of null dependencies). Hence, this property holds for our proposed
paradigm, the five-goal dimensions that are followed are as
reusability metric suite.
follows:
Property 3:Monotonicity
This property of Briand’s framework states that if in a system
1. The object of the Study: Components (JavaBeans)
new relations are added then the overall metric value should not
2. Purpose: To analyze the quality of the JavaBeans especially from
decrease. The proposed CCoh metric is based on the inner (InCoh)
the CBSD environment point-of-view
and outer (OutCoh) computed cohesion values computed using
3. Quality Focus: Reusability score associated with the component
the class-subpackage relations. These values are directly propor-
4. Viewpoint: Software developer
tional to the total number of relations in a component. Therefore,
5. Environment: Existing JavaBeans, components, and open-
if the frequency of the relations increases, then, the overall value
source Java software systems
of the CCohmetric increases. Similarly, the proposed CCupmetric
is directly proportional to the total number of component- compo- One of the major hurdles present in the research associated
nent relations. Hence, any increase in the total number ultimately with the software metric is the difficulty of empirical evaluation.
results in an overall increase in the value of the CCupmetric. Empirical evaluation of most of the existing metrics is based only
Another proposed customizability (DC)and complexity (CCI)met- on modest experimental support. Therefore, this paper carried
rics are independent of the total number of relations within or out a wider empirical evaluation of the proposed metric suite.
among components. Hence, both themetrics are independent of We consider three categories of software for carrying out the
5545
A. Rathee and J.K. Chhabra Journal of King Saud University – Computer and Information Sciences 34 (2022) 5533–5551

experiment. The first category consists of existing JavaBeans that component reusability (CR) score. The integer values are assigned
are collected from various sources such as ComponentSource.com, based on the criteria as discussed in Section 5 above and they
elegantjbeans.com. These repositories provide a wide variety of are shown in Table 5. These values are used to compute the
the best and the largest collection of ready-to-use JavaBeans pro- reusability score of a component in this paper.
vided by third-party vendors. The second category consists of From the results shown in Table 5, it is clear that the software
open-source Java software that provides reusable components in considered in the category C-1, possessess a higher reusability score
the form of an API/ library. These software are hosted under the for the underlying JavaBeans. The average reusability score for this
Apache Commons3project. The different software in this category is group is 92.4%, which is as per our expectations. This group has high
designed such that they are least dependent on the other libraries. cohesion, customization, completeness, and low coupling and com-
The third category of the considered software consists of different plexity of the interfaces. Similarly, the software systems considered
open-source software systems that are not designed by taking in category C-2 also possess a sufficiently higher reusability score
reusability in mind as the case with the software systems considered with an average reusability score of 72.8%. This conforms to the fact
in the second category. Table 4 summarizes and gives details about that such libraries/ APIs are designed by keeping component charac-
various software considered from these three categories. These teristics in mind by the developers but as they are not modeled as
details include the size of the component, the number of classes per particular component model standards, their reusability in the
belonging to the component, the package present in the component CBSD environment is limited as compared to the components con-
structure, and a brief description of the functionality provided by the sidered in category C-1. Different components in this category (C-
component. 2) are logical in nature (provides and requires interfaces are not
This paper considers three categories of software, out of which identified) and they cannot be directly reused in the CBSD environ-
category C-1 are ready-made components/ JavaBeans. However, ment for developing new software systems. Finally, the software
the software considered in the categories C-2, and C-3 are normal considered in category C-3 possesses an average reusability score
open-source software systems and they are not ready to use Java- of 54.2%. This low reusability score points out the fact that these soft-
Beans. Therefore, it is mandatory to convert them in the form of ware are not designed from a reusability point of view. They possess
JavaBeans before evaluating them with the proposed metric suite. higher coupling and low cohesion and these characteristics are not
This paper considers different packages present in the software desirable from the component point of view. Hence, the developers
systems belonging to category C-2 and C-3 as independent compo- do not consider reusability aspects at all while designing these sys-
nents and finally converts them into corresponding JavaBeans tems and they have very limited reusability for the development of
using the approach proposed by Rathee and Chhabra (2019). new software systems.
Finally, this paper considers giving answers to the following Based on the results shown in Table 5, it can be clearly concluded
research questions for justifying the necessity and urgency of the that the proposed CR metric in this paper is capable of accurately
proposed metric suite based on the carried out experiment: predicting the actual reusability score of different software compo-
nents. Now, in order to further validate the obtained results of
RQ1 What is the relationship between different Coupling, Table 5, the authors in this paper carried out the task of practically
Cohesion, Customizability, Completeness, and Interface validating these different reusability values from a team of practi-
Complexity? tioners (domain/ IT experts). For this purpose, a team of 20 random
This research question is statistically answered by finding the practitioners is created in order to keep the investigation process
strength and direction of the association between two nonpara- unbiased. Each of these team members is presented with different
metric ranked variables using the well-known Spearman’s Cor- software components and based on the domain expertise they are
relation Coefficient. This research question further helps in asked to investigate the reusability of the presented components.
determining if or not all the considered component characteris- Further, in order to keep the comparison fair and simple, the inves-
tics are important. tigation of the reusability of different components is done on fixed
RQ2 Do the TurboMQ metric measure the same or different criteria, namely cohesiveness, external dependency, ease of com-
dimensions as the CR metric? posing components, functional completeness, customizability, and
As the proposed metric suite measures the overall component maintenance efforts required to modify the component. These
reusability score using the proposed CR metric. In literature, selected criteria are mostly similar to the proposed metrics in the
the TurboMQ metric is a well-known quality metric that is com- metric suite of this paper. Each team member evaluates the compo-
monly used to measure the modularity of the underlying com- nent and assigns a score to these evaluation criteria on a scale of 1 to
ponent. Therefore, this research question is designed for 5 (here, 1 means strongly disagree and 5 means strongly agree).
determining whether or not the proposed CR metric measure Finally, the average mean of these assigned values is evaluated
some extra characteristics as of the metric TurboMQ. Thus, this and compared with the reusability scores of different software cat-
research question helps in determining the usefulness of the egories taken in Table 5. The manual comparison of the mean values
proposed CR metric. of the practitioners’ reusability score with the CR metric values as
depicted in Table 5 is found comparable. Further, this claim is statis-
8. Results and Interpretations tically cross-verified by doing a two-tailed t-test. The p-value of this
test is 2:1012  1012 and it is significantly smaller than the signifi-
In this section of the paper, we present the obtained experimen- cance level alpha = 0.05. Based on this comparison, the authors pro-
tal results as part of the empirical evaluation of our proposed vide practical validations for the proposed metric suite of this paper.
reusability metric suite. Further, the obtained results are analyzed
and their interpretation is provided. Different proposed metrics are RQ1 What is the relationship between different Coupling,
computed by manually analyzing the underlying source code and Cohesion, Customizability, Completeness, and Interface
computing different metric values. Table 5 provides details about Complexity?
the obtained results after experimentally analyzing the considered This research question aims at determining the relationship
software systems. Moreover, integer values are assigned to differ- between different pairs of component characteristics, namely
ent coefficients ða1 ; a2 ; a3 ; a4 ; a5 Þ used for calculating the overall cohesion, coupling, customizability, completeness, interface
complexity, and reusability. Spearman’s nonparametric rank coef-
3
https://commons.apache.org/ ficient is used to determine the correlation and direction of

5546
A. Rathee and J.K. Chhabra Journal of King Saud University – Computer and Information Sciences 34 (2022) 5533–5551

Table 4
Summary of various considered components/ software.

S. Component Name Size (in Total No. Of Description


No. KB) Classes/ Packages
Considered JavaBeans (C-1)
1. Networking 281 51/ 12 Provides ready to use network protocol implementation that provides support for various protocols
JavaBeans Collection namely FTP, HTTP, POP3, SMTP, and MIME
2. Entry Mask JavaBeans 511 60/ 10 Provides Ready-made validation logic for accurate data entry. It gives yourJavaTM based true solution
advantage of masking. Data is being checked on keypress.
3. Tree JavaBeans 681 124/ 8 Provides feature-rich tree for hierarchical representation of data.
4. Table JavaBeans 545 164/ 10 Provides total control over information management through tables.
5. Printer JavaBeans 216 17/ 3 Provides an implementation of full Java printing functionality
Considered Apache Commons Components/ Library (C-2)
1. Lang 1334 141/ 12 Provides a host of helper utilities for java.lang API
2. Math 5311 265/ 22 Provides a library of lightweight mathematics and statistics components not available in Java
programming language.
3. FileUpload 1614 67/ 5 Provides file upload capability for servlets and web applications.
4. Text 466 45/ 4 Provides a set of algorithms that works on strings.
5. RNG 1144 124/ 10 Provides implementations of pseudo-random numbers generators that are either faster and/ or of
higher quality than java.util.Random
Considered other Open-Source Software Systems (C-3)
1. Junit 4.5 60 27/ 4 A unit testing framework for the Java programming language.
2. Easy Mock 2.4 163 63/ 3 A Java-based mocking framework used to unit test Java applications.
3. JDOM 1.1.3 230 62/ 6 Java based library for parsing XML documents.
4. XGen Source Code 290 30/ 6 Java source code generator from the structured input file.
Generator 0.3.8
5. Servlet API 2.4 89 41/2 A Java library that provides server-side functionality to the application.

Table 5
Experimental Results for different considered software systems.

S. N. Category Component Name Proposed Metric Suite Average Practitioner’s Feedback Score
CCoh CCup DC SCC CCI CR
a1 ¼ 5 a2 ¼ 4 a3 ¼ 2 a4 ¼ 1 a5 ¼ 4
1 Networking JavaBeans Collection 0.93 0.13 0.84 0.92 0.18 0.93 4.34
2 Entry Mask JavaBeans 0.84 0.18 0.82 0.97 0.22 0.87 3.87
3 Tree JavaBeans 0.89 0.22 0.86 0.95 0.27 0.92 4.76
4 C-1 Table JavaBeans 0.91 0.11 0.88 0.94 0.24 0.97 4.29
5 Printer JavaBeans 0.92 0.16 0.85 0.98 0.19 0.93 4.88
6 Lang 0.78 0.31 0.85 0.88 0.11 0.71 3.76
7 Math 0.72 0.38 0.88 0.89 0.08 0.63 4.21
8 C-2 FileUpload 0.83 0.19 0.91 0.92 0.10 0.82 3.87
9 Text 0.76 0.35 0.88 0.87 0.07 0.66 2.56
10 RNG 0.81 0.22 0.89 0.86 0.09 0.77 4.13
11 Junit 4.5 0.62 0.53 0.86 0.92 0.18 0.54 3.45
12 Easy Mock 2.4 0.59 0.48 0.91 0.88 0.14 0.54 2.98
13 C-3 JDOM 1.1.3 0.64 0.44 0.88 0.91 0.16 0.59 3.98
14 XGen Source Code Generator 0.3.8 0.52 0.51 0.87 0.89 0.12 0.46 3.52
15 Servlet API 2.4 0.68 0.52 0.92 0.93 0.13 0.58 4.56

association among different pairs of considered component charac- hence, higher cohesion) then its computed coupling is automati-
teristics. Here, Spearman’s test is chosen over Pearson’s Correlation cally least. This confirms the obtained strong negative Spearman’s
because different metric values are not normally distributed. The correlation results between coupling and cohesion metric. The
normality is checked using the Shapiro–Wilk normality test. The interface complexity and completeness characteristics are strongly
obtained p-value of the Shapiro–Wilk normality test is 0:00145 positively linearly correlated. As the self-completeness of a compo-
and this value is sufficiently lower than 0:05. Hence, we chose nent increases, it results in an increased size of the BeanInfo class
Spearman’s test over Pearson because Pearson’s test requires a nor- of the component. Any increased size results in understandability
mal distribution of data. Table 6 shows Spearman’s Correlation issues at the programmers’ end. Hence, the obtained positive cor-
Coefficient values between different pairs of characteristics. relation as observed from the Spearman Correlation value. Simi-
From the values shown in Table 6, it can be clearly observed larly, the characteristic pairs named customizability and
that the cohesion and coupling characteristics are strongly nega- cohesion, completeness and coupling, completeness and customiz-
tively linearly correlated. It means an increase in one characteristic ability, interface complexity and coupling, interface complexity
value automatically results in the decrease of the other character- and customizability are weakly correlated. This relationship can
istic value. Since this paper considers measuring functional cohe- be clearly observed in the diagram shown in Fig. 3. Moreover,
sion at the component level. Therefore, if a component is the component reusability metric is strongly positively and nega-
functionally sound (it contains all its related elements together, tively related to the cohesion and coupling characteristics of the

5547
A. Rathee and J.K. Chhabra Journal of King Saud University – Computer and Information Sciences 34 (2022) 5533–5551

Table 6
Spearman’s Correlation Coefficient Values.

CCoh CCup DC SCC CCI CR


CCoh 1
CCup 0.92504 1
DC 0.44366 0.392565 1
SCC 0.526535 0.40085 0.3926 1
CCI 0.424413 0.37364 0.49332 0.81956 1
CR 0.977086 0.95618 0.40904 0.525514 0.467412 1

component. As the cohesion of a component increases, the The TurboMQ metric is not upper bound and a higher score is
reusability increases and vice versa. Similarly, as the coupling of always preferred. A higher score is always an indicator of good
a component significantly decreases, the underlying reusability modularization quality. From the results shown in the Table 7, it
increases incredibly and vice versa. The reusability of a component is observed that for some systems (say Servlet API, JUnit), the Tur-
is negatively related to the customization characteristic. As the dif- boMQ value is sufficiently high, however, the reusability of the cor-
ficulty of component customization increases, the reusability responding component is low and vice versa (say Printer
decreases. Further, as the self-completeness of a component JavaBeans, RNG). Therefore, in order to draw a clear relationship
increases, the reusability score also increases. Finally, the compo- between two variables, we carried out Spearman’s Correlation
nent reusability increases with the increase in the component’s Coefficient analysis and the results are shown in the scatter plot
interface complexity and vice versa. This is because, the compo- shown in Fig. 4.
nent’s interface measures understandability based on semantic From the plot, it can be clearly observed that TurboMQ and CR
relatedness based on WordNet, therefore, as the relatedness metrics have a non-linear relationship with each other. The R-
increases, the overall reusability also increases. squared statistics value of the plot is 0.48. It denotes that the over-
RQ2 Do the TurboMQ metric measure the same or different lap between TurboMQ and CR metric is only 48%. Statistically, it
dimensions as the CR metric? means that the linear regression model between the considered
TurboMQ is a metric that is widely used for evaluating the mod- TurboMQ and the proposed CR metric provides response data to
ularization quality of any system (Mitchell, 2003). This metric only 48% of the response variable variations (Hair et al., 2013).
measures quality in terms of inter and intra dependency relations The rest of the 52% variability of the response data about its mean
present in the component. Table 7 shows the values of TurboMQ remains unexplained. Therefore, it is concluded that the proposed
and CR metric values for different considered software systems. CR metric is capable of covering some extra features that are not
As for the software systems in the category, C-2 and C-3 are con- generally covered by the TurboMQ metric alone. Hence, the useful-
cerned, different packages are considered as individual compo- ness of the proposed metric for measuring the quality of the com-
nents. Therefore, the TurboMQ score shown is the average value ponent is justified. Therefore, the research community can use the
of individual components belonging to a software system. proposed CR metric to determine the overall quality of a

Fig. 3. Pairwise Spearman Correlation Coefficient values.

5548
A. Rathee and J.K. Chhabra Journal of King Saud University – Computer and Information Sciences 34 (2022) 5533–5551

Table 7
TurboMQ V/S CR metric.

S. N. Category Component Name TurboMQ CR


1 Networking JavaBeans Collection 1.84 0.93
2 Entry Mask JavaBeans 1.93 0.87
3 C-1 Tree JavaBeans 1.43 0.92
4 Table JavaBeans 2.32 0.97
5 Printer JavaBeans 1.04 0.93
6 Lang 0.65 0.71
7 Math 0.87 0.63
8 C-2 FileUpload 1.43 0.82
9 Text 0.83 0.66
10 RNG 0.65 0.77
11 Junit 4.5 1.25 0.54
12 Easy Mock 2.4 2.04 0.54
13 C-3 JDOM 1.1.3 1.56 0.59
14 XGen Source Code Generator 0.3.8 1.56 0.46
15 Servlet API 2.4 1.05 0.58

component and the metric suite can easily be utilized as fitness usefulness in the real development environment. This paper con-
functions during reverse engineering/ component extracting from siders evaluating the proposed metric suite against the metric suite
an object-oriented software system. proposed by authors in Washizaki et al. (2004). In literature,
The TurboMQ and CR metric values as shown in Table 7 are not Washizaki et al. (2004) present a closer state-of-art contending
collinear and the experimental evaluation shows an overlap of 48% approach for measuring the reusability of JavaBeans software com-
only. Therefore, it is necessary to further investigate the relationship ponents. They measured the reusability with the help of the pro-
between the two metrics. This investigation is performed by authors posed metric suite, especially for the black-box JavaBeans
by carrying out practical validation from a team of experts. The team components. The authors also performed a statistical analysis of
is presented with the obtained results shown in Table 7 along with 125 JavaBeans components and proposed a confidence interval
the source code of different software and components. The team car- for different metrics in the metric suite for determining the quality
ried out an investigation on the variability between two metric val- factor of the component. The overall reusability score for the com-
ues such as for a Tree JavaBeansthe TurboMQ metric value is having a ponent (COR) is computed based on the parameters, namely Exis-
smaller value as compared to EasyMocksoftware. Still, Tree JavaBean- tence of Meta-Information (EMI), Rate of Component
shas higher reusability as compared to EasyMock.The investigation customization (RCC), and Self-Completeness of Component’s
report of the experts suggests that TurboMQ metric value only pro- Return ValueðSCC r Þ. The reusability metric (COR) of Washizaki
motes cohesiveness and penalizes outer dependency. However, the et al. (2004) assigns binary values to the reusability of the compo-
overall reusability of a component in the CBSD environment requires nent. It means it classifies the component as either Reusableor Non-
important features such as the presence/ absence of the compo- reusable based on whether the metric value is ‘greater than zero’ or
nent’s interface, semantic complexity, and availability of documen- ‘negative’. The approach by Washizaki et al. (2004) is the closest
tation. These extra features are not detectable in the TurboMQ state-of-art contender to the proposed metric suite in this paper.
metric and they directly reflect the efforts devoted by the mainte- Therefore, this approach is selected for evaluation purposes in this
nance/ developer team. The expert team is unable to find any extra paper.
feature that is detectable by the TurboMQ metric while remaining As the reusability metric of Washizaki et al. (2004) is specially
undetectable by the proposed CR metric. designed for JavaBeans, therefore, this paper considers evaluating
different JavaBeans as specified under the C-1 category in Table 4.
The results of the evaluation are presented in Table 8. Table 8 pre-
9. Comparison with Existing Competitive Approach sents different intermittent metric values (such as EMI, RCC,SCC r ),
Component Overall Reusability score (COR), reusability interpreta-
It is important to evaluate the proposed metric suite against the tion based on the COR metric value, and the reusability scores as
state-of-art metric suite in order to determine the feasibility and computed using the proposed Component Reusability (CR) metric
of this paper. The COR metric does not predict one JavaBeans as
reusable namely Entry Mask JavaBeans. Whereas, the reusability
metric of this paper (CR) considers every JavaBeans as reusable
in nature and assigns a significantly high reusability score to every
component. After performing a manual analysis of the Entry Mask
JavaBeans, it was found that the said component is actually having
higher reusable quality (as captured by our proposed reusability
metric, CR) based on high cohesion, low coupling, and lower inter-
face complexity.
The key differences between the component reusability metric
of this paper (CR metric) and the one of Washizaki et al. (2004),
i.e. COR metric, are as follows:

1. The COR metric does not consider the important quality param-
eters such as cohesion, interface complexity, and coupling while
determining the overall reusability of the component as
Fig. 4. Scatter Plot between TurboMQ and CR metric. opposed to our proposed reusability metric (CR).

5549
A. Rathee and J.K. Chhabra Journal of King Saud University – Computer and Information Sciences 34 (2022) 5533–5551

Table 8
Reusability metric score comparison with the state-of-art contending approach.

JavaBeans Name The Rival approach by Washizaki et al. (2004) Proposed Approach
EMI RCC SCCr COR Interpretation CR
Networking JavaBeans Collection 1 0.56 0.72 0.63 Reusable 0.93
Entry Mask JavaBeans 1 0.33 0. 54 0.55 Non-reusable 0.87
Tree JavaBeans 1 0.62 0.87 0.63 Reusable 0.92
Table JavaBeans 1 0.68 0.47 0.05 Reusable 0.97
Printer JavaBeans 1 0.79 0.71 0.63 Reusable 0.93

2. The COR metric does not rank the overall reusability score (it comparing, and evaluating component metrics. Our future work
considers all components equally reusable whose reusability in this direction also includes developing metrics and automated
score is > 0). tools that compute the proposed metric suite for components
3. The COR metric cannot be used for comparing different compo- beyond JavaBeans. The proposed metric suite can be used with
nents together. This is because it assigns only a binary score (ei- code search engines such that its results are arranged as per their
ther usable or non-reusable) to the component. Therefore, this reusability values in order to help the developers iidentify the right
metric cannot be used to select one component out of the com- component in minimal time.
ponent pool having similar functionality.
Declaration of Competing Interest
The reusability metric suite in this paper is proposed especially
for JavaBeans. However, this metric suite can easily abstract away The authors declare that they have no known competing finan-
and serve other platforms beyond the considered JavaBeans except cial interests or personal relationships that could have appeared
for the SCC metric. A few things that must be fulfilled by such a plat- to influence the work reported in this paper.
form include the presence of different interfaces of the component,
provisions of initializing and retrieval of different member variables References
(similar to getter and setter methods of JavaBeans). The proposed
SCC metric requires little modifications in the rules of the SynComp Aggarwal, K., Singh, Y., Kaur, A., Malhotra, R., 2006. Empirical study of object-
part of this metric. These rules need to be formulated as per the syn- oriented metrics. J. Object Technol. 5, 149–173.
Ampatzoglou, A., Bibi, S., Chatzigeorgiou, A., Avgeriou, P., Stamelos, I., 2018.
tactical specifications of the new platform. Moreover, it is a strong Reusability index: A measure for assessing software assets reusability. In:
belief of the authors that these metrics can be easily automated as International Conference on Software Reuse. Springer, pp. 43–58.
per the specifications of different component models. Anguswamy, R., Frakes, W.B., 2012. A study of reusability, complexity, and reuse
design principles. In: Proceedings of the 2012 ACM-IEEE International
Symposium on Empirical Software Engineering and Measurement. IEEE, pp.
161–164.
10. Conclusions and Future Work Anthes, G.H., 1993. Software reuse plans bring paybacks. ComputerWorld 27, 73–
74.
Bertoa, M.F., Troya, J.M., Vallecillo, A., 2006. Measuring the usability of software
With the increasing use of the CBSD in the IT industry, there is components. J. Syst. Softw. 79, 427–439.
an increased demand for a component library having multiple Bi, S., Dong, X., Xue, S., 2009. A measurement model of reusability for evaluating
component. In: 2009 First International Conference on Information Science and
components corresponding to various functionalities. These com- Engineering. IEEE, pp. 20–22.
ponents help in promoting architecture level reuse during software Boxall, M.A., Araban, S., 2004. Interface metrics for reusability analysis of
development. However, this requires that the reusability factor of components. In: 2004 Australian Software Engineering Conference.
Proceedings. IEEE, pp. 40–51.
the component should be measured in order to compare it with Boxall, M.A., Araban, S., 2004. Interface metrics for reusability analysis of
the reusability of other similar functional components. This can components. In: 2004 Australian Software Engineering Conference.
be used to determine the best-suited component for the CBSD Proceedings. IEEE, pp. 40–51.
Briand, L.C., Morasca, S., Basili, V.R., 1996. Property-based software engineering
use. Therefore, the primary objective of this paper is to propose a
measurement. IEEE Trans. Software Eng. 22, 68–86.
metric suite for estimating the reusability of the components Chhabra, J.K. et al., 2017. Improving modular structure of software system using
designed for the Java language. structural and lexical dependency. Inf. Softw. Technol. 82, 96–120.
This paper proposes the measurement of reusability by propos- Chidamber, S.R., Kemerer, C.F., 1994. A metrics suite for object oriented design. IEEE
Trans. Software Eng. 20, 476–493.
ing different metrics that measure the cohesion, coupling, cus- Cho, E.S., Kim, M.S., Kim, S.D., 2001. Component metrics to measure component
tomizability, completeness, and interface complexity quality. In: Proceedings Eighth Asia-Pacific Software Engineering Conference.
characteristics of the component. Based on these metric values, IEEE, pp. 419–426.
Chowdhury, I., Zulkernine, M., 2011. Using complexity, coupling, and cohesion
the final component reusability score is estimated using the pro- metrics as early indicators of vulnerabilities. J. Syst. Architect. 57, 294–313.
posed metric. The paper evaluates the proposed metric suite Cimino, M.G., Marcelloni, F., 2012. An efficient model-based methodology for
against three categories of Java language software. These cate- developing device-independent mobile applications. J. Syst. Architect. 58, 286–
304.
gories include software from a wide variety, having readymade Di Cosmo, R., Zacchiroli, S., Trezentos, P., 2009. Package upgrades in foss
JavaBeans components, object-oriented software systems designed distributions: Details and challenges. arXiv preprint arXiv:0902.1610.
using component characteristics in mind, and simple object- Crnkovic, I., Sentilles, S., Vulgarakis, A., Chaudron, M.R., 2010. A classification
framework for software component models. IEEE Trans. Software Eng. 37, 593–
oriented software systems. The proposed metric suite is tested 615.
both experimentally and statistically. The obtained results clearly Crnkovic, I., Sentilles, S., Vulgarakis, A., Chaudron, M.R., 2010. A classification
demonstrate that the proposed metric suite is a very good indica- framework for software component models. IEEE Trans. Software Eng. 37, 593–
615.
tor of the reusability for the components designed in the Java
Englander, R., 1997. Developing JAVA beans. O’Reilly Media Inc..
language. Feljan, J., Carlson, J., Žagar, M., 2009. Using javabeans to realize a domain-specific
This work primarily intended to estimate the reusability of component model. In: 2009 35th Euromicro Conference on Software
components is designed especially for the Java language. However, Engineering and Advanced Applications. IEEE, pp. 474–477.
Frakes, W.B., Succi, G., 2001. An industrial study of reuse, quality, and productivity.
it is our belief that the proposed metric suite is having a wider J. Syst. Softw. 57, 99–106.
scope and can be easily used by researchers in developing, Furht, B., 2019. Handbook of internet computing. CRC Press.

5550
A. Rathee and J.K. Chhabra Journal of King Saud University – Computer and Information Sciences 34 (2022) 5533–5551

Gosain, A., Sharma, G., 2017. Object-oriented dynamic complexity measures for Padhy, N., Satapathy, S., Singh, R., 2018. State-of-the-art object-oriented metrics and
software understandability. Innovations Syst. Softw. Eng. 13, 177–190. its reusability: a decade review. In: Smart Computing and Informatics. Springer,
Guerrero-Garcia, J., Gonzalez-Calleros, J.M., Vanderdonckt, J., Munoz-Arteaga, J., pp. 431–441.
2009. A theoretical survey of user interface description languages: Preliminary Papamichail, M.D., Symeonidis, A.L., 2020. A generic methodology for early
results, in: 2009 Latin American Web Congress, IEEE. pp. 36–43. identification of non-maintainable source code components through analysis
Gui, G., Scott, P.D., 2009. Measuring software component reusability by coupling of software releases. Inf. Softw. Technol. 118, 106218.
and cohesion metrics. JCP 4, 797–805. Papamichail, M.D., Diamantopoulos, T., Symeonidis, A.L., 2019. Measuring the
Gupta, V., Chhabra, J.K., 2011. Dynamic cohesion measures for object-oriented reusability of software components using static analysis metrics and reuse rate
software. J. Syst. Architect. 57, 452–462. information. J. Syst. Softw. 158, 110423.
Hair, J.F., Ringle, C.M., Sarstedt, M., 2013. Partial least squares structural equation Papamichail, M.D., Diamantopoulos, T., Symeonidis, A.L., 2019. Software reusability
modeling: Rigorous applications, better results and higher acceptance. Long dataset based on static analysis metrics and reuse rate information. Data Brief
Range Planning 46, 1–12. 27, 104687.
Harrison, R., Counsell, S.J., Nithi, R.V., 1998. An evaluation of the mood set of object- Pawar, A., Mago, V., 2018. Calculating the similarity between words and sentences
oriented software metrics. IEEE Trans. Software Eng. 24, 491–496. using a lexical database and corpus statistics. arXiv preprint arXiv:1802.05667.
Heng, L., Zhihua, D., Jianzhong, L., Dong, W., Zilong, M., 2020. Parameter estimation Rathee, A., Chhabra, J.K., 2018. Clustering for software remodularization by using
method of experimental data based on grey distance measure. In: 2020 IEEE structural, conceptual and evolutionary. J. Univers. Comput. Sci. 24, 1731–1757.
2nd International Conference on Civil Aviation Safety and Information Rathee, A., Chhabra, J.K., 2019. Mining reusable software components from object-
Technology (ICCASIT). IEEE, pp. 438–441. oriented source code using discrete pso and modeling them as java beans.
Hristov, D., Hummel, O., Huq, M., Janjic, W., 2012. Structuring software reusability Inform. Systems Front., 1–19
metrics for component-based software development. In: Proceedings of Int. Rathee, A., Chhabra, J.K., 2019. A multi-objective search based approach to identify
Conference on Software Engineering Advances (ICSEA). reusable software components. J. Computer Languages 52, 26–43.
Jendrock, E., Ball, J., Carson, D., Evans, I., Fordin, S., Haase, K., The java ee 5 tutorial. Rathee, A., Chhabra, J.K., 2019. Reusability in multimedia softwares using structural
url:https://docs.oracle.com/javaee/5/tutorial/doc/. and lexical dependencies. Multimedia Tools Appl., 1–22
Koteska, B., Velinov, G., 2012. Component-based development: A unified model of Rathee, A., Chhabra, J.K., 2020. Identification and construction of reusable
reusability metrics. In: International Conference on ICT Innovations. Springer, components from object-oriented legacy systems using various software
pp. 335–344. artifacts. In: Computational Intelligence Techniques and Their Applications to
Lau, K.K., Di Cola, S., 2017. An Introduction to Component-Based Software Software Engineering Problems. CRC Press, pp. 111–135.
Development. volume 3. # N/A. Sametinger, J., 1997. Software engineering with reusable components. Springer
Lau, K.K., Wang, Z., 2007. Software component models. IEEE Trans. Software Eng. 33, Science & Business Media.
709–724. Sharma, A., Kumar, R., Grover, P., 2008. Empirical evaluation and validation of
Liu, C., van Dongen, B., Assy, N., van der Aalst, W.M., 2018. Component interface interface complexity metrics for software components. Int. J. Software Eng.
identification and behavioral model discovery from software execution data. In: Knowl. Eng. 18, 919–931.
2018 IEEE/ACM 26th International Conference on Program Comprehension Sharma, A., Grover, P., Kumar, R., 2009. Reusability assessment for software
(ICPC). IEEE, pp. 97–9710. components. ACM SIGSOFT Software Engineering Notes 34, 1–6.
Mahouachi, R., 2018. Search-based cost-effective software remodularization. J. Shatnawi, A., Shatnawi, H., Saied, M.A., Shara, Z.A., Sahraoui, H., Seriai, A., 2018.
Computer Sci. Technol. 33, 1320–1336. Identifying software components from object-oriented apis based on dynamic
McIllroy, M., 1968. Mass-produced software components software engineering analysis. In: Proceedings of the 26th Conference on Program Comprehension.
concepts and techniques vol 1076 ed buxton jm, nauran p and randell b ACM, pp. 189–199.
petrocelli/charter. Shatnawi, A., Seriai, A., Sahraoui, H., Ziadi, T., Seriai, A., 2020. Reside: Reusable
Mehlawat, M.K., Gupta, P., Mahajan, D., 2020. A multi-period multi-objective service identification from software families. J. Syst. Softw. 170, 110748.
optimization framework for software enhancement and component evaluation, Song, S., Que, Z., Hou, J., Du, S., Song, Y., 2019. An efficient convolutional neural
selection and integration. Inf. Sci. 523, 91–110. network for small traffic sign detection. J. Syst. Architect. 97, 269–277.
Miller, G.A., 1995. Wordnet: a lexical database for english. Commun. ACM 38, 39–41. Sun, L., Huang, G., 2011. Towards accuracy of role-based access control
Mishra, S.K., Kushwaha, D.S., Misra, A.K., 2009. Creating reusable software configurations in component-based systems. J. Syst. Architect. 57, 314–326.
component from object-oriented legacy system through reverse engineering. Szyperski, C., Gruntz, D., Murer, S., 2002. Component software: beyond object-
J. Object Technol. 8, 133–152. oriented programming. Pearson Education.
Mitchell, B.S., 2003. A heuristic approach to solving the software clustering Thapar, S.S., Sarangal, H., 2020. Quantifying reusability of software components
problem, in: International Conference on Software Maintenance, 2003. ICSM using hybrid fuzzy analytical hierarchy process (fahp)-metrics approach. Appl.
2003. Proceedings., IEEE. pp. 285–288. Soft Computing 88, 105997.
Mitchell, B.S., Mancoridis, S., 2008. On the evaluation of the bunch search-based Washizaki, H., Yamamoto, H., Fukazawa, Y., 2004. A metrics suite for measuring
software modularization algorithm. Soft. Comput. 12, 77–93. reusability of software components, in: Proceedings. 5th International
Mijač, M., Stapić, Z., 2015. Reusability metrics of software components: survey, in: Workshop on Enterprise Networking and Computing in Healthcare Industry
26th Central European Conference on Information and Intelligent Systems (IEEE Cat. No. 03EX717), IEEE. pp. 211–223.
(CECIIS 2015). Weyuker, E.J., 1988. Evaluating software complexity measures. IEEE Trans. Software
Mohammed, S.W. et al., 2021. Retrieval of software components using nlp based ir Eng. 14, 1357–1365.
model. Mater. Today: Proc. Zou, Y., Chen, Y., Gong, K., 2009. Method of determining weights of indices in group
Niekamp, R., 2005. Software component architecture, in: Gestión de Congresos- evaluation based on soft sets, in: 2009 Third International Symposium on
CIMNE/Institute for Scientific Computing, TU Braunschweig. Intelligent Information Technology Application, IEEE. pp. 150–153.
Onyango, K.A., Muketha, G.M., Micheni, E.M., 2020. A metrics-based fuzzy logic
model for predicting the reusability of object-oriented software.

5551

You might also like