100% found this document useful (1 vote)
92 views18 pages

AI-Oriented Software Engineering Insights

The document discusses artificial intelligence (AI) and software engineering (SE) and proposes AI-Oriented Software Engineering (AIOSE) as an emerging research domain. It explores how SE phases like requirements, design, development, testing etc. can adopt AI-based techniques and addresses challenges of AIOSE. The document aims to investigate the importance of novel state-of-the-art SE practices for AI and discuss trends and improvements needed in AIOSE.

Uploaded by

Enrike Hernandez
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
92 views18 pages

AI-Oriented Software Engineering Insights

The document discusses artificial intelligence (AI) and software engineering (SE) and proposes AI-Oriented Software Engineering (AIOSE) as an emerging research domain. It explores how SE phases like requirements, design, development, testing etc. can adopt AI-based techniques and addresses challenges of AIOSE. The document aims to investigate the importance of novel state-of-the-art SE practices for AI and discuss trends and improvements needed in AIOSE.

Uploaded by

Enrike Hernandez
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/364944864

AI-Oriented Software Engineering (AIOSE): Challenges, Opportunities, and


New Directions

Chapter · October 2022


DOI: 10.1007/978-3-031-20322-0_1

CITATIONS READS

0 468

3 authors, including:

Md Jobair Hossain Faruk Hossain Shahriar


Kennesaw State University Kennesaw State University
57 PUBLICATIONS 481 CITATIONS 304 PUBLICATIONS 2,581 CITATIONS

SEE PROFILE SEE PROFILE

All content following this page was uploaded by Md Jobair Hossain Faruk on 13 November 2022.

The user has requested enhancement of the downloaded file.


AI-Oriented Software Engineering (AIOSE):
Challenges, Opportunities, and New Directions

Md Jobair Hossain Faruk1(B) , Hasan Pournaghshband2 , and Hossain Shahriar3


1 Department of Computer Science, Kennesaw State University, Marietta, USA
[email protected]
2 Department of Information Technology, Kennesaw State University, Marietta, USA
[email protected]
3 Department of Software Engineering, Kennesaw State University, Marietta, USA

[email protected]

Abstract. Nowadays, the idea of artificial intelligence for software engineering


is an emerging research domain and it has been receiving more and more attention
recently. Software Engineering (SE) is a well-established technological paradigm,
providing clear guidance and direction on every aspect of software development
and maintenance. Artificial Intelligence (AI), contrary to the conventional app-
roach, is an emerging and futuristic concept that reshapes a new era, designing
intelligent machines that can accomplish tasks that humans do towards a tech-
nological wonderland. In parallel with technological advancements, SE is yet to
be considered in adopting the state-of-the-art principle for AI-based methodolo-
gies. We realize the importance of facilitating the SE towards AI-based intelligent
machines, devising novel techniques and approaches for AI-Oriented Software
Engineering (AIOSE). In this study, we thoroughly explore the principle of SE
within the AI boundary for ensuring effective development activities through-
out the AIOSE development process. We believe that such a compendium study
will help with linking AI and SE towards overcoming existing limitations for the
betterment of both SE and AI communities.

Keywords: Software engineering · Artificial Intelligence · AI · AIOSE ·


AI-oriented application · Intelligent system

1 Introduction

Software engineering (SE) refers to a study of a domain of a systematic, disciplined,


quantifiable approach to the planning, designing, implementing, controlling the quality,
and maintenance of software systems [1, 2]. SE has now at the focal point of innovation
from not only on the technological points of view but also on societal and economical
aspects. And the concepts, methods, techniques, and tools available are designated for
ensuring high quality and productivity of conventional software applications. In this
technological wonderland and rapidly emerging technology, intersection between the
principle of software engineering (SE) and futuristic technology, AI and Blockchain

© The Author(s), under exclusive license to Springer Nature Switzerland AG 2023


J. Mejia et al. (Eds.): CIMPS 2022, LNNS 576, pp. 3–19, 2023.
https://doi.org/10.1007/978-3-031-20322-0_1
4 M. J. Hossain Faruk et al.

Technology for instance is necessary towards utilizing each domain for the benefit of
tech community.
Artificial intelligence (AI) is a paradigm of the upsurge in research, intelligent appli-
cation implementation and deployment. To provide solutions to traditional software
engineering problems by injecting AI paradigms is an emerging idea and can be useful
significantly [3]. AI has the potential to automate much of the tedious and error-prone
collaborative software development tasks and provide assistants to humans by improving
their productivity and allowing them to focus on the creative aspects of software devel-
opment [4]. Various AI domains including machine learning, neural networks, deep
learning, and to improve the process of software engineering fundamental and address
major challenges, natural language processing could be applied.
Adopting artificial intelligence (AI) can be a new era and potential of reshaping the
current software engineering paradigm that can assure software quality adequately. Our
work intends to investigate the importance of novel state-of-the-art software engineering
practices in the field of artificial intelligence and unveil the current issues and new
directions for AI-Oriented Software Engineering (AIOSE). In this paper, the primary
contributions are as follows:

• We provide an overview of AI-oriented software engineering (AIOSE) and identify


the most relevant studies for state-of-the-art AIOSE practice.
• We address each software engineering phase including requirements, design, devel-
opment, testing, release, and maintenance according to AI-based techniques and
approaches.
• We discuss the challenges, limitations and provide future research direction for
AIOSE.

This paper is organized as follows: Sect. 1 provides introduction with descriptions


of software engineering (SE), artificial intelligence (AI) and key contribution. Section 2
provides adopted research methods and related work. Section 3 defines AI-Oriented
Software Engineering (AIOSE) and address the challenges followed by description of
software engineering research domains for AI in Sect. 4 While Sect. 5 discusses the
challenges, limitations and provide future research direction for AIOSE. Finally, we
conclude the paper in Sect. 6.

2 Research Design and Methodology

To identify the relevant existing study, a thorough assessment of the literature was con-
ducted [5]. We outline the objective and present the selected research questions in this
section. Additionally, we present an overview of the research methodology, inclusion and
exclusion criteria, and procedures for selecting the most suitable articles, all of which
will help the study progress toward a thorough assessment of AI-Oriented Software
Engineering (AIOSE).
AI-Oriented Software Engineering (AIOSE) 5

2.1 Research Goal

The goal of this study is to present the current state of the art in software engineering
methodology and process for AI-Oriented Software Engineering (AIOSE). We exten-
sively studied and formulated the following research questions to be addressed in this
study after carefully evaluating our purpose for this paper:

RQ1: What is artificial intelligence (AI) and how can it be integrated with software
engineering to embrace cutting-edge technologies?
RQ2: What is the possibility for quantifying, formulating, and assessing the intersection
between phases of software engineering and AI disciplines?
RQ3: Where the software engineering community stands now within the boundary of
state-of-the-art AIOSE practice?
RQ4: Does the software development life cycle (SDLC) comprises sufficient intelligence
for the development of intelligent systems?
RQ5: What are the most important trends and necessary improvements shall be carried
out in AIOSE?

2.2 Primary Studies Selection

A “Search Process” was utilized to find studies that addressed the topic of our study,
as shown in Fig. 1 [6]. The following keywords were included in the potential search
strings:

• “Software Engineering”
• “AI in Software Engineering”
• “AI-Oriented Software Engineering (AIOSE)”
• “Artificial Intelligence (AI) for Software Engineering”
• “Artificial Intelligence and Software Engineering”
• “Intelligent System”
• “Artificial Intelligence for Software Engineering” and
• “Software Engineering for Artificial Intelligence”

Throughout the various study, we utilized relevant keywords and a various of sci-
entific resources. On July 28, 2022, the search was carried out incorporating both the
title and the chosen keywords. We considered all studies that have been published as
of the aforementioned date. The scientific databases reviewed to find these publications
included the following:

• “IEEE Xplore Digital Library”


• “Google Scholar”
• “ACM Digital Library”
• “arXiv e-Print Archive”
• “ScienceDirect” and
• “SpringerLink”
6 M. J. Hossain Faruk et al.

2.3 Search Procedure and Results


After applying the search strings, we initially adopt a filtration strategy during the search
process. To identify recent papers, we limited our search to comprise only studies pub-
lished between 2016 and 2022. To further focus our search for relevant topics, additional
filters were added to each database. ScienceDirect prompted us to pick Computer Sci-
ence as the topic area and research papers as the article type, IEEE Xplore includes
conferences and journals. During the first search, 354 research publications in total were
identified. We conducted a preliminary search and then used inclusion and exclusion
criteria.

Fig. 1. Process of systematic literature review

2.4 Inclusion and Exclusion Criteria


Research papers with features unrelated to our literature review as well as duplicates
that showed up during the initial search were removed using an exclusion and inclusion
process based on (i) duplicate publications (ii) full-text availability, (iii) peer-reviewed,
and (iv) papers that are not related to the paper topic. Later, we consider a variety of thor-
ough screening procedures, including empirical method and paper findings, developing
AI-Oriented Software Engineering (AIOSE) 7

features of artificial intelligence and software engineering, and suggested solutions. 22


publications were chosen for our study after a thorough screening procedure that took
into account the publication title, abstract, experimental results, and conclusions. The
specifics of the inclusion and exclusion process are shown in Table 2.

Table 1. Illustrates search criteria of our study

Scientific databases Initial keyword search Total inclusion


Google Scholar 45 07
ScienceDirect 16 02
IEEE Xplore 16 02
Springer Link 05 01
ACM 03 01
Other Sources 20 10
Total 94 22

Table 2. Depicts the inclusion and exclusion criteria for the primary studies

Condition (Inclusion) Condition (Exclusion)


The research must be concerned with software Studies covering subjects other than inclusion
engineering and artificial intelligence articles
In many scholarly databases, studies are not Similar Studies in a Variety of Scientific
repeated Databases
Information on software engineering and Documents that don’t adhere to the intended
artificial intelligence is included in papers domain
Studies that are available in English Studies in languages other than English
Articles that have undergone peer review and Articles published without peer review
been published in a journal or conference
proceedings

2.5 Quality Evaluation


We adopted a quality evaluation in our primary studies, recommended by Kitchen-
ham and Charters [7], to ensure that the chosen studies were pertinent to the research
questions. Following the authors, we randomly chose five publications for the quality
evaluation procedure [8].

Stage 1: Artificial Intelligence and Software Engineering: The research will concentrate
on AI and software engineering, where specific problems should be well-described to
meet RQ2.
8 M. J. Hossain Faruk et al.

Stage 2: Context: We concentrated on contextual factors, such as the research aims and
outcomes, in order to determine a correct interpretation of the study.
Stage 3: Corresponding Framework: The papers must include pertinent frameworks that
cross artificial intelligence for software engineering and respond to our RQ1 and RQ3.
Stage 4: Approach Context: Presented frameworks must theoretically or practically relate
to artificial intelligence in software engineering and address RQ4.
Stage 5: Study Findings: The articles must have presented adequate evaluation findings
or research results. Due to the new development that responds to RQ3, the investigations
are also anticipated to provide future study direction.
Phase 6: Future Research: The publications must have outlined RQ5-related future
research directions.

2.6 Publication Over Time

The idea of artificial intelligence for software engineering is an emerging research


domain and it has been receiving more and more attention recently. However, ideas
of AIOSE concepts are still in their infancy stage, we identified publications on our
topic published after 2016 and depict the total number of papers published. According
to the criteria outlined in our study design, Fig. 2 shows the history of published studies
on AIOSE.

Publication Year and Source Types


25

20

15

10

0
2017 2018 2019 2020 2021 2022

Journal Conference Arcle

Fig. 2. Number of publications and venues identified in search process


AI-Oriented Software Engineering (AIOSE) 9

2.7 Significant Keywords Counts

Finding the right keywords is important for a systematic study to yield results that are
appropriate for the study’s objective. In this study, we list many terms that feature often
in the primary study we studied. The keywords and proportion of various terms in all
the primary studies are shown in Table 3.

Table 3. Relevant keywords count in the selected studies

Common keywords Total count


Artificial intelligence 3592
Software engineering 2048
Intelligent machine 979
Intelligent system 957
Machine learning 771
Deep learning 828
Techniques 745
Software development process 628
AISO 109

2.8 Prior Research

Professor Derek Partridge from the University of Exeter illustrates the relationship of
AI to software engineering where the author provided a framework for the interactions
of artificial intelligence (AI) and software engineering (SE) [9]. The researcher provides
scores of classes on the interaction of AI and SE that include software support envi-
ronments. The usage of conventional software technology in AI systems as well as the
integration of AI tools and techniques into conventional software may have an impact
on the software development process. For the software development environment, the
author reflects on minimizing the complexity of software implementation for software
developers while in conventional software, AI tools and techniques refer to future AI-
based applications that shall perform robust and reliable way. While the use of traditional
software approaches in AI systems can be fascinating to AI-based application developers
although SE and the development of AI practices have significant differences that need
to be addressed and overcome.
Researcher Mark Harman from University College London works on a topic entitled
“The Role of Artificial Intelligence in Software Engineering” where the author explores
some of the relationships between software engineering and artificial intelligence [9].
According to the author, the development and maintenance of integrated, intelligent,
sophisticated, interactive systems on a large scale have superseded small, localized, insu-
lated, specialized, well-defined construction in technology. And engineering community
10 M. J. Hossain Faruk et al.

needs more attention to the development and deployment techniques to be provided with
well-suited solutions.
Researcher Lubna Mahmoud Abu Zohair from The British University in Dubai
focuses on a topic with concern that whether AI can replace software engineers in
near future [10]. The author conducted a qualitative study directed towards software
engineers and artificial intelligence professionals. According to the findings, software
engineers shall be the primary actors to shape the future of AI-based systems.
Another group of researchers study the domain of artificial intelligence in software
engineering where authors review the most commonplace methods of AI applied to
SE [3]. The researchers investigated various studies between the years 1975 and 2017,
46 important AI-driven techniques were discovered, including 19 for design, 15 for
development, 68 for testing, and 15 for release and maintenance. According to the
authors, developing AI-based systems may have different issues; however, based on the
two fundamentally different premises and goal of each field which is SE and AI, all
the conundrums that this overlapping might lead, it is not straightforward to claim the
success or the necessity of implementing AI methodologies.
Other than that, Masuda et al. [11] conducted a study on the assessment and advance-
ment of the ML application software quality. Washizaki et al. [12] carried out a multi-
vocal analysis to find ML system architecture and design trends. Both a case study and a
thorough literature analysis regarding software architecture/about software architecture
might sound a bit better for machine learning was carried out by Serban and Visser [13].
A review of deep neural network (DNN) verification and validation methods for the
automobile sector was carried out by Borg et al. [14]. Aliza Tariq et al. [15] conducted a
survey on software measurement by adopting artificial intelligence where the researchers
explored the software and automation requirements in the healthcare industry. Pornsiri
Muenchaisri [16] studies how to apply Application of artificial intelligence and machine
learning to issues in software engineering research.

3 AI-Oriented Software Engineering: Challenges

We define AI-Oriented Software Engineering (AIOSE) as a domain that can facilitate the
principle of software engineering and intelligent system by intersecting both domains.
Considering the distinctive marks of AI, software engineering practitioners could benefit
from the application of AIOSE practices. Our effort is to identify the most relevant
AIOSE challenges and issues.

a. Role of SE and AI Professionals: The role of SE and AI professionals in the AIOSE


domain is crucial and more researchers, developers and other roles will be needed
for improving the AIOSE field. Practicing the AIOSE by the experts in different
files including computer science and information technology shall provide an edge
to this emerging area. The primary challenge that the experts from other fields who
will try to accomplish AIOSE will face is to intersect both fields efficiently in the
real-world scenario. In order to be successful in AIOSE, the professional need to
understand both principles of software engineering and the key concept of artificial
intelligence. In academia, AI and SE have two different curricula, and even computer
AI-Oriented Software Engineering (AIOSE) 11

science students have limited knowledge in the software engineering field. As a


result, graduates and new professionals should focus on both AI and SE towards
contributing to this emerging field.
b. Software Security, Quality and Reliability: Software Security, Quality, and Relia-
bility are important domains for every software product that spans throughout the
software development lifecycle (SDLC). According to Anthony Iannino and John
D. MusaI [17], software reliability is a dynamic operation rather than design of a
computer program and a customer-oriented view of software quality that improves
the probability of error-free software operation for a specified period in a specified
environment. AIOSE domain must ensure both security and reliability challenges
and each software engineering and artificial intelligence can contribute to accom-
plishing the security and reliability challenges. For instance, various AI methods and
techniques including Machine Learning (Naive Bayes, Neural Network, Convolu-
tional Neural Network) and Deep Learning can be adopted to ensure the security
challenges of an AI-based intelligent software product. AI also has the capability to
ensure that Intelligent software applications are of high quality.
c. Relevant Software Tools: In the software development life cycle (SDLC), Relevant
Software Tools play a crucial role that paves the way for requirements engineers,
software architects, developers, and testers to implement a software product effec-
tively with cost-efficiency. Without suitable tools and techniques, completing each
development phase in SDLC shall be challenging. Considering modeling the soft-
ware product, specialized graphic models for the representation of AIOSE need focus
to improve existing models. Due to the unique nature of Intelligent Systems, improv-
ing or creating new models (UML Diagram: Use Case, Class, Activity, Sequence
Diagram for instance) is a demand for effective and uninterrupted AIOSE software
development.

4 AIOSE: Software Engineering Research Domains


The disciplines of Artificial Intelligence (AI) and Software Engineering (SE) have devel-
oped separately where research in SE is addressed to support software engineering prac-
titioners to develop better and more efficient software products. While AI focuses to per-
ceive, reason, and act from a computational perspective. In recent years, various research
directions have been made to build new research areas by intersecting both AI and SE
disciplines. Distributed AI (DAI) or agent-oriented software engineering (AOSE), and
Knowledge-Based Systems (KBS) are a few examples of such new domains.
The primary purpose of intersecting AI and SE and carry out extensive research
for intelligent software systems is to provide a clear picture of how to develop such
applications. Considering sub-fields, methods, and techniques of AI are shown in Fig. 3.
The scientific strand of software engineering and artificial intelligence orientates towards
providing helpful guidance for interdisciplinary research.
12 M. J. Hossain Faruk et al.

Fig. 3. Illustrates AI fields, methods, and techniques [18]

4.1 AIOSE: Artificial Intelligence for Software Engineering

Applying AI technologies to address software engineering problems is not a new trend


but rather a decades-long effort to develop intelligent or automation tools and frame-
works to provide effective software development experience for the software engineer-
ing community [19]. Adopting AI ideas in general, applying intelligence in software
engineering solutions at various levels [20]. The primary concern that both AI and SE
research community should address is how to synergically integrate computing intel-
ligence and human intelligence. The adoption of AI concepts and techniques at every
level of the development process increases the efficiency of the whole SDLC process
flow and display in Fig. 4.
Automation is a global trend where the engineering community put efforts to auto-
mate everything in technology [21]. The role of the AI domain in the SE can pave the
automation of software engineering tools, techniques and approaches significantly that
shall be benefited by all the stakeholders involve organizationally and software project
teams. Generating code from a UML diagram is possible because of intelligent systems
[22]. Artificial intelligence can also help software engineering to automate programming
that will allow software developers simply to say what is wanted and have a program
produced completely automatically [23].

4.2 AIOSE: Software Engineering for Artificial Intelligence

Due to AI advancements, AI-based technologies are becoming more prevalent in society


which refer to novel software systems comprised of distinctive features enabled by at
least one AI component [3]. Developing, operating, and maintaining AI-based systems
by applying the principles of conventional Software Engineering (SE) unable to fulfill
the entire process to understand the state-of-the-art SE by the software engineering prac-
titioners. Figure 5 displays the relationship between software engineering and artificial
intelligence.
AI-Oriented Software Engineering (AIOSE) 13

Fig. 4. Utilizing AI techniques across the software development life cycle

Fig. 5. Illustrates Interaction between AI and SE

4.3 AIOSE: Requirements Engineering


Requirements Engineering (RE) is considered as one of the most important phases of the
software development life cycle (SDLC) and traditional RE for conventional software
development is well established today. Traditional RE is unable to address the challenges
coming from the emerging technologies in the SDLC process; as a result, improvement
of RE needs significant attention focusing on state-of-art concepts towards AI-Oriented
software development. By Applying Artificial Intelligence for faster, better, and clearer
requirements is necessary for advancing Requirements Engineering that will ensure the
14 M. J. Hossain Faruk et al.

automating processes, improving the quality and reducing risk by transforming data
into insight and models [24]. This is true because good RE is the foundation of many
successful software product launches. On the other hand, poor the foundation of many
project delays and failures that result from miscommunication, unnecessary dispute, and
inaccurate interpretation leads to time and cost complexity.
AI approaches including deep learning and natural language processing (NLP) can
help understanding the semantics concepts of a language to understand processes in the
context of requirements quality [25]. AI also can be adopted to furnish RE from various
aspects including completeness, consistency, and accuracy to preventable confusion and
delays, improve the consistency and reliably articulate the objectives of stakeholders.
Furthermore, because of the numerous problems for requirements and systems engi-
neering for AI-based applications, AI-oriented systems demand special attention from
the requirements engineering perspective. In order to ensure system behavior, attributes
including safety, robustness, and quality, as well as to establish process support in an orga-
nization, four major problem areas for requirement engineering of AI-based applications
need to be solved: specifying data attributes and requirements, evaluating performance
definition and monitoring, and human factors [26].

4.4 AIOSE: Software Design, Development and Testing

Karpathy [27] defines software 2.0 as an improved version of software 1.0 where humans
write codes. However, in software 2.0 artificial intelligence-based machines will develop
the code based on a simple input which can be a set of problems or designs. There
are different domains that already adopted intelligence-based programming including
routines for self-driving cars, voice synthesis, speech recognition, visual recognition, and
gaming [28]. One of the popular AI approach neural networks has been utilized to assist
software coding that indicates the capability of AI in automated software implementation.
For software development, various AI techniques can be utilized including artifi-
cial neural networks and deep learning to process design or automated debugging and
improvement procedures, automatic techniques for converting problem statements into
code, better implementation times, reduced costs, and improved teamwork [28]. Figure 6
displays the areas where AI can manifest the software engineer’s task. Particularly in
the software implementation by generating automated code, automating software test-
ing by creating test cases, identifying bugs, and automated deployment [29]. On the
other hand, machine learning can be utilized for checking and testing the test scripts,
identifying the using big data for probabilistic error prediction, improving abbreviation
and cost-efficiency of the test process, integrating of existing programs, improving the
efficiency in automated debugging and compiling [30].

4.5 AIOSE: Software Process Improvement (SPI)

Due to the early stages of AI development, the dearth of research in this area, the pres-
ence of unsolved technical problems, and the lack of substantial studies that deploy
AI-oriented SE applications in organizational settings. The research community must
perform effective research to show the processes, approaches, methods, and techniques
AI-Oriented Software Engineering (AIOSE) 15

Fig. 6. Applying AI to software development

for AI-focused software architecture, development, testing, and maintenance. An impor-


tant challenge is to help organizations in improving the quality and efficacy of intelligent
software development by adhering to the proper methodology throughout the AI-oriented
software development life cycle is improving the current software process for AI-oriented
software development.
Organizations achieve from Software Process Improvement (SPI) because it
improves product quality while reducing project costs and development times. Large-
scale software development is time and cost difficult due to a variety of existing processes
and approaches, especially when it comes to novel and emerging technology. Emerg-
ing AI-focused software development needs concentrate on SPI to overcome obstacles
such knowledge management, high cost, resource management, and change in work-
place culture. These obstacles include dependency on a single body of standardization
for certification. We would want to suggest a domain called “AI-Oriented Software Pro-
cess Improvement (AIOSPI)” and a suitable framework that would provide efficiency in
SPI, minimize time, cost, and resources, and assist in managing knowledge utilized to
accomplish SPI.
Software process improvement phases such as SPI Planning, SPI Implementation,
SPI Evaluation, and SPI Current Stance are shown in Fig. 7 for organizations. In order to
minimize project costs by improving the process and averting problems, redundancies,
16 M. J. Hossain Faruk et al.

Fig. 7. display software process improvement phases

and flaws, SPI is crucial in the creation of AI-oriented software. For increased produc-
tivity in AIOS development, the research community should concentrate on automated
AIOSE-SPI frameworks in near future.

4.6 AIOSE: Software Project Management

Software project management (SPM) aims to produce high-quality products on schedule,


within budget, and in alignment with business objectives. Stakeholders play a key role in
determining the processes and techniques that will meet the requirements of the intended
products. Planning, organizing, monitoring, and modifying are the four primary phases
of a project, together with team allocation, time management, budget, and maintenance
[31, 32].
There are several research in the area of managing software projects with an AI
emphasis. The evolution of artificial intelligence (AI) in project management is seen in
Fig. 8. Adopting machine learning techniques for software project management can help
in a variety of areas, such as project risk assessment to reduce project losses, boost success
rates, effectively lower project failure probabilities, boost output ratios for growth, and
analyze software fault prediction based on accuracy.
The entire team has to adopt a better model and framework in order to establish the
baseline for assigning the project work, deadline, and budget based on the stakeholder

Fig. 8. Evolution of AI in project management


AI-Oriented Software Engineering (AIOSE) 17

request. Due to the complexity of software development, managing the development of


large-scale software systems are a problem for all software project managers. AI-enabled
software development would be much more difficult, thus the research community should
emphasis on this field. Although we haven’t done any high-level SPM research for this
study, we do plan to do explicit research on AI-oriented software project management
in the future.

5 AIOSE: Discussion and New Research Direction


Software Engineering community’s appetite for AI techniques reflects the need for future
research to intersect both fields for the betterment of both communities. Artificial Intel-
ligence (AI) techniques are becoming more prevalent in real-world applications and
researchers and practitioners focusing on best practices strive to design intelligent sys-
tems capable of addressing software engineering issues. Besides, Conventional software
engineering can be applied to the development of AI-based systems, but it may trigger
not only vulnerability or security issues but also the quality of the software product as a
whole. Characteristics and challenges are unique to software engineering principles for
intelligent systems.
Although there has been substantial advancement in the intersection of software
engineering and artificial intelligence in recent years, significant research efforts are
still needed to transform this field from an idea to a working paradigm. Thus, exten-
sive research shall be carried out in the near future that would facilitate the principles
of software engineering including requirements engineering, software architecture, soft-
ware development, software testing, software project management, and software process
improvement to prepare the SE for the futuristic software development by adopting the
state-of-the-art concepts.

6 Conclusion
In this paper, we provided a substantial overview of AI-oriented software engineering
and acknowledged the most pertinent studies for the state-of-the-art AIOSE practice. We
specifically addressed software development phases including requirements, design, test-
ing, release, and maintenance, conforming to AI-based techniques and methodologies.
We also discussed the challenges, limitations, and proposed future research directions
for AIOSE. We concluded, based on our research that adopting artificial intelligence
for software engineering can facilitate many subdomains such as software development,
requirements engineering, and project risk assessment. That would increase the project’s
success rate, allows for efficient software development, and facilitates accurate analysis
of software fault prediction. We suggest future extensive studies for the betterment of
both SE and AI communities.

Acknowledgment. The lead author would like to express special thanks of gratitude to Pro-
fessor Hassan Pournaghshband for his meaningful advice and continuous guidance throughout
the research. The work is partially supported by the U.S. National Science Foundation Awards
Award #2209638. Any opinions, findings, and conclusions or recommendations expressed in this
18 M. J. Hossain Faruk et al.

material are those of the authors and do not necessarily reflect the views of the National Science
Foundation.

References
1. Hossain Faruk, M.J., Subramanian, S., Shahriar, H., et al.: Software engineering process
and methodology in blockchain-oriented software development: a systematic study. In: 2022
IEEE/ACIS 20th International Conference on Software Engineering Research, Management
and Applications (SERA), pp. 120–127. https://doi.org/10.1109/SERA54885.2022.9806817
(2022)
2. Neesi.: Software Engineering: Key Enabler for Innovation (2014)
3. Batarseh, F.A., Mohod, R., Kumar, A., Bui, J.: The application of artificial intelligence in
software engineering: a review challenging conventional wisdom. Data Democr Nexus Artif.
Intell. Softw. Dev. Knowl. Eng. 179–232. https://doi.org/10.1016/B978-0-12-818366-3.000
10-1 (2020)
4. Sundaresan, N.: Research talks: AI for software development. In: Microsoft Res. Sum-
mit 2021 (2021). https://www.microsoft.com/en-us/research/video/research-talks-ai-for-sof
tware-development
5. Upama, P., et al.: Evolution of quantum computing: a systematic survey on the use of quantum
computing tools. In: COMPSAC 2022: Computer Software and Applications Conference.
Torino, Italy (2022)
6. Nazim, M.T., et al.: Systematic analysis of deep learning model for vulnerable code detection.
In: 2022 IEEE 46th Annual Computers, Software, and Applications Conference (COMPSAC),
pp. 1768–1773 (2022)
7. Kaiwartya, O., et al.: Guidelines for performing systematic literature reviews in software
engineering. 4, 5356–5373 (2022)
8. Hosseini, S., Turhan, B., Gunarathna, D.: A systematic literature review and meta-analysis
on cross project defect prediction. IEEE Trans. Softw. Eng. 45, 111–147 (2019). https://doi.
org/10.1109/TSE.2017.2770124
9. Harman M.: The role of artificial intelligence in software engineering. In: 2012 First Inter-
national Workshop on Realizing AI Synergies in Software Engineering (RAISE), pp. 1–6
(2012). https://doi.org/10.1109/RAISE.2012.6227961
10. Mahmoud, L., Zohair, A.: The future of software engineering by 2050s: will AI replace
software engineers? Int. J. Inf. Technol. Lang. Stud. 2, 1–13 (2018)
11. Masuda, S., Ono, K., Yasue, T., Hosokawa, N.: A survey of software quality for machine
learning applications. In: 2018 IEEE International Conference on Software Testing, Verifica-
tion and Validation Workshops (ICSTW, pp. 279–284 (2018).https://doi.org/10.1109/ICSTW.
2018.00061
12. Washizaki, H., Uchida, H., Khomh, F., Guéhéneuc, Y.G.: Studying software engineering
patterns for designing machine learning systems. In: 2019 10th International Workshop on
Empirical Software Engineering in Practice (IWESEP), pp. 49–54 (2019). https://doi.org/10.
1109/IWESEP49350.2019.00017
13. Serban, A., Van Der Blom, K., Hoos, H., Visser, J.: Adoption and effects of software engineer-
ing best practices in machine learning. In: Proceedings of the 14th ACM/IEEE International
Symposium on Empirical Software Engineering and Measurement (ESEM), pp. 1–12 (2020).
https://doi.org/10.1145/3382494.3410681
14. Vogelsang, A., Borg, M.: Requirements engineering for machine learning: perspectives from
data scientists. In: 2019 IEEE 27th International Requirements Engineering Conference
Workshops (REW), pp. 245–251 (2019). https://doi.org/10.1109/REW.2019.00050
AI-Oriented Software Engineering (AIOSE) 19

15. Tariq, A., et al.: Software measurement by using artificial intelligence. J. Nanomater (2022).
https://doi.org/10.1155/2022/7283171
16. Muenchaisri, P.: Literature reviews on applying artificial intelligence/machine learning to
software engineering research problems: preliminary. CEUR Workshop Proc 2506, 30–35
(2019)
17. Iannino, A., Musa, J.D.: Software reliability. Adv. Comput. 30, 85–170 (1990). https://doi.
org/10.1016/S0065-2458(08)60299-5
18. Rech, J., Althoff, K.-D.: Artificial intelligence and software engineering: status and future
trends. Themenschwerpkt KI SE, KI 3, 5–11 (2004)
19. Hema Shankari, K.: A survey on using artificial intelligence techniques in the software
development process. J Eng Res Appl 4, 24–33 (2014). www.ijera.com
20. Meziane, F., Vadera, S.: Artificial intelligence in software engineering, 278–299 (2010).
https://doi.org/10.4018/978-1-60566-758-4.ch014
21. Shehab, M., et al.: Artificial intelligence in software engineering and inverse: Rev. Int. J.
Comput. Integr. Manuf. 33, 1129–1144 (2020). https://doi.org/10.1080/0951192X.2020.178
0320
22. Sejans, J., Nikiforova, O.: Problems and perspectives of code generation from UML class
diagram. Sci. J. Riga Tech. Univ. Comput. Sci. 44, 75–84 (2012). https://doi.org/10.2478/v10
143-011-0024-3
23. Ford, L.: Artificial intelligence and software engineering: a tutorial introduction to their
relationship. Artif. Intell. Rev. 1, 255–273. https://doi.org/10.1007/BF00142926 (1987)
24. Dalpiaz, F., Niu, N.: Requirements engineering in the days of artificial intelligence. IEEE
Softw. 37, 7–10 (2020). https://doi.org/10.1109/MS.2020.2986047
25. Zollinger, P.: Advancing Requirements Engineering by Applying Artificial Intelligence.
Evocean
26. Heyn, H.M., et al.: Requirement engineering challenges for AI-intense systems development.
In: 2021 IEEE/ACM 1st Workshop on AI Engineering-Software Engineering for AI (WAIN),
pp. 89–96 (2021 ). https://doi.org/10.1109/WAIN52551.2021.00020
27. Karpathy, A.: Software 2.0. Medium (2017)
28. Barenkamp, M., Rebstadt, J., Thomas, O.: Applications of AI in classical software engineer-
ing. AI Perspect. 2(1), 1–15 (2020). https://doi.org/10.1186/s42467-020-00005-4
29. Yao, M.: 6 Ways AI Transforms How We Develop Software. Forbes Media LLC (2018)
30. Meziane, F., Vadera, S., Global, I.: Artificial intelligence applications for improved software
engineering development: new prospects. Artif. Intell. Softw. Eng. 278–299 (2010)
31. Wessling, F., Gruhn, V.: Engineering software architectures of blockchain-oriented appli-
cations. In: 2018 IEEE International Conference on Software Architecture Companion
(ICSA-C), pp. 45–46 (2018).https://doi.org/10.1109/ICSA-C.2018.00019
32. Ortu, M., Orru, M., Destefanis, G.: On comparing software quality metrics of traditional vs
blockchain-oriented software: an empirical study. In: 2019 IEEE International Workshop on
Blockchain Oriented Software Engineering (IWBOSE), pp. 32–37 (2019). https://doi.org/10.
1109/IWBOSE.2019.8666575

View publication stats

You might also like