Design by Contract for Web Services: Architecture, Guidelines, and Mappings
Software components should be equipped with well-defined interfaces. With design by contract, there is a well-known principle for specifying preconditions and post-conditions for methods as well as invariants for classes. Although design by contract has been recognized as a powerful vehicle for improving software quality, modern programming languages such as Java and C# did not support it from the beginning. In the meanwhile, several language extensions have been proposed such as Contracts for Java, Java Modeling Language, as well as Code Contracts for .NET. In this paper, the authors present an approach that brings design by contract to Web services.