R. Plösch: Tool Support for Design by Contract, Proceedings of TOOLS-26 Conferende, Santa Barbara 1998, IEEE Computer Society, pp 282 - 294, doi:10.1109/TOOLS.1998.711020


Numerous experience reports indicate that prototyping is a serious and successful development strategy. We believe that it is not sufficient to provide graphical notations for object-oriented analysis, but that the notation of contracts in conjunction with prototyping, i.e., building executable models, is the proper technique for mastering complexity and gaining insights into a problem domain. We therefore developed a set of tools that is especially suitable for functional prototyping and for architectural prototyping. The underlying prototyping model is based on object-orientation and assertions. The infrastructure tools are implemented with the object-oriented programming language Python, while the high-level tools (assertion browser and graphically oriented debugger for assertions) are implemented in C++. The two parts of the system are tightly connected by means of the API provided by Python. Although the tool support provided covers the core tasks for functional prototyping and for architecture prototyping, additional support for evolutionary software development and for higher level techniques for requirements elicitation, e.g., for scenario oriented (use case oriented) analysis is desired.