Tool Support for System Specification, Development and Verification
The correct development of large software systems demands a thorough structuring of the design process. In a first phase the requirements engineering ... Show synopsis The correct development of large software systems demands a thorough structuring of the design process. In a first phase the requirements engineering is relevant for capturing the relevant functionality and its adequate and precise mathematical formalization. Prototyping can be used as a means for checking the functional behaviour at this early stage of development. The specification resulting from the first phase is then the basis for the second phase which comprises the derivation of an efficient implementation. This phase requires the use of formal methods and tools to verify/validate the implementation. Of course, a prerequisite for applying this approach to large systems is to have suitable tool support. This book presents tools that aim at the formal and computer-aided development of software. Furthermore, it discusses the theories and methods underlying the tools, applications, and limits. Finally, it describes many case studies. The presented tools and methods vary from academic to industrial, from fully automatic to interactive, and from animation and prototyping to formula manipulation, theorem proving, i.e., formal verification. Thus, the reader gets an overview of the wide-ranging applicability of formal methods and the computer-aided software development.