skip to main content
10.1145/1236360.1236382acmconferencesArticle/Chapter ViewAbstractPublication PagescpsweekConference Proceedingsconference-collections
Article

Interface contracts for TinyOS

Published: 25 April 2007 Publication History

Abstract

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.

References

[1]
Cristian Cadar, Vijay Ganesh, Peter M. Pawlowski, David L. Dill, and Dawson R. Engler. Exe: Automatically generating inputs of death. In Proc. of the 13th ACM Conf. on Computer and Communications Security (CCS), Alexandria, VA, October 2006.
[2]
Arindam Chakrabarti, Luca de Alfaro, Thomas A. Henzinger, Marcin Jurdzinski, and Freddy Y. C. Mang. Interface compatibility checking for software modules. In Proc. of the 14th Intl. Conf. on Computer Aided Verification (CAV), pages 428--441, 2002.
[3]
Nathan Cooprider and John Regehr. Pluggable abstract domains for analyzing embedded software. In Proc. of the 2006 Conf. on Languages, Compilers, and Tools for Embedded Systems (LCTES), pages 44--53, Ottawa, Canada, June 2006.
[4]
David Gay, Phil Levis, Robert von Behren, Matt Welsh, Eric Brewer, and David Culler. The nesC language: A holistic approach to networked embedded systems. In Proc. of the Conf. on Programming Language Design and Implementation (PLDI), pages 1--11, San Diego, CA, June 2003.
[5]
Dimitra Giannakopoulou, Corina S. Pasareanu, and Jamieson M. Cobleigh. Assume-guarantee verification of source code with design-level assumptions. In Proc. of the 26th Intl. Conf. on Software Engineering (ICSE), pages 211--220, Edinburgh, Scotland, May 2004.
[6]
Lin Gu and John A. Stankovic. t-kernel: Providing reliable OS support to wireless sensor networks. In Proc. of the 4th ACM Conf. on Embedded Networked Sensor Systems (SenSys), Boulder, CO, November 2006.
[7]
Jason Hill, Robert Szewczyk, Alec Woo, Seth Hollar, David Culler, and Kristofer Pister. System architecture directions for networked sensors. In Proc. of the 9th Intl. Conf. on Architectural Support for Programming Languages and Operating Systems (ASPLOS), pages 93--104, Cambridge, MA, November 2000.
[8]
Philip Levis. Amqueue implementation, 2006. http://tinyos.cvs.sourceforge.net/*checkout*/tinyos/tinyos-2.x/tos/system/AMQueueImplP.nc.
[9]
Philip Levis. TinyOS Extension Proposal (TEP) 107: TinyOS 2.x Boot Sequence, 2006. http://tinyos.cvs.sourceforge.net/*checkout*/tinyos/tinyos-2.x/doc/html/tep107.html.
[10]
Philip Levis. TinyOS Extension Proposal (TEP) 116: Packet Protocols, 2006. http://tinyos.cvs.sourceforge.net/*checkout*/tinyos/tinyos-2.x/doc/html/tep116.html.
[11]
Bertrand Meyer. Applying design by contract. IEEE Computer, 25(10):40--51, October 1992.
[12]
George C. Necula, Scott McPeak, S. P. Rahul, and Westley Weimer. CIL: Intermediate language and tools for analysis and transformation of C programs. In Proc. of the Intl. Conf. on Compiler Construction (CC), pages 213--228, Grenoble, France, April 2002.
[13]
Nithya Ramanathan, Kevin Chang, Rahul Kapur, Lewis Girod, Eddie Kohler, and Deborah Estrin. Sympathy for the sensor network debugger. In Proc. of the 3rd ACM Conf. on Embedded Networked Sensor Systems (SenSys), pages 255--267, San Diego, CA, November 2005.
[14]
John Regehr, Nathan Cooprider, Will Archer, and Eric Eide. Efficient type and memory safety for tiny embedded systems. In Linguistic Support for Modern Operating Systems (PLOS), San Jose, CA, October 2006.
[15]
Ram Kumar Rengaswamy, Eddie Kohler, and Mani Srivastava. Software-based memory protection in sensor nodes. In Proc. of the 3rd Workshop on Embedded Networked Sensors (EmNets), Cambridge, MA, May 2006.
[16]
Ben L. Titzer. Virgil: Objects on the head of a pin. In Proc. of the ACM Conf. on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), Portland, OR, March 2006.
[17]
Ben L. Titzer, Daniel Lee, and Jens Palsberg. Avrora: Scalable sensor network simulation with precise timing. In Proc. of the 4th Intl. Conf. on Information Processing in Sensor Networks (IPSN), Los Angeles, CA, April 2005.
[18]
P. Volgyesi, M. Maroti, S. Dora, E. Osses, and A. Ledeczi. Software composition and verification for sensor networks. Science of Computer Programming, 56(1-2):191--210, April 2005.

Cited By

View all
  • (2016)A Wireless Monitoring System for Cracks on the Surface of Reactor Containment BuildingsSensors10.3390/s1606088316:6(883)Online publication date: 14-Jun-2016
  • (2015)Detecting latent cross-platform API violationsProceedings of the 2015 IEEE 26th International Symposium on Software Reliability Engineering (ISSRE)10.1109/ISSRE.2015.7381841(484-495)Online publication date: 2-Nov-2015
  • (2014)Bringing Modern Unit Testing Techniques to SensornetsACM Transactions on Sensor Networks10.1145/262942211:2(1-41)Online publication date: 4-Aug-2014
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
IPSN '07: Proceedings of the 6th international conference on Information processing in sensor networks
April 2007
592 pages
ISBN:9781595936387
DOI:10.1145/1236360
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 25 April 2007

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. TinyOS
  2. automated testing
  3. design by contract
  4. sensor networks
  5. validation

Qualifiers

  • Article

Conference

IPSN07
Sponsor:

Acceptance Rates

Overall Acceptance Rate 143 of 593 submissions, 24%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 08 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2016)A Wireless Monitoring System for Cracks on the Surface of Reactor Containment BuildingsSensors10.3390/s1606088316:6(883)Online publication date: 14-Jun-2016
  • (2015)Detecting latent cross-platform API violationsProceedings of the 2015 IEEE 26th International Symposium on Software Reliability Engineering (ISSRE)10.1109/ISSRE.2015.7381841(484-495)Online publication date: 2-Nov-2015
  • (2014)Bringing Modern Unit Testing Techniques to SensornetsACM Transactions on Sensor Networks10.1145/262942211:2(1-41)Online publication date: 4-Aug-2014
  • (2013)Modeling and Analysis of TinyOS Sensor Node FirmwareACM Transactions on Embedded Computing Systems10.1145/2406336.240634112:1(1-23)Online publication date: 1-Jan-2013
  • (2013)Diagnostic Tools for Wireless Sensor NetworksJournal of Network and Systems Management10.1007/s10922-012-9240-621:3(408-452)Online publication date: 1-Sep-2013
  • (2013)State Space Reduction for Sensor Networks Using Two-Level Partial Order ReductionProceedings of the 14th International Conference on Verification, Model Checking, and Abstract Interpretation - Volume 773710.1007/978-3-642-35873-9_30(515-535)Online publication date: 20-Jan-2013
  • (2013)Temporal Monitors for TinyOSRuntime Verification10.1007/978-3-642-35632-2_12(96-109)Online publication date: 2013
  • (2012)Experiences from a decade of TinyOS developmentProceedings of the 10th USENIX conference on Operating Systems Design and Implementation10.5555/2387880.2387901(207-220)Online publication date: 8-Oct-2012
  • (2012)A STATIC-LEACH WSNs for Hazardous Materials MonitoringAdvanced Materials Research10.4028/www.scientific.net/AMR.463-464.261463-464(261-265)Online publication date: Feb-2012
  • (2012)State machine model-based middleware for control and processing in industrial wireless sensor and actuator networksIEEE 10th International Conference on Industrial Informatics10.1109/INDIN.2012.6301227(1142-1147)Online publication date: Jul-2012
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media