ABSTRACT
In the domain of desktop software, design patterns have had a profound impact; they are applied ubiquitously across a broad range of applications. Patterns serve both to promulgate expert knowledge and as a vocabulary for documenting software design. The result is higher-quality software, reduced development effort, and improved documentation.
This impact has yet to be felt in the emerging domain of embedded network software. The applications are characterized by highly distributed, reactive computations executed over resource-constrained processors; they present a host of new design challenges. Without a coherent repository of expert solutions, best practices do not emerge, design flaws are repeated, and developer communication is hindered.
In this paper, we initiate a pattern catalog for embedded network software. The contributions are two-fold. First, we present three new design patterns distilled from a careful analysis of expert-crafted software. Second, we present a formalism for specifying the structural requirements of such patterns. The resulting specifications provide a rigorous foundation for pattern identification and documentation.
- J. Barwise. Handbook of Mathematical Logic, chapter An introduction to first-order logic, pages 5--46. North-Holland Publication Co., 1978.Google Scholar
- S. Bhatti et al. MANTIS OS: An embedded multithreaded operating system for wireless micro sensor platforms. Mobile Networks and Applications, 10(4):563--579, 2005. Google ScholarDigital Library
- F. Buschmann et al. Pattern-Oriented Software Architecture: A System of Patterns. John Wiley & Sons, Inc., New York, NY USA, 1996. Google ScholarDigital Library
- Q. Cao et al. The LiteOS operating system: Towards unix-like abstractions for wireless sensor networks. In IPSN'08, pages 233--244. IEEE, April 2008. Google ScholarDigital Library
- J. Coplien. Advanced C++ Programming Styles and Idioms. Addison-Wesley, Boston, MA USA, 1992. Google ScholarDigital Library
- D. Doolin and N. Sitar. Wireless sensors for wildfire monitoring. In SPIE Smart Structures/NDE, pages 477--484. SPIE Press, Mar. 2005.Google Scholar
- A. Eden. Formal specification of oo design. In ICMDE'01, pages 1--38. Concordia Uni., Nov. 2001.Google Scholar
- G. Eidson et al. The South Carolina Digital Watershed: End-to-end support for realtime management of water resources. In IRA-DSN'09, pages 9--16, May 2009.Google Scholar
- E. Gamma et al. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, MA USA, 1995. Google ScholarDigital Library
- D. Gay et al. The nesC language: A holistic approach to networked embedded systems. In ACM SIGPLAN PLDI, pages 1--11. ACM Press, June 2003. Google ScholarDigital Library
- D. Gay, P. Levis, and D. Culler. Software design patterns for tinyos. Transactions on Embedded Computing Systems, 6(4):Article 22, 2007. Google ScholarDigital Library
- S. Glaser. Some real-world applications of wireless sensor nodes. In SPIE Smart Structures/NDE, pages 344--355. SPIE Press, Mar. 2004.Google Scholar
- J. Hallstrom et al. Amplifying the benefits of design patterns: From specification through implementation. In Foundational Approaches to Software Engineering, pages 214--229. Springer-Verlag, Mar. 2006. Google ScholarDigital Library
- R. Helm, I. Holland, and D. Gangopadhyay. Contracts: Specifying behavioral compositions in object-oriented systems. In OOPSLA, pages 169--180. ACM Press, Oct. 1990. Google ScholarDigital Library
- J. Hill et al. System architecture directions for networked sensors. In ASPLOS, pages 93--104. ACM Press, Nov. 2000. Google ScholarDigital Library
- S. Kim and D. Carrington. Using integrated metamodeling to define OO design patterns with Object-Z and UML. In APSEC'04, pages 257--264. IEEE Computer Society, Nov. 2004. Google ScholarDigital Library
- S. Konrad and B. Cheng. Requirements patterns for embedded systems. In IEEE RE'02, pages 127--136. IEEE Computer Society, Sep. 2002. Google ScholarDigital Library
- P. Levis. Tinyos programming. http://csl.stanford.edu/~pal/pubs/tinyos-programming.pdf, June 2006. Google ScholarDigital Library
- W. McCartney and N. Sridhar. Abstractions for safe concurrent programming in networked embedded systems. In SenSys, pages 167--180. ACM, Oct. 2006. Google ScholarDigital Library
- Moteiv Corporation. Tmote Sky datasheet. www.moteiv.com/products/docs/tmote-sky-datasheet.pdf, 2006.Google Scholar
- C. Mwelwa and M. Pont. Two simple patterns to support the development of reliable embedded systems. In Viking PLoP'03, pages 17--26. Hillside Europe, Sep. 2003.Google Scholar
- M. Pont. Patterns for Time-Triggered Embedded Systems: Building Reliable Applications with the 8051 Family of Microcontrollers. ACM Press, Aug. 2001. Google ScholarDigital Library
- M. Pont et al. Prototyping time-triggered embedded systems using PC hardware. In EuroPLoP'03, pages 691--716. Universitäts Verlag Konstanz, June 2003.Google Scholar
- M. Pont and C. Mwelwa. Developing reliable embedded systems using 8051 and ARM processors: Towards a new pattern language. In Viking PLoP'03, pages 1--18. Hillside Europe, Sept. 2003.Google Scholar
- M. Pont and R. Ong. Using watchdog timers to improve the ttc embedded systems. In Viking PLoP, pages 159--200. MSBS, ApS, Sept. 2002.Google Scholar
- D. Schmidt et al. Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects. John Wiley & Sons, Inc., 2000. Google ScholarDigital Library
- G. Smith. The Object-Z Specification Language. Kluwer Academic Publishers, Norwell, MA USA, 2000. Google ScholarDigital Library
- N. Soundarajan and J. Hallstrom. Responsibilities and rewards: Specifying design patterns. In ICSE'04, pages 666--675. IEEE Computer Society, May 2004. Google ScholarDigital Library
- T. Taibi and D. Ngo. Formal specification of design patterns -- a balanced approach. Journal of Object Technology, 2(4):127--140, 2003.Google ScholarCross Ref
- G. Tolle et al. A macroscope in the redwoods. In SenSys'05, pages 51--63. ACM Press, Nov. 2005. Google ScholarDigital Library
- S. Wahba et al. NePTune: Optimizing sensor networks. In ICCCN'08, pages (cd--rom). IEEE Computer Society, Aug. 2008.Google Scholar
Index Terms
- Initiating a design pattern catalog for embedded network systems
Recommendations
Software design patterns for TinyOS
Special Section LCTES'05We present design patterns used by software components in the TinyOS sensor network operating system. They differ significantly from traditional software design patterns because of the constraints of sensor networks and to TinyOS's focus on static ...
Software design patterns for TinyOS
LCTES '05: Proceedings of the 2005 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systemsWe present design patterns used by software components in the TinyOS sensor network operating system. They differ significantly from traditional software design patterns due to the constraints of sensor networks, and to TinyOS's focus on static ...
Software design patterns for TinyOS
Proceedings of the 2005 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systemsWe present design patterns used by software components in the TinyOS sensor network operating system. They differ significantly from traditional software design patterns due to the constraints of sensor networks, and to TinyOS's focus on static ...
Comments