论文部分内容阅读
软件系统已经越来越深地嵌入到人类社会和物理社会中,软件系统在运行时会与其他软硬件系统、设备和用户发生密切的交互。当前软件系统运行和交互环境呈现出动态多变及不确定的特征,由此导致软件系统自身行为也具有一定程度的变化性。为使软件系统能根据运行和交互环境,及自身变化对其行为进行自主控制和调节,以持续提供服务、满足用户需求,自适应性成为软件系统开发的重要关注点。 近十年来,自适应软件系统的研究得到快速发展,已经成为软件工程领域,尤其是需求工程领域的热点话题。主要研究工作分为系统的自适应逻辑建模、系统的自适应机制构建、运行时需求验证、运行时优化决策、自适应系统设计决策、系统开发方法等方面。 从需求工程的角度看,软件系统的复杂性及其与外部环境交互的复杂性和不确定性导致软件系统的需求及交互环境的变化规律难以描述。其次,自适应机制的建模需要依赖决策知识,即从先验知识中抽象出参考模型,并依据参考模型确定自适应策略。然而,先验知识可能是不完备的,无法覆盖所有的运行时状况,形成的参考模型具有不确定性。再次,由于受运行环境变化无法预期的影响,软件行为也具有不确定性,导致系统非功能需求的满足存在不确定性。这些不确定性都给软件系统的自适应机制建模带来很大挑战。现有相关工作在处理需求不确定时自适应过程、决策知识不确定时自适应机制、以及行为不确定时的非功能需求满足性问题三个方面仍缺乏有效方法。 本文首先系统性地综述了本领域现有工作,从系统建模方法、需求工程活动、软件质量属性和自适应软件系统的应用领域四个视角对相关文献进行了总结归纳。通过对研究主题的提炼和抽取,将本文研究重点锁定在处理软件系统的不确定性问题方面,并将研究关注点聚焦为系统建模和三个递进的在线决策问题上。 针对自适应系统不确定性的建模和描述,从面向目标的建模方法出发,分别构建软件需求模型、环境模型和软件配置模型;通过模糊逻辑统一刻画质量需求满意度、环境变量和软件配置参数的变化规律。针对自适应系统的自适应逻辑建模,提出根据目标模型识别出可调节目标,构建自适应目标模型的过程。 针对环境和需求不确定时的决策问题,提出一种基于模糊控制的自适应决策机制,通过控制机制和模糊推理,根据环境的不确定变化求解在线优化决策。该机制构建了质量需求、环境和软件配间的影响关系;根据变量不确定性的模糊逻辑描述和影响关系构建启发式推理规则,基于模糊推理过程实现量化的推理计算;提出了基于前馈-反馈控制结构的自适应算法,并结合MAPE-K结构设计软件自适应组件,用于实现自适应过程。 针对决策知识不确定时的决策问题,提出一种基于学习的自适应决策机制,通过系统辨识的思想,在线增量式的获取决策知识。该机制分非线性的模糊系统和线性的模糊系统两种情况讨论了软件系统模型,分别模拟具有部分决策知识和无任何决策知识的情况;设计了推理规则参数的学习问题和学习过程;从运行时自适应决策结果中增量式的提取新决策知识,用于参数的优化和修正;并将获得的参数存储在推理规则库中,用于支持后续的自适应决策。 最后,针对软件行为不确定时的决策问题,将业务行为决策过程与需求验证过程有机结合,提出基于验证的自适应决策机制。该机制基于模式映射的模型转换方法,将需求目标模型转换为相应的行为模型;引入系统任务的可靠性规约,描述任务失效概率;将行为模型和任务的可靠性规约融合为离散时间马尔可夫链;并通过概率模型检验求解满足可靠性的系统决策配置。 本文建模过程和决策机制为自适应软件系统的设计和开发提供了具有通用性的理论依据和技术细节。机制的可行性和有效性均通过案例研究和仿真实验进行了评估和验证。 未来工作的重点主要集中在系统行为仿真及性质验证、智能算法与自适应软件决策、软计算与不确定性处理、控制论与自适应机制四个方面。