in that dynamic (or similar ones) can help to build a new process for quality assurance, even for hardly predictable systems.

Following a top-down approach to the issue, we start in Section \[sec:formal\] by introducing a formal framework for the description of systems. We augment it to also include the process of software and system development. Section \[sec:related-work\] provides a short overview on related work. From literature review and practical experience, we introduce four core concepts for the engineering of adaptive systems in Section \[sec:concepts\]. In order to integrate these with our formal framework, Section \[sec:scenarios\] contains an introduction of our notion of scenarios and their application to an incremental software testing process. In Section \[sec:applications\] we discuss which effect scenario coevolution has on a selection of practical software engineering tasks and how it helps implement the core concepts. Finally, Section \[sec:conclusion\] provides a short conclusion.

Formal Framework {#sec:formal}
================

In this section we introduce a formal framework as a basis for our analysis. We first build upon the framework described in [@holzl2011towards] to define adaptive systems and then proceed to reason about the influence of their inherent structure on software architecture.

Describing Adaptive Systems
---------------------------

We roughly adopt the 