Towards Practical Support for Component-Based Software Development Based on Formal Specification

Heinrich Hussmann
Dresden University of Technology Department of Computer Science
Heinrich.Hussmann@inf.tu-dresden.de

Abstract

Starting from an analysis of the situation of a software developer using pre-fabricated components (like JavaBeans or Delphi Components), it is investigated in which form formal specification languages can provide practical aid.
The goal is to increase the reliability of the produced software and the effectiveness of the development process. For an advanced component framework, semantic specifications of the component functionality tend to become rather trivial, since the framework introduces a terminology which encapsulates the domain-specific complexity.
In some sense, the component framework already provides a formal specification formalism for the problem domain.
However, a new dimension of complexity arises from the interconnection of many components, which is often defined in a graphical editor isntead of a textual language.
So support by formal specification should concentrate on help for understanding the semantic interrelationships of the various components interrelations and the contraints which hold for the multitude of adjustable parameters.
A classification of component properties into separate aspects of a system (like functional essence, meta-rules for composition, functional aspects of realisation, non-functional aspects) is suggested. Formal specifications are of a different kind (and targeted at different audiences) for these different aspects. For the functional essence aspect, it is shown how a very simple specification formalism based on the Object Constraint Language (OCL) can help the developer to master the complexity of the developed system.
The basic ideas for realistic and pragmatically helpful tool support based on such an approach are sketched.


Last Updated: May 17, 2000 by Elisabetta Ferrando