论文部分内容阅读
复杂、多变的运行环境以及内部缺陷经常会导致软件的运行时行为偏离对应的需求规约,从而导致严重的系统失效或需求不满足。特别是对Internet环境下具有自主性、协同性、反应性、演化性和多态性等特征的网构软件而言,其所处环境的高度开放、动态和多变性所带来的可信运行的挑战更加突出。针对这些问题所提出的运行时的需求监控和自修复(Self-Repairing)方法通过软件的自管理(Self-Management)能力实现针对软件运行时行为的监控与分析,并对所发生的需求偏离进行推理、诊断和修复,从而避免或减少由此产生的系统失效。在这一方面,需求工程领域的相关研究引入了“运行时需求模型”的概念,并且以需求目标模型(Goal Model)为基础提出了一系列需求监控与自修复方法。然而,这些方法一般都依赖于全局的目标模型以及集中式的需求推理,同时也缺少具有面向特定应用的可扩展性和可定制性。这些都使得相关技术难以支持具有多主体(Agent)特性的社会技术(Socio-Technical)系统。针对这些问题,本文提出了一种新的面向目标的运行时软件需求监控与自修复方法。该方法建立在一个扩展的需求目标运行时生存周期模型基础上,通过目标状态机管理运行时目标实例的激活、执行和挂起等不同状态。该方法所建立的目标状态机事件映射及交互机制支持目标之间以及不同主体之间的失效传播以及层次化的自修复。另一方面,本文提出了一个相应的实现框架并开发了基于Java的基础设施库。该实现框架基于多Agent框架JADE,通过Agent间的通信和协作机制实现社会化的主体间目标委托和协作监控。以上特性使得我们的方法及其实现框架可以实现分散式(decentralized)的目标模型监控和自修复,从而支持社会技术系统的多主体和社会化特性。本文在一个模拟的社会技术系统基础上集成了所开发的实现框架,并通过一系列典型的社会化运行和交互场景验证了本文所提出的方法及实现框架的有效性。