5.2 ARXML交付物


5.2 ARXML 交付物

本节摘要:ARXML 是 AUTOSAR 元模型的序列化实例,是跨企业、跨工具、跨生命周期的数字契约。它不是普通 XML 配置,更像乐谱:纸只是载体,音高与声部关系才是语义。读完应能说明软件组件、端口、ECU 配置等元素如何成为单一真相源,以及版本混乱如何把契约变成坟墓。

本节导读

阅读完本节,你应当能够:

  1. 用元模型解释为何不能自由发明标签。
  2. 列举系统描述、组件描述、ECU 配置等主要交付物角色。
  3. 说明同一信号在不同文件中必须守恒的字段。
  4. 设计一个最低限度的版本与拆分策略,避免数万行无法审。

一、乐谱不是纸

把 ARXML 当“配置文件”像把乐谱当纸。它由 XML 承载,真正定义交响乐的是元模型:什么是可被明确定义、被工具识别、被验证、被迁移的最小语义单元。单元包括软件组件、端口、接口、运行实体、数据约束、通信矩阵、模块配置、诊断事件等。自由发明一套标签,工具链无法守恒,集成会退回胶水。

元模型经历多年、在功能安全框架下收敛,是领域本体而不是某次头脑风暴。因此换工具不等于换语言。若一家工具导出的组件描述另一家读不懂,问题可能是配置或版本,也可能是用了未对齐的元模型修订。项目必须锁定修订,并在发布说明里写明。不要在正文里编造条款号,以官方元模型文档为准。

二、几类文件如何分工

实践中很少把整车塞进一个文件。常见拆分:组件描述由供应商交付,含端口和内部行为引用;系统描述由主机厂维护,含拓扑、连接、部分时序;ECU 配置含基础软件参数、句柄、引脚。诊断描述可单独成包。拆分是为了权限和并行,不是为了让语义分叉。同一数据元素的单位和无效值,必须在源头定义,引用处不得改写含义。

交换时的典型事故:两份文件都定义了名为车速的元素,比例不同。工具可能都报成功,车上一快一慢。契约要靠唯一标识和引用,而不是靠中文名字碰巧相同。评审应查引用图,不查文件名是否好看。

图:ARXML 作为单一真相源

图:ARXML 作为单一真相源

三、版本、差异和坟墓化

原文把大型主机厂的描述库称作可能沦为配置坟墓:版本混乱、依赖不明、安全项缺乏形式化检查。对策不是禁止拆分,而是:每个发布有基线;差异可审;引用完整性检查进持续集成;废弃元素有期限。人工打开数万行 XML 找看门狗超时,注定失败。超时应作为可查询参数存在,并有规则:“某安全任务必须有喂狗配置”。规则跑不过,构建失败。

生成代码与描述哈希绑定,有助于发现“代码是旧描述生的”。现场改生成文件而不回写描述,下一次构建会覆盖现场智慧,或更糟:现场智慧成为不可重复的黄金固件。方法论在这里与配置管理会合。

交付物 主要作者 守恒内容
组件描述 供应商或算法团队 端口、数据类型、运行实体
系统描述 主机厂架构 连接、拓扑、部分时序
ECU 配置 集成与 BSW 团队 模块参数、句柄、引脚
诊断描述 诊断与安全 事件、服务、抑制

⚠️ 常见坑:用文本搜索中文备注当接口文档。备注不是契约,工具不读备注。
💡 关键直觉:解析失败优先当架构意图断裂,而不是当“XML 语法小问题”。

四、Adaptive 侧的亲戚

Adaptive 常用清单和接口定义,不一定全部长成同一套 Classic ARXML 文件。学习上把它们当成同一本体的不同序列化:服务方法对应客户-服务器,事件对应发送-接收的亲戚。Foundation 试图提供跨平台 IDL。项目若两边各发明一套结构体,第 7 章的网关就只能靠人肉。能共用的数据类型定义,尽量共用。

不要在教程里贴完整 XML 树当“标准模板”,那会过时且可能含路径。记住字段级纪律即可:单位、范围、无效值、周期、安全等级、引用标识。缺哪一项,下游某一环会用默认值填上,默认值往往是事故。

五、基线、完整性和安全项可查询

大型描述库动辄数万行时,人工打开文件找看门狗超时注定失败。超时、冗余、诊断事件、无效编码必须作为可查询参数存在,并有规则:“某安全任务必须有喂狗配置”。规则跑不过,构建失败。这是把坟墓变回契约的关键一步。每个发布有基线,差异可审,引用完整性进持续集成,废弃元素有期限。

生成代码与描述哈希绑定,能发现“代码是旧描述生的”。现场改生成文件而不回写,下一次构建会覆盖现场智慧,或把现场智慧变成不可重复的黄金固件。黄金固件无法认证,也无法在第二家工具上再生。Adaptive 的清单和接口定义应映射到同一本体。两边各发明一套结构体,第 7 章网关只能靠人肉。能共用的数据类型尽量共用,少发明第二套车速。

问题:两家工具都报成功,车上单位却错了,怎么查?

查是不是两份文件各自定义了同名元素,而不是一份引用另一份。名字碰巧相同不是同一元素。再查元模型修订是否锁定,是否有人在配置站改了比例没回写系统描述。工具报成功只说明各自文件合法,不说明跨文件守恒。守恒要靠引用完整性和黄金用例:车速从系统走到生成原语,单位不得变。黄金用例应进持续集成,不应进某位专家的笔记本。笔记本不能在构建失败时亮红灯。

把描述库从坟墓拉回契约,靠的不是禁止拆分,而是基线、差异可审、引用完整性进构建、安全项可查询。看门狗超时若只能靠人打开数万行查找,它实际上不存在于工程系统里,只存在于某次会议。会议纪要不是元模型实例。实例才能被规则检查:“某安全任务必须有喂狗配置”。规则失败则构建失败。构建失败是契约还活着的证据。契约死了之后,工具仍然会生成代码,代码仍然能烧进车,车仍然能开出工厂。工厂出门不证明契约活着。活着的证明是:改了单位,下游所有消费点要么一起改,要么一起红。一起绿而单位不同,是两份同名元素在平行宇宙里各自合法。平行宇宙是坟墓的内部结构。结构一旦形成,新人会以为标准本来就是这样不可理解。不可理解不是标准的本质,是版本纪律缺席的症状。症状可以被持续集成治疗,治疗费用低于再雇一轮“懂 ARXML 的人”却不给规则。

黄金用例应小而硬:一个带单位和无效值的车速,从系统描述走到生成读原语,单位不得变,无效编码不得变。用例进持续集成。有人在配置站改比例,红灯应响。红灯不响,说明守恒只存在于口头。口头守恒是坟墓的前奏。前奏里每个人都觉得自己改得合理。合理的局部改动在跨文件引用断裂时会变成两份同名元素。同名元素各自合法,车上单位错误。错误很像算法问题。算法会议开完,单位还在两份文件里打架。打架要用标识和引用结束,不要用中文备注结束。备注不是契约。工具不读备注。不读备注的工具会诚实生成错误。诚实生成错误比手写错误更像标准。更像标准的错误更难被怀疑。怀疑不了就会进量产。量产里的单位错误会表现为仪表与控制律各说各话。各说各话在用户那里是车疯了。车疯了的根因是元模型实例没有被当成法律。法律要靠构建执行。执行要靠用例。用例要小。小才能常跑。常跑才能在数万行库里仍活着。活着的契约有脉搏。脉搏是红灯。允许红灯。
拆分策略按域、按供应商、按生命周期,但禁止按个人电脑。个人电脑上的一份“最新全量”是第二真相源。第二真相源会在发布周战胜基线,因为它能跑。能跑的私货会成为黄金。黄金无法在第二家工具再生,也无法给新人员工解释。解释只能说问某人。某人离职后,坟墓封顶。封顶后的抢救是逆向工程二进制。逆向工程是对方法论的公开侮辱,也是对 ARXML 作为乐谱这一比喻的取消。乐谱若只能被一位指挥在家里演奏,它就不是公共乐谱。公共乐谱要能换乐队。换乐队靠锁定元模型修订、锁定工具组合、锁定基线哈希。三锁定不浪漫,但能让解析失败被正确理解:那是架构意图断裂,不是 XML 小毛病。小毛病心态会用手工修补标签。修补标签不修引用,引用仍断。仍断的引用会在下一轮生成时重新断裂。重新断裂的循环,就是所谓配置坟墓的日常。日常可以被规则打断。打断请从黄金用例开始。

黄金用例要小:一个带单位的车速走完全程,单位不得变。小才能进持续集成,才能在数万行库里仍有脉搏。脉搏是红灯。允许红灯。红灯比专家笔记本更可靠,因为笔记本不能在合并时亮起来。

配置参数的存在形式决定它能不能被规则抓住。看门狗超时若只写在某份电子表格的备注列,生成器看不见,持续集成也看不见。它必须作为带标识的参数,被安全任务引用,被规则查询。查询失败则构建失败。失败信息应指出是哪一个任务缺了哪一个参数,而不是只报格式错误。格式错误会把人送去修标签。修标签不修引用。引用才是元模型的法律。法律要让“某安全等级任务必须有喂狗”成为可执行语句。可执行语句比培训更接近单一真相源。培训会忘,红灯不会忘。

重点提炼

  • ARXML 是元模型实例:不是自由 XML。
  • 拆分服务并行:引用必须守恒。
  • 名字碰巧相同不等于同一元素:靠标识与引用。
  • 基线与完整性检查:防止坟墓化。
  • 生成物绑定描述:禁止只改生成文件。
  • 跨平台共用本体:少发明第二套结构体。

下一节看工具如何消费这些文件:生态是契约网络,不是软件购物清单。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U