32、基于合约的控制集成到软件系统

基于合约的控制集成到软件系统

1. FCDL 与 Java 虚拟机的集成

FCDL 模型是面向参与者的模型,将其转换为 Java 虚拟机的源代码相对直接。每个自适应元素(AE)类型会转换为一个 Java 类,其中生成的骨架方法留给开发者用逻辑填充。这些类作为代理,将低级的参与者交互(如初始化参与者的消息)转换为相应的方法调用(如初始化或激活方法)。这种模式使开发者无需处理低级的参与者 API,提高了代码在不同参与者框架间的可移植性,也简化了 AE 的测试,可在无参与者运行时的情况下独立进行。

2. 自适应元素合约概述

为了明确操作条件的假设,对 FCDL 进行了扩展以用于自适应元素合约的规范。通过在架构层面指定约束自适应元素结构、交互和行为的不变量来实现。主要包括交互合约(IC)、行为合约(BC)以及自适应元素的结构和时间不变量。

3. 交互合约
3.1 动机

以改进的累加器为例,其交互描述虽直观,但架构中未明确每次接收输入时会向输出端口推送数据,仅在文档中提及。这种架构欠规范会导致以下问题:
- 无法系统验证实现是否与文档匹配。
- 复杂情况或不严谨文档可能导致不同解释和不兼容实现。
- 实现需手动跟踪数据流以确定执行的 AE 功能,多输入同步时繁琐。
- 元素交互是实现的一部分,降低了形式分析的可能性。

为解决此问题,引入交互合约来明确允许的交互。

3.2 合约规范

基本交互合约定义为元组 ⟨A; R; E⟩:
- A 是激活条件,指示激活 AE 的交互,如一组推(⇑)输入端口或拉(⇓)输出端

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值