Automated Discovery Of Algebraic Specifications From Java Classes

Stc
Date: 2009-05-14

Time: 11:00

Room: BBL room 471

Speaker: Ingmar van der Steen

Title: Automated discovery of algebraic specifications from Java classes

Abstract

Developers can benefit from software-libraries to satisfy their needs on functionality. In their programs they can make calls to well-defined interfaces of this library and don't have to care about how some particular functionality is implemented. This black-box view on software development has payed off for the last decades. If we are adopting this view, it's vital that we have a good understanding about the behaviour of these libraries. The sometimes poorly documented descriptions generated using e.g. the Javadoc tool, should actually only be read when we also have a formal description of it.

The type of formal descriptions we are going to cover are the so called 'algebraic specifications'. These specifications typically don't have low-level references to program's state variables. You can regard them as black-box specifications which could still hold even if the implementation is changed and e.g. other state variables are used.

These algebraic specifications are extracted from Java classes by dynamically generating method calls on instances of such a class. The resulting states are related to each other using different forms of equivalence (observational,representational,referential). The equations are then generalized to produce axioms which are finally presented to the user of the discovery-tool.

I will discuss the pipeline of such a tool and talk about the problems which are introduced using a dynamic approach.