Embedded Software

Edward A. Lee

Advances in Computers (M. Zelkowitz, editor), Vol. 56, Academic Press, London, 2002

Latest version
(Earlier version)


The science of computation has systematically abstracted away the physical world. Embedded software systems, however, engage the physical world. Time, concurrency, liveness, robustness, continuums, reactivity, and resource management must be remarried to computation. Prevailing abstractions of computational systems leave out these non-functional aspects. This chapter explains why embedded software is not just software on small computers, and why it therefore needs fundamentally new views of computation. It suggests component architectures based on a principle called actor-oriented design, where actors interact according to a model of computation, and describes some models of computation that are suitable for embedded software. It then suggests that actors can define interfaces that declare dynamic aspects that are essential to embedded software, such as temporal properties. These interfaces can be structured in a system-level type system that supports the sort of design-time and run-time type checking that conventional software benefits from.