Today’s software is large and complex, with systems consisting of millions of lines of code. New developers to a software project face significant challenges in locating code related to their maintenance tasks of fixing bugs or adding new features. Developers can simply be handed a bug and told to fix it–even when they have no idea where to begin.
We can significantly reduce the cost of software maintenance by reducing the time and effort to find and understand code. In this talk, I will outline the challenges in finding and understanding code in a large software project as well as present some software engineering tools that can help. Specifically, I will present techniques that leverage the textual information from comments and identifiers as well as program structure to create intuitive software engineering and program comprehension tools.