  Modern systems are designed to operate in increasingly variable and uncertain
environments. Not only are these environments complex, in the sense that they
contain a tremendous number of variables, but they also change over time.
Systems must be able to adjust their behaviour at run-time to manage these
uncertainties. These self-adaptive systems have been studied extensively. This
paper proposes a definition of a safety-critical self-adaptive system and then
describes a taxonomy for classifying adaptations into different types based on
their impact on the system's safety and the system's safety case. The taxonomy
expresses criteria for classification and then describes specific criteria that
the safety case for a self-adaptive system must satisfy, depending on the type
of adaptations performed. Each type in the taxonomy is illustrated using the
example of a safety-critical self-adaptive water heating system.
