DocumentCode
2045197
Title
Interface Contracts for TinyOS
Author
Archer, Will ; Levis, Philip ; Regehr, John
Author_Institution
Univ. of Utah, Salt Lake City
fYear
2007
fDate
25-27 April 2007
Firstpage
158
Lastpage
165
Abstract
TinyOS applications are built with software components that communicate through narrow interfaces. Since components enable finegrained 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.
Keywords
computerised instrumentation; network operating systems; program debugging; sensors; TinyOS; application bug; enforce component; interface contract; sensor network node; Application software; Computer bugs; Computer interfaces; Computer science; Contracts; Permission; Software debugging; Software engineering; Software testing; Software tools; Design; Reliability; TinyOS; Validation; Verification; automated testing; design by contract; sensor networks;
fLanguage
English
Publisher
ieee
Conference_Titel
Information Processing in Sensor Networks, 2007. IPSN 2007. 6th International Symposium on
Conference_Location
Cambridge, MA
Print_ISBN
978-1-59593-638-7
Type
conf
DOI
10.1109/IPSN.2007.4379675
Filename
4379675
Link To Document