Computers and Electrical Engineering: Neelamdhab Padhy, R.P. Singh, Suresh Chandra Satapathy

You might also like

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

Computers and Electrical Engineering 69 (2018) 653–668

Contents lists available at ScienceDirect

Computers and Electrical Engineering


journal homepage: www.elsevier.com/locate/compeleceng

Software reusability metrics estimation: Algorithms, models


and optimization techniquesR
Neelamdhab Padhy a,∗, R.P. Singh b, Suresh Chandra Satapathy c
a
Research Scholar, Department of Computer Science and Engineering, Sri Satya Sai University of Technology and Medical Science
(SSSUTM), India
b
Vice-Chancellor of SSSUTM, Sehore, India
c
Professor and Head of PVP institute, Vijayawada, India

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

Article history: Objective: In this paper, the proposed model is intended to employ a novel evolution-
Received 30 July 2017 ary computing-based artificial intelligence or machine learning scheme for regression tests
Revised 19 November 2017
to be used for reusability estimation. Such enhancement can lead to accurate reusabil-
Accepted 20 November 2017
ity pattern estimation, which can be effective for optimal software design purposes. This
Available online 27 November 2017
model is popularly called an aging-resilient software reusability forecast representation.
Keywords: The proposed system employs predominant object-oriented software metrics, such as Chi-
Software reusability metrics damber and Kemerer’s metrics to examine reusability. Here, cumulative metrics, object-
Software metrics oriented metrics, McCabe’s metrics, cohesion and a coupling-based reusability assessment
Aging-resilient model have been proposed which could be of paramount significance in software design
Software reusability prediction optimization. In this paper, software metrics algorithms and their primary constructions
Software metrics algorithms have been developed for estimating the metrics from the UML/class diagrams. It is fea-
sible to derive an efficient and robust reusability prediction model for web-service prod-
ucts using object-oriented metrics. Here, it was also found that OO-CK metrics, particularly
complexity, cohesion and coupling-related metrics can be helpful in predicting reusabil-
ity in web-service software products. Considering the above-mentioned key contributions,
it can be stated that the proposed research could be of paramount significance in next-
generation software computation systems, primarily for software component reusability,
reliability, survivability, aging prediction and stability, and for software excellence assur-
ance purposes.
© 2017 Elsevier Ltd. All rights reserved.

1. Introduction

Software can be said to be one of the more significant inventions affecting human society, as it includes varied applica-
tion horizons such as science and technology, business, finance, medicine, defense, space technologies and aircraft, together
with an array of industrial utilities and various security systems. Identifying software as an un-substitutable entity in mod-
ern human life should not be surprising, because it has enabled and facilitated comfort in every functional activity for hu-
mans in the present and can be expected to do so in the future. All these aspects demonstrate the significance of software
in human life and in science and technology. Reusing existing or conveniently available software components to reduce time

R
Reviews processed and recommended for publication to the editor-in-chief by guest editor Dr. A. P. Pandian.

Corresponding author.neelamadhabphd@gmail.com
E-mail addresses: neelamadhabphd@gmail.com (N. Padhy), prof.r.p.singh@gmail.com (R.P. Singh), sureshsatapathy@ieee.org (S.C. Satapathy).

https://doi.org/10.1016/j.compeleceng.2017.11.022
0045-7906/© 2017 Elsevier Ltd. All rights reserved.
654 N. Padhy et al. / Computers and Electrical Engineering 69 (2018) 653–668

and costs for computation and human resources is called software reusability. Obtainable code is frequently used in new
projects. This is the main attribute of the maximum possible use characteristic for developing software components. There
are various ways to obtain reusability benefits such as cost, reliability and better-quality service [1]. At present, software
module-based software design (SMBSD) is of additional interest to researchers. This provides a new measurement style for
developing components in the industry. The reason behind it is low cost and quality software design. These days, the rising
cost of software-based computations has prompted academia and corporate industries to develop certain optimal software
design solutions that might ensure cost-efficient software systems without compromising reliability, scalability, stability and
overall quality. Achieving software quality while ensuring minimum cost of design could strengthen the software industry,
enabling it to remain relevant in the market and to achieve a higher market share. Additionally, ensuring reliability (sur-
vivability, aging-resilient processing) could be of paramount significance for both the users and the industries producing
software as a part of various utilities. In general, a software system encompasses various modules and packages, sometime
called components, which encapsulate significant portions of related data and functions. In practice, all system processes
are placed into distinct classes so as to maintain the semantic relations between the data and functions in each module or
class. Designing or developing software systems using already available modules or classes is known as reusability, and can
have major significance. In a software engineering approach, software metrics require more attention in order to improve
the quality of the product. Developers mainly focus on quality not quantity. Metrics are primarily used for the measurement
of a product or a component. Developing an effective software system is a challenging task. Reusable components can be
developed via existing source code. Once they are developed, they can be used further in different classes. Achieving full
reuse is part of the fruitfulness of software systems. This provides lower cost and better performance. The major motivation
for developing such components is the time factor, i.e. the time within which a stipulated stage of development of the new
component can be achieved. These components significantly reduce software development cost and time. The subject of
software engineering is the dominant area in software development where important products can be carefully considered.
In the current scenario, developers consider reusability to be a high-quality attribute. Overall, the development cost will be
reduced by 43% by implementing the software reusability approach. This includes processes whereby new software can be
built using existing software. The software design can be considered as an approach making use of abstraction, selection, in-
stantiation and integration. Research into software reusability will be helpful to the industry and to the software reusability
community. Chidamber and Kemerer [2] proposed six metrics, called the Chidamber and Kemerer software metrics.
This paper has been organized as follows. Section 2 describes the literature survey and discusses the estimation tech-
niques of software reusability metrics. This section also describes software aging. Here, aging means the identification of
software faults. In this part of the paper, the reasons behind aging and its classification are explained, together with how
different researchers present the reasons for software aging. Sections 3 and 4 discuss software metrics and reusability. In
these sections, in-depth explanations are given of CK-related metrics, reusability features, inheritance, classes and function-
related metrics described by different researchers. Section 5 highlights the main research question and its required solutions.
Sections 6 and 7 introduce the research gap and objectives, including classification of the general and specific objectives of
the research paper. Section 8 presents the research methodology. This methodology proposes reusability estimation tech-
niques such as EC-AI-based regression analysis for reusability estimation and aging- and survivability-related reusability op-
timization models. Section 9 describes the research contribution. Sections 10 and 11 provide the software reusability metrics
algorithms and formal structures. These algorithms are proposed based on object-oriented software code.

1.1. Software reuse techniques

The following techniques have been adopted to achieve software reusability. These techniques help to categorize the
reusability factor and support the choice of parameters and metrics concerned with reusability. They include: evolutionary
computing-based ANNs for software reusability prediction, support vector machines, neural networks, genetic algorithms
and fuzzy logic. The inspiration for this paper was to recognize and estimate the current state of the art for software
reusability metrics estimation, including requirements, approaches, models and optimization techniques. The intention of
this review is to benefit practitioners and researchers who wish to assess the advantages and disadvantages of the require-
ments of various reuse approaches.

1.2. Research highlights

The primary contribution is that the proposed AGA-ANN-based reusability prediction model is better than any other
available approaches, and therefore can be applied for real-time application purposes. Other highlights are:

Identification of the reusability factor which influences software code.

Reusability rank estimation. A proposed equation has been developed which will estimate the rank.

Prediction of the percentage of code reused in new components. A proposed equation has been developed for identifying
the percentage of code that will be reused.

Measurement of the reusability in the class. An equation has been constructed to measure the reusability in the class or
component.

Estimation of the software reusability. A software reusability estimation model has been proposed and an aging- and
survivability-related reusability optimization model has been developed.
N. Padhy et al. / Computers and Electrical Engineering 69 (2018) 653–668 655

Table 1
CK Metrics and Hypotheses.

Slno Hypothesis Reason

1. H1 Weighted method per class (WMC) metric unable to forecast defective classes
2. H2 Number of child classes (NOC) metric unable to forecast defective classes
3. H3 Response for class (RFC) metric unable to forecast defective classes
4. H4 Depth of inheritance (DIT) metric unable to forecast defective classes
5. H5 Coupling between objects (CBO) metric unable to forecast defective classes
6. H6 Lack of cohesion (LCOM) metric unable to forecast defective classes
7. H7 Lines of count (LOC) metric unable to forecast defective classes
8. H8 Cyclomatic complexity(CC) metric unable to forecast defective classes
9. H9 Method complexity (MC) metric unable to forecast defective classes


Development of the software metrics algorithms and their underlying structure for estimating the metrics from the
UML/class diagrams.

2. Literature survey

Object-oriented metrics (OOMs) are one type of measurement technique associated with source code. There are several
metrics available, and the overall goal is software estimation. Software metrics can be used to estimate costs, cost savings
and the value of software practices [4]. The concept of reusability means that a segment of source code can be used again
and again when adding new functionalities, with only slight or no modifications. Singh and Ahuja [17] pointed out that soft-
ware components can be classified based on the coupling, inheritance, external dependency, and polymorphism and reuse
index of the component. A code repository is also possible using the reusability concept. This was proposed by Barua and
Rawat [18]. First, a case study was developed to verify what would happen when new requirements were introduced, and
to make a comparison between the previous components and the new component. Hinkel et al. [19] identified modularity
as a quality attribute of metamodels. Metamodels are very important in the field of object-oriented programming. By using
metamodels we can draw the UML diagrams which help in analyzing the object-oriented code properly. Before estimation
and prediction of the reusability, it is necessary to identify the metamodel and to focus on the modularity of the quality at-
tribute. These days, assessment of reusability is a challenging task in the industry. Numerous approaches have been pointed
out so far. Subedha and Sridhar [20] demonstrated the process of reusability assessment. The way that high-level design
metrics are constructed is presented in the paper. Several literature surveys have been conducted to find the most suitable
reusable components. Irshad et al. [24] conducted a brief literature survey regarding software reusability. They considered
69 studies and described the requirements of the reusability and the approaches used. They found that some of the ap-
proaches are not validated in the industry. In the literature study they used snowball sampling and a database search for
identifying the studies. Their objective was to find the requirements of reuse and the necessary approaches: Hudaib et al.
[25] proposed the classification and prediction techniques using self-organization map using software reusability. They also
proposed methodology for data collection and pre-processing, reusability classification and validation techniques

2.1. Literature review outcomes

It is also possible that object-oriented metrics can predict defective or non-defective classes. In the literature review,
we found that several statistical techniques are used to determine the relation between defective and non-defective classes.
Popular techniques are used proactively to determine the relation between them using an object-oriented methodology.
Several researchers have pointed out the correlation between object-oriented measurement and defective and non-defective
classes. These major techniques have been effectively used to establish the relations among them, such as cross-validation,
univariate logistic regression analysis (ULR) and t-test analysis based on feature selection methods. The above-mentioned
techniques are used for software reusability prediction purposes. Hypotheses H1 to H9 are defined in Table 1.

2.2. Software aging

Software aging is also possible in web servers. It not only affects software reusability but also reflects excessive reuse in
the web server. Software aging is not a new concept; it has evolved over the last 20 years or more. Software aging occurs
when there is excess reusability. There will be a threshold value, which is one of the measurements of the reusability
estimation level. If we create a maximum level of reusability, then the software system will crash or fail. There are two
types of software aging:

Lack of Movement: Aging caused by the failure of the product’s owners to modify it to meet changing needs.
Ignorant Surgery: Aging as a result of changes that are made, introducing software faults otherwise known as aging.
This may be component failure, OS (operating system) failure or application failure. Most of the time aging occurs
due to excessive reuse, which is regarded as a software fault. Failure leads to erroneous service such as stopping,
system crashes or wrong results.
656 N. Padhy et al. / Computers and Electrical Engineering 69 (2018) 653–668

Table 2
Reasons for Software Aging.

Reason for aging Task Specific reason

Some kind of resources leakage System software in particular 1. Excess memory


occurs
2. Socket problems
3. Uninterrupted process arises
4. Threading problem
Keeping track of records (either Breakup of OS 1. Memory issue, e.g., physical
files or database systems) memory, file system, database
files
Numerical error occurred OS-detailed 1. Round-off
Data corruption OS-detailed 1. Memory issue, e.g., physical
memory, file system, database
files
Excess of reusability Software or OS malfunctioned 1. Excess of inheritance in the
subclasses

Table 3
Facts about object-oriented metrics.

Object-Oriented CK Metric Definition Recommended By References Hypothesis

Weighted methods per class Signifies the cumulative addition of the Chidamber and Kemerer [3] [2] [22] H1
(WMC) complexities of all the class methods in [23]
the software project.
Depth of inheritance tree (DIT) Signifies the highest length from the Chidamber and Kemerer [3] [21–23] H2
root to the node across the tree.
Number of children (NOC) Signifies the total number of adjacent Chidamber and Kemerer [3] [21–23] H3
sub-classes subsidiary to a class in the
associated class hierarchy.
Coupling between objects States how well the classes are Chidamber and Kemerer [3,21–23] H4
(CBO) connected together
Response for a class (RFC) Refers to the methods to be executed Chidamber and Kemerer [3,21–23] H5
as a response to certain messages
obtained by an object of that class.
Lack of cohesion in methods Estimates the divergence or the Chidamber and Kemerer [3,21–23] H6
(LCOM) dissimilarity between the methods in a
class through instanced variables
Lines of code (LOC) The total number of lines present in Halstead [2] [21–23] H7
the components or in the source code
Cyclomatic complexity (CC) Able to find the number of decision in McCabe [2] [21–23] H8
the class
Method complexity (MC) The total number of methods present Tang [2] [21–23] H9
in the class

Table 4
Reusability Features.

Reusability Feature Meaning

Material Describes which item is reused


Extent The extent to which the component will be reused
Approach The methodology used to conduct the reusability
Procedure The techniques used to estimate the reusability (implementation techniques)
Goal How and what elements are reused
Product What kind of components/elements are reused in the program

3. Object-Oriented Metrics

OOMs (object-oriented metrics) play an important role in the software industry. Almost all projects develop an object-
oriented concept. Measuring the quality as well as the quantity is a challenging task for the developer. The meaning of a
metrics is a measured quantity. Chidamber and Kemerer proposed six metrics to solve the problem of estimation of the
code. The process of measuring quantity as well as quality is currently the hottest topic in the software engineering do-
main [7]. Numerous software metrics have been developed and used for fault prediction, which may estimate the size,
complexity, cohesion and coupling. Mijac and Stapic [8] described how to build software components and reuse them. In
the last decade, software metrics have been used for different purposes in different ways. Not just metrics, but specifically
reusability metrics, are dominant in the software era.
N. Padhy et al. / Computers and Electrical Engineering 69 (2018) 653–668 657

4. Software reusability metrics

In this paper we have studied some popular object-oriented metrics and discussed how to predict the reusability. For
measuring the software code, Chidamber and Kemerer (1994 [2]) proposed six different metrics, called the CK metrics suite
[2,3] (WMC, DIT, RFC, LCOM, NOC and CBO). Furthermore, these metrics are used as class-level metrics. A detailed descrip-
tion is presented in Table 1. If excess reusability occurs, a risk of aging may arise. The reusability concept is completely dom-
inant in the object-oriented programming language. Sandhu et al. [9] invented a type of framework for the metrics using the
McCabe’s Cyclomatic complexity metric, the regularity metric, the Halstead software science indicator, the reuse frequency
metric and coupling metrics to estimate the reusability. Reusability estimation is somewhat difficult because the research is
not yet concrete and is still progressing. Gopalakrishnan Nair and Selvarani [10] recommended a model for measuring the
reusability from the software code. This model is based on the CK metrics suite. From this, Nair found the three metrics
DIT, RFC and WMC. These three metrics make it possible to estimate the reusability factor from the software code. In order
to measure the software reusability. Etzkorn et al. [11] have developed natural language processing and knowledge-based
information. Other authors, such as Goyal and Gupta [12] developed the unsupervised neural network (SOM) algorithm to
estimate the reusability of different components in an OOP software system. The main input consists of CK metrics which
have been provided to the SOM algorithm to evaluate the amount of reusability for different components. Researchers have
not only used CK metrics for estimating the size and the quality, but have also used them for measuring machine learning
algorithms. Singh et al. [13] used the CK metrics suite with fuzzy logic for estimating the reusability prediction and de-
vised a model for an aspect-oriented software system. Shri et al. [14] published a paper relating to a software component
reusability estimation model using WMC, DIT, NOC, CBO and LCOM. Code reuse is also possible in the development of robots
by using a class reuse library.
There are different approaches available for reusing components. It may be a bottom-up development process or a top-
down approach. In the bottom-up approach, the lower-level entities are combined into a single unit. In this approach,
classification and retrieval approaches are generally used. Other approaches such as top-down approaches are known as
generative reuse. The second reusability approach is domain specific.

5. Research question

5.1. RQ1. How we can measure the reusability rank?

Reusability Rank (RR)


The rank of the reusability is determined using the ratio of elements that are reused to the sum of all components
available in the system. Let us consider a simple program having five functions (elements) X, Y, Z, M and N. These functions
are arranged in the modular paradigm manner. A proposal that reuse should be measured as the number of lines of code
incorporated in a system without modification divided by the total number of lines of code in the system has also been
made by the Software Productivity Metrics Working Group of the IEEE [5].
The reusability rank can be determined. For this purpose, a proposed metric is defined, called the RR (reusability estima-
tion rank metric).
Proposed Equation:
Number of reused elements
Reuse rank = (1)
Sum of all elements
5.2. RQ2. What percentage of code is reused in the new components?

The above formula is derived based on the total number of lines present inside the class as well the number of words.
A reuse measurement based on lines and words for a low-level determination of white-box reuse has been proposed by
Childs and Sametinger [6]. The percentage of code is defined in the proposed metric, which is called the PCRP (percentage
of code reused in the program).
Sum of same lines present in the program
Sum of same lines present in the program
PCRP = x 100 (2)
Number of lines present in the program
Once the component has been developed, several modifications may subsequently arise due to requirements. In the
interests of customer satisfaction, the software development process continues in order to improve the product as well as
to rectify bugs. Nowadays, 90% of software components can be developed by using existing components. Technically, this is
reusability. It means that the new product will be developed by taking the features of the existing product. This inheritance
is called reusability.

5.3. RQ3. Can we extend the number of levels in a class hierarchy?

The proposed algorithm used in this paper is exclusively for an inheritance tree diagram in the object-oriented method-
ology. We can extend the levels in the inheritance tree diagram.
658 N. Padhy et al. / Computers and Electrical Engineering 69 (2018) 653–668

Hypothesis: The proposed algorithm fixes a threshold value for the minimum and maximum levels, i.e., we consider the
minimum to be two and the maximum to be six. The advantage of this algorithm is the separation of the inherited methods;
if the objects use the same method then we grade them using a grading factor. After performing this task repeatedly using
sorting techniques the objects are available in the sorted order. This technique continues one level after another. Good
appearance increases with increasing depth of inheritance.

5.4. RQ4. How can we measure the reusability of the class?

Whether reusability occurs or not it is a challenging question for the programmer, but our proposed methods easily
address the reusability of the class. The primary objective is to measure the reusability of a class diagram.

Existing code of a class = X ∗ (DIT ) + Y ∗ (NOC ) − − Z ∗ (CBO ) (3)


Where X, Y, Z are experimental constants.
For expediency, we take X = Y = 1 and Z = 0.5. In this approach we conclude that the existing code of a class is similar
to the class having the most reusability.
Reusability of class diagram = MAX (reusability (class) i)
Where

i = 1, . . . , n. (4)

6. Research gap

It is interesting, and no doubt a universal fact, that the world moves or intends to move in the direction which provides
better solutions for intended objectives. Software, being a significant part of our industrial and scientific civilization, has
prompted researchers to provide certain effective and optimal (quality-oriented, cost-effective and reliable) software solu-
tions. In this endeavor, considerable research has been done on exploring the reusability of the software components to
enhance the quality and cost-effectiveness of software systems. Taking into consideration the literature survey conducted
and the significance of the various studies, it can be stated that much effort has been expended towards achieving high-
quality and cost-effective software solutions, though most of the research is confined to either the module’s or the package’s
reusability assessment or to reusability enhancement approaches. According to the literature, it can be stated that most of
the efforts made merely emphasize the reusability assessment, but as far as we know no significant endeavor has been com-
pleted with respect to developing survivability or stability-sensitive reusability optimization. Much work has been done on
exploring the effectiveness of various techniques such as machine learning, regression using fuzzy logic or neural networks
(NNs); however, their practical usefulness is still questionable, due to their respective limitations. As an illustration, NN
(neural network)-based regression has local minima and convergence issues. Therefore, in specific cases of quality optimiza-
tion (especially reusability optimization), the enhancement of conventional NN systems with certain efficient evolutionary
computing (EC) schemes could be vital. Such efforts have not been made so far. Major existing systems have used individual
factors such as complexity, CK metrics, inheritance, cohesion, etc. for reusability assessment, but their cumulative effective-
ness has not been addressed till now. To the best of our knowledge regarding future computation, the combination of two
systems, the first focusing on reusability optimization and the second emphasizing assessment of the dynamic complexity
or aging probability of the software, has certainly not been discussed so far. Such integrated systems could not only enhance
the reusability (and the resulting quality, cost-effectiveness and reliability) but also reduce the aging probability (based on
the dynamic complexity of the modules) in real applications. In summary, the combination of reusability optimization and
dynamic aging probability prediction has not been addressed so far. These existing limitations and research gaps suggest
that the integration of an enhanced reusability assessment system and dynamic software-complexity-based aging prediction
could form a robust and novel system that could not only achieve software component reusability optimization, but could
also ensure optimal reliability of the system for real-time applications.

7. Research objectives

Considering the exponential rise in the demand for reliable, cost-efficient and well-organized object-oriented
programming-based software systems, in this research multiple key characteristics such as software component reusabil-
ity, complexity, survivability and proneness to aging have been considered for optimization. The overall research objectives
have been categorized into two broad classes. These are: general objectives and specific objectives. Here, general objectives
are the overall research intentions or targets, while specific objectives are the methodological and technical measures to be
incorporated in order to achieve the final research objectives. The research objectives are defined in the following sections.

7.1. General objective

To develop a highly robust, efficient and cost-effective software component reusability optimization model for OO (object-
oriented) software systems.
N. Padhy et al. / Computers and Electrical Engineering 69 (2018) 653–668 659

7.2. Specific objectives

• To build up a robust evolutionary computing enriched artificial intelligence or soft computing scheme-based regression
test for software component reusability analysis.
• To develop an inter-module or inter-package cohesion and coupling estimation-based adaptive reusability risk reduction
(A3R) model for object-oriented software.
• To develop a stability-, aging- and survivability-aware (sensitive) reusability optimization model (ASROM) for object-
oriented software systems.

8. Research methodology

This section briefly discusses the proposed research methodology.


In the proposed research, the overall effort occurred in two distinct phases. These were:
8.1 Phase-1 Evolutionary computing enriched AI (EC-AI)-based regression model for software reusability estimation.
8.2 Phase-2 Aging- and survivability-aware reusability optimization model (ASROM).
A brief discussion of the proposed research is given in the following sections.

8.1. Phase-1 evolutionary computing enriched regression model for software reusability

The proposed EC-AI-based regression scheme is briefly as follows.


EC-AI-Based Regression Analysis for Reusability Estimation
In the proposed method, an advanced regression scheme has been proposed that would examine the individual strengths
and binding capacities of the software modules. The development of a novel inter-module coupling and cohesion analysis
scheme has been proposed in order to estimate the binding capacities of the modules of a package. The proposed approach
emphasizes estimating or assessing the relationship or coupling between different modules based on module size or package
size, integration and dependency relationships. More specifically, in the proposed method, the inter-module relationship has
been estimated using the three key factors of cohesion, coupling and inheritance. The overall proposed reusability estimation
model is presented as follows:
As depicted above (Figure 1), the proposed system is initiated by selecting a certain software system (open-source soft-
ware, OOP software components, web-server applications, etc.) to be examined for reusability and further design optimiza-
tion. Since in this proposal object-oriented software metrics have been used for reusability analysis, the well-known Chi-
damber and Kemerer (CK) Java machine (CKJM) tool has been used to retrieve the OO metrics. To examine the reusability
analysis of a software system, a design pattern assessment has been proposed where five CK metrics values, i.e., weighted
methods per class (WMC), depth of inheritance tree (DIT), number of children (NOC), response for class (RFC) and cou-
pling between objects (CBO) are retrieved for the individual class of the design pattern. In addition, the McCabe OO metrics
known as Cyclomatic complexity (CC) metrics have also been retrieved. The CC metrics will be used in a later stage of the
research for assessing the stability and survivability of the software system with an increase in reusability of the software
components. Before processing the regression test, the data were preprocessed. Here, data normalization was incorporated
over the retrieved OO metrics, which were further split for training and testing purposes. To perform regression testing or
analysis for the object-oriented software metrics, evolutionary computing-based artificial intelligence techniques have been
proposed in this study. Since artificial neural networks (ANNs) are established as a predominant alternative for learning
classification and prediction due to their generalization properties and effectiveness under missing data, we propose using
ANN methods in this research. Considering the key limitations of ANNs, i.e., local minima and convergence issues, different
evolutionary computing (EC) algorithms such as genetic algorithms (GAs), differential evolution (DE) and particle swarm
optimization (PSO) have been proposed, where these algorithms would be used to estimate weights for efficient learning.
Here, implementing EC-AI, the regression output is enhanced and as a result gives the most effective and accurate reusability
value. It can enable the best possible software design optimization.
In summary, in this research phase, the OO CK metrics have been used as the input to the EC-AI model which has
estimated the maximum extent of software component reusability.

8.1.1. Inter-Module cohesion and coupling estimation-based adaptive reusability risk reduction (A3R) model
To achieve cost-effective, reliable and quality-enriched software solutions, enabling higher coupling between packages
is vital. Maintaining higher software component reusability with assured higher coupling or binding strength can keep
software intact and seamless. With this motivation, in this research emphasis has at first been placed on enhancing the
reusability of the software components, which have been further examined for their proneness to aging (proposed in next
research phase).
In the proposed research, object-oriented programming software has been taken as the region of interest (ROI) for anal-
ysis. Here, the proposed software could have a number of modules relating to the project. We propose estimating the co-
hesion and coupling between or among those modules in order to estimate the individual strengths and binding capacities.
Once the cohesion and coupling test analysis has been performed, a regression analysis is proposed. As proposed in the
previous research phase, the derived (proposed above) EC-AI-based regression model would be used to perform regression
660 N. Padhy et al. / Computers and Electrical Engineering 69 (2018) 653–668

Fig. 1. Proposed Reusability Estimation Model.

tests among modules. To develop the risk minimization model, variables such as module size, domain, module or package
dependency relationships and cohesion can be processed using regression testing to ensure higher reusability without mak-
ing compromises with risk factors. In order to perform regression testing, factors such as root mean-square error (RMSE),
correlation coefficient, etc. can be used as the threshold. So far in this research proposal, the emphasis has been on op-
timizing the reusability of the object-oriented programming (OOP)-based software components; however, key factors such
as the increase in reusability and its impact (assuming excessive reusability increases complexity) on software reliability
have not been addressed. According to current knowledge, no integrated model or system has been proposed so far which
can optimize the software component reusability while ensuring the avoidance of aging. In this research proposal, a hybrid
model has been developed as an aging- or survivability-sensitive reusability optimization model.
A discussion of the proposed novel approach is given in the following section.

8.2. Aging- and Survivability-Aware (Sensitive) reusability optimization model

Considering the reusability risk, which is commonly increased due to excessive use (iterative use) of modules or classes,
in this research proposal a robust adaptive reusability risk reduction model (A3RM) has been proposed. In some major
studies, the emphasis has been on increasing or even optimizing reusability, but without addressing the fact that if excessive
reusability (note, for example, that higher depth of inheritance (DIT) represents higher reusability and hence one can often
intend to keep DIT higher) is introduced, it might result in increased complexity or more specifically, Cyclomatic complexity.
Such high complexity may even result in aging. Hence, maintaining optimal reusability while avoiding aging risk can be of
paramount significance. In this research proposal a robust aging- and survivability-aware (sensitive) reusability optimization
model (ASROM) for object-oriented software systems has been proposed. For object-oriented programming-based software
systems, the term “survivability” can be used in conjunction with the aging event. In fact, survivability signifies the extent
to which a software component can be effective or reusable (increasing use of classes and methods) without degrading
or introducing aging. Survivability can be ensured by using certain thresholding schemes, aging prediction and software
rejuvenation. In this proposed system, an initial Cyclomatic complexity (CC)-based risk or aging prediction model has been
proposed. In the proposed method, two distinct thresholds are considered. First, the risk range value (RRV) or reusability
range, which is simply the Cyclomatic complexity (CC)-based threshold. Second, a threshold which represents the aging or
the software degradation point. In addition, different benchmark thresholds such as the NASA Satellite WMC risk threshold
N. Padhy et al. / Computers and Electrical Engineering 69 (2018) 653–668 661

Fig. 2. Aging- and Survivability-Aware (Sensitive) Reusability Optimization Model (ASROM) For Object-Oriented Software Systems.

metrics can also be used to predict excessive reusability which may cause aging. Considering a real-time scenario, dynamic
aging prediction is proposed to indicate or predict aging once the reusability factor exceeds the RRV.
Thus, implementing the overall system, the major concerns of OOP software systems, such as software component
reusability, maintainability, risk reduction, aging avoidance, survivability, etc. can be addressed. The robustness and effi-
ciency of the proposed approach with successful implementation could enable a benchmark solution for optimal software
design and maintenance.

8.3. Usage of reusability estimation model

Various cost estimation models have been proposed, such as the Cocomo-II model (Boehm), the reuse-based model (Jas-
mine/Vasantha) and the basic reuse model (SPC). In this paper we have presented one reusability estimation model. This
model is prominently used in the software engineering domain. This model used the fuzzy logic system, a neural network
model and the genetic algorithm techniques of soft computing. The usage of the reusability estimation model has two broad
objectives as shown below. Fig. 2 describes the regression model.

Phase 1. Evolutionary computing enriched AI (EC-AI)-based regression model for software reusability estimation. This model
uses the proposed advanced regression scheme to examine individual strength.

Phase 2. Aging- and survivability-aware reusability optimization model (ASROM).

9. Research contribution

The novelties of the proposed research work signify an array of contributions to advanced software design optimization.
Some of the key expected contributions of the proposed research work are as follows.
The proposed system employs predominant object-oriented software metrics, such as CK metrics (WMC, DIT, NOC,
RFC and CBO) and McCabe (Cyclomatic complexity) metrics to examine reusability. Here, a reusability assessment model
based on cumulative metrics (OO–CK metrics, McCabe metrics, cohesion and coupling) has been proposed that could be
of paramount significance in software design optimization. The proposed model is intended to employ a novel evolutionary
computing-based artificial intelligence or machine learning scheme for regression tests to be used for reusability assessment.
Such enhancement could lead to very accurate reusability pattern estimation, which could be effective for optimal software
design purposes. The implementation of the inter-module cohesion and coupling estimation-based adaptive reusability risk
reduction (A3R) scheme is a novel effort towards enabling higher software quality while ensuring reliable and seamless soft-
ware design. The integration of reusability estimation and dynamic aging prediction could be of paramount significance for
developers or industry to ensure that the developed software exploits the maximum possible reusability without introducing
662 N. Padhy et al. / Computers and Electrical Engineering 69 (2018) 653–668

any probable faults or aging risks. The successful implementation and realization of the aging- and survivability-aware (sen-
sitive) reusability optimization model (ASROM) for object-oriented software systems could be a novel benchmark study for
academia and corporate industries to enable optimal software design, (i.e., CBSD) optimization. The aforementioned contri-
butions are the expected (tentative) contributions based on the proposed scheme; however, successful implementation and
optimization could lead to more robust systems and approaches for object-oriented programming-based software design
optimization. In addition, it could be of service in software maintainability optimization, fault estimation, dynamic aging
prediction, etc. Thus, considering the above-mentioned key contributions, it can be stated that the proposed research work
could be of paramount significance for next-generation software computation systems, primarily for software component
reusability, reliability, survivability, aging prediction, stability and software quality assurance purposes.

9.6. Software reusability metrics algorithms

The various algorithms are proposed and defined clearly in this section.
DIT (Depth of Inheritance) Algorithm
Representation for DIT

Variable list → {VN }


Method sets → {MN}
Class Sets → {CN }
Some Extent→ Class only
Attribute → Atrr

Observation
 
LCOM = ALCOM , RLCOM (5)
where (A, R) are the two attributes which will represent the relation name as well as the grammar.
  
ALCOM = Cl sLCOM , MLCOM , Atr r LCOM , ф, Cl sLCOM (6)
Exclusive for Method

RLCOM = {MLCOM xCl sLCOM } (7)


Exclusive for Attribute
 
RLCOM = Atrr LCOM x ClsLCOM (8)
Exclusive for uses
 
RLCOM = MLCOM x AtrrLCOM (9)

Corollary 1. When the two sets of the methods which contribute to the common variable then the values of LCOM will Increase
by 1.

Corollary 2. When the two sets of the methods which contribute to the common variable then the values of LCOM will decrease
by 1.

Corollary 3. It has been observed that if a high value of cohesion occurs then there will be a chance of reusability.

Corollary 4. It has been proved that when the chance of reusability decreases then LCOM automatically increases.

Corollary 5. The consistency is more influenced by cohesion.

Corollary 6. Ability to reuse has not much impact on the coupling.

Corollary 7. When higher cohesion occurs in the class then impact will be more unpredictable.

10. Constraints of depth of inheritance

In the inheritance tree structure diagram, the minimum level and maximum levels are assumed. These are denoted
INHT and INHMAXT. The levels used are INHT greater than or equal to two and INHMAXT less than or equal to six. In
mathematical terms, INHT ≥ 2 and INHMAXT ≤ 6. Similarly, in this algorithm we will calculate the total number of reused
methods TNRM in the object (OBJ).

INHT = minimum number of levels in the class hierarchy.


INHMAXT = maximum number of levels in the class hierarchy.
TNRM = total number of methods reused.
N. Padhy et al. / Computers and Electrical Engineering 69 (2018) 653–668 663

10.1. Procedure_DIT (N)

(1) Begin

(2) If (N < INHT) and the possible number of child classes used < 2, then:

(3) Remove_object()

(4) If (N < INHT), then

(5) Arrange the objects, possibly highest (top) levels (N), and calculate the total number of functions reused via TNRM

(6) Call the Procedure {Position of _objects(N)}

(7) Represent the 2nd largest objects (Simply adding one more level to the inheritance tree structure diagram)

(8) Else If (N > INHMAXT) Then:

(9) Join together total objects at level N, subsequently the root at level N-1

(10) Call the Procedure _DIT(N-1)

(11) Else

(12) Do nothing

(13) End of if

(14) End.

10.2. Procedure of Position_of _Objects (N)

Begin
Let X be an array having N elements present.
N is the sum of all the objects at that level.
NTNRM = Total number of methods reused.
(1) X = array [1, …, N]
(2) Repeat for each object OBJ j, j = 1, …, N
(3) X[j] = TNRM
(4) Apply_Procedure for sorting (X); //Make sure that X[1] will be in the top position
(5) Return X;
End Position_Objects;
End Procedure_DIT.

11. Reusability structure

Let us take the two classes A and B and their reusable levels RL1 and RL2 , such that (A, B) € cls.
If class A is more dominant than B, this is represented by (RL1 > RL2 ). In this approach it is concluded that RL1 is the
least reusable class in the reusability structure. In this part of the section, we have developed one type of prototype model
for an object-oriented language. Suppose we have an OOP (object-oriented program) which has three attributes. The number
664 N. Padhy et al. / Computers and Electrical Engineering 69 (2018) 653–668

of classes is denoted as CLS, the number of methods inherited in the class is Pi , and the number of the matched coupling
between methods is Pc .
The class can be represented as

(CLS, Pi, Pc ). (10)

Pi = {(NAT; NAM ), NAT  CLS∧ NAM  CLS|NAT extends NAM} (11)

NAT is the number of attributes in the class and NAM is the number of methods present in the class.
For the pair wise coupling methods represented as Pc , let us consider two classes A and B which are pair wise coupled
with each other. If there is a method present in class A which has been associated with at least one method in class B, then
this can be represented as shown below.

Tc = {A, B |∃ Method of class Ai  A∧ ∃ Method of class B j∧  CLS} (12)

The level of reusability can be recognized. RL is the extent of the reusability.

Corollary 1. If RL = 0 the class is said to be a general class.

Corollary 2. If RL = N, provided N is greater than zero, then it is referred to as a specific class. For developing a skeleton, the class
reusability as well as associations among the other classes needs to be identified in the program. Let us consider the two classes
which are related to each other and can be expressed as TR .
 
TR = (A, B ), Ax  CLS Vˆ BX  | AX reused with BX (13)

What will happen when the base class (base) is uniformly general or more general than its child class?
This can be possible in reusability hierarchies and is mathematically expressed below.

(A, B )  CLS => RLx >= RLy (14)

Corollary 3. Suppose there is the same level of reusability in the first inheritance class and the least-reusable coupled class.

We consider two classes A and B and their reusable levels RL1 and RL2 such that (A, B) € cls.
If class A is more dominant than B, this is represented by (RL1 > RL2 ). In this approach it is concluded that
RL1 is the least-reusable class.

12. Weighted Method per class (WMC)

These metrics are used to count the number of methods in the class. The method of implementation is different in
different cases. WMC is used in either McCabe Cyclomatic complexity or in lines of code. WMC is extensively discussed in
[2] [3]. Li and Henry [15] propose weighting the methods according to Cyclomatic complexity. Hitz and Montazeri [16] also
discussed the weighted method per class and described its influence in a software project
Extent: WMC can be better used in the class itself.

MW MC = (Gr aW MC , RelW MC ) (15)

  
Gr aW MC = cl sW MC , met W MC , ф, cl sW MC (16)

Rel WMC = {met WMC x clsWMC } (17)

According to the CK metrics, WMC is the sum of the weighted methods present in the class.
The sum of methods represented in the class is as shown below:
 
Met W MC = predecessor cls, met W MC (18)

Corollary 1. If we add more methods in a class which is unweighted, then the reusability refuses it. Whether a class is suitable
or not depends on the size of the metrics.

Corollary 2. Information about the class which is more appropriate for reuse depends on the length of the program. Learnability
decreases as more unweighted methods are added to the program.

Corollary 3. Good appearance of the class depends on the size of the class as well the complexity. Good appearance will increase
with increasing unweighted WMCs.
N. Padhy et al. / Computers and Electrical Engineering 69 (2018) 653–668 665

13. Depth of inheritance tree (DIT)

Description
One type of measurement is related to the inheritance tree diagram. It measures the length from the top level to the
bottom level in the ITD (inheritance tree diagram). It estimates the possible number of base classes used in the structure.
The deeper we go in the class diagram, the more inherited methods are found. Furthermore, the degree will be high, and
it will be difficult to predict the activities. Chidamber and Kemerer [2] introduced a suite of metrics for object-oriented
designs (Chidamber and Kemerer [3]). If more classes are reused in the program, then software quality will be improved
and we will know what percentage of code will be used in other products.
Uses: Object-oriented programming language.
Extent: Class
Mathematical representation
Depth of Inheritance (DIT ) = (ADIT , RDIT ) (19)
where (A, R) are the two attributes which represent the relation name as well as the grammar
ADIT = ({C l sDIT }, ф, C l sDIT ) (20)
In terms of inheritance
The DIT can be defined as
{ClsDIT x ClsDIT } (21)
Corollary 1. If we have more reuse, then there is a risk of aging problems, which have both significantly positive and negative
side effects.

Corollary 2. The good appearance of a class completely depends on the percentage of code reused. When the classes continue
downwards then more functions from the base class should be reused.

Good appearance increases with increasing depth of inheritance.


The depth of inheritance of the class may be defined as shown below.
The DIT value of a class cls ∈ classDIT is defined as:
P (cls ) = pred∗ (cls, inheritance )DIT (22)

//inher itanceeither directlyor indirectlyispossibleandcanbeexplicitlyde f inedasbelow :


(23)
DIT (cls ) = max(dist (cls, P (cls ) ) )
The depth of inheritance returns an integer. Hence it will be treated as an integer domain.
This can be written as:
Integers ∈ 0, ..., ∞ (24)

14. Lines of code

Description
This metric is used to calculate approximately the total number of statements present in the program. Since it counts the
number of lines in the source program, it is also called an SLOC metric. Sometimes it can be referred to as a size-oriented
metric. By using this metric, the developer predicts how much effort is required to complete the task. The important factor
in this metric relates to the comment line. This metric is able to count the blank spaces. The LOC can also be represented
in the relation as shown below.
Extent: Method, Class
Mathematical representation
LOC can be defined as shown below.
LOC
= (SLOC , ALOC ) (25)

SyntaxGLOC = ({rangeLOC }, ∅, rangeLOC ) (26)

Associations RLOC : ∅ (27)


Mapping αLOC :
α LOC (Class → rangeLOC ) (28)

α LOC (Method ) → rangeLOC (29)


666 N. Padhy et al. / Computers and Electrical Engineering 69 (2018) 653–668

Fig. 3. Proposed Model for estimation.

Corollary 1. If we consider reusability in the source program, then there will be chances of both positive and negative effects of
size. If we reuse more than LOC completely refuse to increase more number of source lines of code.

Corollary 2. Depending on the situation, if excess reuse occurs then understandability decreases with increasing LOC.

Corollary 3. If we reuse less code, then the appearance of the code improves. Good appearance depends on the size. If there are
more source lines of code, then the appearance is less good.

Corollary 4. With respect to the source code, if a large number of lines are present in the program, then it is very difficult
to maintain it. It is strongly suggested that unnecessary code should not be included in the program, otherwise maintainability
problems occur.

15. Proposed model

In the above proposed model, initially the object oriented diagrams are passed in to this model. This diagram may called
as reusability estimation model.
In the above proposed model, the object-oriented diagrams are initially input to the model. Figure 3 is the unified model
diagram. In the next step of this proposed model, the classes are recognized. In the following step, the individual class
metrics are estimated, and the metrics authenticated. After authentication, the metrics which will be the input for the AGA-
NN (evolutionary computing-based ANN for software reusability) are identified. There are various neural network algorithms
available and these algorithms are executed internally. The input data will be passed through the training stage so that the
final required model is developed.

16. Feature scope

Researchers can continue to enhance reusability in cloud computing. Generating metrics in cloud computing is one of
the challenging tasks of the 21st century. A sophisticated tool should be developed to measure the reusability estimation.
Another challenging task is to find the software metrics and make predictions regarding mobile apps. Further research is
required to obtain software aging prediction using machine learning algorithms. Estimating the software cost of web-service
of applications represents another research challenge for the software industry.

17. Conclusion

In this paper, an aging- and survivability-aware (sensitive) reusability optimization model (ASROM) for object-oriented
software systems has been developed. A method for estimating the reusability from the software code has also been pro-
posed. More than two approaches dominate the software industry for evaluating the reusability of code. In addition, various
research questions have been addressed and demonstrated using suitable examples. The novelty of this paper lies in the
development of the algorithms strategy. Several algorithms have been developed for object-oriented reusability metrics. All
the algorithms have been developed based on the object-oriented Chidamber and Kemerer metrics suite. So far, the research
has considered only the theoretical aspects, but this paper addresses the development of reusability algorithms, models for
reusability estimation and related techniques. This study demonstrated that is it feasible to derive an efficient and robust
reusability prediction model for web-service products using OO-CK metrics. It was also found that OO-CK metrics, partic-
ularly complexity, cohesion and coupling-related metrics can be helpful in predicting reusability in web-service software
products.

Supplementary materials

Supplementary material associated with this article can be found, in the online version, at doi:10.1016/j.compeleceng.
2017.11.022.

References

[1] Goel BM, Bhatia PK. Analysis of reusability of object-oriented systems using object-oriented metrics. In: ACM SIGSOFT software engineering notes, 38.
ACM; 2013. p. 1–5. Issue 4. doi:10.1145/2492248.2492264.
N. Padhy et al. / Computers and Electrical Engineering 69 (2018) 653–668 667

[2] Chidamber, S., Kemerer, C. “Towards a metric suite for object oriented design,” Sloan School of Management, IT, OOPSLA 91, pp. 197-211, ISBN:0-
201-55417-8 doi:10.1145/117954.117970 Proceeding, ’91 Conference proceedings on object-oriented programming systems, languages, ACM SIGPLAN
Notices, vol.26 Issue 11, pp. 197–211
[3] Chidamber S, Kemerer C. A metrics suite for object oriented design. IEEE Trans Softw Eng 1994;20(June(6)):476–93 IEEE Press Piscataway, NJ, USA.
doi:10.1109/32.295895.
[4] Poulin JS. Measuring reuse. In: Proceedings of the third international conference on software reuse, Rio de Janeiro, Brazil, 1–4 November; 1994.
p. 126–38. doi:10.1109/ICSR.1994.365803.
[5] Banker RD, Kauffman RJ, Zweig D. Repository evaluation of software reuse. IEEE Trans Softw Eng 1994;19(4):379–89 IEEE Press Piscataway, NJ, USA.
doi:10.1109/32.223805.
[6] Childs B, Sametinger J. Reuse measurement with line and word runs. TOOLS Pacific ‘96. 2nd ed., Melbourne, Australia: Thomson Computer Press;
November 1996. ISBN 9781439838228.
[7] Fenton N, Bieman J. Software metrics: a rigorous and practical approach. CRC Press; October 2014. Reference - 617 pp. - 155 B/W Illustrations, ISBN
9781439838228 - CAT# K11732.
[8] Mijac M, Stapic Z. Reusability metrics of software components: survey. In: Conference paper. September central European conference on Information
and Intelligent system; 2015. p. 221–31.
[9] Sandhu PS, Kaur H, Singh A. Modelling of reusability of object oriented software system. Int J Comput Eng Technol 2009;56:162–5. World Academy of
Science, Engineering and Technology http://scholar.waset.org/1999.4/15107 .
[10] Gopalakrishnan Nair TR, Selvarani R. Estimation of software reusability: engineering approach. In: Association for computing machinery ACM SIGSOFT
software engineering note, 35. ACM; January 2010. p. 1–6. doi:10.1145/1668862.1668868.
[11] Etzkorn LH, Davis CG, Bowen LL, Wolf JC, Wolf RP, Yun MY, Vinz BL, Orme AM, Lewis LW. The program analysis tool for reuse: identifying reusable
components. In: Proceedings of the eleventh international FLAIRS conf.; 1998. p. 121–5.
[12] Goyal N, Gupta D. Reusability calculation of object oriented software model by analyzing CK metric. Int J Adv Res Comput Eng Technol
2014;3(7):2466–70 ISSN: 2278 – 1323.
[13] Singh PK, Sangwan OP, Singh AP, Pratap A. A framework for assessing the software reusability using fuzzy logic approach for aspect oriented software.
Int J Inf Technol Comput Sci 2015;02:12–20. doi:10.5815/ijitcs.2015.02.02.
[14] Shri A, Sandhu P, Gupta V, Anand S. Prediction of reusability of object oriented software systems using clustering approach. World Academy of Science,
Engineering and Technology. Int J Comput Electr Autom Control Inf Eng 2010;4(7):1174–7. http://scholar.waset.org/1999.4/10254.
[15] Li W, Henry SM. Maintenance metrics for the object oriented paradigm. In: Proceedings of the first international software metrics symposium. IEEE;
1993. p. 52–60.
[16] Hitz M, Montazeri B. Measure coupling and cohesion in object-oriented systems. In: Proceedings of international symposium on applied corporate
computing (ISAAC’95); October 1995.
[17] Singh B, Ahuja SP. Detection of reusable components in object oriented programming using quality metrics. Int J Adv Res Comput Sci Softwe Eng
2013;3(January(1)) ISSN: 2277 128X.
[18] Barua K, Rawat DMK. A minimization of software cost and effort estimation using code reusability concept by analogy estimation technique. Engineer-
ing Universe for Scientific Research and Management. Int J 2014;6(April(4)) Impact Factor: 3.7.
[19] Hinkel G, Kramer M, Burger E, Strittmatter M, Happe L. An empirical study on the perception of metamodel quality. In: Proceedings of the 4th inter-
national conference on model-driven engineering and software development (MODELSWARD), Rome, Italy. IEEE INSPEC Accession Number: 16990400,
Electronic ISBN: 978-989-758-232-5.
[20] Subedha V, Sridhar DS. A systematic review of reusability assessment model and related approach for reusable component mining. J Comput Appl
2012(2) ISSN: 0974-1925.
[21] Padhy N, Satapathy S, Singh RP. Utility of an object oriented reusability metrics and estimation complexity. Indian J Sci Technol 2017;10(3). doi:10.
17485/ijst/2017/v10i3/107289.
[22] Padhy N, Satapathy S. The statistical measurement of an object-oriented programme using an object oriented metrics. In: AISC Series, vol. 328.
Springer; 2015. p. 605–18.
[23] Padhy N, Satapathy SC, Singh RP. Estimation of complexity by using an object oriented metrics approach and its proposed algorithm and models. Int
J Netw Virtual Organ 2017;X(Y) pp. xxx–xxx.
[24] Irshad M, Petersen K, Poulding S. A systematic literature review of software requirements reuse approaches. Inf Softw Technol 2017. doi:10.1016/j.
infsof.2017.09.009.
[25] Hudaib A, Huneiti A, Othman I. Software reusability classification and predication using self-organizing map (SOM). Commun Netw 2016;8:179–92.
http://dx.doi.org/10.4236/cn.2016.83018.
668 N. Padhy et al. / Computers and Electrical Engineering 69 (2018) 653–668

Neelamadhab Padhy received his MCA in 2003 from the BPUT, Raurkela, and his M.Tech. (CS) from the BU, Odisha. Presently, he is pursuing his Ph.D.
(computer science and engineering) as a research scholar at SSSUTM, Sehore and Bhopal. He has published one article in Indst (WoS) and has three papers
accepted by Inderscience, Switzerland (Scopus Indexing). He has also published many conference papers and book chapters.

R. P. Singh is the former Director and Professor in Electronics and Communication at the Maulana Azad National Institute of Technology, (MANIT), Bhopal.
A total of 20 candidates have completed a Ph.D. under his supervision and another six are registered. He has under taken several research and development
projects. Presently he is Vice-Chancellor of the SSSUTM, Sehore and Bhopal.

Suresh Chandra Satapathy is a senior IEEE member who received his Ph.D. (computer science and engineering) from JNTU, Hyderabad, and his M.Tech.
(CSE) from NIT, Rourkela. He is presently working as a head of department in the PVP Siddhartha Institute of Technology, Vijayawada and Andhra Pradesh,
India. He has edited a number of books for Springer and is a member of the editorial board of several international journals.

You might also like