Refinement and Verification of Real-Time Systems
Preprint
Abstract
This paper discusses highly general mechanisms for specifying the refinement of a real-time system as a collection of lower level parallel components that preserve the timing and functional requirements of the upper level specification. These mechanisms are discussed in the context of ASTRAL, which is a formal specification language for real-time systems. Refinement is accomplished by mapping all of the elements of an upper level specification into lower level elements that may be split among several parallel components. In addition, actions that can occur in the upper level are mapped to actions of components operating at the lower level. This allows several types of implementation strategies to be specified in a natural way, while the price for generality (in terms of complexity) is paid only when necessary. The refinement mechanisms are first illustrated using a simple digital circuit; then, through a highly complex phone system; finally, design guidelines gleaned from these specifications are presented.Keywords
All Related Versions
This publication has 11 references indexed in Scilit:
- Engineering and theoretical underpinnings of retrenchmentScience of Computer Programming, 2007
- What Can We Expect from Program Verification?Computer, 2006
- Hybrid I/O automataInformation and Computation, 2003
- Composing and Refining Dense Temporal Logic SpecificationsFormal Aspects of Computing, 2000
- A theory of implementation and refinement in timed Petri netsTheoretical Computer Science, 1998
- Specification of realtime systems using ASTRALIEEE Transactions on Software Engineering, 1997
- Timewise refinement for communicating processesScience of Computer Programming, 1997
- A case-study in timed refinement: a mine pumpIEEE Transactions on Software Engineering, 1992
- A calculus of refinements for program derivationsActa Informatica, 1988
- A theoretical basis for stepwise refinement and the programming calculusScience of Computer Programming, 1987