Java Eclipse™ plug–ins designed to speed up program comprehension using:
- Interactive static and dynamic sequence diagrams
- Ontologies and reasoning services
- Application domain modelling
Software maintenance consumes 50 to 70 percent of the total programming effort, a significant portion (30 to 60 percent) of which is spent on program comprehension.
Since specification and design artefacts are often unavailable or are of poor quality, source code is one of the only reliable forms of documentation available. Therefore, the goal of this project is to help generate high–level abstractions from existing source code.
Sequence Diagrams – The current OASIS prototype can record execution traces from Java programs and display them as enhanced sequence diagrams. Sequence diagrams can also be generated statically from source code. The major innovation comes when displaying very large sequences.
Until now, no tools were able to display these large graphs in a usable manner. To do so, the prototype supports grouping of elements vertically (e.g., multiple method calls into one) and horizontally (e.g., multiple objects into one package), along with other features designed to orient the user (e.g., breadcrumb trail, change focus, search, and filter). It is also possible to compare two sequence diagrams to determine their differences.
Context–Sensitive Guidance Support – Other valuable resources for program comprehension are version control (e.g., CVS, Subversion) and bug tracking (e.g., Bugzilla) systems, as well as a precise list of steps to perform. A software maintenance process (IEEE Std 14764-2006) has been modelled as an ontology. Process relevant information can be automatically extracted from Java source files, Subversion and Bugzilla repositories, populated in the ontology and queried to provide guidance.
For example, given a modification request for a particular software system, the prototype can identify the potentially affected interface elements as well as persons having the most expertise to make this type of change.
Application Domain Modelling – When trying to understand a software system, one usually has an idea of the application domain elements that should be represented in the source code. For example, in a file indexing system, one expects to find classes representing document types and indexes.
A software developer often uses pen and paper to map these ideas. OASIS provides a sketchpad to model the application domain: i.e., the different concepts and the relationships between them. Combined with tagging and the sequence diagram view, this approach is much better and more traceable than pen and paper.
The above figure shows some views of the prototype. In the displayed sequence diagram, elements of the java package and of the second “if” statement are grouped. A breadcrumb trail of the selected method is displayed above the package hierarchy. The model of the application domain is shown below the outline of the sequence diagram.
Support for other languages is planned (e.g., C, C++, Ada). The sequence diagram viewer will be improved for speed and to integrate static and dynamic information. Other complementary views will be researched and tested. Additional sources of information will be added to the ontology to improve guidance support.
For more information
Telephone: 418-844-4000 ext. 4677