Discovering and Debugging Algebraic Specifications for Java Classes

Speaker:          Johannes Henkel   
                  University of Colorado at Boulder  

Title:            Discovering and Debugging Algebraic Specifications 
                  for Java Classes

Date:             Thursday, 15 April 2004 

Time:             2:00pm - 3:00pm 

Venure:           Room 6580    
                  (via lift nos. 25/26)   


ABSTRACT: 

When a programmer uses a class library, well documented interfaces are 
critical to avoid bugs. Algebraic specifications can document interfaces 
unambiguously and accurately, and are thus desirable to augment informal 
documentation. Unfortunately, algebraic specifications are costly to 
develop. 

I present a system for reducing the cost of developing algebraic 
specifications for Java classes. The system consists of two components: 
an algebraic specification discovery tool and an algebraic interpreter. 
The first tool automatically discovers algebraic specifications from 
Java classes. The tool generates tests and captures the information it 
observes during their execution as algebraic axioms. In practice, this 
tool is accurate, but not complete. Still, the discovered specifications 
are a good starting point for writing a specification. The second component 
of our system is the algebraic specification interpreter, which helps 
developers in achieving specification completeness. Given an algebraic 
specification of a class, the interpreter generates a rapid prototype 
which can be used within an application just like any regular Java class. 
When running an application that uses the rapid prototype, the interpreter 
prints error messages that tell the developer in which way the specification 
is incomplete. 

I conclude with ideas for future research, including distributed 
refactoring, which has the potential to bring more flexibility to 
library development while maintaining compatibility. 


BIOGRAPHY: 

Johannes Henkel is a Research Assistant at the University of Colorado at 
Boulder, working with Professor Amer Diwan. He holds a Vordiplom in 
Informatik from Damstadt University of Technology (Germany) and a MS in 
Computer Science from the University of Colorado. Johannes expects to 
receive a PhD in Computer Science in May. Johannes has participated in 
research projects at GMD-IPSI (Fraunhofer), IBM Research (TJ Watson), 
and the University of Colorado. His main research interest are tools that 
make software development more effective.