My research explains how and why software behaves, based on user intentions. We want to know that our software is doing what we told it. We also want to know the reasons our software does something unexpected. Finally, we want to be able to design software to meet our intentions in the first place.

This is particularly important today:

  • extensive use of “other people’s code” in the form of libraries and packages;
  • software running on “other people’s computers”, i.e., the cloud;
  • software with a wide latitude to make its own decisions, often relying on opaque machine learning algorithms.

You can find more from the slides I used for this recent talk.

Selected Publications

These are the most recent and/or interesting publications. For a complete list, or mostly complete, best to look at one of the following sites.

I encourage you to check out Impact Story’s “UnPaywall” extension.


  1. Neil A. Ernst, Rick Kazman, Philip Bianco, “Towards Rapid Composition with Confidence in Robotics Software”, in Int Workshop on Robotics in Software Engineering at ICSE, 2018. pdfslides
  2. (short paper) Neil A. Ernst, “Bayesian Hierarchical Models for Tailoring Metrics Thresholds”, Intl Working Conference on Mining Software Repositories, 2018. arxivslides


  1. (short paper) M. P. Robillard, A. Marcus, C. Treude, G. Bavota, O. Chaparro, N. Ernst, M. A. Gerosa, M. Godfrey, M. Lanza, M. Linares-Vásquez, G. Murphy, L. Moreno, D. Shepherd, and E. Wong, “On-Demand Developer Documentation”, ICSME ’17: 33rd Int’l. Conf. on Software Maintenance and Evolution (AR: 58%) preprint c/o C. Treude
  2. George Mathew, Tim Menzies, Neil A. Ernst, John Klein, “Shorter Reasoning About Larger Requirements Models”, International Requirements Engineering Conference, Porto, 2017. arXiv:1702.05568
  3. Neil A. Ernst, Stephany Bellomo, Ipek Ozkaya, Robert Nord, “What to Fix? Distinguishing between design and non-design rules in automated tools”, International Conference on Software Architecture, Gothenburg, 2017. preprintlong versionblog post


  1. Neil A. Ernst, Mary Popeck, Felix Bachmann, Patrick Donohoe, Creating Software Modernization Roadmaps: The Architecture Options Workshop”. Working International Conference on Software Architecture (WICSA), Venice, Italy, 2016. preprint
  2. Neil A. Ernst, Stephany Bellomo, Robert Nord, Ipek Ozkaya, Ian Gorton: “Measure It, Manage It, Ignore It: Software Practitioners and Technical Debt”. International Conference on Foundations of Software Engineering/European Software Engineering Conference (ESEC/FSE), Bergamo, Italy, 2015. Distinguished paper award. (Acceptance rate: 25.4%, 291 submissions). Datapreprint • blogslides 

2015 and earlier

  1. Ivan J. Jureta, Alexander Borgida, Neil A. Ernst, and John Mylopoulos. “The requirements problem for adaptive systems”. ACM Transactions on Management Information Systems, 5(3):17:1–17:33, September 2014. preprint publisher
  2. Neil A. Ernst, Alexander Borgida, Ivan J. Jureta, John Mylopoulos, “Agile requirements engineering via paraconsistent reasoning”, Information Systems, 43: 100–116, July 2014. preprint - publisher (invited extended version of conference paper 1 below)


  • N. A. Ernst, “Software Evolution: A Requirements Engineering Approach”. Ph.D. dissertation, University of Toronto, 2011. pdf (224 pages)
  • N. A. Ernst, “Towards Cognitive Support in Knowledge Engineering: An Adoption-Centred Customization Framework for Visual Interfaces”, unpublished M.Sc. thesis, University of Victoria, 2004. pdf