基于契约的控制集成到软件系统
1. 引言
自适应性软件系统(SASS)具备在不同运行时条件下持续运行的能力,能基于自身状态和环境状态自主进行调整。这种自适应能力的核心是反馈控制循环(FCL),它通过测量系统输出(如响应时间),依据给定的控制策略自动调整系统控制输入(如并发级别),以实现系统目标。
设计 SASS 有多种技术,其中控制理论为设计控制器提供了完善的数学基础,其设计的控制策略在特定操作条件假设下,稳定性和准确性等属性可得到正式保证。然而,将控制技术系统地应用于软件系统存在诸多困难:
- 非专家难以开发出可用于控制设计的软件行为数学模型。
- 控制器的设计、实现和集成到完整的自适应软件系统中既容易出错又困难,即使有 Matlab、Simulink 或 SysWeaver 等工具提供代码生成功能,在分布式系统中仍需大量手工编写非平凡代码。这导致 FCL 常与目标应用程序的源代码纠缠在一起,或由多个临时脚本组成,可能引发系统的不一致性和不稳定性,原因是设计控制器时的初始操作条件假设通常未明确指定,且缺乏系统验证以确保这些假设在运行时仍然成立。
之前提出的反馈控制定义语言(FCDL)解决了一些与 FCL 可见性相关的集成挑战,它通过底层的面向角色的组件模型,为将外部控制机制集成到现有软件系统提供了系统级抽象。在此基础上,对 FCDL 语言进行扩展,以支持基于契约的设计方法,具体提供了以下语言支持:
- 行为契约:通过状态不变量以及前置和后置条件来断言组件行为。
- 交互契约:表达允许的组件交互。
- 结构和时间不变量:定义架构约束以及设计和执行时的交互不变量。
此外,FCDL 还提供了对系统故障处理的一流支持
超级会员免费看
订阅专栏 解锁全文
1925

被折叠的 条评论
为什么被折叠?



