形式化验证与软件产品线:技术与应用
1. 引言
随着嵌入式计算技术的发展,社会对汽车、手机和家用电子等领域的嵌入式软件依赖程度极高,因此嵌入式软件的可靠性至关重要。过去,嵌入式软件开发以实现为中心,但如今软件规模和复杂度增加、开发时间减少,传统技术难以保证软件的可靠性,软件质量成为关注焦点。
为解决这一问题,人们引入了各种软件工程技术,如分析/设计方法和复用技术,产品线工程就是其中一种先进的软件实践。除了这些工程方法,人们还期望引入形式化验证等科学方法。与传统测试不同,形式化验证若成功,能全面验证目标系统的属性。虽然形式化验证历史悠久且在硬件和军事、航空等关键软件领域取得了不少成功案例,但在汽车、通信和消费电子等民用行业的嵌入式软件开发中的应用仍有限,主要原因是该技术需要大量时间和人力资源。
在软件产品线开发的背景下应用形式化验证技术具有重要意义,因为民用行业的大多数嵌入式系统都是以产品线的形式开发的,在应用工程阶段复用验证方案有望降低成本。本文将复用测试方案的理念扩展到形式化验证,并在领域工程阶段应用这些技术,以验证核心资产的可能使用情况。
2. 设计测试
2.1 基于测试场景的设计验证
以汽车音频系统(CAS)的嵌入式软件家族为例,该软件根据用户操作控制CD播放器和AM/FM调谐器等音频设备。项目的主要问题是根据测试场景检查软件设计的有效性。
测试场景是一组事件序列,期望使目标系统进入特定状态,可定义为四元组 (T, I, {S}, F),其中T表示目标系统,I表示T的初始状态,{S}表示从外部实体发送到T的事件序列集,F表示T的最终状态。基于测试场景的设计验证(即设计测试)是检查处于状态
超级会员免费看
订阅专栏 解锁全文
1万+

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



