R$ so that $S = S' \otimes R$ and $S'$ is a multi-agent system. We argue that this transitivity is not only justified but a crucial point for systems development of adaptive systems: Agents tend to utilize their environment to fulfill their own goals and can thus “leak” their goals into other system components. Not that Condition (2) of Definition \[def:mas\] ensures that not every system constructed by composition is regarded a multi-agent system; it is necessary to feature agents with (at least slightly) differing adaptation properties.

For the remainder of this paper, we will apply Definition \[def:mas\] “backwards”: Whenever we look at a self-adaptive system $S$, whose goals or fitnesses can be split into several sub-goals or sub-fitnesses we can regard $S$ as a multi-agent system. Using this knowledge, we can apply design patterns from multi-agent systems to all self-adaptive systems without loss of generality. Furthermore, we need to be aware that especially if we do not explicitly design multi-agent coordination between different sub-goals, such a coordination will be done implicitly. Essentially, there is no way around generalizing software engineering approaches for self-adaptive systems to potentially adversarial components.

Related Work {#sec:related-work}
============

Many researchers and practitioners in recent years 