Self-adaptation enables a software system to deal with uncertainties that are difficult to anticipate before deployment, such as dynamic availability of resources and fluctuating workloads. Self-adaptation is realized by adding a feedback loop to the system that collects runtime data to resolve the uncertainties and adapts the system to realize its goals (i.e., adaptation goals). A common approach to ensure that the system complies with the adaptation goals is using formal techniques at runtime. Yet, existing approaches have three limitations that affect their practical applicability: (i) they ignore correctness of the behavior of the feedback loop, (ii) they rely on exhaustive verification at runtime to select adaptation options to realize the adaptation goals, which is time and resource demanding, and (iii) they provide limited or no support for changing adaptation goals at runtime. To tackle these shortcomings, we contribute ActivFORMS (Active FORmal Models for Self-adaptation), a reusable end-to-end approach for engineering self-adaptive systems that spans the design, deployment, runtime adaptation, and evolution of a feedback loop. We also contribute ActivFORMSi, a tool-supported instance of ActivFORMS. The approach relies on formally verified models that are directly deployed and executed using a model execution engine. At runtime the feedback loop selects adaptation options that realize the adaptation goals in an efficient manner using statistical model checking. The approach offers basic support for changing adaptation goals and evolving verified models of the feedback. We validate the approach for an IoT application for building security monitoring deployed in Leuven. The results demonstrate that the approach supports correct behavior of the feedback loop, efficiently achieves the adaptation goals, and supports changing adaptation goals at runtime, for a practical system.
翻译:自适应使软件系统能够处理难以在部署前预测的不确定性,如资源动态可用性和工作量波动。自我适应是通过在收集运行时间数据以解决不确定性并调整系统以实现其目标(即适应目标)的系统中增加一个反馈循环来实现的。一种确保系统符合适应目标的共同方法正在运行时使用正式的技术。然而,现有方法有三项限制,影响其实际适用性:(一)它们忽视反馈循环行为的正确性,(二)它们依靠在运行时进行彻底的核查,选择适应选项以实现适应目标,这是时间和资源要求,以及(三)它们为在运行时改变适应目标提供有限或没有支持。为了克服这些缺陷,我们协助AtivFORMS(适应性潜在潜在调整模型)在运行时使用正式的自适应模型,一种可重新使用的自适应模式,支持设计、部署、运行时间调整和反馈循环的演进。我们还在运行的AtivFORMS目标中选择了运行阶段的调整,一个工具支持的流程化工具执行方式。