Table Of ContentComputational I ntelligence
Techniques and Their
Applications to Software
Engineering Problems
Computational I ntelligence
Techniques and Their
Applications to Software
Engineering Problems
Edited by
Ankita Bansal, Abha Jain, Sarika Jain,
Vishal Jain and Ankur Choudhary
First edition published 2021
by CRC Press
6000 Broken Sound Parkway NW, Suite 300, Boca Raton, FL 33487-2742
and by CRC Press
2 Park Square, Milton Park, Abingdon, Oxon, OX14 4RN
© 2021 Taylor & Francis Group, LLC
CRC Press is an imprint of Taylor & Francis Group, LLC
Reasonable efforts have been made to publish reliable data and information, but the author and
publisher cannot assume responsibility for the validity of all materials or the consequences of
their use. The authors and publishers have attempted to trace the copyright holders of all material
reproduced in this publication and apologize to copyright holders if permission to publish in this
form has not been obtained. If any copyright material has not been acknowledged please write and
let us know so we may rectify in any future reprint.
Except as permitted under U.S. Copyright Law, no part of this book may be reprinted, reproduced,
transmitted, or utilized in any form by any electronic, mechanical, or other means, now known or
hereafter invented, including photocopying, microfilming, and recording, or in any information
storage or retrieval system, without written permission from the publishers.
For permission to photocopy or use material electronically from this work, access www.copyright.
com or contact the Copyright Clearance Center, Inc. (CCC), 222 Rosewood Drive, Danvers, MA
01923, 978-750-8400. For works that are not available on CCC please contact mpkbookspermissions@
tandf.co.uk
Trademark notice: Product or corporate names may be trademarks or registered trademarks, and are
used only for identification and explanation without intent to infringe.
ISBN: 978-0-367-52974-1 (hbk)
ISBN: 978-1-003-07999-6 (ebk)
Typeset in Times
by codeMandra
Contents
Preface......................................................................................................................vii
Editors .......................................................................................................................ix
Contributors ..............................................................................................................xi
Chapter 1 Implementation of Artificial Intelligence Techniques for
Improving Software Engineering .........................................................1
Sushma Malik, Monika Arora, Anamika Rana and Mamta Bansal
Chapter 2 Software Effort Estimation: Machine Learning vs. Hybrid
Algorithms..........................................................................................21
Wasiur Rhmann
Chapter 3 Implementation of Data Mining Techniques for Software
Development Effort Estimation ..........................................................29
Deepti Gupta and Sushma Malik
Chapter 4 Empirical Software Measurements with Machine Learning .............49
Somya Goyal and Pradeep Kumar Bhatia
Chapter 5 Project Estimation and Scheduling Using Computational
Intelligence .........................................................................................65
Vikram Bali, Shivani Bali and Gaurav Singhania
Chapter 6 Application of Intuitionistic Fuzzy Similarity Measures in
Strategic Decision-Making.................................................................79
Anshu Ohlan
Chapter 7 Nature-Inspired Approaches to Test Suite Minimization for
Regression Testing ..............................................................................99
Anu Bajaj and Om Prakash Sangwan
Chapter 8 Identification and Construction of Reusable Components
from Object-Oriented Legacy Systems Using Various
Software Artifacts ............................................................................111
Amit Rathee and Jitender Kumar Chhabra
v
vi Contents
Chapter 9 A Software Component Evaluation and Selection Approach
Using Fuzzy Logic ...........................................................................137
Maushumi Lahon and Uzzal Sharma
Chapter 10 Smart Predictive Analysis for Testing Message-Passing
Applications ......................................................................................151
Mohamed Elwakil
Chapter 11 Status of Agile Practices in the Software Industry in 2019 .............171
Ashish Agrawal, Anju Khandelwal and Jitendra Singh
Chapter 12 Agile Methodologies: A Performance Analysis to Enhance
Software Quality ..............................................................................181
Neha Saini and Indu Chhabra
Chapter 13 Pretrained Deep Neural Networks for Age Prediction from Iris
Biometrics ........................................................................................189
Ganesh Sable, Murtaza Mohiuddin Junaid Farooque and
Minakshi Rajput
Chapter 14 Hybrid Intelligent Decision Support Systems to Select the
Optimum Fuel Blend in CI Engines .................................................201
Sakthivel Gnanasekaran and Naveen Kumar P.
Chapter 15 Understanding the Significant Challenges of Software
Engineering in Cloud Environments ................................................239
Santhosh S. and Narayana Swamy Ramaiah
Index ......................................................................................................................249
Preface
No one can imagine our modern life without software. There is a huge demand for
quality software with fast response and high reliability. This increasing demand is
bringing various challenges for software industries. Before deployment, software
undergoes various developmental stages such as eliciting requirements, designing,
project planning, coding, testing and maintenance. Every stage is bundled with
numerous tasks or activities. The ever-changing customer requirements and the com-
plex nature of software make these tasks more challenging, costly and error-prone.
To overcome these challenges, we need to explore computational intelligence tech-
niques for different software engineering tasks.
Computational intelligence is closely related to artificial intelligence in which
heuristic and metaheuristic algorithms are designed to provide better and optimized
solutions at reasonable costs. Computational techniques, such as optimization tech-
niques, metaheuristic algorithms and machine learning approaches, constitute dif-
ferent types of intelligent behavior. Optimization techniques are approaches that
provide optimal or near-optimal solutions to problems where goals or targets to
be achieved are known. Metaheuristic is a high-level, iterative process that guides
and manipulates an underlying heuristic to efficiently explore the search space. The
underlying heuristic can be a local search or a low- or high-level procedure. Meta-
heuristics provide near-optimal solutions with high accuracy and limited resources
in a reasonable amount of time by exploiting the search space. Machine learning
algorithms work efficiently when we have sufficient data to extract knowledge and
train models. For example, models can be developed to classify error-prone classes
of software. These algorithms have proven their effectiveness in different applica-
tion domains such as medicine, bioinformatics, computer networks and weather
forecasting. Researchers have applied computational intelligence techniques to solve
various problems in the software engineering domain such as requirement priori-
tization, cost estimation, reliability assessment, defect prediction, maintainability
prediction, quality prediction, size estimation, vulnerability prediction and test case
prioritization, among others.
In software industries, the stakeholders of software organizations conduct daily
activities such as software designing, project planning and testing, among others.
Computational intelligence techniques can be applied to carry out these activities
efficiently. In addition to application in software industries, computational intelli-
gence techniques can have real-life applications, such as in household appliances
and medicine (e.g., tumor identification, disease diagnosis, X-ray, etc.). The aim
of Computational Intelligence Techniques and Their Applications to Software
Engineering Problems is to focus on the application of computational intelligence
techniques in the domain of software engineering. In this book, researchers and aca-
demicians have contributed theoretical research articles and practical applications in
the field of software engineering and intelligent techniques.
This book would be primarily useful for researchers working on computational
intelligence techniques in the field of software engineering. Moreover, because this
vii
viii Preface
book provides a deep insight into the topic from diverse sources, beginner and inter-
mediary researchers working in this field would find this book highly beneficial.
We express our sincere thanks to Gagandeep Singh, publisher (engineering), CRC
Press, for giving us an opportunity to convene this book in his esteemed publishing
house, and Lakshay Gaba, editorial assistant, CRC Press, for his kind co operation
in completion of this book. We thank our esteemed authors for having shown confi-
dence in this book and considering it as a platform to showcase and share their origi-
nal research. We also wish to thank the authors whose research was not published in
this book probably because of minor shortcomings.
Editors
Ankita Bansal is an assistant professor at Netaji Subhas University of Technology
(NSUT), Delhi, India. Prior to joining NSUT, Dr. Bansal worked as a full-time
research scholar at Delhi Technological University (DTU) (formerly Delhi College of
Engineering). She received her master’s and doctoral degrees in computer science
from DTU. Her research interests include software quality, soft computing, database
management, machine learning and metaheuristic models.
Abha Jain is an assistant professor at Shaheed Rajguru College of Applied Sciences
for Women, Delhi University, India. Prior to joining the college, she worked as a full-
time research scholar and received a doctoral research fellowship from DTU. She
received her master’s and doctoral degrees in software engineering from DTU. Her
research interests include data mining, software quality and statistical and machine
learning models. She has published papers in international journals and conferences.
Sarika Jain graduated from Jawaharlal Nehru University (India) in 2001. She has
served in the field of education for over 19 years and is currently working at the National
Institute of Technology Kurukshetra, India. Dr. Jain has authored/co authored over
100 publications including books. Her current research interests include knowledge
management and analytics, semantic web, ontological engineering and intelligent
systems. Dr. Jain has supervised two doctoral scholars (five ongoing) who are now
pursuing their postdoctorates. She has two research-funded projects: one ongoing
project is funded by CRIS TEQUIP-III, and the other completed project is funded by
DRDO, India. She has also applied for a patent. Dr. Jain has been supervising DAAD
interns from different German universities and works in collaboration with various
researchers across the globe including Germany, Austria, Australia, Malaysia, the
United States, Romania and many others. She is a member of IEEE and ACM and is
a Life Member of CSI, IAENG and IACSIT.
Vishal Jain is an associate professor at the Bharati Vidyapeeth’s Institute of
Computer Applications and Management (BVICAM), New Delhi, India (affiliated
with Guru Gobind Singh Indraprastha University and accredited by the All India
Council for Technical Education). He first joined BVICAM as an assistant professor.
Prior to that, for several years he worked at the Guru Premsukh Memorial College of
Engineering, Delhi, India. He has more than 350 research citations and has authored
more than 70 research papers in reputed conferences and journals including Web of
Science and Scopus. Dr. Jain has authored and edited more than 10 books with various
reputed publishers including Springer, Apple Academic Press, Scrivener, Emerald
and IGI-Global. His research areas include information retrieval, semantic web,
ix