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 fo...
Sally K. Wahba, Jason O. Hallstrom, Neelam Soundar