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 functionsl prototyping and for architectural prototyping. The underlying prototyping model is based on oo and assertions. The infrastructure tools are implemented with the oo programming language Python, while the high-level tools 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 analysis is desired.

Sprache der Kurzfassung:

Englisch

Englischer Titel:

Tool Support for Design by Contract

Englische Kurzfassung:

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 functionsl prototyping and for architectural prototyping. The underlying prototyping model is based on oo and assertions. The infrastructure tools are implemented with the oo programming language Python, while the high-level tools 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 analysis is desired.