Design by Contract Utilities

Introduction

The central idea of DBC is that software entities have obligations to other entities based upon formalized rules between them. A functional specification, or 'contract', is created for each module in the system before and during its implementation. Program execution is then viewed as the interaction between the various modules as bound by these contracts.

Overview

The main goal of the DBC-Utilities project is to provide a simple way for checking pre post conditions and class invariants. In general the project consists of three big parts

  1. DBC-Utilities core component.

    Main DBC component, responsible for checking assertions and for configuration

  2. DBC-Utilities declarative definitions framework

    Component that enables the definition of contracts in a declarative way

  3. DBC-Utilities tooling

    Ant tasks and eclipse plug-ins for easily working with DBC components

Goal

The DBC-Utilities project tries to provide contracts for java application. The project is inspired by Eiffel (which provides the concept of contracts at language level) but we want to implement contracts in a more declarative way (unsing java annoations or xml definition of contracts -> so we do not support complex expressions in contracts). This means our main goal is to provide a very simple way to define common contracts.