
建立双向追溯性的方法
双向追溯性,是ASPICE在系统工程(SYS)和软件工程(SWE)中的一个非常重要的要求。双向追溯性的目的在如下文章中已有论述,本文不再赘述。
如何建立双向追溯性,是很多项目关注的问题,本文对此进行说明。
首先:
- 目前在业界没有一个统一的方法,或可用的系统工具来满足所有双向追溯性的要求(即:没有银弹)
- 建立双向追溯性,需要考虑项目所采用的工程方法(需求、设计、实现、测试的方法)、所使用的系统工具、产品/项目的复杂度等因素
- 双向追溯性是项目采用的工程方法中的一部分
本文列举一些常用的双向追溯性方法:
1、系统工具中的链接
如果需要建立双向追溯性的工作产品,是在同一个系统工具中进行管理,则可借助该系统工具建立的工作产品之间的链接来实现双向追溯性。
例如:在使用系统工具DOORS来管理需求、设计、测试时,可以在DOORS系统中建立工作产品之间的链接来实现双向追溯性。
示例,
1)系统需求分析时,定义了如下的系统需求:
2)系统架构设计时,对该系统需求进行了设计,并将该系统需求分配给”电压传感器”、”采集电路”、”MCU(SW)”三个系统组件:
3)利用系统工具DOORS,在系统需求和系统架构设计之间建立如下链接:
通过如上的系统需求和系统架构设计之间的双向追溯性链接,可以帮助工程师来确认:
- 某个系统需求,是如何被设计和实现的,是由哪些系统组件 & 通过如何的交互来实现的
- 对于某个系统组件,该系统组件的职责有哪些,该系统组件实现了哪些系统需求
有些时候,系统工具还提供总结分析功能,帮助识别例如:
- 系统需求与系统架构设计之间的追溯性比例是多少
- 有哪些系统需求未建立追溯性
- 有哪些系统架构设计未建立追溯性
2、工作产品之间的链接
需要建立双向追溯性的工作产品,如果是使用不同格式(例如:Office格式的软件需求,Matlab/Simulink的模型设计),则有时可以借助工具在工作产品之间建立链接来实现双向追溯性。
例如:Matlab/Simulink提供工具可以帮助建立:Microsoft Office & 模型设计,IBM DOORS & 模型设计之间的双向追溯性链接。
可参考Mathworks官网上的说明:
- Microsoft Office Traceability: https://ww2.mathworks.cn/help/slrequirements/microsoft-office-traceability.html?s_tid=CRUX_lftnav
- IBM DOORS Traceability: https://ww2.mathworks.cn/help/slrequirements/ibm-rational-doors-traceability.html?s_tid=CRUX_lftnav
3、通过工具
在采用基于模型开发(MBD)的开发方法时,会使用工具进行自动代码生成,在这种场景下,模型 & 源代码之间的双向追溯性就依赖于工具了。
4、互相引用编号
在工作产品中,通过各自编号,并互相引用编号的方式建立双向追溯性。
示例:
1)系统需求分析时,识别了如下的系统需求,并对该系统需求进行编号
2)系统架构设计时,对上述系统需求进行设计,并且在设计中引用了系统需求编号
3)将系统架构设计的编号,回填到系统需求中
5、工作产品自身的结构
需要建立双向追溯性的工作产品,如果其关系是直接和简单的,则可以依赖工作产品自身的结构来建立双向追溯性。
如下图所示,”系统测试用例”的组织结构与”系统需求”的组织结构是一致的,此种场景时,系统需求和系统测试用例就依赖工作产品自身的结构,自然而然建立了双向追溯性。
6、命名(naming conventions)
工作产品之间,有些时候,可以依赖于“命名naming”来建立双向追溯性。
例如:软件详细设计中设计的函数名称,和源代码中实现的函数名称是一致的,可以以此来建立软件详细设计与源代码之间的双向追溯性。
示例:
7、追溯性矩阵(traceability matrices)
首先,在需要建立追溯性的工作产品中进行编号
然后,通过二维表格的形式,建立工作产品之间的双向追溯性
示例:
有些项目,利用自研发的工具来导出上述的追溯性表格(或类似的追溯性表格)。
总结:
- 实际项目情况多种多样,相应的追溯性方法也各不相同;受限于作者经验,以上所列方法并不是穷举
- 推荐使用系统工具来建立双向追溯性,这样既可以提高工作效率,又可以确保追溯性的准确性和低的维护成本
- 双向追溯性是项目采用的工程方法中的一部分,不是额外的要求。要结合项目所采用的需求方法、设计方法、实现方法、测试用例设计逻辑等,建立”适合”的双向追溯性方法
文章转载自公众号:仨人谈起
