随着应用场景的变迁和自身复杂性的增长,软件需要具备主动适应环境变化的能力,能够依据环境变化动态调整其行为.软件自适应的实现技术跨越了软件监控、上下文敏感计算、决策和控制理论、软件演化和维护等多个学科分支,如何系统化地构造此类软件,是软件工程领域所面临的巨大挑战.从自适应软件构造与实现这一角度出发,以“感知.决策一执行”软件自适应基本周期为主线,对已有的研究和实践进行综述.给出软件自适应的概念内涵,概述软件自适应活动在感知、决策、执行各环节上的特征分类,阐述面向自适应软件构造、关注程度较高的一系列使能技术。进而在分析典型研究项目现状的基础上,给出自适应软件构造领域的未来主要研究趋势.
Along with the transition of application scenario and the increase of its own complexity, software needs the capability of actively adapting itself to the changes in its environment, which means that it needs to adjust its behavior in response to those changes. The realization of software self-adaptation is closely related to many academic fields such as software monitoring, context-aware computing, decision and control theory, software evolution and maintenance, and etc. It is a great challenge to construct this kind of software systematically in software engineering practice. From the perspective of the construction and implementation of self-adaptive software, this paper reviews the existing research and practices based on the "sensing-decision-execution" basic self-adaptation cycle. This study presents the concept of software self-adaptation and a taxonomy of the characteristics of sensing, decision and execution activities, summary those most focused enabling techniques for constructing adaptive software, analyze a set of typical research projects, and then describe the future research trend in the field of constructing adaptive software.