System architecture directions for networked sensors
ASPLOS IX Proceedings of the ninth international conference on Architectural support for programming languages and operating systems
Computer
CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Interface Compatibility Checking for Software Modules
CAV '02 Proceedings of the 14th International Conference on Computer Aided Verification
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
Assume-Guarantee Verification of Source Code with Design-Level Assumptions
Proceedings of the 26th International Conference on Software Engineering
Software composition and verification for sensor networks
Science of Computer Programming - Special issue on new software composition concepts
Sympathy for the sensor network debugger
Proceedings of the 3rd international conference on Embedded networked sensor systems
Pluggable abstract domains for analyzing embedded software
Proceedings of the 2006 ACM SIGPLAN/SIGBED conference on Language, compilers, and tool support 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
Virgil: objects on the head of a pin
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
EXE: automatically generating inputs of death
Proceedings of the 13th ACM conference on Computer and communications security
t-kernel: providing reliable OS support to wireless sensor networks
Proceedings of the 4th international conference on Embedded networked sensor systems
Efficient type and memory safety for tiny embedded systems
Proceedings of the 3rd workshop on Programming languages and operating systems: linguistic support for modern operating systems
Integrating concurrency control and energy management in device drivers
Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles
Deriving State Machines from TinyOS Programs Using Symbolic Execution
IPSN '08 Proceedings of the 7th international conference on Information processing in sensor networks
Inter-context control-flow and data-flow test adequacy criteria for nesC applications
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Lightweight monitoring of sensor software
Proceedings of the 2009 ACM symposium on Applied Computing
Bug-Free Sensors: The Automatic Verification of Context-Aware TinyOS Applications
AmI '09 Proceedings of the European Conference on Ambient Intelligence
T-check: bug finding for sensor networks
Proceedings of the 9th ACM/IEEE International Conference on Information Processing in Sensor Networks
On the potential of software rejuvenation for long-running sensor network deployments
Proceedings of the 2010 ICSE Workshop on Software Engineering for Sensor Network Applications
Scoped identifiers for efficient bit aligned logging
Proceedings of the Conference on Design, Automation and Test in Europe
On software verification for sensor nodes
Journal of Systems and Software
Information and Software Technology
Towards a model checker for Nesc and wireless sensor networks
ICFEM'11 Proceedings of the 13th international conference on Formal methods and software engineering
Experiences from a decade of TinyOS development
OSDI'12 Proceedings of the 10th USENIX conference on Operating Systems Design and Implementation
Modeling and Analysis of TinyOS Sensor Node Firmware: A CSP Approach
ACM Transactions on Embedded Computing Systems (TECS) - Special Issue on Modeling and Verification of Discrete Event Systems
Diagnostic Tools for Wireless Sensor Networks: A Comparative Survey
Journal of Network and Systems Management
Hi-index | 0.00 |
TinyOS applications are built with software components that communicate through narrow interfaces. Since components enable fine-grained code reuse, this approach has been successful in creating applications that make very efficient use of the limited code and data memory on sensor network nodes. However, the other important benefit of components---rapid application development through black-box reuse---remains largely unrealized because in many cases interfaces have implied usage constraints that can be the source of frustrating program errors. Developers are commonly forced to read the source code for components, partially defeating the purpose of using components in the first place. Our research helps solve these problems by allowing developers to explicitly specify and enforce component interface contracts. Due to the extensive reuse of the most common interfaces, implementing contracts for a small number of frequently reused interfaces permitted us to extensively check a number of applications. We uncovered some subtle and previously unknown bugs in applications that have been in common use for years.