基于模型开发的活动及与基于模型开发的活动及与ASPICE过程的映射过程的映射
汽车嵌入式软件开发中,基于模型开发的方法非常普遍,经常被客户及一些评估师问到的问题是:
基于模型开发,要包括哪些活动?
这些活动与ASPICE中的过程(SWE.1 ~ SWE.6)是如何映射的呢?
软件开发过程中,应用模型开发,是指:采用具备一定语法和语义含义的模型,来全部或部分完成软件需求、软件设计、并基
于模型来生成代码。
根据使用模型的目的,基于模型开发可以映射到“SWE.1 软件需求分析”、"SWE.2 软件架构设计"和"SWE.3 软件详细设计和单
元构建"等ASPICE中的各个Process。
当前比较普遍的用法是用模型进行设计、基于模型生成代码、在模型及代码层面进行验证。使用模型来定义需求的情形不是特
别多。
接下来,我们就基于当前比较普遍的这种用法来进行分析:
一、基于模型开发,通常包括哪些活动呢?
① 模型设计
基于模型设计的输入(通常是软件需求和软件架构设计)和模型规范(如: 基于MAAB的模型规则),进行模型设计。
② 模型静态分析
使用工具对模型进行分析,包括:
分析模型是否符合建模规范,如:使用Simulink Verification & Validation检查是否符合MAAB。当现有的规则无法满足要求
时,工程师也可以自己动手定制一些检查规则项
模型的形式化验证,如:使用Simulink Design Verifier检查是否有整数溢出,或者是否有死逻辑等
③ 模型评审
评审模型的内部逻辑、评审其是否与模型设计的输入相一致。也就是评审设计的模型否能正确的实现模型设计的输入。
④ 模型动态验证
一般是通过模型在环(MIL)测试的方式对模型进行动态验证。
测试的目的有两个:
功能测试:测试“模型设计的输入”是否被正确的实现了,往往用比如“需求覆盖度”的覆盖度指标进行衡量。
模型内部逻辑的正确性:往往用结构化覆盖度指标进行衡量,比如条件覆盖(Condition Coverage)、判定覆盖(Decision
Coverage)、MC/DC覆盖等。
⑤ 自动代码生成