An experimental evaluation of Java Design-by-Contract extensions
Design by Contract (DbC), also referred as Programming by Contract is a programming paradigm for software verification proposed by Bertrand Meyer. The idea is to put obligations for code elements such as methods, interfaces and classes to satisfy the specification of the source code. Indeed, DbC enf...
Main Author: | |
---|---|
Format: | Dissertation |
Language: | English |
Published: |
University of Oulu
2018
|
Subjects: | |
Online Access: | http://urn.fi/URN:NBN:fi:oulu-201812063243 http://nbn-resolving.de/urn:nbn:fi:oulu-201812063243 |
Summary: | Design by Contract (DbC), also referred as Programming by Contract is a programming paradigm for software verification proposed by Bertrand Meyer. The idea is to put obligations for code elements such as methods, interfaces and classes to satisfy the specification of the source code. Indeed, DbC enforces a piece of code to satisfy some conditions before execution (Precondition), and to ensure some conditions after execution (Postcondition) with holding some conditions unchanged (Invariant). This settlement is called Contract which must be valid for that piece of code. According to Meyer’s paradigm, a program can work correctly if it fulfills DbC principles for each method. To empower programmers with DbC, various libraries are made to make DbC possible in coding phase each of which is applicable in a specific programming language and has some features and functionalities. However, choosing the most suitable tool for coding upon a particular purpose is considerably important for development teams with software validation deployment. This thesis aimed to experimentally evaluate and compare DbC instrumentors specially for Java and figure out that which tool had better performance. In order to accomplish such a task, a simple model system had to be designed and implemented with regard to using constraining principles of mentioned tools. The scrutiny of the extensions revealed that Open JML as a powerful framework has generated better results rather than other tools. However, the results of this research is viable for small projects deploying constraining tools. |
---|