Call Girl in Bur Dubai O5286O4116 Indian Call Girls in Bur Dubai By VIP Bur D...
Virvou M. Handbook on Artificial Intelligence...Engineer. Vol 1. 2022.pdf
1. Maria Virvou
George A. Tsihrintzis
Nikolaos G. Bourbakis
Lakhmi C. Jain Editors
Handbook on Artificial
Intelligence-Empowered
Applied Software
Engineering
Artificial Intelligence-enhanced Software
and Systems Engineering 2
Volume1: Novel Methodologies to
Engineering Smart Software Systems
2. Artificial Intelligence-enhanced Software
and Systems Engineering
Volume 2
Series Editors
Maria Virvou, Department of Informatics, University of Piraeus, Piraeus, Greece
George A. Tsihrintzis, Department of Informatics, University of Piraeus, Piraeus,
Greece
Nikolaos G. Bourbakis, College of Engineering and Computer Science, Wright
State University, Dayton, OH, USA
Lakhmi C. Jain, KES International, Shoreham-by-Sea, UK
3. The book series AI-SSE publishes new developments and advances on all aspects
of Artificial Intelligence-enhanced Software and Systems Engineering—quickly and
with a high quality. The series provides a concise coverage of the particular topics
from both the vantage point of a newcomer and that of a highly specialized researcher
in these scientific disciplines, which results in a significant cross-fertilization and
research dissemination. To maximize dissemination of research results and knowl-
edge in these disciplines, the series will publish edited books, monographs, hand-
books, textbooks and conference proceedings. Of particular value to both the contrib-
utors and the readership are the short publication timeframe and the world-wide
distribution, which enable both wide and rapid dissemination of research output.
4. Maria Virvou · George A. Tsihrintzis ·
Nikolaos G. Bourbakis · Lakhmi C. Jain
Editors
Handbook on Artificial
Intelligence-Empowered
Applied Software
Engineering
VOL.1: Novel Methodologies to Engineering
Smart Software Systems
6. Foreword
Artificial Intelligence is defining a new era in human civilization, shaping a new,
human-centred society (“Society 5.0”) in which cyberspace (virtual space) and phys-
ical space (real space) are highly integrated [1, 2]. The main characteristic of this
era is that huge amounts of data, collected from a variety of sensors, are stored
and automatically analysed without human intervention and via intelligent algo-
rithms and software which far exceed human capabilities. The consequence is a
strong interconnection between humans, devices and services in literally all aspects
of professional, social and everyday life, which was never previously seen and is
continuously becoming ever more complex.
Certainly, this interconnection between human and artificial intelligence comes
with significant risks. In [3], a warning is issued that “… artificial intelligence (AI) is
not an ongoing or imminent global catastrophic risk. Nor is it as uncontroversially a
serious cause for concern. However, from a long term perspective, the development
of general artificial intelligence, exceeding that of the human brain, can be seen as
one of the main challenges to the future of humanity (arguably, even as the main
challenge).”
Despite the risks associated with the rapid development of Artificial Intelligence,
almost every aspect of society is expected to benefit from it, including economic
development, combatting famine, poverty and inequality, improved health care,
advanced assistive technologies for people in need, efficient energy production and
distribution, disaster prevention and intelligent applications in manufacturing and
industry.
These advances come from the pressure imposed on researchers worldwide to
insert Artificial Intelligence enhancements into software and/or empower software
with Artificial Intelligence as a result of technological advancements, such as the
Internet of Things, big data collected with a variety of sensors or smartphone and
mobile software applications. Thus, a new multidisciplinary research area has been
emerging over the recent past, which is expected to have a significant impact on
society.
Professors Maria Virvou, George A. Tsihrintzis, Nikolaos G. Bourbakis and
Lakhmi C. Jain have identified the lacuna in an appropriate, high impact forum to
v
7. vi Foreword
publish related research and to disseminate corresponding knowledge as it accumu-
lates. Thus, they initiated a new Springer series under the title Artificial Intelligence-
Enhanced Software and Systems Engineering. As they state, “The book series AI-SSE
publishes new developments and advances on all aspects of Artificial Intelligence-
enhanced Software and Systems Engineering—quickly and with a high quality. The
series provides a concise coverage of the particular topics from both the vantage point
of a newcomer and that of a highly specialized researcher in these scientific disci-
plines, which results in a significant cross-fertilization and research dissemination.
To maximize dissemination of research results and knowledge in these disciplines,
the series will publish edited books, monographs, handbooks, textbooks and confer-
ence proceedings. Of particular value to both the contributors and the readership are
the short publication timeframe and the world-wide distribution, which enable both
wide and rapid dissemination of research output” [4].
In more specificity, the new series will focus on:
1. Incorporating Artificial Intelligence Enhancements into Software
2. Developing Artificial Intelligence Tools for Software Engineering
3. Merging Software Engineering with Knowledge Engineering
4. Software Engineering for Developing Artificial Intelligence and Machine
Learning Systems
5. Innovative Applications of Artificial Intelligence-Empowered Software Engi-
neering.
The book at hand launches the new series. Specifically, Profs. Virvou, Tsihrintzis,
Bourbakis and Jain are delivering a high-quality two-volume Handbook on Artificial
Intelligence-Empowered Applied Software Engineering. The Handbook consists of a
first volume devoted to Novel Methodologies to Engineering Smart Software Systems
and a second volume devoted to Smart Software Applications in Cyber-Physical
Systems.
Specifically, the first volume consists of an introductory/editorial chapter and
eleven (11) additional chapters. In the introductory chapter, the editors guide the
reader, especially the newcomer to the area of Artificial Intelligence-empowered
Applied Software Engineering, and focus on Novel Methodologies to Engineering
Smart Software Systems. They introduce the corresponding major concepts and
topics, the approaches and some of the open challenges of this fascinating discipline.
The remaining 11 chapters have been authored by world-renowned researchers who
are recognized for their significant contributions to their corresponding fields. The
book is organized into three parts, namely (i) Survey of Recent Relevant Litera-
ture (one chapter), (ii) Artificial Intelligence-Assisted Software Development (five
chapters) and (iii) Software Engineering Tools to Develop Artificial Intelligence
Applications (five chapters).
On the other hand, the second volume consists of an introductory/editorial chapter
and ten (10) additional chapters. In the introductory chapter, the editors again guide
the reader, especially the newcomer to the area of Artificial Intelligence-empowered
Applied Software Engineering, and now focus on Smart Software Applications
in Cyber-Physical Systems. They introduce the corresponding major concepts and
8. Foreword vii
topics, the approaches and some of the open challenges of this fascinating discipline.
The remaining ten chapters have been authored by world-renowned researchers who
are recognized for their significant contributions to their corresponding fields. The
book is organized into five parts, namely (i) Smart Software Applications in Scientific
Document Processing (two chapters), (ii) Smart Software Applications in Enterprise
Modelling (three chapters), (iii) Smart Software Applications in Education (two chap-
ters), (iv) Smart Software Applications in Healthcare and Medicine (two chapters)
and (v) Smart Software Applications in Infrastructure Monitoring (one chapter).
Editing a two-volume Handbook in this exciting new research area is a chal-
lenging task, especially as this discipline is multidisciplinary and researchers come
from a wide variety of interests and expertise. The editors are required to grasp this
breadth and be deeply versed in the corresponding state-of-the-art developments
in the field. Professors Virvou, Tsihrintzis, Bourbakis and Jain have managed to
impress us with the breadth of the topics covered in their two-volume Handbook.
Their Handbook not only covers an impressively wide variety of topics within
this multidisciplinary area, but also the depth in which each topic is covered is
dazzling. Moreover, while the first volume is devoted to general methodologies in
empowering software with artificial intelligence, the second volume is devoted to
specific application areas and case studies. Thus, I am confident that the readers
of the Handbook—either newcomers to this area seeking to know more about it or
specialized researchers seeking to be versed in the most recent advances in specific
sub-areas—will benefit greatly from this two-volume work and, moreover, will be
able to make use of and apply their readings in practice.
I find the editors’ work superb, and I warmly congratulate them. I have enjoyed
reading this two-volume Handbook, and, without any reservation, I recommend it to
both specialists in Artificial Intelligence-empowered Applied Software Engineering
and to general readers who wish to learn more about this emerging and fascinating
discipline.
Prof.-Dr. J. Sukarno Mertoguno
Deputy Director
Institute for Information Security & Privacy (IISP)
Georgia Institute of Technology
Atlanta, GA, USA
Further Reading
1. From Industry 4.0 to Society 5.0: the big societal transformation plan of Japan. https://www.i-
scoop.eu/industry-4-0/society-5-0/
2. Society 5.0. https://www8.cao.go.jp/cstp/english/society5_0/index.html
3. N. Bostrom and M.M. Ćirković (eds.), Global Catastrophic Risks, Oxford University Press,
2008, p. 17
4. https://link.springer.com/bookseries/16891
9. Preface
The use of Artificial Intelligence is being extended far beyond the related technology
of Expert Systems and the respective more traditional procedures of Knowledge
Engineering, Knowledge Acquisition or Knowledge Representation and needs to be
embodied in other forms of software. The driving conditions behind related efforts in
research and development arise from pressure exercised by important and evolving
new technological advancements in big data, smartphone and mobile software appli-
cations, the Internet of Things, as well as a vast range of application areas in all sorts
of human activities and professions. As such, current related research includes efforts
towards the efficient incorporation of Artificial Intelligence enhancements into soft-
ware and the empowerment of software with Artificial Intelligence. The goal is dual:
(i)todevelopalgorithms,mechanisms,methodologiesandproceduresthatallowsoft-
ware to learn and evolve (i.e., to become better, user-friendlier and more efficient at
performing specific tasks), either on its own or with the help of a supervisor/instructor
and (ii) to enhance the whole Software Engineering process, including the use of
Artificial Intelligence to (at least partially) automate software development and to
reflect the incorporation of Knowledge Engineering and Knowledge Acquisition,
prototyping and rapid application development of intelligent software modules.
The book at hand constitutes the inaugural volume of the new Springer series
on Artificial Intelligence–Enhanced Software and Systems Engineering (https://link.
springer.com/bookseries/16891) and the first volume of a two-volume Handbook
on Artificial Intelligence-empowered Applied Software Engineering. In the book,
devoted to Novel Methodologies to Engineering Smart Software Systems, we include
a detailed Survey of Recent Relevant Literature and present some very significant
advances in (i) Artificial Intelligence-Assisted Software Development and (ii) Soft-
ware Engineering Tools to develop Artificial Intelligence Applications. The editorial
note is followed by 11 chapters, each of which is authored by world-known experts
and complemented with additional bibliography for the reader to probe deeper into
the chapter topic.
The book is directed towards professors, researchers, scientists, engineers and
students in Artificial Intelligence, Software Engineering and Computer Science-
relateddisciplines.Itisalsodirectedtowardsreaderswhocomefromotherdisciplines
ix
10. x Preface
and are interested in becoming versed in some of the most recent advances in the
field of Artificial Intelligence-empowered Applied Software Engineering. Finally,
as societal demand continues to pose new and challenging problems and emerging
technologies press for ever more advanced theories and ever more efficient method-
ologies, tools and systems to be devised to address them, it is our hope that the
Handbook on Artificial Intelligence-empowered Applied Software Engineering will
also attract the interest of researchers in authoring/editing related volumes to be
published in the new Springer series on Artificial Intelligence-Enhanced Software
and Systems Engineering (https://link.springer.com/bookseries/16891).
Piraeus, Greece
Piraeus, Greece
Dayton, OH, USA
Shoreham-by-Sea, UK
Maria Virvou
George A. Tsihrintzis
Nikolaos G. Bourbakis
Lakhmi C. Jain
11. Contents
1 Introduction to Handbook on Artificial
Intelligence-Empowered Applied Software
Engineering—VOL.1: Novel Methodologies to Engineering
Smart Software Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Maria Virvou, George A. Tsihrintzis, Nikolaos G. Bourbakis,
and Lakhmi C. Jain
Part I Survey of Recent Relevant Literature
2 Synergies Between Artificial Intelligence and Software
Engineering: Evolution and Trends . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Aurora Ramírez and José Raúl Romero
Part II Artificial Intelligence-Assisted Software Development
3 Towards Software Co-Engineering by AI and Developers . . . . . . . . . 39
Hironori Washizaki
4 Generalizing Software Defect Estimation Using Size and Two
Interaction Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Shyam Singhal, Beulah Moses, and Veena Jadhav
5 Building of an Application Reviews Classifier by BERT
and Its Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Yuki Yamada and Atsuo Hazeyama
6 Harmony Search-Enhanced Software Architecture
Reconstruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Amarjeet Prajapati and Zong Woo Geem
7 Enterprise Architecture-Based Project Model for AI Service
System Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Hironori Takeuchi
xi
12. xii Contents
Part III Software Engineering Tools to Develop Artificial
Intelligence Applications
8 Requirements Engineering Processes for Multi-agent Systems . . . . . 125
Iderli Pereira de Souza Filho, Giovane D.’Avila Mendonça,
Willian Samuel Gerstberger, and Gilleanes Thorwald Araujo Guedes
9 Specific UML-Derived Languages for Modeling Multi-agent
Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Gilleanes Thorwald Araujo Guedes and Rosa Maria Vicari
10 Methods for Ensuring the Overall Safety of Machine Learning
Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Tomoko Kaneko and Nobukazu Yoshioka
11 MEAU: A Method for the Evaluation of the Artificial
Unintelligence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Francisco V. Cipolla Ficarra
12 Quantum Computing Meets Artificial Intelligence:
Innovations and Challenges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Maha A. Metawei, Hesham Eldeeb, Salwa M. Nassar,
and Mohamed Taher
14. 2 M. Virvou et al.
In the book, we present some very significant advances in (i) Artificial Intelligence-
Assisted Software Development and (ii) Software Engineering Tools to develop Arti-
ficial Intelligence Applications and also include a detailed Survey of Recent Relevant
Literature. The editorial note is followed by 11 chapters, each of which is authored by
world-known experts and complemented with additional bibliography for the reader
to probe deeper into the chapter topic.
Keywords Artificial Intelligence · Artificial Intelligence-empowered Software
Engineering · Knowledge-based Software Engineering · Learning systems · Smart
Software · Software Development with Artificial Intelligence
1.1 Editorial Note
For several decades, Artificial Intelligence has been a field of very active and intense
research worldwide. Recently, the whole field of Artificial Intelligence is being
revisited to provide critical functionality and significant enhancements in reasoning,
decision making, filtering, software personalization and adaptivity, natural language
understanding, deep learning, machine learning and data mining. This broad activity
comes under the research and development pressure of the important and evolving
new technological advancements in big data, smartphone and mobile software appli-
cations, the Internet of Things, as well as a vast range of application areas in all sorts
of human activities and professions.
In view of the previous, the use of Artificial Intelligence has been extended beyond
the related technology of Expert Systems and the respective more traditional proce-
dures of Knowledge Engineering, Knowledge Acquisition or Knowledge Represen-
tation and needs to be embodied in other forms of software. As such, current related
research includes efforts towards the efficient incorporation of Artificial Intelligence
enhancements into software and the empowerment of software with Artificial Intel-
ligence. The goal is dual: (i) to develop algorithms, mechanisms, methodologies,
and procedures that allow software to learn and evolve (i.e., to become better, user-
friendlier and more efficient at performing specific tasks), either on its own or with the
help of a supervisor/instructor, and (ii) to enhance the whole Software Engineering
process, including the use of Artificial Intelligence to (at least partially) automate
software development, and reflect the incorporation of knowledge engineering and
knowledge acquisition, prototyping and rapid application development of intelligent
software modules.
Within the umbrella of Artificial Intelligence-empowered Software Engineering,
a number of intelligence paradigms are used, which include Expert Systems, Fuzzy
Logic, Machine Learning (and its sub-field of Deep Learning), Artificial Immune
Systems, Swarm Intelligence, and Genetic Algorithms.
As a result of its enormous pace of growth (both theoretically and in the breadth
of application areas) and its high rates of success, Artificial Intelligence-empowered
SoftwareEngineeringpromisesamajorimpactonscience,technologyandthesociety
15. 1 Introduction to Handbook on Artificial Intelligence … 3
itself. However, such an impact also includes threats, among others in security,
privacy, safety, democracy, fundamental rights, transparency, business, competition
or the job market.
In order to make efficient development and use of Artificial Intelligence-
empowered Software, further research is required and all aspects and applications
of the Software Engineering discipline need to be re-considered within the Artificial
Intelligence-empowered framework. Specifically, significant research needs to be
conducted along the following broad avenues:
1. Incorporating Artificial Intelligence enhancements into software
2. Developing Artificial Intelligence tools for Software Engineering
3. Merging Software Engineering with Knowledge Engineering
4. Software Engineering for developing Artificial Intelligence and Machine
Learning systems
5. Innovative applications of Artificial Intelligence-empowered Software Engi-
neering.
The two-volume Handbook on Artificial Intelligence-empowered Applied Software
Engineering aims at updating both the relevant research communities—including
professors, researchers, and students—and the general reader on the most recent
related advances, including, but not limited to the following topics:
• Architecture of AI-empowered systems, intelligent agents and softbots
• Architectures for AI-empowered shells
• Automating AI-empowered software design and synthesis
• Decision support methods for AI-empowered software engineering
• Development of AI-empowered multi-modal interfaces
• Development of AI-empowered user models
• Development processes for AI-empowered applications
• Empirical and/or evaluation studies for AI-empowered applications
• AI-empowered user interfaces and human–machine interaction
• AI-empowered Internet-based interactive applications
• Knowledge acquisition for AI-empowered software
• AI-empowered process management and project management
• Knowledge management for AI-empowered business processes, workflows and
enterprise modeling
• AI-empowered technologies for semantic web
• AI-empowered technologies for service-oriented systems, Internet of services and
Internet of things
• AI-empowered technologies for web services
• AI-empowered methods and tools for software engineering education
• AI-empowered methods and tools for testing, verification and validation, main-
tenance and evolution
• AI-empowered methods for software metrics
• AI-empowered requirements engineering, domain analysis and modeling
• Methodology and tools for knowledge discovery and data mining
16. 4 M. Virvou et al.
• Ontologies and patterns in UML modeling
• Ontology engineering
• AI-empowered program understanding, programming knowledge, modeling
programs and programmers
• AI-empowered software engineering methods for Intelligent Tutoring Systems
• Software life cycle of AI-empowered interactive systems
• AI-empowered software tools assisting system development
• AI-empowered personalized software engineering.
As the intention of the Handbook is to provide a concise coverage to the particular
topic from the vantage point of a newcomer, each chapter is complete within itself
and includes an abstract and a bibliography of references to further reading.
Because of the breadth of the topics covered and the extensive response by
researchers worldwide, the Handbook was divided into two separate volumes. Addi-
tionally, each volume is further organized into various parts, with each part grouping
together several related chapters.
The volume at hand constitutes the first volume of the Handbook and is devoted to
Novel Methodologies to Engineering Smart Software Systems. On the other hand,
the second volume of the Handbook is devoted to Smart Software Applications
in Cyber-Physical Systems. Specifically, this first volume consists of the current
editorial note (this Chapter) and an additional eleven (11) chapters. All chapters in
the book were authored by researchers who work in the corresponding chapter theme
and are recognized for their significant research contributions.
In more detail, the chapters in the book are organized into three parts, as follows:
The first part of the book consists of one chapter devoted to Survey of Recent
Relevant Literature.
Specifically, Chap. 2, by Aurora Ramírez and José Raúl Romero, is titled: “Syn-
ergies between Artificial Intelligence and Software Engineering: Evolution and
Trends.” The authors review related recent literature on Artificial Intelligence in
Software Engineering research. They focus on the techniques more applicable to
distinct aspects of the software development process and emphasise both innovative
applications of Artificial Intelligence and currently available tools.
The second part of the book consists of five chapters devoted to Artificial
Intelligence-Assisted Software Development.
Specifically, Chap. 3, by Hironori Washizaki, is titled: “Towards Software Co-
Engineering by AI and Developers.” The author presents a vision in which Artificial
Intelligence and human developers collaborate as equal partners to co-create business
and social values in software system development and operations. He also points to
the current state-of-the-art towards the materialization of this vision.
Chapter 4, by Shyam Singhal, Beulah Moses and Veena Jadhav, is titled: “Gener-
alizing Software Defect Estimation using Size and Two Interaction Variables.” The
authors propose a regression-based software defect estimation model and analyse its
effectiveness. They show that their model is highly effective.
Chapter 5, by Yuki Yamada and Atsuo Hazeyama, is titled: “Building of an
Application Reviews Classifier by BERT and Its Evaluation.” The authors build and
17. 1 Introduction to Handbook on Artificial Intelligence … 5
evaluate a machine learning model for classification of application reviews. They
show that among Naive Bayes, Logistic Regression, and BERT classifiers, the latter
exhibits the best performance.
Chapter 6, by Amarjeet Prajapati and Zong Woo Geem, is titled: “Harmony
Search-enhanced Software Architecture Reconstruction.” The authors introduce a
software architecture reconstruction method based on harmony search to extract
the high-level design from the low-level source code elements. They evaluate their
proposed approach over five test problems and show that it outperforms existing
approaches with respect to modularization quality, coupling, and cohesion quality
measures.
Chapter 7, by Hironori Takeuchi, is titled: “Enterprise Architecture-based Project
Model for AI Service System Development.” The author considers projects in
which enterprise service systems are developed using artificial intelligence (AI)
technologies and proposes a generic model. He evaluates the proposed model with
encouraging results.
The third part of the book consists of five chapters devoted to Software
Engineering Tools to develop Artificial Intelligence Applications.
Specifically, Chap. 8, by Iderli Pereira de Souza Filho, Giovane D’Avila
Mendonça, William Samuel Gerstberger and Gilleanes Thorwald Araujo Guedes, is
titled: “Requirements Engineering Processes for Multi-Agent Systems.” The authors
describe requirements engineering techniques and processes developed specifically
for multiagent systems, highlighting their strengths and weaknesses. They place
their emphasis on the coverage of the Belief-Desire-Intention (BDI) model which is
commonly used to build cognitive agents.
Chapter 9, by Gilleanes Thorwald Araujo Guedes and Rosa Maria Vicari, is
titled: “Specific UML-Derived Languages for Modeling Multi-Agent Systems.”
The authors present several UML-adapted languages, highlighting their strengths
and weaknesses and their suitability for modeling multi-agent systems, particularly
with respect to the Belief-Desire-Intention (BDI) model support. They also discuss
challenges that have not yet been overcome in modeling multi-agent systems.
Chapter 10, by Tomoko Kaneko and Nobukazu Yoshioka, is titled: “Methods for
Ensuring the Overall Safety of Machine Learning Systems.” The authors introduce a
safety assurance method for an entire machine learning system and use autonomous
driving as an example. They also discuss the various challenges with ensuring the
safety of machine learning systems and how to overcome them.
Chapter 11, by Francisco V. Cipolla Ficarra, is titled: “MEAU: A Method for
the Evaluation of the Artificial Unintelligence.” The author presents a method for a
heuristic evaluation of the main mistakes online about AI applications, information
andsocialnetworking.Hismethodologyrespectsthequalitymodelsand/orprinciples
of Artificial Intelligence, Software Engineering and Communicability.
Finally, Chap. 12, by Maha A. Metawei, Hesham Eldeeb, Salwa M. Nassar and
Mohamed Taher, is titled: “Quantum Computing meets Artificial Intelligence: Inno-
vations & Challenges.” The authors discuss quantum-assisted artificial intelligence
applications and highlight their motivations as well as their challenges.
18. 6 M. Virvou et al.
1.2 Book Summary and Future Volumes
The book at hand constitutes the first volume of a two-volume Handbook on
Artificial Intelligence-empowered Applied Software Engineering and is devoted
to Novel Methodologies to Engineering Smart Software Systems. It also consti-
tutes the inaugural volume in the new Springer series on ARTIFICIAL INTEL-
LIGENCE–ENHANCED SOFTWARE AND SYSTEMS ENGINEERING (https://
www.springer.com/series/16891). In it, we present some very significant advances
in both Artificial Intelligence-Assisted Software Development and Software Engi-
neering Tools to develop Artificial Intelligence Applications and we also include a
detailed Survey of Recent Relevant Literature.
The book is directed towards professors, researchers, scientists, engineers and
students in Artificial Intelligence, Software Engineering and Computer Science-
relateddisciplines.Itisalsodirectedtowardsreaderswhocomefromotherdisciplines
and are interested in becoming versed in some of the most recent advances in the
field of Artificial Intelligence-empowered Applied Software Engineering. We hope
that all of them will find it useful and inspiring in their works and researches.
On the other hand, societal demand continues to pose new and challenging prob-
lems and emerging technologies press for ever more advanced theories and ever
more efficient methodologies, tools and systems to be devised to address them.
Thus, with the Handbook on Artificial Intelligence-empowered Applied Software
Engineering, we also hope to attract the interest of researchers in authoring/editing
related volumes to be published in the new Springer series on ARTIFICIAL INTEL-
LIGENCE–ENHANCED SOFTWARE AND SYSTEMS ENGINEERING (https://
www.springer.com/series/16891).
Bibliography for Further Reading
1. J. Toonders, Data is the new oil of the digital economy. Wired. https://www.wired.com/ins
ights/2014/07/data-new-oil-digital-economy/
2. K. Schwabd, The fourth industrial revolution—what it means and how to respond. Foreign Aff.
December 12, 2015. https://www.foreignaffairs.com/articles/2015-12-12/fourth-industrial-rev
olution
3. From Industry 4.0 to Society 5.0: the big societal transformation plan of Japan. https://www.i-
scoop.eu/industry-4-0/society-5-0/
4. Society 5.0. https://www8.cao.go.jp/cstp/english/society5_0/index.html
5. https://corporatefinanceinstitute.com/resources/knowledge/other/disruptive-technology/
6. E. Rich, Kevin Knight and Shivashankar B, 3rd edn. (Nair, Artificial Intelligence, Tata McGraw-
Hill Publishing Company, 2010)
7. E. Alepis, M. Virvou, Object-oriented user interfaces for personalized mobile learning, in
Intelligent Systems Reference Library Book Series, vol. 64 (Springer, 2014)
8. A.S. Lampropoulos, G.A. Tsihrintzis, Machine learning paradigms – applications in recom-
mender systems, vol. 92, in Intelligent Systems Reference Library Book Series (Springer,
2015)
9. K. Chrysafiadi, M. Virvou, Advances in personalized web-based education, vol. 78, in
Intelligent Systems Reference Library Book Series (Springer, 2015)
19. 1 Introduction to Handbook on Artificial Intelligence … 7
10. D.N. Sotiropoulos, G.A. Tsihrintzis, Machine learning paradigms—artificial immune systems
and their application in software personalization, vol. 118, in Intelligent Systems Reference
Library Book Series (Springer, 2017)
11. J. Patterson, A. Gibson, Deep Learning—A Practitioner’s Approach, O’ Reilly (2017)
12. G.A. Tsihrintzis, D.N. Sotiropoulos, L.C. Jain (Eds.), Machine Learning Paradigms—
Advances in Data Analytics, volume 149 in Intelligent Systems Reference Library Book Series
(Springer, 2018)
13. X. Liu, J. Cao, Y. Yang, S. Jiang, CPS-based smart warehouse for industry 4.0: a survey of the
underlying technologies. Computers, 7(1), 13 (2018)
14. H. Jiang, C. Cai, X. Ma, Y. Yang, J. Liu, Smart home based on WiFi sensing: a survey. IEEE
Access 6, 13317–13325 (2018)
15. Z. Mahmood (Ed.), Smart cities—development and governance frameworks, in Computer
Communications and Networks (Springer, 2018)
16. D. Rong, P. Santi, M. Xiao, A.V. Vasilakos, C. Fischione, The sensable city: a survey on the
deployment and management for smart city monitoring. IEEE Commun. Surv. Tutorials 21(2),
1533–1560 (2019)
17. B.P.L.Lau, M.S. Hasala, Yuren Zhou, N.U. Hassan, C. Yuen, M. Zhang, U.X. Tan, A survey of
data fusion in smart city applications. Inf. Fusion, 52, 357–374 (2019)
18. M.M. Dhanvijay, S.C. Patil, Internet of Things: a survey of enabling technologies in healthcare
and its applications. Comput. Netw. 153, 113–131 (2019)
19. A.E. Hassanien (Ed.), Machine learning paradigms: theory and application, in Studies in
Computational Intelligence Book Series, vol. 801 (Springer, 2019)
20. G.A. Tsihrintzis, M. Virvou, E. Sakkopoulos and L.C. Jain (Eds.), Machine learning
paradigms—applications of learning and analytics in intelligent systems, in Learning and
Analytics in Intelligent Systems Book Series, vol. 1 (Springer, 2019)
21. K.R. Chowdhury, Fundamentals of Artificial Intelligence (Springer, 2020)
22. J. Watt, R. Borhani, A.K. Katsaggelos, Machine Learning Refined—Foundations, 2nd edn.
(Algorithms and Applications, Cambridge University Press, 2020)
23. J.K. Mandal, S. Mukhopadhyay, P. Dutta, K. Dasgupta (Eds.), Algorithms in machine learning
paradigms, in Studies in Computational Intelligence Book Series, vol. 870 (Springer, 2020)
24. M. Virvou, E. Alepis, G.A. Tsihrintzis, L.C. Jain (Eds.), Machine Learning paradigms—
advances in learning analytics, in Intelligent Systems Reference Library Book Series, vol. 158
(Springer, 2020)
25. G. A. Tsihrintzis, L.C. Jain (Eds.), Machine learning paradigms—advances in deep learning-
based technological applications, in Learning and Analytics in Intelligent Systems Book Series,
vol. 18 (Springer, 2020)
26. G.A. Tsihrintzis, M. Virvou, advances in computer science-based technologies—papers in
honor of Professor Nikolaos Alexandris, in Learning and Analytics in Intelligent Systems Book
Series, vol. 24 (Springer, 2021)
27. G. Phillips-Wren, A. Esposito, L.C. Jain, advances in data science: methodologies and
applications, in Intelligent Systems Reference Library Book Series, vol. 189 (Springer, 2021)
28. D.J. Hemanth, J. Anitha, G.A. Tsihrintzis (Eds.), Internet of medical things—remote healthcare
systems and applications, in Internet of Things Book Series (Springer, 2021)
29. E. Politou, E. Alepis, M. Virvou, C. Patsakis, Privacy and data protection challenges in the
distributed era, in Learning and Analytics in Intelligent Systems Book Series, vol. 26 (Springer
2022)
30. M. Virvou, G.A. Tsihrintzis, L.H. Tsoukalas, L.C. Jain (Eds.), Advances in artificial
intelligence-based technologies—papers in honour of Professor Nikolaos G. Bourbakis—Vol.
1, in Learning and Analytics in Intelligent Systems Book Series, vol. 22 (Springer, 2022)
31. G.A. Tsihrintzis, M. Virvou, L.C. Jain (Eds.), Advances in machine learning/deep learning-
based technologies—papers in honour of Professor Nikolaos G. Bourbakis—Vol.2, in Learning
and Analytics in Intelligent Systems Book Series, vol. 23 (Springer, 2022)
32. M. Virvou, G. A. Tsihrintzis, L.C. Jain (Eds.), Advances in selected artificial intelligence
areas—world outstanding women in artificial intelligence, in Learning and Analytics in
Intelligent Systems Book Series, vol. 24 (Springer, 2022)
20. 8 M. Virvou et al.
33. S.L. Fernandes, T.K. Sharma (Eds.), Artificial intelligence in industrial applications—
approaches to solve the intrinsic industrial optimization problems, in Learning and Analytics
in Intelligent Systems Book Series, vol. 25 (Springer, 2022)
34. G.A. Tsihrintzis, M. Virvou, A. Esposito, L.C. Jain (Eds.), Advances in assistive technologies—
papers in honour of professor Nikolaos G. Bourbakis—Vol.3, in Learning and Analytics in
Intelligent Systems Book Series, vol. 28 (Springer, 2022)
23. 12 A. Ramírez and J. R. Romero
process (e.g. repositories, issue trackers, communication platforms, documentation)
and the software itself (e.g. code, execution traces). In this sense, it is argued that
those companies failing to integrate data science into their internal decision processes
will be in clear disadvantage against competitors [23]. Software engineers can greatly
benefit from many AI facets, not only data science, to build better software faster.
In fact, the idea of an AI-enhanced SE is not new. Automatic programming and
knowledge-based assistants were envisioned in the 80s, a moment in which expert
systems were considered more applicable than machine learning [77]. 30 years after,
software development practices have experienced great changes and artificial intel-
ligence has been substantially developed, multiplying the possible synergies among
them. The landscape of AI-enhanced SE was revisited in 2012 [38], identifying three,
possibly overlapping, areas: probabilistic software engineering; classification, learn-
ing and prediction for software engineering; and search-based software engineering.
Although more extensive, this division leaves aside AI methods with great potential
like natural language processing (NLP) [111]. Furthermore, in vogue technologies
like deep learning and bots are expanding the possibilities of AI in many domains,
including software engineering [22, 25].
Although new AI methods are constantly appearing and barriers between them are
becoming blurry, the majority of methods still have roots in the long-established areas
presented in Russell and Norvig’s handbook [88]: machine learning and data mining,
knowledge representation and reasoning, search and optimisation, and communica-
tion and perception. However, software engineers might not be familiar with these
techniques, making it difficult to know how to effectively apply predictive models or
metaheuristics [9]. Furthermore, practitioners need to understand the capabilities and
limitations of AI technologies [34]. Thus, making the right choice requires having
clear goals and precisely understanding the underlying assumptions that each tech-
nique imposes. Given the possible impact and risks involved, the point in which AI
should be applied and its actual responsibility within the process and results should
be considered too [28].
Indeed, the current landscape of AI research for software engineering is vast
in topics and techniques. In this chapter, we present an analysis of the evolution
that AI-enhanced SE has experienced. Considering that AI is constantly evolving,
historical perspectives might not be so useful and consequently authors tend to limit
the analysis to the most recent advances [28]. Thus, the presented analysis is con-
strained to the period 2015–2020, comprising 2973 AI-oriented studies selected from
13,262 publications in SE conferences and journals. This decision was also moti-
vated by the need of manually revising the semi-automatic selection and distribution
of publications with respect to both AI and SE areas. From the selected publications,
trends in topics and techniques used to intelligently automate software engineering
activities have been identified. Furthermore, we seek to understand which SE tasks
are more prone to certain AI-based solutions, and how these solutions made use
of information from different software artefacts depending on their purpose. Spe-
cial attention is paid to the combination of AI techniques, which has revealed as an
appealing option to address complex problems, as well as the availability of tools.
24. 2 Synergies Between Artificial Intelligence and Software … 13
The rest of the chapter is organised as follows. Section2.2 explains the method-
ology followed to search, select and analyse relevant publications. Section2.3 pro-
vides and overview of the evolution of the field in terms of number of publica-
tions. An analysis of top authors and topics for different SE themes is presented in
Sect.2.4. Section2.5 summarises trends in the application of AI techniques to SE,
while Sect.2.6 compiles available tools that incorporate AI methods. Finally, conclu-
sions and future avenues of research into AI-enhanced SE are outlined in Sect.2.7.
2.2 Methodology
This section details the methodology followed to collect and analyse relevant publi-
cations on AI-enabled SE. The process consists in three main steps: (1) defining a list
of sources from which articles will be examined to identify AI-related publications,
(2) selecting the relevant publications based on a keyword semi-automatic analysis,
and (3) classifying the selected publications in terms of AI areas and SE topics. Next,
each step is explained in detail.
Firstly, a initial list of relevant publication sources is determined. Journals are
selected from the Journal of Citation Reports1
by choosing those journals belong-
ing to the first and second quartile of the software engineering category. The choice
of conferences is based on the GGS conference ranking2
(class 1 and 2), spon-
sored by the Spanish Computer Science Society and the Italian groups of professors
of Computer Engineering and Computer Science. The rating algorithm combines
information from three rankings: CORE, Microsoft Academic and LiveSHINE. We
also consider a couple of specialised events, namely the symposium on search-based
software engineering (SSBSE) and the PROMISE (Predictive Models in Software
Engineering) conference. The final list of journals and conferences was contrasted
and refined according to recent bibliometric studies in SE [43, 59]. After this process,
the 12 journals and 21 conferences listed in Table2.1 are included for analysis. After
deciding the list of conferences, we inspect the corresponding website of the 2015–
2020 editions to extract a list of potential workshops. For each workshop, the topics
of interest are scrutinised to find those including AI techniques. Table2.2 enumer-
ates the 34 workshops considered within scope, divided into 18 specific workshops,
i.e., having AI as their main topic, and 16 general ones, i.e., AI appears in the call
for papers. The eventual nature of workshops implies that some of them could not
be longer celebrated and that new others could appear in the future. However, their
analysis is interesting as it provides a good “snapshot” of latest topics of interest,
and their different number of editions can reveal which topics remain attractive.
Next, we have downloaded all journal numbers and proceedings published
between 2015 and 2020. The total list of 13,262 publications contains 5294 journal
1 https://clarivate.com/webofsciencegroup/solutions/journal-citation-reports/(Last accessed: July
12, 2021).
2 http://scie.lcc.uma.es/gii-grin-scie-rating/(Last accessed: July 12, 2021).
25. 14 A. Ramírez and J. R. Romero
articles, 7212 contributions to conferences and 756 workshop papers. The second
column (R) of Tables 2.1 and 2.2 details the number of retrieved papers per source.
For each publication, we extract the title, authors, publisher, year, keywords and
abstract from bibtex files. When missing, a maximum of 10 automatic keywords are
generated from the abstract using a text mining algorithm [87]. From the full list of
keywords, we need to identify those referring to AI to carry out automatic classifi-
cation. This process is manually done for keywords with a frequency greater than
2. Those appearing only once are included if the term appears in the IEEE taxon-
omy.3
Finally, every AI keyword is manually associated to one of the following AI
areas [88]:
• Machine learning and data mining (MLDM), covering techniques that analyse
vast collections of data to find hidden relationships and make predictions.
• Knowledge representation and reasoning (KRR), referring to forms of embodying
real-world concepts, and how to infer new knowledge or explain causal facts.
• Search and optimisation (SO) for problem solving, compiling algorithms that find
optimal solutions with respect to a given objective.
• Communication and perception (CP), that is, understanding and simulating human
abilities such as language processing and vision.
Finally, we use the set of AI keywords to filter out publications not related to AI.
This process leads to a set of 2973 publications: 868 in journals, 1666 in conferences
and 439 in workshops, as detailed in the third column (S) of Tables 2.1 and 2.2. The
selected AI publications are automatically classified in one or more AI areas based
on the specific keywords for further analysis. Publications not assigned to any AI
area are manually revised by reading the abstract to decide its classification. Such a
case happens when the publication contains general keywords only, e.g., “Artificial
intelligence”, or if the publication belongs to a specific event in which the technique
does not appear in the keyword because it is implicit, e.g. contributions to the SBSE
symposium are catalogued as search-based. For the subset of AI publications, we
then extract non-AI keywords in order to repeat the same process to classify them
with respect to the SE area. We define the following 12 areas based on existing clas-
sifications [17, 43, 59] and the scope topics of the selected journals and conferences:
• Architecture and product lines, including topics related to architectural knowledge
and documentation, as well as highly-configurable systems (variability, feature
models).
• Development support, related to the analysis of software data and developers
behaviour from repositories and other communication platforms.
• Maintenance and evolution, which refers to the revision and enhancement of soft-
ware systems to detect and fix bugs, and overall improve their quality.
3 https://www.ieee.org/content/dam/ieee-org/ieee/web/org/pubs/ieee-taxonomy.pdf(Last
accessed: July 12, 2021).
26. 2 Synergies Between Artificial Intelligence and Software … 15
• MethodologicalaspectsandgeneralSEtopics,whichencompassesstudiesfocused
on particular methodologies (e.g. agile) and general literature analysis of SE
research.
• Mobile, IoT and cyber-physical systems, focusing on the specific design and devel-
opment of this type of systems.
• Modelling and design, covering conceptual design and modelling languages, as
well as model engineering tasks such as model evolution or transformation.
• Programming, referring to code development and program analysis for which
source code constitutes the input artefact.
• Projectmanagement,includingtasksrelatedtoteamallocation,projectscheduling,
etc.
• Quality and metrics, grouping studies that analyse particular quality aspects (per-
formance, security, etc.) or perform metric estimations.
• Requirements, which encompasses all activities dealing with requirement elicita-
tion, documentation and prioritisation.
• Services and cloud computing, related to the design, development and deployment
of service-oriented systems.
• Testing, validation and verification, covering tasks that evaluates the correctness
and quality of produced systems from formal and practical views.
The classification of AI publications into the aforementioned SE areas is manually
revised too. The list of keywords associated to each area (AI or SE) is available as
part of our additional material.4
2.3 The Evolution of AI in Software Engineering
As in many other disciplines, AI topics have regularly appeared in software engineer-
ing studies, though they have attracted more attention in the last years. Some authors
point out that the renewed interest in AI-enhanced SE is explained by changes in
the way software is built [38], as well as easier access to software data [39] and
AI technologies [28]. Although it is still limited, the presence of AI in SE publi-
cations is growing year by year (see Fig.2.1). Since 2017, AI-enhanced SE studies
have represented more than 20% of the works published in the main SE conferences
and journals. The percentage of AI publications per source is detailed in Tables 2.1
and 2.2.
Automated Software Engineering (37%), ACM Transactions on Software Engi-
neering and Methodology (31%), Empirical Software Engineering (28%), IEEE
Transactions on Software Engineering (26%) and Information and Software Technol-
ogy (21%) are the journals where the percentage of AI-enhanced SE publications is
above the average (18%). Among conferences, the average percentage —excluding
MSR, PROMISE and SSBSE— is slightly inferior (13%), and those focused on
4 https://www.uco.es/grupos/kdis/sbse/aise.
27. 16 A. Ramírez and J. R. Romero
Table 2.1 Journals and conferences considered for literature search
Journal/conference R S %
ACM Transactions on Software Engineering and Methodology
(TOSEM)
112 35 31.25
Automated Software Engineering (ASE) 114 42 36.84
Computer Standards and Interfaces (CSI) 417 8 1.92
Empirical Software Engineering (EMSE) 547 155 28.34
IEEE Transactions on Services Computing (TSC) 469 55 11.73
IEEE Transactions on Software Engineering (TSE) 526 139 26.43
Information and Software Technology (IST) 736 154 20.92
Journal of systems and Software (JSS) 1135 159 14.01
Requirements Engineering (RE) 142 16 11.27
Software and Systems Modeling (SoSyM) 420 36 8.57
Software Quality Journal (SQJ) 251 41 16.33
Software—Practice and Experience (SPE) 425 28 6.59
Eur. Conf. on Software Architecture (ECSA) 135 7 5.19
Int. Conf. on Automated Software Engineering (ASE) 645 139 21.55
Int. Conf. on Fundamental Approaches to Software Engineering
(FASE)
137 4 2.92
Int. Conf. on Model-Driven Engineering, Languages and
Systems (MODELS)
236 22 9.32
Int. Conf. on Predictive Models and Data Analytics in Soft. Eng.
(PROMISE)b
60 60 100.00
Int. Conf. on Services Computing (SCC) 446 34 7.62
Int. Conf. on Service-Oriented Computing (ICSOC) 391 51 13.04
Int. Conf. on Software Analysis, Evolution and Reengineering
(SANER)
464 127 27.37
Int. Conf. on Software Architecture (ICSA) 97 8 8.25
Int. Conf. on Software Maintenance and Evolution (ICSME) 494 92 18.62
Int. Conf. on Mining Software Repositories (MSR)b 427 427 100.00
Int. Conf. on the Quality of Software Architectures (QoSA)a 28 3 10.71
Int. Conf. on Software Engineering (ICSE) 1373 168 12.24
Int. Conf. on Software Testing, Verification and Validation
(ICST)
302 57 18.87
Int. Requirements Engineering Conference (RE) 128 29 22.66
Int. Symp. on Empirical Software Engineering and Measurement
(ESEM)
303 52 17.16
Int. Symp. on Search-based Software Engineering (SSBSE)b 135 135 100.00
Int. Symp. on Software Testing and Analysis (ISSTA) 285 59 20.70
Joint Eur. Soft. Eng. Conf. and Symp. Foundations of Soft. Eng.
(ESEC/FSE)
804 171 21.27
Software Product Line Conference (SPLC) 228 20 8.77
Working Conference on Software Architecture (WICSA)a 66 1 1.52
R Retrieved papers, Sselected papers, % selection percentage
a Part of ICSA since 2017
b AI-oriented conference
28. 2 Synergies Between Artificial Intelligence and Software … 17
Table 2.2 Specialised and general workshops considered for literature search
Workshop R S %
Analytics and Mining of Model Repositories (AMMoRe) 5 4 80.00
Artificial Intelligence and Model-driven Engineering (MDE
Intelligence)
9 9 100.00
Artificial Intelligence for Mobile (AI4Mobile) 5 5 100.00
Artificial Intelligence for Requirements (AIRE) 51 51 100.00
App Market Analytics (WAMA) 20 15 75.00
Bots in Software Engineering (BotSE) 21 21 100.00
Genetic Improvement (GI) 66 66 100.00
Intelligent Bug Fixing (IBF) 13 10 76.92
Machine Learning and Software Testing (MLST) 3 3 100.00
Machine Learning Techniques for Software Quality Evaluation
(MaLTeSQuE)
28 28 100.00
NLP for Software Engineering (NL4SE) 10 10 100.00
Search-Based Software Testing (SBST) 65 65 100.00
Software Analytics (SWAN) 29 23 79.31
Software Engineering Automation: A Natural Language
Perspective (SEA-NLP)
9 8 88.89
Software Engineering Intelligence (SEI) 6 6 100.00
Software Mining (SoftwareMining) 24 24 100.00
Realizing Artificial Intelligence Synergies in Software
Engineering (RAISE)
33 33 100.00
Testing for Deep Learning and Deep Learning for Testing
(DeepTest)
5 5 100.00
Advances in Mobile App Analysis (A-Mobile) 16 1 6.25
Affective Computing for Requirements Engineering (AffectReq) 12 2 16.67
Automated Specification Inference (WASPI) 5 2 40.00
Automating Test Case Design, Selection and Evaluation (A-Test) 44 7 15.91
Crowd-Based Requirements Engineering (CrowdRE) 21 3 14.29
NEXt level of Test Automation (NEXTA) 22 2 9.09
Mining and Analyzing Interaction Histories (MAINT) 7 3 42.86
Quality Requirements in Agile Projects (QuaRAP) 4 2 50.00
Refactoring (IWoR) 35 3 8.57
Requirements Engineering and Testing (RET) 28 3 10.71
Reverse Variability Engineering (REVE) 20 1 5.00
Software Architecture Erosion and Architectural Consistency
(SAEroCon)
28 7 25.00
Software Engineering for Smart Cyber-Physical Systems
(SEsCPS)
46 5 10.87
Software Qualities and their Dependencies (SQUADE) 13 4 30.77
Software Test Architecture (InSTA) 33 6 18.18
Testing Extra-Functional Prop. and Quality Charact. of Softw.
Syst. (ITEQS)
20 2 10.00
R Retrieved papers, S selected papers, % selection percentage
29. 18 A. Ramírez and J. R. Romero
Fig. 2.1 Proportion of AI-enhanced publications in software engineering during the period 2015–
2020
specific aspects of software engineering present higher ratios of AI publications:
SANER (27%) and ICMSE (18%) for maintenance, RE (23%) for requirements
engineering, and ISSTA (21%) and ICST (19%) for testing. ASE (22%), ESEC/FSE
(21%) and ESEM (17%) stand out among SE conferences with general scope. Spe-
cialised events—MSR and PROMISE conferences, and the symposium on SBSE—
have greatly contributed to spread the use of AI, with more than a third part of these
publications being presented there.
The interest of the SE community in AI techniques is also reflected in the appear-
ance of specialised workshops that serve to establish new synergies between both
disciplines. Among the most consolidated workshops, we can mention SBST (13
editions, 65 publications), GI (9, 66), RAISE (8, 33) and AIRE (7, 51). We have
observed that the number of AI-related workshops notably increased in 2015 (from
11 to 19) and 2018 (from 18 to 27) with respect to those organised the previous year.
In 2019, a new milestone has been achieved with a total of 28 workshops, 8 of them
celebrated for the first time. Emergent AI topics like bots or deep learning have been
the target of these new workshops, meaning that the SE community reacts quickly
to the evolution of AI.
A further analysis has been carried out to understand how the different AI areas
have evolved along the last years. Figure2.2 shows the number of publications related
to each AI area for the considered period. MLDM stands out as the area with more
publications (1695), representing 57% of the total and being the area with more pub-
lications each year. Moreover, an increase in the number of publications is observed
along the year and only in 2020, nearly 400 publications have explored the use of
MLDM techniques. SO is the second area more prolific (681 publications, 23%), with
30. 2 Synergies Between Artificial Intelligence and Software … 19
2015 2016 2017 2018 2019 2020
0
100
200
300
400
500
600
Machine learning and data mining
Knowledge representation and reasoning
Search and optimisation
Communication and perception
Multiple areas
Fig. 2.2 Evolution of the application of the four main AI areas in SE publications
a very stable presence in all years —around 100 publications per year. CP (208, 7%)
and KRR (174, 6%) are still minority areas in SE publications compared to MLDM
and SO. However, a growing interest in the application of CP techniques is observed
in the last three years and, especially, 2020 (51 publications). Although publications
focused on one particular AI area predominate, the combination of techniques from
different areas is gaining attention. In only five years, the number of publications
classified in more than one AI area has increased from 18 to 59, the most frequent
combinations being machine learning together with search or NLP.
2.4 Top Authors and Topics
As detailed in Sect.2.2, 12 different SE areas have been established to classify AI
publications. From such a classification, it is possible to identify the top authors
and main topics of interest. Table2.3 lists the top-5 researchers for each SE area,
including the number of publications they have co-authored from those selected for
our analysis.5
Maintenance and evolution and testing, validation and verification are
the areas in which a higher number of authors have published 15 or more papers.
Similarly, we extract the top keywords appearing in the set of papers assigned to
each SE area. Table2.4 summarises the main topics under investigation in the last
years and the number of publications belonging to each area. Notice that one paper
could be assigned to more than one area. In the “topics” column, numbers between
parenthesis indicate the frequency of appearance, considering that similar terms have
been manually joined, e.g., “source code metrics” and “code metrics” are grouped
together. Also, we exclude keywords related to the applied AI techniques in order to
highlight the SE problems addressed from an AI perspective. The table only includes
topics appearing in more than three publications due to space limitations.6
As can
be observed, the three areas with more publications are maintenance and evolution
(644), testing, validation and verification (632), and development support (420). For
the two first areas, the list of topics tend to include general concepts (software main-
tenance, software evolution, software testing), as well as specific problems: defect
5 The full list of authors is available from: https://www.uco.es/grupos/kdis/sbse/aise.
6 The full list of keywords is available from: https://www.uco.es/grupos/kdis/sbse/aise.
31. 20 A. Ramírez and J. R. Romero
Table 2.3 Top-5 authors and their number of publications in each SE area
SE area Authors
Product lines S.R. Vergilio (9), T.E. Colanzi (5), A. Egyed
(4), J. Guo (5), M. Acher (4), W.K.G. Assunção
(4), M. Li (4), L. Linsbauer (4), R.E.
Lopez-Herrejon (4)
Development support M. Di Penta (13), B. Adams (12), D. Lo (10),
C. Treude (9), D.M. German (9)
Maintenance and evolution D. Lo (25), F. Palomba (23), A. De Lucia (20),
X. Xia (20), M. Kessentini (18)
Methodological aspects and general SE topics T. Menzies (14), M. Harman (5), J. Chen (4), R.
Krishna (4), M. Li (4), C. Parnin (4), Z. Yu (4)
Mobile, IoT and cyber-physical systems Y. Liu (15), G. Bavota (10), L. Li (9), M. Di
Penta (9), T. T. Nguyen (8), R. Oliveto (8)
Modelling and design M. Wimmer (10), H. Sahraoui (7), Y. Liu (6),
R. Calinescu (5), A. Barriga (5), L. Iovino (5),
W. Kessentini (5), L. Li (5), Y. Li (5)
Programming J. Petke (11), C.K. Roy (11), M. Harman (9),
T.N. Nguyen (8), W.B. Langdon (7)
Project management A. Ghose (6), L.L. Minku (6), M.
Choetkiertikul (5), H.K. Dam (5), T. Menzies
(5), T. Tran (5)
Quality and metrics A.E. Hassan (8), T. Menzies (8), Y. Liu (7), N.
Siegmund (7), Z. Xing (7)
Requirements L. Briand (13), M. Sabetzadeh (10), C. Arora
(7), A. Vogelsang (7). F. Dalpiaz (6)
Services and cloud computing H. Wang (10), J. Zhang (9), Y. Fan (7), J. Liu
(6), Y. Wang (6)
Testing, validation and verification G. Fraser (31), A. Panichella (24), A. Arcuri
(22), P. Tonella (17), Y. Liu (15)
prediction and refactoring are frequently automated tasks in software maintenance
and evolution, while testing research is mostly focused on test case prioritisation and
generation. As for development support, keywords often mention specific platforms
(Stack overflow, Github) and concepts related to repositories (git, pull request).
General terms also predominate in the majority of the remaining areas, some
examples are: software engineering (methodological aspects and general SE topics),
Android (Mobile, IoT and cyber-physical systems), model-driven engineering (mod-
elling and design), source code (programming), software quality (quality and met-
rics), requirements engineering (requirements) and cloud computing (services and
cloud computing). As might be expected, SE areas with few number of publications,
such as software architecture, services and cloud computing, project management
and project management, tend to have less topics with high frequency.
32. 2 Synergies Between Artificial Intelligence and Software … 21
Table 2.4 Main topics appearing in AI publications for each SE area
SE area #Publ Topics
Product lines 125 Software product lines (27), software architecture (21),
variability (18), feature models (13), reverse engineering
(6), architecture recovery (4), software maintenance (4),
software testing (4)
Development support 420 Stack overflow (62), Github (44), continuous integration
(26), open source (25), software repositories (12), git
(11), devops (10), software analytics (10), software
evolution (10), pull request (8)
Maintenance and evolu-
tion
644 Defect prediction (70), software evolution (50), software
maintenance (42), refactoring (31), bug (30), code smells
(27), program repair (21), technical debt (19), reverse
engineering (19), clone detection (12)
Methodological aspects
and general SE topics
224 Software engineering (82), business process (16),
software (14), agile (8), task analysis (8), open source (6),
software quality (5)
Mobile, IoT and cyber-
physical systems
229 Android (46), mobile apps (31), software testing (7),
app/user reviews (12), app market analysis (7), stack
overflow (6), feature extraction (5), mobile development
(5), program analysis (5), software evolution (5), energy
consumption (5)
Modelling and design 236 Model-driven engineering (21), model checking (20),
UML (14), OCL (7), reverse engineering (5), model
inference (5), metamodel (4), modelling (4), program
understanding (4), software design (4)
Programming 366 Source code (15), code search (13), API (10), program
comprehension (9), software evolution (9), code reuse (8),
open source (8) libraries (7), Java (7), code review (7)
Project management 171 Effort estimation (14), release planning (11), human
factors (11), software (7), project management (6), task
analysis (4), feature extraction (4), release engineering (4)
Quality and metrics 326 Software quality (59), software metrics (38),
measurement (14), code metrics (12), reliability (10),
security (10), code quality (9), quality assurance (9),
refactoring (9), robustness (9)
Requirements 173 Requirements (55) non-functional requirements (9),
requirements elicitation (9), use cases (8), ambiguity (6),
next release problem (6), requirements analysis (6), user
stories (5)
Services and cloud com-
puting
156 Cloud computing (35), service composition (12), quality
of service (18), web services (16), service
recommendation (8), service discovery (6), microservices
(8), cloud (4), cloud services (4)
Testing, validation and
verification
631 Software testing (122), automated test generation (33),
test case prioritisation (29), mutation testing (26), test
case generation (24), regression testing (19), test data
generation (18), debugging (17), unit testing (15), random
testing (14)
33. 22 A. Ramírez and J. R. Romero
Table 2.5 Top-10 AI concepts in SE publications for each AI area
AI area Techniques
Machine learning and
data mining
Deep learning (158), clustering (77), classification (55), neural
network (58), predictive model (46), process mining (46),
reinforcement learning (34), transfer learning (25), association rule
mining (24), specification mining (24)
Knowledge representa-
tion and reasoning
Ontology (50), Markov process/model (20), Bayesian network (13),
fuzzy logic (6), case-based reasoning (6), first-order logic (4)
Search and optimisation Multi-objective (91), genetic algorithm (74), genetic improvement
(56), optimisation (48), genetic programming (30), evolutionary
algorithm (39), search (22), constraint solving (15), satisfiability solver
(13), many-objective (12)
Communication and per-
ception
Text mining/classification (39), sentiment analysis (31), latent dirichlet
allocation (19), topic modelling (16), computer vision (11), video
mining (9), opinion mining (8), part-of-speech tagging (5), virtual
reality (4), intelligent agent (3), emotion mining (3)
Number between parenthesis represents frequency of keyword appearance
After the analysis of the most popular SE areas and problems, Table 2.5 sum-
marises the main techniques applied to their resolution. We follow the same process
to extract the keyword frequency and group equivalent terms. Six keywords7
can be
highlighted as the most relevant ones as they appear in more than 100 publications:
machine learning, mining software repositories, search-based software engineering,
deep learning, natural language processing and search-based software testing. Focus-
ing on MLDM keywords, we observe a growing interest in two particular approaches:
deep learning (DL) and reinforcement learning (RL). The number of DL publications
has drastically increased in the last three years (145 out of 158) and is the second
most frequent keyword after ML in 2020. Similarly, the number of RL publications
in 2019 and 2020 has nearly doubled the total number of publications in the four
previous years. MSR remains a popular topic in the area, with an average of 40 per
year in the 2015–2020 period.
Ontologies are the preferred technique in the KRR area by far, though its frequency
of appearance (50) is low compared to the top keywords reported in the rest of AI
disciplines. This fact can be explained by the lower number of KRR publications,
which is also reflected in few keywords exceeding the threshold of 4 publications.
In contrast, the SO area keeps a high and constant number of publications, with an
average of 31 publications including SBSE among their keywords (third top topic).
This area presents a high variety of techniques applied to solve SE tasks reformulated
as search and optimisation problems. The presence of search-based software testing
(SBST) in the top keywords gives an idea of the most studied SE phase from the
SO perspective. Focusing on particular techniques, different types of evolutionary
algorithms, e.g., genetic algorithms and genetic programming, are the most widely
7 Notice that general keywords referring to research areas (e.g., ML or SBSE) are not included in
Table 2.5, which is focused on types of techniques.
34. 2 Synergies Between Artificial Intelligence and Software … 23
adopted metaheuristics. The interest in solving problems with multiple objectives
and the use of exact constraint-solving techniques are worth mentioned too. Finally,
CP stands out as an area with relatively low publications but that has experienced a
significant growth in the last years. For instance, NLP has become a “hot topic” in
2020 with 35 publications, representing the fourth most frequent keyword last year
after ML, DL and MSR. It is noticeable that 101 out of the 151 NLP publications have
appeared in the last three years. The rest of keywords reflect special interest in the
analysis of opinions and emotions, often from texts. We also perceive new emergent
topics in computer vision and video mining since 2016, with five publications related
to each keyword in 2020.
2.5 Trends in AI Applications to Software Engineering
Not all AI methods require neither the same type of inputs nor serve the same pur-
poses. Therefore, it would be interesting to know whether some SE topics are more
frequently studied from an AI-based perspective, as well as which are the chosen
techniques. Figure2.3 establishes such connections for the 12 SE areas established.
Although all SE areas have been studied from the four perspectives of AI, some strong
connections are detected. Machine learning dominates the landscape of AI-enhanced
SE in terms of number of publications, having strong presence in various topics.
The analysis of development aspects—often involving mining repository data—and
building models for maintenance tasks—e.g. defect prediction and bug detection—
are particularly popular. In fact, some SE tasks frequently treated as optimisation
problems are those related to maintenance and evolution, and programming. In test-
ing, search has been intensively investigated in comparison with other SE phases, and
also with the application of other AI techniques, with the exception of machine learn-
ing. Search-based software testing has become a consolidated area in this context.
Knowledge and reasoning presents a quite regular distribution among topics, mod-
elling, services and testing being the most studied. Finally, communication-oriented
technologies fit more often with those topics where textual information abounds,
such as requirements, development support and programming.
In the rest of the section, we summarise the most notable applications of AI-
enhanced SE, divided by AI area, in addition to cross-disciplinary approaches. Due
to space limitations, we can only cite a representative sample of selected works. When
possible, we refer to secondary studies reviewing particular topics or techniques. The
full list of references is available on a dedicated website.8
8 https://www.uco.es/grupos/kdis/sbse/aise.
35. 24 A. Ramírez and J. R. Romero
Architecture and
product lines
Development
support
Maintenance
and evolution
Meth. Aspects and
general SE topics
Mobile, IoT and
cyber-physical syst.
Modelling
and design
Programming
Project
management
Quality and
metrics
Requirements
Testing, validation
and verification
Services and
cloud computing
Machine learning
and data mining
Knowledge rep.
and reasoning
Communication
and perception
Search and
optimisation
Fig. 2.3 Relation between AI areas and SE topics based on the number of publications
36. 2 Synergies Between Artificial Intelligence and Software … 25
2.5.1 Machine Learning and Data Mining
Predictive methods are widely explored to address defect prediction [74], fault local-
isation [36], bug severity prediction [29] and code smell detection [6] from a classi-
fication perspective. A variety of supervised techniques have been applied to solve
these problems, including ensembles [108], neural networks [110] and support vec-
tor machines [44]. Another type of predictive task is regression, whose methods
have been considered to build estimators for development effort [54] or service rep-
utation [93]. Approaches for defect prediction and effort estimation are particularly
focused on cross-project scenarios [41], i.e., making predictions for a project by using
data from other projects, for which transfer learning is suitable [99]. As mentioned
in Sect.2.4, deep learning has become a “hot topic” in AI-enhanced SE. The range of
applications is extensive: web service recommendation [7], app testing [50] and issue
tracking [103], to mention a few. One of the strengths of deep learning approaches
is their ability to deal with unstructured inputs, which has been exploited in applica-
tions that need to analyse or manipulate source code like comment generation [15]
or code injection detection [105].
Regarding descriptive methods, clustering is viewed as a useful summarising tech-
nique to analyse code similarity [12], API usage [69] and programming styles [64].
Software modularisation [4] and architecture recovery [90] are frequently treated as
a clustering problem too, looking for groups of dependent entities. Association rule
mining, an approach to discover rules describing patterns in data, has served to study
the co-evolution of production and test code [97], co-occurrences of code smells [75]
and, more recently, change impact of code clones [66]. Descriptive methods are rel-
evant methods in process mining and specification mining too. The former extracts
business information from the analysis of event logs, and has been applied to deal
with process evolution [49] and architecture reconstruction [21]. The latter infers
formal specifications from traces or documentation, being useful for understanding
external libraries [11], error-handling mechanisms [42] and debugging [58]. In the
context of MSR, logging practices [51], API usage [96] and continuous integra-
tion [31] are recent topics under research. It is interesting to note that MSR works do
not only analyse code and commits, but also conflicts, readme files and licenses. The
analysis of specific issues in mobile development, such as energy consumption [71],
and app market trends are quite common too [57].
2.5.2 Knowledge Representation and Reasoning
Ontologies frequently appear in studies focused on early stages of software engi-
neering, including requirement analysis [60], conceptual modelling [10] and archi-
tectural design [106]. Information retrieval techniques, sometimes in combination
with ontologies, are effective to deal with semantic aspects. Some recent examples
focus on the identification of relationships between code elements [53], service-
37. 26 A. Ramírez and J. R. Romero
related tasks such as web service annotation [94] and recommendation [46], and
artefact correctness checking in business process modelling [70].
Automatic reasoning provides support to build verification and validation meth-
ods, and has been applied for runtime requirements [13], UML/OCL schemas [72]
and self-adaptive systems [82], among others. Fuzzy logic, which allow handling
imprecise information, has been explored for model-based regression testing [1],
defect prediction based on software metrics [104] and traceability between require-
ments and services [79]. Bayesian networks, whose objective is to represent variables
and infer dependencies based on probabilities, have revealed useful for estimating
software quality [95] and supporting decision-making in rapid software develop-
ment [55]. When the problem formulation involves temporal variables, such as the
study of the developer’s behaviour [40], hidden Markov models are specially suitable.
2.5.3 Search and Optimisation
Automating software testing has traditionally been the target objective of search-
based approaches. SBST covers a wide range of tasks (test case generation, regression
testing), target systems (web systems, GUIs) and methodologies (black-box testing,
mutation testing, model-based testing) [16, 76]. Other software lifecycle tasks for-
mulated as optimisation problems are project scheduling [85], refactoring [56] and
program repair [32]. These problems often demand multi-objective algorithms since
they present multiple, usually conflicting factors that should be simultaneously opti-
mised. An observed trend is the use of many-objective techniques [84], suitable when
the number of properties to be optimised is high. Problems with these characteristics
are software product selection, refactoring, test suite selection, model transforma-
tion, remodularisation and architecture discovery. For some of these problems, the
human participation in the search process has been examined by means of interactive
optimisation [83]. This way, subjective evaluation criteria are included in the search
and more human-looked solutions are produced.
In terms of techniques, evolutionary algorithms are mostly preferred. Genetic
programming—a variant of evolutionary algorithms operating over tree structures—
is intrinsically linked to genetic improvement (GI), a subarea focused on manipulat-
ing the code to enhance non-functional properties [45]. Code obfuscation, transplan-
tation and bug-fixing are recurrent topics within GI. Ant colony optimisation, particle
swarm optimisation and artificial bee colony algorithms are minority metaheuristics
with a few applications in testing [67], design [33] and service composition [98],
respectively. Hyperheuristics, an advanced technique that seeks to automatically
build algorithms from low level heuristics, has been explored too in the context
of integration testing [35]. Finally, some authors have combined evolutionary tech-
niques with constraint solvers trying to reach more optimal solutions. This kind of
approach has been applied to software product line configuration, which is known
to present many constraints [89, 101].
38. 2 Synergies Between Artificial Intelligence and Software … 27
2.5.4 Communication and Perception
Natural language processing, the study of language understanding and generation,
predominates in this category with important applications in requirement engineering
(RE). NLP has been used to analyse terminological inconsistencies [65] and ambi-
guities [19] in requirement document and user stories, respectively. The spectrum
of NLP applications has been extended beyond RE, with innovative applications to
detect technical debt [18], improve test case prioritisation [107], extract concepts
from product line specifications [37] and identify services from business process
models [47]. NLP can also serve “translation” purposes, e.g. automatically defining
test cases from bug reports [27] or transforming code comments into formal program
specifications [109]. MSR is also benefiting from NLP techniques to process textual
information from issues trackers [24]. Code analysis, which seeks to understand the
use of identifiers or comments, is another application using NLP principles and, more
specifically, speech-tagging methods [68].
Despite its little presence yet, computer vision is gaining a foothold in SE
research [8]. Among the innovative applications currently found, we can mention
icon recognition in apps [102], code identification from programming video tutori-
als [80], and visual support to web testing [91]. The use of virtual and augmented
reality is taking its first steps the appearance of envision papers [63] and first proto-
types [62, 86] to support developers in program comprehension.
Finally, an increasing interest in developing bots for supporting software mod-
elling [78] and development [25] tasks is observed. As intelligent assistants, bots are
expected to automatically identify problems, e.g., conflicts in code changes, commu-
nicate recommendations in natural language, e.g., suggest experts to contact with, and
take autonomous actions, e.g., open pull requests to fix programming mistakes. Their
successful integration with development environments and repository platforms is
one of the main challenges.
2.5.5 Cross-Disciplinary Topics
Exploring the intersections of AI areas is becoming an effective approach to deal with
multiple types of software artefacts and overcome the limitations of particular tech-
niques. Our analysis reveals different types of interdisciplinary AI research applied
to SE: (1) the application of AI methods that lie on the boundary of two AI areas by
definition, (2) the use of AI methods to extract inputs to feed other algorithms and
(3) the use of one AI technique to enhance the capabilities of another one. We next
discuss some interesting applications of each approach.
Sentiment analysis and topic modelling are the most clear examples of hybrid
disciplines—both combining NLP with data mining concepts—applied to SE. On
the one hand, sentiment analysis seeks to find and assess emotions or opinions [52].
For SE, this type of analysis is relevant to understand developer interactions in repos-
39. 28 A. Ramírez and J. R. Romero
itories and make informed decisions from users’ app reviews. On the other hand,
topic modelling refers to the extraction of concepts from text documents, and is
specially well-suite to deal with unstructured data like source code, logs or docu-
mentation [14]. Topic modelling can support traceability in software development
by finding the code that implements certain features or linking bug reports to code,
as well as clone detection based on the semantic similarity of topics appearing in
methods.
A second group of interdisciplinary methods consists in preprocessing data with
AI techniques to make it amenable for learning. The ability of deep learning to infer
knowledge from unstructured data has opened up the possibilities of using software
data in text and visual formats. A natural consequence is the appearance of interdis-
ciplinary methods in which NLP [100] or computer vision [73] is applied to extract
information from software artefacts to feed deep neural networks. Semantic analysis
by means of ontologies has been studied to build appropriate features from which
a ML algorithm classifies requirements [48]. Beyond learning, input generation has
been adopted in requirement prioritisation [61], in which NLP provides requirement
dependencies to a constraint solver, and requirement classification [5], in which
concepts extracted with NLP are then clustered to define a glossary of related terms.
Finally, the last type of interdisciplinary research happens when AI techniques
are combined to produce better decision models. A common combination is the use
of search algorithms in the context of machine learning and data mining, where
model building, feature selection, parameter tuning and data sampling are converted
into optimisation problems. These ideas have been applied in the context of bad
smell detection [30] and defect prediction [92]. In the opposite sense, knowledge
extracted by data mining algorithms can be integrated within the search algorithm
in order to better guide its decisions. This approach has been recently applied in
SBSE problems: test case selection with learned fitness functions [3], association
rules to improve test case prioritisation [81], and clustering to constraint the refac-
toring search space [2]. Less often, we find intersections between other areas. Some
examples are a data mining approach to generate ontologies for business process
improvement, and the application of clustering to simplify Bayesian networks for
code completion recommendations.
2.6 AI-Based Tools
The development of tools providing easy access to research methods in AI-enhanced
SE can greatly contribute to its effective technology transfer and practicability. As
a first attempt to compile the available tools and frameworks in this area, Table 2.6
collects those extracted from the list of selected publications. To be included in the
list, the paper should provide a live link to the tool or framework. Tools are oriented to
solve a particular SE problem, whereas frameworks provide methods and utilities to
40. 2 Synergies Between Artificial Intelligence and Software … 29
build AI-based solutions for software engineering problems. Additional information
for each tool (link, version and licence) can be found in the additional material.9
In the last five years, researchers have developed tools for requirement analysis,
development support and, especially, testing. As a consequence, most of the tools
are search-based proposals, even though results of the research in sentiment analysis
and machine learning also find a place. The number of frameworks is considerable
smaller and focused on MSR and genetic improvement. This suggests that authors
might be using other general-purpose popular frameworks in their studies. Among
those mentioned, we found that the most recurrent are Weka10
and scikit-learn11
for
machine learning, jMetal12
for search algorithms and SentiStrength13
for sentiment
analysis.
2.7 Conclusion
This chapter presents an analysis of AI-enhanced SE that reveals its current impact
and evolution in the broader area of software engineering research. Our study collects
and synthesises 2973 publications, which represents more than the 22% of all SE
research studies published in reference conferences and journals. This work provides
a global view of the state of the discipline in the period 2015–2020, summarising
top authors, studied topics and preferred techniques. Despite the immense variety of
topics, most of the effort goes to testing, maintenance and development issues. This
fact seems to respond to a higher availability of data for knowledge discovery, as is
the case of software repositories. Also, these particular phases seem to be more prone
to easy automation in comparison to project management, requirement engineering
or modelling.
Since 2015, the adoption of AI solutions is continuously growing, though the
interestontheirunderlyingtechniqueshasexperiencedsomechangesalongtheyears.
The popularity of machine learning and search algorithms might not be surprising,
but clearly contrasts with the importance given to knowledge-based systems in the
origins. Deep learning is on the verge of becoming the reference ML technique thanks
to its ability to learn by its own from unstructured data. However, strongly relying
on black-box decision models also poses some challenges regarding user acceptance
and trust, for which some authors are arguing a need of explainable methods [20,
26]. Natural language processing and computer vision, whose potential was not so
frequently mentioned in AI road-maps for SE, have found great applicability too.
The exploration of AI solutions combining techniques from different disciplines
9 https://www.uco.es/grupos/kdis/sbse/aise.
10 https://www.cs.waikato.ac.nz/ml/weka/(Last accessed: July 12, 2021).
11 https://scikit-learn.org/(Last accessed: July 12, 2021).
12 https://jmetal.github.io/jMetal/(Last accessed: July 12, 2021).
13 http://sentistrength.wlv.ac.uk/(Last accessed: July 12, 2021).
41. 30 A. Ramírez and J. R. Romero
Table 2.6 Tools and frameworks for AI-enhanced software engineering
Tool SE topic AI approach
AQUSA User-stories requirement analysis NLP
ARSENAL-GSD Development teams Sentiment analysis
ASketch Alloy model validation SAT solver
ASTOR Automatic software repair Search
CloneCognition Code clone detection Machine learning
ConPan Docker analyser MSR
CrossPare Defect prediction Machine learning
DeepCommenter Code comment generation Machine learning, MSR
DeepMutation Mutation testing Machine learning
DiffTech Development technologies
comparison
MSR
EvoMaster System-level test generation Search
EvoSQL SQL query testing Search
EvoSuite Test suite generation Search
FEMIR Framework recommendation Graph mining
JCOMIX Vulnerability detection Search
L-CMP Verification Data mining
Mono2Micro Architecture migration Machine learning
MOTSD Test selection Search
NARCIA Requirement change analysis NLP
OCELOT Test data generation Search
OPLA Product line architecture Search
RecoLibry Recommender systems
development
Ontology
Platys User-context App development Machine learning
Senti4SD Developers’ communication Sentiment analysis
SentiCR Code review Sentiment analysis
SentiStength-SE Developers’ communication Sentiment analysis
SimCoTest Test suite generation Search
SoftMon Performance comparison Machine learning, NLP
STYLE-ANALYZER Code format fixing Machine learning, MSR
Tarski Traceability analysis Automatic reasoning
TESTAR GUI testing Search
UIED GUI design Computer vision, machine learning
UMGT Test case generation NLP, search
VISTA Web test repair Computer vision
XFix Layout repair Search
Framework Support to Language
Candoia Mining software repositories Various
CrossMiner Mining software repositories, NLP Java
Gin Genetic improvement Java
PyDriller Mining software repositories Python
PyGGI Genetic improvement Python
42. 2 Synergies Between Artificial Intelligence and Software … 31
has revealed as a new trend within the field, which we expect could bring new
opportunities to address more complex SE tasks.
In light of the results, artificial intelligence for software engineering has come to
stay. However, the adoption of AI solutions in practice might still need accessible
and more mature tools, preferably integrated in the environments and platforms used
by the industry. Also, clear guidelines for practitioners about the limitations and risks
of AI should be delivered, preventing from over-expectations and bias on AI results.
Acknowledgements This work was supported by Spanish Ministry of Science and Innovation
(projects PID2020-115832GB-I00 and RED2018-102472-T), and the Andalusian Regional Gov-
ernment by means of the European Social Fund (postdoctoral grant DOC_00944).
References
1. M. Al-Refai, W. Cazzola, S. Ghosh, A fuzzy logic based approach for model-based regression
test selection, in Proceedings of the ACM/IEEE 20th International Conference on Model
Driven Engineering Languages and Systems (MODELS) (2017), pages 55–62
2. V. Alizadeh, M. Kessentini, Reducing interactive refactoring effort via clustering-based multi-
objective search, in Proceedings of the 33rd IEEE/ACM International Conference on Auto-
mated Software Engineering (ASE) (2018), pages 464–474
3. H. Almulla, G. Gay, Learning how to search: generating exception-triggering tests through
adaptive fitness function selection, in Proceedings of the IEEE 13th International Conference
on Software Testing, Validation and Verification (ICST) (2020), pages 63–73
4. Q. Alsarhan, B.S. Ahmed, M. Bures, K.Z. Zamli, Software module clustering: an in-depth
literature analysis. IEEE Trans. Softw. Eng. pp. 1–1 (2020)
5. C. Arora, M. Sabetzadeh, L. Briand, F. Zimmer, Automated extraction and clustering of
requirements glossary terms. IEEE Trans. Softw. Eng. 43(10), 918–945 (2017)
6. M.I. Azeem, F. Palomba, L. Shi, Q. Wang, Machine learning techniques for code smell
detection: a systematic literature review and meta-analysis. Inf. Softw. Technol. 108, 115–
138 (2019)
7. B. Bai, Y. Fan, W. Tan, J. Zhang, DLTSR: A deep learning framework for recommendations
of long-tail web services. IEEE Trans. Serv. Comput. 13(1), 73–85 (2020)
8. M. Bajammal, A. Stocco, D. Mazinanian, A. Mesbah. A survey on the use of computer vision
to improve software engineering tasks. IEEE Trans. Softw. Eng., p. 1 (2020)
9. L. Briand, AI in SE: a 25-year Journey (Keynote), in 1st International Workshop on Software
Engineering Intelligence (2019)
10. J. Bulegon Gassen, J. Mendling, A. Bouzeghoub, L. H. Thom, J. Palazzo M. de Oliveira, An
experiment on an ontology-based support approach for process modeling. Inf. Softw. Technol.
83, 94–115 (2017)
11. Z. Cao, Y. Tian, T.-D.B. Le, D. Lo, Rule-based specification mining leveraging learning to
rank. Autom. Softw. Eng. 25, 3 (2018)
12. A. Capiluppi, D. Di Ruscio, J. Di Rocco, P.T. Nguyen, N. Ajienka, Detecting Java software
similarities by using different clustering techniques. Inf. Softw. Technol. 122, 106279 (2020)
13. G. Chatzikonstantinou, K. Kontogiannis, Efficient parallel reasoning on fuzzy goal models
for run time requirements verification. Softw. Syst. Model. 17(4), 1339–1364 (2018)
14. T.-H. Chen, S.W. Thomas, A.E. Hassan, A survey on the use of topic models when mining
software repositories. Empir. Softw. Eng. 21(5), 1843–1919 (2016)