Canada Spends Logo

Explorez notre analyse du budget 2026

Grant: Canada Research Chairs

University of Alberta

$100,000.00

Software Reuse

EF 2023-24

Résumé
When creating a software system, developers try to avoid re-inventing the wheel for every required functionality. Thus, they often rely on third-party software libraries that provide a toolbox of implementations and building blocks. However, not all libraries have the same quality, ease of use, or community support. Given many library alternatives to choose from, how can developers select the best library for their needs? What if they select a library but later find a better alternative, how can they automatically switch to the new library without having to re-write all the functionality already implemented using the old library? The goal of Dr. Nadi's research program is to provide automated support tools that help developers deal with such situations. Specifically, Dr. Nadi will develop metrics that help developers reason about important selection factors (e.g., library documentation quality and ease of use) . She will also design automated library migration techniques, especially for Python, that help developers easily switch between libraries without additional manual labor. The situations described above are ones that anyone developing a piece of code runs into. In fact, it is no longer only software developers in the traditional sense that face such situations when dealing with libraries; the new emerging group of data scientists that are now pervasive in most fields also face these same questions. However, given the diversity of background and training of data scientists (e.g., a social sciences or business background), navigating such situations may be even trickier than software developers. Thus, there may be additional factors and type of support to consider for data scientists and their highly specialized libraries. As the final direction of the proposed program, Dr. Nadi will investigate the needs of data scientists when it comes to library selection and usage, and customize the above support tools to these needs. Using innovative combinations of qualitative research, mining software repositories, machine learning, and program analysis, Dr. Nadi provides software library users with tools and techniques that help them spend less time on mundane activities. At the same time, it empowers them with data and explanations to help them accomplish more creative activities that need their expertise. Overall, such support improves both the efficiency and effectiveness with which complex code can be developed.
Programme
Canada Research Chairs
Bénéficiaire
Emplacement
Alberta, Canada
Type de bénéficiaire
Academia
Type
Grant
Source
NSERC's Awards Data

Tel que publié

Application id
CRC-2021-00417
Name nom
Nadi, Sarah
Department département
Department of Computing Science - University of Alberta
Organization id
9
Institution établissement
University of Alberta
Province en
Alberta
Province fr
Alberta
Country en
CANADA
Country fr
CANADA
Fiscal year exercice financier
2023
Competition year année de concours
2021
Award amount
100000
Program id
CRC
Program name en
Canada Research Chairs
Program name fr
Chaires de recherche du Canada
Group en
DISCOVERY RESEARCH
Group fr
RECHERCHE AXÉE SUR LA DÉCOUVERTE
Committee code
9998
Committee name en
Canada Research Chair Selection Committee
Committee name fr
Comité de sélection des Chaires de recherche du Canada
Area of application code
10000
Area of application group en
The socioeconomic objective available
Area of application group fr
L'objectif socioéconomique disponible
Area of application en
The socioeconomic objective available
Area of application fr
L'objectif socioéconomique disponible
Research subject code
10000
Research subject group en
The field of research available
Research subject group fr
The field of research available
Research subject en
Le domaine de recherche disponible
Research subject fr
Le domaine de recherche disponible
Field of research list codes
RDF1020303
Field of research list names en
Software domains (including operating systems and software infrastructure)
Field of research list names fr
Domaines logiciels (y compris les systèmes d'exploitation et l'infrastructure logicielle)
Socioeconomic objective list codes
RDS10610
Socioeconomic objective list names en
Information systems, technologies and services
Socioeconomic objective list names fr
Systèmes, technologies et services d'information
Application title
Software Reuse
Keyword
empirical software engineering; code recommender systems; software reuse; software maintenance; mining software repositories; software libraries; API migration; API misuse detection
Application summary
When creating a software system, developers try to avoid re-inventing the wheel for every required functionality. Thus, they often rely on third-party software libraries that provide a toolbox of implementations and building blocks. However, not all libraries have the same quality, ease of use, or community support. Given many library alternatives to choose from, how can developers select the best library for their needs? What if they select a library but later find a better alternative, how can they automatically switch to the new library without having to re-write all the functionality already implemented using the old library? The goal of Dr. Nadi's research program is to provide automated support tools that help developers deal with such situations. Specifically, Dr. Nadi will develop metrics that help developers reason about important selection factors (e.g., library documentation quality and ease of use) . She will also design automated library migration techniques, especially for Python, that help developers easily switch between libraries without additional manual labor. The situations described above are ones that anyone developing a piece of code runs into. In fact, it is no longer only software developers in the traditional sense that face such situations when dealing with libraries; the new emerging group of data scientists that are now pervasive in most fields also face these same questions. However, given the diversity of background and training of data scientists (e.g., a social sciences or business background), navigating such situations may be even trickier than software developers. Thus, there may be additional factors and type of support to consider for data scientists and their highly specialized libraries. As the final direction of the proposed program, Dr. Nadi will investigate the needs of data scientists when it comes to library selection and usage, and customize the above support tools to these needs. Using innovative combinations of qualitative research, mining software repositories, machine learning, and program analysis, Dr. Nadi provides software library users with tools and techniques that help them spend less time on mundane activities. At the same time, it empowers them with data and explanations to help them accomplish more creative activities that need their expertise. Overall, such support improves both the efficiency and effectiveness with which complex code can be developed.