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
Publications