Authors
Justus Posthuma, Fritz Solms and Bruce W. Watson, Stellenbosch University, South Africa
Abstract
Contract Driven Development formalizes functional requirements within component contracts. The process aims to produce higher quality software, reduce quality assurance costs and improve reusability. However, the perceived complexity and cost of requirements formalization has limited the adoption of this approach in industry. In this article, we consider the extent to which the overheads of requirements formalization can be netted off against the reduced quality assurance costs arising from being able to autogenerate functional test interceptors from component contracts. Test-interceptors are used during testing to verify that component contracts are satisfied. In particular, we investigate the impact of contract-driven development on both the quality attributes of the software development process and the quality of the software produced by the process. Empirical data obtained from an actual software project using contract-driven development with test interceptor generation is compared to that obtained from similar projects that used a traditional software development process with informal requirements and manually written functional tests.
Keywords
Software and its engineering, Software development methods, Software implementation.