Automating Software Development Using Artificial Intelligence

This week I gave a research seminar at Dalhousie University and at Mount Allison University on “Automating Software Development Using Artificial Intelligence (AI).” The intersection of AI and Software Engineering is an active research area and has lead to a number of effective and novel applications of machine learning, metaheuristic algorithms and deep learning. Many of these applications of AI to software development can be categorized as:

  1. Automation of software development activities including the creation of software artifacts (e.g., software test generation)
  2. Recommendation systems to assist software developers improve their performance (e.g., recommended code for review)

Not all Software Engineering research problems can be suitably addressed by AI techniques. A good first step to determine if a given software development problem can be addressed with AI is to see if it can be re-framed in terms of optimization, classification, prediction, etc. That is, can it be re-framed in terms of the type of problems that AI methods are effective at solving?

To find out more about the Software Quality Research Lab‘s work in this area please see the abstract and slides from my talk below. Continue reading


This blog is a place where I will…

  • discuss ongoing research projects in the Software Quality Research Group┬áLab
  • discuss interesting state-of-the-art work ┬ábeing done in the areas of software testing, software quality assurance, concurrent software systems, distributed software systems.
  • comment on the current state of Software Engineering — both research and practice.
  • mention anything else I find interesting or funny.

If you have any comments or thoughts on my posts I’d be interested in hearing what you have to say.