Sarah Nadi

I am an Assistant Professor in the Department of Computing Science at the University of Alberta, where I lead the Software Maintenance and Reuse (SMR) Lab. I also hold a Canada Research Chair in Software Reuse. My research focuses on software maintenance and reuse in two directions:

  • Application Programming Interfaces (APIs): My goal is to improve software reuse by helping developers use existing software libraries more effectively. I conduct empirical studies to understand the problems developers have when using APIs and the kind of information that helps them make better decisions. I then design automated techniques to solve these problems, such as recommending relevant code snippets or detecting API misuses.
  • Software Product Lines (SPLs): I develop techniques to help developers maintain their SPLs, or highly configurable systems (e.g., find configuration-related bugs). I also develop techniques to help developers migrate similar existing systems into an SPL.
For more information about my research, please check SMR's projects and publications pages. For more information about my bio, please check out my CV.

Note to prospective students: please read the following important information before contacting me.