Research
Software Development Laboratory <SDML>.
Topics of Interest:
- Software engineering, software evolution and maintenance
- Program understanding/comprehension, program analysis
- Reverse engineering
- Software visualization to support maintenance and reverse engineering
- Software traceability
- Cognitive models of the software development process
- Document engineering
Research Statement:
The research program focuses on the construction of methods, tools, and environments to assist in the process of software evolution and maintenance
of large-scale systems. Topics of current investigation include the following:
Source Code Representations and Syntactic Differencing - XML is used to augment source code with syntactic information from the parse tree
as a means to add explicit structure to program source code. This underlying representation, srcML (Source Code Markup Language), supports
light-weight fact extraction, source code transformation, and source code difference analysis. The src2srcml translator works for C/C++ and
Java. It is very robust and efficient, running faster than compilers on the same input. The translator is used by a large number of researchers
and a commercial version is in use to support software porting. srcML forms the basis for an efficient syntactic differencing method. This is
being used to analyze differences between software versions.
Static Semantic Analysis of Large Scale Software Systems - The research focuses on investigating the combined use of semantic and structural
information of programs to support the comprehension tasks involved in the maintenance and reengineering of software systems. Here, semantic
refers to the domain specific issues (both problem and development domains) of a software system. The other dimension, structural, refers to
issues such as the actual syntactic structure of the program along with the control and data flow that it represents. An advanced information
retrieval (IR) method, latent semantic indexing (LSI), is used to define a semantic similarity measure between software components.
Mining Software Repositories - Data mining techniques are being utilized to analyze multiple versions of a software's history to uncover
latent trends and evolutionary couplings. The techniques have been applied to the problems of defect identification, software localization,
and traceability link recovery.
Software Traceability - A holistic view of how to combine traceability link recovery with conformance analysis is facilitated by a formal
hypertext model. This hypertext model not only supports complex linking structures (e.g., multi links) but also supports versioning of individual
links. Such a model preserves and maintains over time the results of the reverse engineered traceability links. It also supports the development
of a traceability query lanaguage (TQL) that is built upon XML technologies. This work aims to support long
term evolution of large software systems.
Software Visualization - Source Viewer 3D (sv3D) is a software visualization framework that builds on the SeeSoft metaphor. It brings a number
of enhancements and extensions over SeeSoft-type representations. In particular it creates 3D renderings of the raw data and various artifacts of
the software system and their attributes can be mapped to the 3D metaphors at different abstraction levels. It implements improved, object-based
user interactions, is independent of the analysis tool, and it accepts a simple and flexible input in XML format. The output of numerous analysis
tools can be easily translated to sv3D input format and the design and implementation of our system is extensible.
Eye tracking to Assess Comprehensibility - Eye tracking equipment is being used to assess the comprehensibility of design documents
(UML class diagrams) in a non-obtrusive manner. This work augments the work on software visualization and supports a means to measure the quality
of UML class diagram layout techniques.
Return Jonathan's home page.
Published By: J. Maletic
Last update: Tue Mar 10 14:50:43 2009 EST