基于模型的错误检查代码和属性监视器设计
在复杂嵌入式系统的设计中,确保系统的正确性,包括功能和非功能方面,是至关重要的。本文将介绍一种基于模型的设计流程,用于处理断言和假设,以保障系统的正确性。
1. 设计要求与流程
设计要求可采用自底向上和自顶向下两种方式使用。
- 自底向上 :明确规定实现者针对组件用户承诺遵守的契约。只要满足假设条件,断言就能得到保证。例如,用 C 语言编写的一段软件,若“int”变量至少有 32 位,就能以 1%的精度计算响应。
- 自顶向下 :规定实现者必须遵守的要求,并说明其对组件用户可做出的假设。
自底向上设计流程的一个关键方面是对各个组件的断言进行组合,同时检查所使用的组件能否相互保证对方的假设。虽然全面的组合证明方法需要定理证明,但在实际中,可使用监视器在组件的整个生命周期内跟踪这些要求。在安全关键的嵌入式软件中,如汽车行业,这已是常见做法。
在设计流程中,使用相同的断言或假设描述用于各个设计阶段是一项创新。这不仅能确保系统设计流程中各方之间的精确契约义务,还能显著简化团队或公司之间的交接点,加速最终代码的实现。
而在自顶向下设计中,系统的全局输入输出要求会被分解为设计中每个组件必须满足的子属性。
2. 属性规范语言
逻辑约束(Logic Of Constraints,LOC)是一种用于推理执行轨迹的形式化方法。它由基本的关系、布尔和蕴含运算符组成,能在不影响分析便利性的前提下,指定系统级的定量功能和性能约束。
LOC 公式的基本组件包括:
超级会员免费看
订阅专栏 解锁全文
9269

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



