Set of tools for basic support of functional and architectural prototyping based on contracts. Additional support for evolutionary software development and for higher level techniques for requirements elicitation using scenarios is available.


Motivation 

The number of methods and tools available to the software engineer nowadays is overwhelming; nevertheless, many software projects fail—that is, do not meet their schedules, are over budget, do not meet the user needs, or simply have considerable quality defects. The numerous possible explanations for this situation include poor project management, unsuitable methods and tools used in the project, and poorly developed skills of the participating software engineers. The challenge for researchers in this field is to provide methods and tools that can be applied by software engineers with average skill levels in average projects. This project emphasizes methods, techniques, and tools that can be used by average software engineers in average projects for the early phases (analysis and design) of the software life cycle. Therefore, the important requirements for the methods and techniques are simplicity, preciseness, generality, and expressiveness. This project deals with an approach that combines assertion and scenario techniques into a consistent methodology that can be used for analysis and design tasks. The technique developed can be combined with a prototyping-oriented software development approach.

Goals

  • Methods and tools to support architectural prototyping with contracts
  • Method guide for architecture prototyping based on scenario techniques and supported by contracts for the behavioral part of the prototype.

Results

  • A comprehensive method for prototyping with contracts and scenarios (message sequence charts)
  • Tool support to enhance scenarios (message sequence charts) with contracts
  • Design by Contract tool support for the programming languages Java and Python

Contact: Reinhold Plösch

 

Contracts, Szenarios and Prototypes

Publications

R. Plösch: Tool Support for Contract and Scenario-Based Software Development, Proceedings of IADIS International Conference Applied Computing 2004, March 23-26 2004, Lisboa, Portugal, 2004.
Conference Article
R. Plösch: Contracts, Scenarios and Prototypes - An Integrated Approach to High Quality Software, Springer-Verlag Berlin Heidelberg New-York, 2004, ISBN 3-540-43486-0
Book
R. Plösch: The Role of Contracts and Scenarios in the Software Development Process, Proceedings of the Fourth International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing - SNPD 03, Lübeck, Germany, Association of Computer and Information Science (ACIS), pp 90-98, October 2003.
Conference Article
R. Plösch: Evaluation of Assertion Support for the Java Programming Language, Journal of Object technology (JOT), Vol. 1, No. 3, August 2002, doi:10.5381/jot.2002.1.3.a1
Journal Article
R. Plösch, J. Pichler: Contracts: From Analysis to C++ Implementation, Proceedings of the TOOLS-30 conference, Santa Barbara, USA, August 1-5, 1999, IEEE Society Press, pp 248 - 257, doi:10.1109/TOOLS.1999.787553
Conference Article
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
Conference Article
R. Plösch: Design by Contract for Python, IEEE Proceedings of the Joint Asia Pacific Software Engineering Conference (APSEC97/ICSC97), Hongkong, December 2-5, 1997, doi:10.1109/APSEC.1997.640178
Conference Article