AI-Oriented Software Engineering Insights
AI-Oriented Software Engineering Insights
net/publication/364944864
CITATIONS READS
0 468
3 authors, including:
All content following this page was uploaded by Md Jobair Hossain Faruk on 13 November 2022.
1 Introduction
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:
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
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?
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:
Table 2. Depicts the inclusion and exclusion criteria for the primary studies
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.
20
15
10
0
2017 2018 2019 2020 2021 2022
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.
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.
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.
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].
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].
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
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.
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