Skip to Content

Group 3 - Artificial Intelligence in Software Engineering


  • Myra Cohen (University of Nebraska – Lincoln, USA)


  • Shin Yoo (University College London, UK)


  • Mathew Hall
  • Péter Hegedűs
  • Josip Maras
  • Marco Mori
  • Rishabh Singh
  • Zoltán Ujhelyi

Read and comment in the topic forum. (authorization required)


During the past several decades, software systems have increased in size and complexity. So too, have the tasks of requirements elicitation, design, coding, software testing and maintenance. Each of these phases of the software lifecycle, contain problems that are becoming intractable to solve using exact techniques. The discipline of artificial intelligence (AI), provides many tools and algorithms that software engineers can use to approximate solutions, such as planning, learning, classification, natural language processing and guided search. The community of search-based software engineering has been flourishing, developing evolutionary algorithms, swarm techniques and other types of meta-heuristic search to tackle a broad range of problems. At the same time, there is an increasing body of software engineering research that leverages planning and learning techniques, that uses classifiers, or employs natural language processing. This working group will survey the software engineering research that falls under this umbrella, cross-classifying their results by both the software engineering problems that are presented, as well as the AI techniques that are used.

The goal of this working group is (i) to investigate the ranges and limitations of current applications of AI techniques in software engineering and (ii) to think about what the ideal support from AI techniques for software engineers would look like.

The task will be performed by interacting with experts of this field-possibly from both academia and industry-during the ESEC-FSE conference, interviewing them to collect information aimed at addressing our goal.

To this purpose, the working group should identify a set of questions to be asked, for example:

1. What are the main AI techniques that have been helpful to solve SE problems? There are many branches of different approaches and algorithms in AI: for example, meta-heuristics, probabilistic learning, statistical learning or control theory. Which ones have been studied the most?

2. What are the extents to which AI techniques can help software engineers? For example, should we aim for 100% automation with a button that says "test" or "build"? Or should it be just be tools that are a little bit smarter than what we have now?

3. What are the primary SE areas that have benefited from AI techniques? For example, requirements engineering, systems design, or software testing?

4. What are the future areas that are the most productive to explore?


[1] M. Harman, S. A. Mansouri, and Y. Zhang. Search based software engineering: A comprehensive analysis and review of trends techniques and applications. Technical Report TR-09-03, Department of Computer Science, King’s College London, April 2009.

[2] P. McMinn. Search-based software test data generation: A survey. Software Testing, Verification and Reliability, 14(2):105–156, June 2004.

[3] O. R ̈aiha ̈. A survey on search-based software design. Technical Report D-2009-1, Department of Computer Science, University of Tampere, 2009.

[4] M. O’Keeffe and M. O?Cinneide. Search-based software maintenance. In Conference on Software Main- tenance and Reengineering (CSMR’06), pages 249–260, Mar. 2006.

[5] Y. Zhang, A. Finkelstein, and M. Harman. Search based requirements optimisation: Existing work and challenges. In Proceedings of the 14th International Conference on Requirements Engineering (REFSQ 2008), pages 88–94, Berlin, Heidelberg, 2008. Springer-Verlag.