Making Software Reuse Better, Faster and Safer
Software libraries provide developers with a toolbox of high-quality programs and building blocks. But due to complexity and poor documentation, developers often use these libraries incorrectly, with serious consequences such as costly bugs and security vulnerabilities. As Canada Research Chair in Software Reuse, Dr. Sarah Nadi aims to make using such libraries easier, faster and safer.
Since the early days of software engineering, software reuse has been encouraged as a means to improve software quality and developer productivity. The pervasiveness today of software in everyday products makes its reuse even more essential. Reusing software saves developers from reinventing the wheel by allowing them to use existing code when building a new software system. Nadi is helping software developers reuse existing code to create new software more efficiently.
Nadi and her research team are using empirical studies to understand the problems developers encounter when they use application programming interfaces (APIs) as well as the kind of information that helps them make better decisions. They are then designing automated techniques to solve these problems, such as recommending relevant code snippets or detecting API misuses.
Nadi’s work ranges from software product lines and systematic software reuse to security APIs and code recommender systems. Her research has led to an international network of collaborations from North America to Germany, Brazil and Sweden, with support from industry leaders such as IBM and Samsung.