The increasing complexity of contemporary embedded computing systems requires the use of selfmanagement in order to handle unforeseen changes in both hardware and control software. The idea behind computer systems capable of self-management is a complex concept compound by many aspects
related to both artificial intelligence and awareness. Here, the biggest challenge is still the question how to properly develop and verify such systems. In this paper, we present a formal approach to specifying
embedded systems capable of self-management. In our approach, we use the ASSL (autonomic system specification language) framework as a development environment, where self-management features of embedded systems are specified and an implementation is automatically generated. ASSL exposes a rich
set of specification constructs that help developers specify event-driven embedded systems. Hardware is sensed via special metrics intended to drive events and self-management policies that help the system
handle critical situations in an autonomous reactive manner. We present this approach along with a simulation case study where ASSL is used to develop control software for the wide-angle camera carried on board NASA’s Voyager II Spacecraft. Copyright 2011 John Wiley & Sons, Ltd.