HiperSpace

Developing Analyses and Tools for Assistance in Concern Mining and Navigation

OOP has enabled developers to create software systems that are much larger and more complex than is feasible with procedural languages. However, OOP fails to modularize certain types of concerns (i.e., high-level concepts), such as logging, persistence, and caching. Any feature that is not implemented within a single class or a single hierarchy of classes but instead is implemented in many different classes is a cross-cutting concern. Cross-cutting concerns are particularly difficult to understand, maintain, and develop because they are scattered throughout the program. Unfortunately, during maintenance of OOP programs, programmers spend much of their time navigating to points within multiple methods in different classes.

Aspect Oriented Programming (AOP) is a paradigm that supplements OOP to help modularize cross-cutting concerns. AOP allows the developer to place code related to a cross-cutting concern in one location, which leads to eased maintenance and development. However, even in AOP code, a particular change task may involve navigation through code for multiple aspects. Additionally, few tools support AOP development, and so developers often do not use AOP because programming without tools requires undue human effort.

Our research focuses on developing analyses and integrated tools to assist software maintenance, program understanding, and AOP refactoring to reduce the burden on humans. A primary focus of our research is analysis that semi-automatically identifies (i.e., mines) cross-cutting concerns. Concern-mining analysis is considered fundamental because of its many uses:

We are developing analyses and integrated tools for assistance with concern mining and navigation. Based on the premise that OOP code is noun-oriented (modularized with respect to objects), our hypothesis is that cross-cutting concerns are primarily verb (i.e., action)-oriented. Programmers also often use naming and coding conventions. Our novel approach is to extend and apply natural language processing (NLP) techniques to program code in combination with static program analysis to exploit the verb-object relationships between user-defined names in a program.

Publications

If the above link does not work, refer to our static publications page.

Contributors

Faculty: Lori Pollock, K. Vijay-Shanker
Ph.D. Students: Emily Gibson, Giriprisad Sridhara
Collaborators: Dr. David Shepherd
Master's Students: Kishen Maloor
Undergraduates: Zachary Fry, Susan Lister
Collaborators: Tom Tourwe (Centrum voor Wiskunde en Informatica) and Mark Chu-Carroll (IBM)


[ Projects | HiperSpace | UDel Computer Science | University of Delaware ]