Contracts: specifying behavioral compositions in object-oriented systems
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Advanced C++ programming styles and idioms
Advanced C++ programming styles and idioms
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Pattern-oriented software architecture: a system of patterns
Pattern-oriented software architecture: a system of patterns
The Object-Z specification language
The Object-Z specification language
System architecture directions for networked sensors
ASPLOS IX Proceedings of the ninth international conference on Architectural support for programming languages and operating systems
Patterns for time-triggered embedded systems: building reliable applications with the 8051 family of microcontrollers
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects
Requirements Patterns for Embedded Systems
RE '02 Proceedings of the 10th Anniversary IEEE Joint International Conference on Requirements Engineering
The nesC language: A holistic approach to networked embedded systems
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Responsibilities and Rewards: Specifying Design Patterns
Proceedings of the 26th International Conference on Software Engineering
Using Integrated Metamodeling to Define OO Design Patterns with Object-Z and UML
APSEC '04 Proceedings of the 11th Asia-Pacific Software Engineering Conference
Proceedings of the 3rd international conference on Embedded networked sensor systems
MANTIS OS: an embedded multithreaded operating system for wireless micro sensor platforms
Mobile Networks and Applications
Abstractions for safe concurrent programming in networked embedded systems
Proceedings of the 4th international conference on Embedded networked sensor systems
Software design patterns for TinyOS
ACM Transactions on Embedded Computing Systems (TECS) - Special Section LCTES'05
The LiteOS Operating System: Towards Unix-Like Abstractions for Wireless Sensor Networks
IPSN '08 Proceedings of the 7th international conference on Information processing in sensor networks
TinyOS Programming
Amplifying the benefits of design patterns: from specification through implementation
FASE'06 Proceedings of the 9th international conference on Fundamental Approaches to Software Engineering
An empirical analysis of communication links in embedded wireless networks
Proceedings of the 49th Annual Southeast Regional Conference
An animation framework for improving the comprehension of TinyOS programs
Proceedings of the 27th Annual ACM Symposium on Applied Computing
Hi-index | 0.00 |
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.