Software developers striving to create and evolve large software systems find themselves frequently in need of learning. They join a new project where they need to learn a new software system and the development team?s culture. They frequently need to learn new Application Programming Interfaces (APIs), or newer components of existing APIs. The project addresses the need for useful automated support for helping software developers learn APIs and how to use them effectively solve the task at hand. The envisioned system performs the underlying automated analysis on a server which takes information from the user?s context and current maintenance or evolution task, as allowed by the user, and sends back learning nuggets as they perform their tasks. With more effective ways to learn, software development could be more efficient and provide more reliable, higher quality software, which has a broad impact on society which depends increasingly on software.

This project will contribute to the state of the art by tackling three major challenges to bring this kind of automated support for developer learning into practical use. First, we will develop analysis techniques to bridge the gap between single statement and whole method level analyses for automatic extraction, description, and generalization of information from source code at the multi-statement, algorithm-step level. Second, we will develop tools that automatically identify, extract and categorize different kinds of information such as facts, (positive and negative) opinions/advice, and usage information in mixed text-code artifacts such as emails, question-answer forums, and other developer communications. Third, we will develop tools to automatically identify the relevant context of the developer and identify the relevant learning nuggets for that context. The novel approach to analyses, the resulting tools, data sets, and experimental infrastructure developed within the project will be released, which will enable other researchers and practitioners to build on the project?s results and will ultimately advance knowledge and understanding within the field of Software Engineering.

Project Start
Project End
Budget Start
2014-09-01
Budget End
2019-02-28
Support Year
Fiscal Year
2014
Total Cost
$515,726
Indirect Cost
Name
University of Delaware
Department
Type
DUNS #
City
Newark
State
DE
Country
United States
Zip Code
19716