Monthly Archive for June, 2009

Introduction: Linguistic Topics in Source Code

Hello! I’m Trevor Savage, a rising Senior at the College pursuing a Computer Science major and a Music minor. This summer I’m doing research with Professor Denys Poshyvank in the field of software engineering, specifically working on a tool that will automatically analyze source code in order to determine some of the code’s overarching structure. It does this by looking at textual similarities in the natural, human language contained in different chunks of source code.

While Computer Aided Software Engineering (CASE) tools have failed to live up to their promise of revolutionizing the efficiency of software engineers, these tools have proved quite capable of improving developer efficiency in a more evolutionary manner. Much of the software engineering and development process is creative, requiring a human decision maker to actually design the system. But computers are far better at processing large amounts of information than humans are, and that’s where CASE tools can be particularly effective.

By processing the source code of a software system and creating a map of sorts that can guide a developer in their own exploration of the system, our tool should be able to ease some of the initial work of a developer approaching an unfamiliar project. Hopefully, such a developer will the be able to start working on a new project quicker than if they set out to get a grasp on it without any aids. In particular, the tool should be helpful in situations where the project’s own documentation is inadequate, as can frequently be the case.

Ultimately, after our tool is complete, we’ll be able to study how efficient it actually is at easing a developer’s comprehension of a program. One variable we may study is the usefulness of different ways of visualizing the topic map. The design of these visualizations should prove very interesting, since they’re so many different ways to display different pieces of information, and ultimately we need a design that both displays plenty of relevant information and yet is relatively easy to use and understand.

Currently, I’m working out the design for the tool, sketching out plans for the graphical user interface and working on the back end that will actually generate the topic maps of source code. Ultimately, at the end of the summer, we should have a complete prototype with which we can hopefully conduct more in depth user testing next semester.