Software composition and verification for sensor networks

Component-based design has become a necessity for networked embedded systems where hardware platforms come in a great variety and evolve extremely rapidly. Operating system components and higher level middleware services call for modular software construction along clear interfaces. The way we describe these interfaces and process the captured information is of crucial importance for exploiting the benefits of component-based design. In this paper we present a model based approach to the development of embedded applications with a special emphasis on interface specification. The proposed formalism captures the temporal and type aspects of interfaces and supports the composition and verification of components. Along with the formal definition of the proposed interface language and component compatibility rules, we present a modeling environment targeting TinyOS, a representative embedded operating system. Two prototype tools are also described that check the composability of components based on their interface models and verify that the implementation of a component matches its formal model, respectively.

[1]  David E. Culler,et al.  The nesC language: A holistic approach to networked embedded systems , 2003, PLDI '03.

[2]  Klaus Schneider Verification of Reactive Systems , 2004, Texts in Theoretical Computer Science.

[3]  Gabor Karsai,et al.  Composing Domain-Specific Design Environments , 2001, Computer.

[4]  Gabor Karsai,et al.  Smart Dust: communicating with a cubic-millimeter computer , 2001 .

[5]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[6]  Ákos Lédeczi,et al.  Component-Based Development of Networked Embedded Applications , 2002, EUROMICRO.

[7]  Nancy A. Lynch,et al.  Using I/O automata for developing distributed systems , 2000 .

[8]  Gerard J. Holzmann,et al.  The SPIN Model Checker - primer and reference manual , 2003 .

[9]  Mats Carlsson,et al.  SICStus Prolog User''s Manual , 1993 .

[10]  Gerard J. Holzmann,et al.  The SPIN Model Checker , 2003 .

[11]  Robert Szewczyk,et al.  System architecture directions for networked sensors , 2000, ASPLOS IX.

[12]  Ji Wang,et al.  Slicing Hierarchical Automata for Model Checking UML Statecharts , 2002, ICFEM.

[13]  Yassine Lakhnech,et al.  Hierarchical Automata as Model for Statecharts , 1997, ASIAN.

[14]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[15]  Klaus Schneider,et al.  Verification of Reactive Systems: Formal Methods and Algorithms , 2003 .

[16]  Stephan Merz,et al.  Model Checking , 2000 .

[17]  Murali Sitaraman,et al.  Foundations of component-based systems , 2000 .

[18]  Nicoletta Sabadini,et al.  Hierarchical Automata and P-systems , 2003, Electron. Notes Theor. Comput. Sci..

[19]  P. Volgyesi,et al.  Component-based development of networked embedded applications , 2002, Proceedings. 28th Euromicro Conference.

[20]  Thomas A. Henzinger,et al.  Interface automata , 2001, ESEC/FSE-9.

[21]  Thomas A. Henzinger,et al.  Interface Compatibility Checking for Software Modules , 2002, CAV.

[22]  Anneke Kleppe,et al.  The Object Constraint Language: Getting Your Models Ready for MDA , 2003 .