Bounded Model Checking Using Satisfiability Solving
Formal Methods in System Design
The nesC language: A holistic approach to networked embedded systems
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
TOSSIM: accurate and scalable simulation of entire TinyOS applications
Proceedings of the 1st international conference on Embedded networked sensor systems
Race checking by context inference
Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation
Software design patterns for TinyOS
LCTES '05 Proceedings of the 2005 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
Avrora: scalable sensor network simulation with precise timing
IPSN '05 Proceedings of the 4th international symposium on Information processing in sensor networks
Interface contracts for TinyOS
Proceedings of the 6th international conference on Information processing in sensor networks
Worldsens: development and prototyping tools for application specific wireless sensors networks
Proceedings of the 6th international conference on Information processing in sensor networks
NodeMD: diagnosing node-level faults in remote wireless sensor systems
Proceedings of the 5th international conference on Mobile systems, applications and services
Efficient memory safety for TinyOS
Proceedings of the 5th international conference on Embedded networked sensor systems
Deriving State Machines from TinyOS Programs Using Symbolic Execution
IPSN '08 Proceedings of the 7th international conference on Information processing in sensor networks
Decision Procedures: An Algorithmic Point of View
Decision Procedures: An Algorithmic Point of View
Spin model checker, the: primer and reference manual
Spin model checker, the: primer and reference manual
ICESS '09 Proceedings of the 2009 International Conference on Embedded Software and Systems
Towards Verifying Correctness of Wireless Sensor Network Applications Using Insense and Spin
Proceedings of the 16th International SPIN Workshop on Model Checking Software
Surviving sensor network software faults
Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles
TOSThreads: thread-safe and non-invasive preemption in TinyOS
Proceedings of the 7th ACM Conference on Embedded Networked Sensor Systems
Bug-Free Sensors: The Automatic Verification of Context-Aware TinyOS Applications
AmI '09 Proceedings of the European Conference on Ambient Intelligence
SMT-Based Bounded Model Checking for Embedded ANSI-C Software
ASE '09 Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering
T-check: bug finding for sensor networks
Proceedings of the 9th ACM/IEEE International Conference on Information Processing in Sensor Networks
Software verification for TinyOS
Proceedings of the 9th ACM/IEEE International Conference on Information Processing in Sensor Networks
Anquiro: enabling efficient static verification of sensor network software
Proceedings of the 2010 ICSE Workshop on Software Engineering for Sensor Network Applications
KLEE: unassisted and automatic generation of high-coverage tests for complex systems programs
OSDI'08 Proceedings of the 8th USENIX conference on Operating systems design and implementation
Intelligible TinyOS sensor systems: explanations for embedded software
CONTEXT'11 Proceedings of the 7th international and interdisciplinary conference on Modeling and using context
An evolutionary framework for routing protocol analysis in wireless sensor networks
EvoApplications'13 Proceedings of the 16th European conference on Applications of Evolutionary Computation
From software verification to `everyware' verification
Computer Science - Research and Development
Hi-index | 0.00 |
We consider software written for networked, wireless sensor nodes, and specialize software verification techniques for standard C programs in order to locate programming errors in sensor applications before the software's deployment on motes. Ensuring the reliability of sensor applications is challenging: low-level, interrupt-driven code runs without memory protection in dynamic environments. The difficulties lie with (i) being able to automatically extract standard C models out of the particular flavours of embedded C used in sensor programming solutions, and (ii) decreasing the resulting program's state space to a degree that allows practical verification times. We contribute a platform-dependent, OS-independent software verification tool for OS-wide programs written in MSP430 embedded C with asynchronous hardware interrupts. Our tool automatically translates the program into standard C by modelling the MCU's memory map and direct memory access. To emulate the existence of hardware interrupts, calls to hardware interrupt handlers are added, and their occurrence is minimized with a double strategy: a partial-order reduction technique, and a supplementary reachability check to reduce overapproximation. This decreases the program's state space, while preserving program semantics. Safety specifications are written as C assertions embedded in the code. The resulting sequential program is then passed to CBMC, a bounded software verifier for sequential ANSI C. Besides standard errors (e.g., out-of-bounds arrays, null-pointer dereferences), this tool chain is able to verify application-specific assertions, including low-level assertions upon the state of the registers and peripherals. Verification for wireless sensor network applications is an emerging field of research; thus, as a final note, we survey current research on the topic.