Nadi's research helps software developers reuse existing code to create new software more efficiently. With software’s pervasiveness in everyday products, software reuse is now even more essential.
Software libraries provide software developers with a toolbox of high-quality programs and building blocks. However, because of their complexity and poor documentation, developers often incorrectly use libraries with serious consequences. Nadi’s research aims to make it easier and safer for developers to use these libraries.
Since the early days of software engineering, software reuse has been advocated as a way to improve both software quality and developer productivity. Software reuse saves developers from reinventing the wheel by allowing them to use existing code when building a new software system. The nature of Nadi’s work—ranging from open-source systems to cryptography and from code recommenders to security APIs—lends itself to the interdisciplinary solutions demanded by today’s society.
With her breadth and depth of knowledge, Nadi has her eyes on the future, curating a knowledge base as support for task-based code recommender systems with explanation support, providing critical context for software reuse decisions. Nadi’s international reputation has led to the creation of an established network of research collaborations spanning the globe from North America to Germany, Brazil, and Sweden as well as support from industry leaders such as IBM.