My research explains the how and why of software, 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. Some recent and ongoing projects:

Software Composition

We are working on assessing the ways in which software composition works. This includes looking at how components are selected, new architecture tactics in assembling them, and analysis of quality attribute satisfaction.

  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

Technical Debt and Software Documentation

Technical debt is a short-term software design choice that incurs long-term costs if not dealt with. We look at technical debt in requirements, in architecture, and for emerging machine learning systems.

  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. 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
  3. 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 

Qualitative Research and Peer Review

We are conducting studies into how qualitative research is emerging as a key research strategy for software engineering, which is, after all, highly subjective and contextual. A similar project looks at how we know what we know in software engineering, specifically for reviewing papers.

Bayesian Statistics

We are examining ways to improve the state of the art of software research statistical approaches, particularly by eliminating null hypothesis testing. Bayesian statistics works intuitively with the highly contextual nature of software projects, which tend to vary in size, domain, criticality, and numerous other places.

  1. (short paper) Neil A. Ernst, “Bayesian Hierarchical Models for Tailoring Metrics Thresholds”, Intl Working Conference on Mining Software Repositories, 2018. arxivslides

Software Engineering for Machine Learning

An emerging research focus is on how machine learning and probability is integrated into more “conventional” software projects. We’ll have more to announce here soon, I hope ;) For now you can entertain yourself with Andrej Karpathy’s essay Software 2.0 and the “ML is the high interest credit card of TD” paper.

Software Requirements and Analysis

My background is requirements analysis and modeling, and this continues to be a passion of mine. All the funky stuff we can do with programming languages, testing, design, etc. is irrelevant if we are building the wrong thing.

  1. George Mathew, Tim Menzies, Neil A. Ernst, John Klein, “Shorter Reasoning About Larger Requirements Models”, International Requirements Engineering Conference, Porto, 2017. arXiv:1702.05568
  2. 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
  3. 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
  4. 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

All 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.

Theses

  • 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 (95 pages)

Icons from NounProject