Automated Multi-Objective Control Strategies for Self-Adaptive Software Design (2015)

Read abstract

As software continues to grow in complexity, the demands on its behavior are not becoming any easier to satisfy. Applications are expected to deliver a certain quality of service, adapt to changing environmental conditions, and handle runtime variations that could not have been anticipated during the design phase. To address this growing complexity, control theory has been proposed as a method for managing software’s dynamic behavior, reducing the need for human intervention. However, existing control-theoretical solutions are often highly specialized for specific applications or fail to manage the complexity of multiple interacting components and objectives.

In this paper, we present an automated control synthesis methodology that takes as input the configurable software components (or “knobs”) and the desired goals. Our approach automatically constructs a control system that manages the specified knobs while guaranteeing the achievement of these goals. We validate our methodology through experimental studies on three different software applications, demonstrating that our automated approach effectively handles the complexity of multiple knobs and objectives. This work offers a scalable solution for dynamically managing complex software systems.