Software is more often modified than written from scratch. As it goes through this repeated process of software evolution, it loses its modularity and its maintainability. Further modification of the software is difficult because each change is both dispersed and interleaved across many modules. The Aspect Browser is a software tool that helps programmers find and manage these crosscutting changes, which we call aspects. It currently operates standalone, or integrated with Emacs. We are now working on integrating it into the Eclipse environment.
How does Aspect Browser help manage and find crosscutting changes?
The Aspect Browser uses both a map metaphor and an atlas metaphor to display and manage crosscutting concerns. All the files in a program are displayed as a row of small windows in which each line of code in a file corresponds to a row of pixels in a window. Each occurrence of a crosscut is highlighted in the windows with a specific color. The highlights are like symbols on a map, and they give the programmer a quick understanding how a crosscut is dispersed across the files. The programmer can quickly zoom into a section of the code and edit it by choosing a window. Other map-like features include cursors, keys, and the ability to fold away uninteresting portions of the view. The crosscutting concerns are identified with textual-pattern matching. This pattern matching is based on the premise that code fragments which share concerns are likely to refer to readily identifiable shared entities such as identifiers and libraries. The Aspect Browser also has features to help a programmer find possible representatives of crosscutting concerns, such as the identification of redundant lines of code.
Aspect Browser's atlas-metaphor feature can split the files of a large project into multiple views. The atlas metaphor enhances scalability because Aspect Browser does not have to load the entire source code into view. It also enhances the performance of Aspect Browser because commonly used views can now be cached. The views can be used to organize code and to reduce the number of files the programmer has to focus on. These views can have the same divisions as the the directory structure of the source code or the divisions can be customized.
The Aspect Browser was used by a programmer in removing a feature from a 500,000 line system. The Aspect Browser was successful in keeping the programmer oriented in the change while navigating through the hundreds of files in the system that contained the feature. This change was completed in 20 hours and was bug-free at completion.
Atlas-metaphor and Map-metaphor view
What is Aspect Emacs and Nebulous?
Aspect Emacs is the Emacs part of the Aspect Browser. It allows the programmer to organize and find aspects through the Emacs interface. It can also be used to edit code as aspects are discovered. Nebulous is the visual part of the program that shows all the files in a row of windows and highlights the occurrences of each aspect.
I want to use Nebulous to map out aspects, but I cannot use Emacs. Can I just use Nebulous alone?
Nebulous can now be used without Aspect Emacs. People who want to use another editor besides Emacs can now just use Nebulous as a separate application to find and manage aspects. Nebulous provides most of the features for editing and managing aspects that Aspect Emacs provides.