QuickCheck: a lightweight tool for random testing of Haskell programs
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
The Byzantine Generals Problem
ACM Transactions on Programming Languages and Systems (TOPLAS)
IEEE Software
Using Simplicity to Control Complexity
IEEE Software
The Infeasibility of Quantifying the Reliability of Life-Critical Real-Time Software
IEEE Transactions on Software Engineering
Validation of Synchronous Reactive Systems: From Formal Verification to Automatic Testing
ASIAN '99 Proceedings of the 5th Asian Computing Science Conference on Advances in Computing Science
RT-MaC: Runtime Monitoring and Checking of Quantitative and Probabilistic Properties
RTCSA '05 Proceedings of the 11th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications
Runtime Verification of C Programs
TestCom '08 / FATES '08 Proceedings of the 20th IFIP TC 6/WG 6.1 international conference on Testing of Software and Communicating Systems: 8th International Workshop
SYCRAFT: A Tool for Synthesizing Distributed Fault-Tolerant Programs
CONCUR '08 Proceedings of the 19th international conference on Concurrency Theory
Software Verification and System Assurance
SEFM '09 Proceedings of the 2009 Seventh IEEE International Conference on Software Engineering and Formal Methods
Checking and Correcting Behaviors of Java Programs at Runtime with Java-MOP
Electronic Notes in Theoretical Computer Science (ENTCS)
seL4: formal verification of an operating-system kernel
Communications of the ACM
Sampling-based program execution monitoring
Proceedings of the ACM SIGPLAN/SIGBED 2010 conference on Languages, compilers, and tools for embedded systems
Runtime verification of interactions: from MSCs to aspects
RV'07 Proceedings of the 7th international conference on Runtime verification
Copilot: a hard real-time runtime monitor
RV'10 Proceedings of the First international conference on Runtime verification
Sampling-based runtime verification
FM'11 Proceedings of the 17th international conference on Formal methods
Java-MOP: a monitoring oriented programming environment for java
TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Experience report: a do-it-yourself high-assurance compiler
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Information and Software Technology
Bounded model checking of high-integrity software
Proceedings of the 2013 ACM SIGAda annual conference on High integrity language technology
Maintaining the health of software monitors
Innovations in Systems and Software Engineering
Software health management: a necessity for safety critical systems
Innovations in Systems and Software Engineering
Runtime verification of microcontroller binary code
Science of Computer Programming
Hi-index | 0.00 |
Runtime verification (RV) is a natural fit for ultra-critical systems, where correctness is imperative. In ultra-critical systems, even if the software is fault-free, because of the inherent unreliability of commodity hardware and the adversity of operational environments, processing units (and their hosted software) are replicated, and fault-tolerant algorithms are used to compare the outputs. We investigate both software monitoring in distributed fault-tolerant systems, as well as implementing fault-tolerance mechanisms using RV techniques. We describe the Copilot language and compiler, specifically designed for generating monitors for distributed, hard real-time systems, and we describe a case study in a Byzantine fault-tolerant airspeed sensor system.