Software Engineering Meets Control Theory (2015)

Read abstract

The software engineering community has proposed numerous approaches for making software self-adaptive, drawing inspiration from machine learning and control theory to construct systems that monitor and modify their own behavior to meet specific goals. Control theory, in particular, has received considerable attention as a general methodology for creating adaptive systems. However, control-theoretical software implementations often tend to be ad hoc. While these solutions may work effectively in practice, they make it challenging to understand and reason about the desired properties and behavior of the adaptive software and its controller.

This paper introduces a structured control design process for software systems, enabling the automatic analysis and synthesis of controllers that are guaranteed to exhibit the desired properties and behavior. The process is comprehensively documented and illustrated through an example that demonstrates all the necessary steps for synthesizing a self-adaptive controller. This structured approach offers a systematic way to design adaptive systems with predictable and verifiable performance.