Skip to content

Utility Function

thomas-vogel edited this page Jan 30, 2018 · 5 revisions

To evaluate solutions for self-adaptation, we consider among others the utility of the adaptable software. For this purpose, a utility function is required that computes the utility of the software based on the architectural CompArch model describing the software. The utility of the adaptable software represents the quality of the software that is determined by the self-adaptation solutions and how well the solution manages the software. Thus, a self-adaptation solution achieves a certain utility for the adaptable software.

Developers provide their individually utility functions by implementing the interface de.mdelab.simulator.UtilityFunction.

A generic utility function is not meaningful since the utility of an adaptable software does not only depend on the architecture described in a CompArch model but also on the user-defined issues and adaptation strategies. Different issues that exist in the software typically decrease the utility to a different degree while applying different adaptation strategies increases the utility to a different degree. Thus, the utility cannot be generically computed as the computation requires knowledge about the user-defined issues and adaptation strategies.

For the self-healing and self-optimization case studies of mRUBiS, we provide corresponding utility functions that are specific to mRUBiS and take the issues and adaptation strategies for mRUBiS into account.