nAIT: A Source Analysis and Instrumentation Framework for nesC Andrew R. Dalton Department of Mathematics and Computer Science, Western Carolina University Cullowhee, North Carolina, 28723 USA and Jason O. Hallstrom School of Computing, Clemson University Clemson, South Carolina, 29634 USA Abstract Automated software engineering methods support the construction, maintenance, and analysis of both new and legacy systems. Their application is commonplace in desktop- and enterprise-class systems due to the productivity and reliability bene- fits they afford. The contribution of this article is to present an applied foundation for extending the use of such methods to the flourishing domain of wireless sensor networks. The objective is to enable developers to construct tools that aid in under- standing both the static and dynamic properties of reactive, event-based systems. We present a static analysis and instrumentation toolkit for the nesC language, the defacto standard for sensor network development. We highlight the novel aspects of the toolkit, analyze its performance, and provide representative case-studies that illustrate its use. Key words: Wireless sensor networks, nesC, static analysis, instrumentation 1 Introduction For desktop- and enterprise-class system developers, automated software en- gineering methods have become important elements of the standard devel- Email addresses:
[email protected] (Andrew R. Dalton),
[email protected] (Jason O. Hallstrom). Preprint submitted to Elsevier 12 December 2008 opment arsenal. Automation tools increase developer productivity, improve the reliability of new systems, and safeguard the reliability of legacy systems undergoing maintenance and evolution. The focus of this article is restricted to automated analysis and instrumentation methods. Even limited to this subset, however, automation benefits span a disparate range of tasks.