53. A FRAMEWORK FOR THE CHECKING AND REFACTORING OF CROSSCUTTING CONCEPTS
Department: Computer Science & Engineering
Faculty Advisor(s):
William Griswold | Sorin Lerner
Primary Student
Name: Macneil Charles Shonle
Email: mshonle@ucsd.edu
Phone: 858-558-4681
Grad Year: 2009
Abstract
My research focuses on the construction and maintenance of complex software systems, with a focus on the difficulties that arise when prevailing tools and methods fail to achieve suitable forms of modularity. Systems that exhibit poor modularity are difficult because code that isn't modular is hard to reason about and hard to modify. However, such a lack of modularity occurs even for programming requirements that are easy to conceptualize. For example, it can be easy to describe the task of porting a program to use a new mathematics library, but tedious and error prone to actually perform the change. Programmers have a variety of tools that can assist them: refactoring tools can rename classes, and even port libraries; program checkers can be used to verify properties that the programming language cannot; and aspect-oriented tools can be used to isolate requirements that would otherwise be scattered throughout the whole program.
However, with current techniques, instead of directly using the high-level requirements, programmers operate on the ad hoc information needed by each tool--because such easy-to-conceptualize requirements do not have direct support in the programming environment. For my dissertation research, I unified the paradigms of refactoring and program checking, resulting in Arcum, a tool for Java. The philosophy of Arcum is to give programmers a direct mechanism to describe their intentions.
Related Links: