Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Cesar: a static sequencing constraint analyzer
TAV3 Proceedings of the ACM SIGSOFT '89 third symposium on Software testing, analysis, and verification
Cecil: A Sequencing Constraint Language for Automatic Static Analysis Generation
IEEE Transactions on Software Engineering
Comments Analysis and Programming Errors
IEEE Transactions on Software Engineering
ISSTA '93 Proceedings of the 1993 ACM SIGSOFT international symposium on Software testing and analysis
State-Based Model Checking of Event-Driven System Requirements
IEEE Transactions on Software Engineering
Automatic Analysis of Consistency between Requirements and Designs
IEEE Transactions on Software Engineering
General Test Result Checking with Log File Analysis
IEEE Transactions on Software Engineering
Run-time monitoring of distributed applications
Middleware '98 Proceedings of the IFIP International Conference on Distributed Systems Platforms and Open Distributed Processing
Hi-index | 0.01 |
Requirements of event-based systems can be automatically analyzed to determine if certain safety properties hold. However, we lack comparable methods to verify that implementations maintain the properties guaranteed by the requirements. We have built a tool that compares implementations written in C with their requirements. Requirements describe events which cause state transitions. Implementations are annotated to describe changes in the values of their requirement's variables, and dataflow analysis techniques are used to determine the set of events which cause particular state changes. To show that an implementation is consistent with its requirements, we show that each event causing a change of state in the implementation appears in the requirements, and that all the events specified to cause state changes in the requirements appear in the implementation. The annotation language encourages programmers to describe local program behaviors. These behaviors are collected into system-level behaviors, which are compared to those in the requirements. Since our analysis is not based on program code, annotations can describe behaviors at any level of granularity. We illustrate the use of our tool with several different annotations of a temperature-control system.