Embedded Software
Edward A. Lee
Advances in Computers
(M. Zelkowitz, editor), Vol. 56, Academic Press, London, 2002
Latest version
(Earlier version)
ABSTRACT
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.