Engineering long-running computing systems that achieve their goals under ever-changing conditions pose significant challenges. Self-adaptation has shown to be a viable approach to dealing with changing conditions. Yet, the capabilities of a self-adaptive system are constrained by its operational design domain (ODD), i.e., the conditions for which the system was built (requirements, constraints, and context). Changes, such as adding new goals or dealing with new contexts, require system evolution. While the system evolution process has been automated substantially, it remains human-driven. Given the growing complexity of computing systems, human-driven evolution will eventually become unmanageable. In this paper, we provide a definition for ODD and apply it to a self-adaptive system. Next, we explain why conditions not covered by the ODD require system evolution. Then, we outline a new approach for self-evolution that leverages the concept of ODD, enabling a system to evolve autonomously to deal with conditions not anticipated by its initial ODD. We conclude with open challenges to realise self-evolution.
翻译:设计能够长期运行并在不断变化的环境中实现目标的工程化计算系统,面临着重大挑战。自适应已被证明是应对环境变化的一种有效方法。然而,自适应系统的能力受限于其运行设计域(ODD),即系统构建时所预设的条件(包括需求、约束和上下文)。当需要添加新目标或应对新环境时,系统必须进行演化。尽管系统演化过程已大幅自动化,但仍需人工驱动。随着计算系统日益复杂化,人工驱动演化将逐渐变得难以管理。本文首先给出了ODD的定义,并将其应用于自适应系统。接着,我们解释了为何超出ODD覆盖范围的条件要求系统演化。然后,我们提出了一种利用ODD概念实现自演化的新方法,使系统能够自主演化以应对初始ODD未预见的情况。最后,我们总结了实现自演化所需解决的开放性挑战。