Intelligible TinyOS Sensor Systems: Explanations for Embedded Software

Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6967)


As embedded sensing systems are central to developing pervasive, context-aware services, the applications running on these systems should be intelligible to system programmers and to users. Given that sensor systems are programmed in low-level languages, manually writing high-level explanations about their decision model requires knowledge about the system architecture, and is error-prone. We explore the possibility of extracting explanations which are small and expressive, but still preserve bit-level accuracy when needed. We contribute a tool which automatically and soundly generates compact, graphical explanations from sensor software implementation at compile-time. We base our algorithm on the techniques of (i) finite-state machine model extraction from software as used in model checking, and (ii) abstraction of program execution traces. We experiment with extracting explanations from heavyweight, low-level TinyOS applications for a mainstream sensor platform.


Sensor Node Model Check Program Logic Explanation Type Symbolic Execution 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Lim, B.Y., Dey, A.K.: Toolkit to support intelligibility in context-aware applications. In: Proceedings of the 12th ACM International Conference on Ubiquitous Computing, Ubicomp 2010, pp. 13–22. ACM, New York (2010)Google Scholar
  2. 2.
    Hill, J., Szewczyk, R., Woo, A., Hollar, S., Culler, D., Pister, K.: System architecture directions for networked sensors. SIGPLAN Not. 35(11), 93–104 (2000)CrossRefGoogle Scholar
  3. 3.
    Levis, P., Gay, D., Handziski, V., Hauer, J.H., Greenstein, B., Turon, M., Hui, J., Klues, K., Sharp, C., Szewczyk, R., Polastre, J., Buonadonna, P., Nachman, L., Tolle, G., Culler, D., Wolisz, A.: T2: A second generation OS for embedded sensor networks. Technical Report TKN-05-007, Technische Universität Berlin (2005)Google Scholar
  4. 4.
    Rubio, B., Diaz, M., Troya, J.M.: Programming approaches and challenges for wireless sensor networks. In: Proceedings of the Second International Conference on Systems and Networks Communications, ICSNC 2007, pp. 36–43. IEEE Computer Society, Washington, DC, USA (2007)CrossRefGoogle Scholar
  5. 5.
    Ko, A.J., Abraham, R., Beckwith, L., Blackwell, A., Burnett, M., Erwig, M., Scaffidi, C., Lawrance, J., Lieberman, H., Myers, B., Rosson, M.B., Rothermel, G., Shaw, M., Wiedenbeck, S.: The state of the art in end-user software engineering. Accepted for publication in ACM Computing Surveys (2011)Google Scholar
  6. 6.
    Ko, A.J., Myers, B.A., Coblenz, M.J., Aung, H.H.: An exploratory study of how developers seek, relate, and collect relevant information during software maintenance tasks. IEEE Trans. Softw. Eng. 32, 971–987 (2006)CrossRefGoogle Scholar
  7. 7.
    Lim, B.Y., Dey, A.K.: Assessing demand for intelligibility in context-aware applications. In: Proceedings of the 11th International Conference on Ubiquitous Computing, Ubicomp 2009, pp. 195–204. ACM, New York (2009)Google Scholar
  8. 8.
    Bucur, D.: On Software Verification for Sensor Nodes. The Journal of Systems Software 84(10), 1693–1707 (2011)CrossRefGoogle Scholar
  9. 9.
    Clarke, E., Kröning, D., Lerda, F.: A tool for checking ANSI-C programs. In: Jensen, K., Podelski, A. (eds.) TACAS 2004. LNCS, vol. 2988, pp. 168–176. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  10. 10.
    Kroening, D.: Formal verification (2010),
  11. 11.
    Gay, D., Levis, P., von Behren, R.: The nesC language: A holistic approach to networked embedded systems. In: ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pp. 1–11. ACM, New York (2003)Google Scholar
  12. 12.
    Moteiv Corporation: Telos. Ultra low power IEEE 802.15.4 compliant wireless sensor module. Revision B : Humidity, Light, and Temperature sensors with USB (2004),
  13. 13.
    Texas Instruments: MSP430x1xx family — user’s guide (Rev.F) (2006),
  14. 14.
    Underwood, S.: Mspgcc—A port of the GNU tools to the Texas Instruments MSP430 microcontrollers (2003),
  15. 15.
    Gay, D., Levis, P., Culler, D.: Software design patterns for TinyOS. In: Proceedings of the ACM SIGPLAN/SIGBED Conference on languages, compilers, and tools for embedded systems (LCTES), pp. 40–49. ACM, New York (2005)Google Scholar
  16. 16.
    Kothari, N., Millstein, T., Govindan, R.: Deriving state machines from TinyOS programs using symbolic execution. In: Proceedings of the International Conference on Information Processing in Sensor Networks (IPSN), pp. 271–282. IEEE, Los Alamitos (2008)Google Scholar
  17. 17.
    Li, P., Regehr, J.: T-Check: bug finding for sensor networks. In: Proceedings of the 9th International Conference on Information Processing in Sensor Networks (IPSN), pp. 174–185. ACM, New York (2010)Google Scholar
  18. 18.
    Sasnauskas, R., Landsiedel, O., Alizai, M.H., Weise, C., Kowalewski, S., Wehrle, K.: KleeNet: discovering insidious interaction bugs in wireless sensor networks before deployment. In: Proceedings of the 9th International Conference on Information Processing in Sensor Networks (IPSN), pp. 186–196 (2010)Google Scholar
  19. 19.
    Mottola, L., Voigt, T., Österlind, F., Eriksson, J., Baresi, L., Ghezzi, C.: Anquiro: Enabling efficient static verification of sensor network software. In: Proceedings of Workshop on Software Engineering for Sensor Network Applications (SESENA) ICSE(2) (2010)Google Scholar
  20. 20.
    Cooprider, N., Archer, W., Eide, E., Gay, D., Regehr, J.: Efficient memory safety for TinyOS. In: Proceedings of the conference on Embedded Networked Sensor Systems (SenSys), pp. 205–218. ACM, New York (2007)Google Scholar
  21. 21.
    Krunic, V., Trumpler, E., Han, R.: NodeMD: Diagnosing node-level faults in remote wireless sensor systems. In: Proceedings of the International Conference on Mobile Systems, Applications and Services (MobiSys), pp. 43–56. ACM, New York (2007)Google Scholar
  22. 22.
    Kofod-Petersen, A., Cassens, J.: Explanations and context in ambient intelligent systems. In: Kokinov, B., Richardson, D.C., Roth-Berghofer, T.R., Vieu, L. (eds.) CONTEXT 2007. LNCS (LNAI), vol. 4635, pp. 303–316. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  23. 23.
    Dey, A.K., Newberger, A.: Support for context-aware intelligibility and control. In: Proceedings of the 27th International Conference on Human Factors in Computing Systems, CHI 2009, pp. 859–868. ACM, New York (2009)Google Scholar
  24. 24.
    Welbourne, E., Balazinska, M., Borriello, G., Fogarty, J.: Specification and verification of complex location events with panoramic. In: Floréen, P., Krüger, A., Spasojevic, M. (eds.) Pervasive Computing. LNCS, vol. 6030, pp. 57–75. Springer, Heidelberg (2010)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  1. 1.Innovation Centre for Advanced Sensors and Sensor Systems (INCAS3)The Netherlands

Personalised recommendations