2. 数字线程的使能技术与标准
数字线程不是一款软件,也不是一条数据库记录,而是一套让需求、设计、仿真、测试、制造与运维数据能够跨工具、跨阶段、跨组织保持语义一致并可追溯的机制。要让这条“线程”真正贯通,必须依赖一组分工明确的使能技术与标准:MBSE 提供系统建模的方法论骨架,SysML 提供可交换的建模语言,FMI 解决仿真模型的可移植与联合仿真,OSLC 打通异构工具之间的链接与追溯,SSOT 则保证全链路引用的是同一份权威数据。理解它们各自“管什么、不管什么”,是设计可追溯链路的前提。
MBSE 与 SysML:把追溯关系建在模型里
MBSE(基于模型的系统工程)的核心主张是:系统的需求、结构、行为、参数不再散落在文档中,而是集中在一个系统模型中,追溯关系作为模型元素之间的显式关系存在。SysML 是支撑 MBSE 的建模语言,它定义了需求图、块定义图、内部块图、活动图、状态机图、参数图等视图。其中与追溯最直接相关的是需求图(Requirement Diagram),它提供 <<deriveReqt>>(派生)、<<satisfy>>(满足)、<<verify>>(验证)、<<trace>>(追踪)等标准关系。
举例来说,某电动助力转向系统的顶层需求 REQ-001:在 0~120 km/h 车速范围内提供随速助力,可派生出 REQ-001-1:助力扭矩随车速升高而单调下降,再由控制器模块 EPS_ECU 通过 <<satisfy>> 声明满足该需求,由测试用例 TC-ASSIST-03 通过 <<verify>> 声明验证该需求。这样,需求到设计、设计到验证的链路在模型内部就是可查询的,而不是靠人工维护的追溯矩阵。
FMI:让仿真模型成为可插拔的追溯节点
FMI(Functional Mock-up Interface)解决的是仿真模型跨工具复用与联合仿真的问题。它把模型封装为 FMU(Functional Mock-up Unit),包含模型描述文件 modelDescription.xml 和可执行代码,支持模型交换(Model Exchange)与联合仿真(Co-Simulation)两种模式。对数字线程而言,FMI 的价值在于:每个 FMU 都有明确的输入输出变量、单位、类型和初始值,这些接口信息可以被上层追溯工具引用,使“某个需求由哪个仿真模型、哪个版本、哪组输入验证”成为可记录的事实。
例如,一个整车动力学 FMU 暴露 vehicleSpeed、steeringAngle、assistTorque 三个变量,测试台架通过 FMI 接口驱动它运行,运行结果与测试用例 TC-ASSIST-03 绑定。当模型版本从 v1.2 升级到 v1.3 时,追溯链上会留下版本变更记录,避免“用旧模型验证新需求”的隐患。
OSLC:跨工具追溯的“链接协议”
现实中需求在 DOORS 或 Polarion 中,设计在 Rhapsody 或 Cameo 中,测试在 TestRail 或 Jenkins 中,仿真在 Simulink 或 Adams 中。OSLC(Open Services for Lifecycle Collaboration)定义了一套基于 HTTP 和 RDF 的开放接口,让不同工具中的资源可以通过 oslc_rm:implementedBy、oslc_rm:validatedBy、oslc_qm:validatesRequirement 等标准谓词建立链接。它的关键作用是不搬迁数据,只建立引用:需求仍留在需求库,测试仍留在测试库,但两者之间有一条可解析、可导航的链接。
实际落地时,通常由 OSLC 适配器或集成中间件完成三件事:一是资源发现,通过 ServiceProvider 和 QueryCapability 找到目标工具中的资源;二是链接创建,在源资源上写入 RDF 三元组;三是链接一致性维护,当目标资源被删除或版本变更时,通过 oslc:impact 或事件通知更新链接状态。这样,全链路追溯就不再依赖某个“大一统平台”,而是由标准接口把既有工具串起来。
SSOT:全链路引用同一份权威数据
SSOT(单一事实来源)不是一项具体技术,而是一条数据治理原则:对每一个关键事实,全链路只允许有一个权威定义源,其他位置只能引用、不能复制后各自修改。在数字线程中,SSOT 通常体现为:需求 ID 与版本由需求管理系统唯一分配;系统架构元素由 MBSE 模型唯一命名;仿真模型由模型库统一版本管理;测试结果由测试执行系统统一归档。OSLC 链接指向的应当是这些权威源,而不是本地副本。
如果缺少 SSOT,常见后果是:需求在需求库中已改为 REQ-001 v3,但设计模型仍引用 v2,测试用例仍绑定 v1,追溯链表面完整、实际断裂。因此,SSOT 与 OSLC 必须配合使用:OSLC 负责“连得上”,SSOT 负责“连得对”。
五者协作:从“连得上”到“连得对”
把上述技术放在一起看,它们构成一条清晰的分工链:MBSE 决定“追溯关系应该建在哪些模型元素之间”,SysML 提供表达这些关系的标准语法,FMI 让仿真模型以标准接口进入追溯链,OSLC 让跨工具链接可被机器解析和导航,SSOT 保证链接两端引用的是同一份权威版本。缺少任何一层,追溯都会退化:没有 MBSE/SysML,追溯关系只能靠文档和人工矩阵;没有 FMI,仿真结果无法与需求建立可复现的绑定;没有 OSLC,跨工具追溯只能靠导出导入;没有 SSOT,链接会指向过期副本。
<<satisfy>> 与 <<verify>> 关系,再用 OSLC 把需求库与测试库链接起来,最后用 SSOT 规则约束版本引用。试点跑通后,再逐步扩展到全项目。一个可检查的追溯配置示例
下面给出一个简化的 OSLC 链接配置片段,用于把需求 REQ-001-1 与测试用例 TC-ASSIST-03 关联起来。示例中的 URL 与资源 ID 均为教学假设,实际使用时需替换为目标工具的真实服务地址。
# OSLC 链接创建示例(教学假设)
POST /rm/requirements/REQ-001-1 HTTP/1.1
Content-Type: application/rdf+xml
Link: <http://test.example.com/qm/testcases/TC-ASSIST-03>;
rel="http://open-services.net/ns/rm#validatedBy"
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<oslc_rm:Requirement rdf:about="http://req.example.com/rm/REQ-001-1">
<oslc_rm:validatedBy
rdf:resource="http://test.example.com/qm/testcases/TC-ASSIST-03"/>
</oslc_rm:Requirement>
</rdf:RDF>
判断链接是否有效,可以检查三点:一是链接两端资源均可通过 HTTP GET 返回 200;二是链接谓词与关系语义一致(验证关系用 validatedBy,满足关系用 satisfiedBy);三是两端版本号与 SSOT 记录一致。若目标资源返回 404 或版本不一致,说明追溯链已断裂,需要触发变更影响分析,而不是简单删除链接。