1 Introduction
Managing the evolution of software systems is important in order to preserve the large investments associated with the software. Complex embedded software systems, such as industrial control systems or automotive systems, often consists of several million lines of code and are maintained over many years, sometimes decades, during which the software is exposed for changes continuously. Due to the many changes made over the years, the software systems become larger and more complex. As a consequence, the perspicuity of the system decreases, i.e., it becomes increasingly harder to predict how a change, e.g. a new feature, will impact the behavior of the system. Thereby, it becomes harder to maintain the software, which reflects in development cost and time-to-market. For embedded software systems, which often are multitasking real time systems, an impact analysis is especially difficult as a change's impact on the system's temporal behavior may cause timing errors.