Tool Support for Design by Contract

  • Adrien Houdart

Student thesis: Master typesMaster in Computer science

Abstract

The Skalup development team uses the technique of Design by Con-tract (DbC) for the realisation of its programs. This methodology aims at introducing the concept of contract in computer applications. These contracts consist of preconditions, postconditions and invariants and are represented in the source code in the form of semi-formal specifications on top of methods and classes.
The technique of Design by Contract was born out of researches con-ducted by Bertrand Meyer, in connection with its Ei˙el programming language. Simultaneously, Liskov has also introduced the concepts of pre-conditions, postconditions and invariants in her researches on the princi-ple of substitution. Programming with contracts supposes that software developers define precisely what a function / method does and what are the conditions to use it.
Although the DbC technique significantly reduces the number of bugs within an application, Skalup developers face another problem; ensuring that the specifications correspond to the implementation to which they are linked. Currently this check is done manually and therefore takes a considerable time.
The objective of this master thesis is to analyse what exists in terms of code analysis tools for specifications, suggest improvements, contribute to research on this issue and determine the limits of the verifications that can be performed. The second part of the thesis will focus on the real-ization of a static analysis tool for semi-formal specifications. This tool would aim to inform the developers that an inconsistency between the code and the specification was made in the application.
Date of Award30 Aug 2016
Original languageEnglish
Awarding Institution
  • University of Namur
SupervisorPierre Yves Schobbens (Supervisor)

Keywords

  • design by contract
  • specifications
  • precondition
  • postconditions
  • invariant
  • errors detection
  • static analysis

Cite this

'