skip to main content
Department of Computer Science University of Colorado Boulder
cu: home | engineering | mycuinfo | about | cu a-z | search cu | contact cu cs: about | calendar | directory | catalog | schedules | mobile | contact cs
home · events · bactac · 2003-2004 · 

BACTAC - Henkel

ECOT 831

Discovering and Debugging Algebraic Specifications for Java Classes
Grad Student, Department of Computer Science

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.

BACTAC, the Beverage And Chips Tuesday Afternoon Colloquium, is a weekly forum run by graduate students. The goal is provide an informal setting in which anyone can (basically) present anything. In the past, we have had practice talks for conferences and job interviews, research reports, juggle lessons (!), student representative reports, internship discussions, an introduction to ergonomics, and "pay attention to this when you are going to look for job" discussions.

BACTAC is meant to be an informal and social event to promote the interaction among graduate students. BACTAC is typically held every Tuesday, at 3:30pm, in room ECOT 831. Free munchies and drinks are provided.

Please email Caleb Phillips for more information or if you want to be a speaker.

See also:
Department of Computer Science
College of Engineering and Applied Science
University of Colorado Boulder
Boulder, CO 80309-0430 USA
Send email to

Engineering Center Office Tower
ECOT 717
FAX +1-303-492-2844
XHTML 1.0/CSS2 ©2012 Regents of the University of Colorado
Privacy · Legal · Trademarks
May 5, 2012 (13:44)