Publication
A. Ramírez, J.R. Romero. “Synergies between artificial intelligence and software engineering: evolution and trends”. Handbook on artificial intelligence-enhanced software engineering, vol. 1: Novel Methodologies to Engineering Smart Software Systems. 2022.
![Wordcloud of AISE publications](http://www.uco.es/grupos/kdis/wp-content/uploads/rr21_aise_wordcloud.png)
Abstract
Artificial intelligence (AI) is expected to change the way software engineers deal with the tasks of the software process lifecycle. Recently, we have experienced a growth in proposals based on the different branches of AI, given rise to novel areas of research and opening new possibilities to industrial practices. For example, search-based software engineering provides algorithms to search for better or optimised solutions to complex tasks in the software development process. Also, software analytics applies machine learning and mining techniques to discover knowledge from code repositories, developers’ forums or technical documentation, among other sources. Natural language processing and automatic reasoning are other AI areas whose techniques are serving to model and infer knowledge from software artefacts and documentation. In short, professionals have more resources now, but still need to understand the scope of AI methods for their effective use, and how they fit into their problems. In this chapter, we present a study of current AI trends in software engineering research, focused on the techniques more applicable to distinct aspects of the software process. Our analysis makes special emphasis on the innovative applications that integrate different AI perspectives, and the tools available to facilitate progress in AI-enhanced software engineering.
Publication sources
The analysis is based on publications from 12 journals and 21 conferences (including 34 workshops).
Journals
- ACM Transactions on Software Engineering and Methodology (TOSEM)
- Automated Software Engineering (ASE)
- Computer Standards and Interfaces (CSI)
- Empirical Software Engineering (EMSE)
- IEEE Transactions on Services Computing (TSC)
- IEEE Transactions on Software Engineering (TSE)
- Information and Software Technology (IST)
- Journal of systems and Software (JSS)
- Requirements Engineering (RE)
- Software and Systems Modeling (SoSyM)
- Software — Practice and Experience (SPE)
- Software Quality Journal (SQJ)
Conferences
- European Conference on Software Architecture (ECSA)
- International Conference on Automated Software Engineering (ASE)
- International Conference on Fundamental Approaches to Software Engineering (FASE)
- International Conference on Model-Driven Engineering, Languages and Systems (MODELS)
- International Conference on Services Computing (SCC)
- International Conference on Service-Oriented Computing (ICSOC)
- International Conference on Software Analysis, Evolution and Reengineering (SANER)
- International Conference on Software Architecture (ICSA)
- IEEE International Conference on Software Maintenance and Evolution (ICSME)
- International Conference on the Quality of Software Architectures (QoSA), since 2017 part of ICSA.
- International Conference on Software Engineering (ICSE)
- International Conference on Software Testing, Verification and Validation (ICST)
- International Requirements Engineering Conference (RE)
- International Symposium on Empirical Software Engineering and Measurement (ESEM)
- International Symposium on Software Testing and Analysis (ISSTA)
- Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE)
- Software Product Line Conference (SPLC)
- Working Conference on Software Architecture (WICSA), since 2017 part of ICSA.
In addition, three specialised conferences were considered:
- International Conference on Predictive Models and Data Analytics in Software Engineering (PROMISE)
- International Symposium on Search-based Software Engineering (SSBSE)
- Mining Software Repositories Conference (MSR)
Workshops
SE workshops with AI as central theme (blue solid line in the figure):
- International Workshop on Analytics and Mining of Model Repositories (AMMoRe)
- International Workshop on App Market Analytics (WAMA)
- International Workshop on Artificial Intelligence and Model-driven Engineering (MDE Intelligence)
- International Workshop on Artificial Intelligence for Mobile (AI4Mobile)
- International Workshop on Artificial Intelligence for Requirements (AIRE)
- International Workshop on Bots in Software Engineering (BotSE)
- International Workshop on Genetic Improvement (GI)
- International Workshop on Intelligent Bug Fixing (IBF)
- International Workshop on Machine Learning and Software Testing (MLST)
- International Workshop on Machine Learning Techniques for Software Quality Evaluation (MaLTeSQuE)
- International Workshop on NLP for Software Engineering (NL4SE)
- International Workshop on Search-Based Software Testing (SBST)
- International Workshop on Software Analytics (SWAN)
- International Workshop on Sofware Engineering Automation: A Natural Language Perspective (SEA-NLP)
- International Workshop on Software Engineering Intelligence (SEI)
- International Workshop on Software Mining (SoftwareMining)
- International Workshop on Realizing Artificial Intelligence Synergies in Software Engineering (RAISE)
- International Workshop on Testing for Deep Learning and Deep Learning for Testing (DeepTest)
SE workshops that include AI among their topics of interest (orange dashed line in the figure):
- International Workshop on Advances in Mobile App Analysis (A-Mobile)
- International Workshop on Affective Computing for Requirements Engineering (AffectReq)
- International Workshop on Automated Specification Inference (WASPI)
- International Workshop on Automating Test Case Design, Selection and Evaluation (A-Test)
- International Workshop on Crowd-Based Requirements Engineering (CrowdRE)
- International Workshop on NEXt level of Test Automation (NEXTA)
- International Workshop on Mining and Analyzing Interaction Histories (MAINT)
- International Workshop on Quality Requirements in Agile Projects (QuaRAP)
- International Workshop on Refactoring (IWoR)
- International Workshop on Requirements Engineering and Testing (RET)
- International Workshop on Reverse Variability Engineering (REVE)
- Workshop on Software Architecture Erosion and Architectural Consistency (SAEroCon)
- International Workshop on Software Engineering for Smart Cyber-Physical Systems (SEsCPS)
- International Workshop on Software Qualities and their Dependencies (SQUADE)
- International Workshop on Software Test Architecture (InSTA)
- International Workshop on Testing Extra-Functional Properties and Quality Characteristics of Software Systems (ITEQS)
![](http://www.uco.es/grupos/kdis/wp-content/uploads/rr21_aise_timeline_workshops.png)
Additional material
Keywords used for automatic classification
Artificial intelligence: machine learning and data mining (143) | knowledge representation and reasoning (37) | search and optimisation (100) | communication and perception (25) | root terms
Software engineering: architecture and product lines (25) | development support (44) | maintenance and evolution (59) | methodological aspects and general SE topics (15) | mobile, IoT and cyber-physical systems (23) | modelling and design (28) | programming (24) | project management (19) | quality and metrics (35) | requirements (23) | services and cloud computing (20)| testing, validation and verification (84)
Frequency of keywords in selected publications
Keyword evolution by AI area [CSV]
Software engineering: architecture and product lines | development support | maintenance and evolution | methodological aspects and general SE topics | mobile, IoT and cyber-physical systems | modelling and design | programming | project management | quality and metrics | requirements | services and cloud computing | testing, validation and verification
List of publications and classification datasets
List of selected publications [CSV] [Bibtex]
Classification by AI area [CSV] or SE topic [CSV]
List of authors
For each SE area, the list of authors and their number of publications is extracted:
architecture and product lines | development support | maintenance and evolution | methodological aspects and general SE topics | mobile, IoT and cyber-physical systems | modelling and design | programming | project management | quality and metrics | requirements | services and cloud computing | testing, validation and verification
AI-tools and frameworks
The next table provides a list of tools based on some AI technique, and that have been published between 2015 and 2020. The year corresponds to the last release. If no release is available, the year of the last commit is indicated. If the tool is not hosted on a repository, the year of the publication is used instead.
Tool | SE topic | AI approach | Release | Licence | Year |
---|---|---|---|---|---|
AQUSA | User-stories requirement analysis | NLP | N/A | N/A | 2019 |
ARSENAL-GSD | Development teams | Sentiment analysis | N/A | CC 4.0 | 2019 |
ASketch | Alloy model validation | SAT solver | N/A | MIT | 2018 |
ASTOR | Automatic software repair | Search | N/A | GPL 2.0 | 2021 |
CloneCognition | Code clone detection | Machine learning | N/A | MIT | 2019 |
ConPan | Docker analyser | MSR | 1.0.0 | GPL 3.0 | 2019 |
CrossPare | Defect prediction | Machine learning | N/A | Apache 2.0 | 2020 |
DeepCommenter | Code comment generation | Machine learning, MSR | N/A | MIT | 2021 |
DeepMutation | Mutation testing | Machine learning | N/A | N/A | 2019 |
DiffTech | Development technologies comparison | MSR | N/A | N/A | 2020 |
EvoMaster | System-level test generation | Search | 1.1.0 | LGPL 3.0 | 2020 |
EvoSQL | SQL query testing | Search | 1.0 | Apache 2.0 | 2018 |
EvoSuite | Test suite generation | Search | 1.1.0 | N/A | 2020 |
FEMIR | Framework recommendation | Graph mining | N/A | N/A | 2017 |
JCOMIX | Vulnerability detection | Search | N/A | N/A | 2019 |
L-CMP | Verification | Data mining | N/A | N/A | 2018 |
Mono2Micro | Architecture migration | Machine learning | 1.0 | MIT | 2021 |
MOTSD | Test selection | Search | N/A | MIT | 2019 |
NARCIA | Requirement change analysis | NLP | N/A | N/A | 2015 |
OCELOT | Test data generation | Search | N/A | N/A | 2018 |
OPLA | Product line architecture | Search | N/A | N/A | 2015 |
RecoLibry | Recommender systems development | Ontology | N/A | GPL 3.0 | 2019 |
Platys | User-context App development | Machine learning | N/A | N/A | 2015 |
Senti4SD | Developers’ communication | Sentiment analysis | 1.0 | MIT | 2018 |
SentiCR | Code review | Sentiment analysis | N/A | N/A | 2017 |
SentiStength-SE | Developers’ communication | Sentiment analysis | N/A | N/A | 2016 |
SimCoTest | Test suite generation | Search | N/A | N/A | 2017 |
SoftMon | Performance comparison | Machine learning, NLP | N/A | N/A | 2020 |
STYLE-ANALYZER | Code format fixing | Machine learning, MSR | 0.2.0 | N/A | 2019 |
Tarski | Traceability analysis | Automatic reasoning | 2.1.3 | EPL 1.0 | 2017 |
TESTAR | GUI testing | Search | 2.2.14 | BSD3 | 2020 |
UIED | GUI design | Computer vision, machine learning | 2.2 | N/A | 2020 |
UMGT | Test case generation | NLP, search | N/A | GPL 3.0 | 2017 |
VISTA | Web test repair | Computer vision | N/A | Apache 2.0 | 2018 |
XFix | Layout repair | Search | N/A | N/A | 2018 |
The next table summarises specific frameworks to support the development of AI-based solutions for SE problems, which have been published between 2015 and 2020. The year corresponds to the last release.
Framework | Support to | Language | Release | Licence | Year |
---|---|---|---|---|---|
Candoia | Mining software repositories | Various | 0.1.2 | Apache 2.0/MIT | 2017 |
CrossMiner | Mining software repositories, NLP | Java | 0.1.5 | EPL 1.0 | 2015 |
Gin | Genetic improvement | Java | 2.0 | MIT | 2019 |
PyDriller | Mining software repositories | Python | 1.15.5 | Apache 2.0 | 2021 |
PyGGI | Genetic improvement | Python | 1.0 | MIT | 2018 |
![](http://www.uco.es/grupos/kdis/wp-content/uploads/rr21_aise_wordcloud_communication.png)