Aristotle Analysis System
Java Architecture for Bytecode Analysis (JABA)
Tarantula Fault Localization System
A major part of our research activity is the development and
manitenance of experimental systems for use in our
research. These systems consist of both program-analysis
infrastructure and software subjects.
Our program-analysis infrastructure
provide a platform on which we can implement new algorithms
and techniques and experiment with real program. Our work
on this infrastructure also
provides insight into the construction of such systems.
The infrastructure consists of parsers that gather language-specific
information, such as control-flow, local data-flow, and symbol table,
about a program. Other tools use this information to perform
additional analyses, such as data-flow, control-dependence, pointer,
slicing, and visualizations.
We have three major components of the program-analysis infractructure:
the Aristotle Analysis System, the Java Architecture for Bytecode Analysis,
and the Rational Apex System.
Still other tools provide information for software-engineering
tasks, such as testing, regression testing, debugging, test-suite
management, and program understanding.
For example, Tarantula provides assistance in debugging and DejaVu provides
regression test selection.
Another important part of our research activity is the collection
and use of software subjects for use in experimentation.
Our subjects consist of programs, versions, fault data, and test
suites in languages such as C, Java, and Ada-83. We have
used these subjects for experimentation and made them available
to other researchers.