2. AUTOSAR需求工程基础

AUTOSAR方法论(AUTOSAR Methodology)并不是一套孤立的建模规范,它首先是一套“从需求到可交付软件”的工程链路。在这条链路里,需求工程决定了后续所有配置、生成与集成工作的正确性。如果需求类型划分不清、层级归属混乱、属性缺失或生命周期状态失控,那么即使BSW配置再规范、RTE生成再顺利,最终交付物也无法证明“满足原始诉求”。本节围绕四个核心问题展开:需求有哪些类型、需求分几层、每条需求要带哪些属性、需求在项目中如何流转与冻结。

一、需求类型:功能、非功能与约束

在AUTOSAR项目中,需求通常按“性质”分为三类。第一类是功能需求,描述系统或软件必须实现的行为,例如“当车速大于20 km/h且驾驶员未系安全带时,仪表应在500 ms内点亮安全带警告灯”。这类需求最终会映射到SWC的Runnable、端口与数据元素上。第二类是非功能需求,描述行为之外的品质约束,例如时序、资源、安全与诊断能力,典型如“该Runnable的最坏执行时间不超过2 ms”“ECU上电到CAN报文可发送的时间不超过100 ms”。第三类是约束与合规需求,来自法规、平台或组织规范,例如“必须符合AUTOSAR 4.4.0”“必须支持UDS 0x22服务读取软件版本”。

三类需求在追溯链上的落点不同:功能需求主要追溯到SWC与RTE,非功能需求主要追溯到OS任务、BSW调度与内存配置,约束需求则更多体现在模板选择、生成器版本与交付清单中。混淆类型会导致验证方法错配,例如把时序需求当作功能需求,只做功能测试而不做时间测量,就无法闭环。

二、需求层级:从整车到代码的纵向分解

AUTOSAR方法论中的需求层级通常表现为一条自上而下的分解链:整车级需求 → 系统级需求 → ECU级需求 → 软件组件级需求 → 单元/配置级需求。每一层都应对上一层负责,并通过追溯关系(Traceability)保持双向可查。整车级需求回答“车要做什么”,系统级需求回答“哪些子系统协同完成”,ECU级需求回答“本控制器承担什么”,SWC级需求回答“哪个组件、哪个端口、哪个Runnable实现”,配置级需求则回答“用哪些参数、哪些生成选项落地”。

层级分解的关键不是“拆得细”,而是“拆得可验证”。一条ECU级需求如果无法落到具体的SWC端口或BSW模块参数上,就说明分解不完整;反过来,一个配置参数如果无法向上追溯到任何一条需求,就属于“无源配置”,在变更时极易被遗漏。

AUTOSAR需求层级与追溯关系 左侧为层级分解,右侧为每层典型需求属性与验证落点 整车级需求 整车功能、法规、性能目标 系统级需求 子系统职责、接口、时序预算 ECU级需求 控制器功能、诊断、通信矩阵 SWC级需求 端口、Runnable、数据元素 配置/单元级需求 BSW参数、生成选项、代码单元 属性:ID、来源、优先级、验收准则 验证:整车测试、法规认证 属性:分配对象、接口、时序预算 验证:系统集成测试、时序分析 属性:ECU标识、通信矩阵、诊断地址 验证:HIL测试、诊断一致性测试 属性:SWC名称、端口、Runnable周期 验证:SWC测试、RTE接口测试 属性:参数路径、生成器版本、配置值 验证:代码审查、配置一致性检查 向上追溯:每条配置都能找到需求来源

三、需求属性:让需求可管理、可验证

一条需求如果只有一句自然语言描述,在AUTOSAR项目中几乎无法管理。需求属性是需求对象的“元数据”,决定了它能否被检索、分配、验证和变更控制。常见的必备属性包括:

  • 唯一标识(ID):如 REQ_BCM_LIGHT_001,全项目唯一,禁止复用。
  • 需求类型:功能、非功能、约束,决定验证方法。
  • 层级归属:整车/系统/ECU/SWC/配置,决定分配对象。
  • 来源与依据:来自哪份法规、哪条整车需求或哪个客户输入。
  • 优先级:如Must/Should/Could,影响变更与裁剪决策。
  • 验收准则:可测量的通过条件,如“响应时间≤500 ms”。
  • 状态:草稿、评审中、已批准、已实现、已验证、已废弃。
  • 版本与变更记录:每次修改的原因、影响范围与批准人。

其中“验收准则”最容易被写空。以“安全带警告灯应在500 ms内点亮”为例,验收准则必须明确测量点:从安全带扣开关信号变化到警告灯驱动输出变化,在ECU引脚处测量,使用示波器或总线记录仪,采样周期不大于10 ms。没有测量点和测量方法的验收准则,在验证阶段无法判定通过与否。

四、需求生命周期:从提出到废弃的状态流转

需求生命周期描述一条需求从产生到退出项目的状态变化。典型状态包括:草稿(Draft)→ 评审中(In Review)→ 已批准(Approved)→ 已分配(Allocated)→ 已实现(Implemented)→ 已验证(Verified)→ 已冻结(Frozen)→ 已废弃(Obsolete)。状态流转必须伴随准入条件,例如“草稿→评审中”要求属性完整,“已实现→已验证”要求提供测试报告与追溯链接,“已批准→已分配”要求至少关联一个SWC或BSW配置对象。

在AUTOSAR项目中,需求冻结与基线管理紧密相关。当一条需求进入“已冻结”状态后,任何修改都必须走变更请求(Change Request),并评估对SWC、RTE、BSW配置和生成代码的影响。如果需求状态与配置状态脱节,就会出现“需求已改、代码未动”或“代码已改、需求未记”的追溯断链。

实践提示:在需求管理工具(如DOORS、Polarion或Jama)中,建议为每条需求建立“上游追溯”和“下游追溯”两个链接字段。上游指向来源需求,下游指向SWC、Runnable、BSW参数或测试用例。每次基线冻结前,运行一次“无下游链接的需求”和“无上游链接的配置项”检查,这两类问题往往是交付审计中最常见的追溯缺陷。

五、需求与AUTOSAR交付物的映射示例

为了把上述概念落到实际交付,下面给出一个简化的映射示例。假设有一条ECU级需求:“BCM应在收到车门状态报文后100 ms内更新车门锁状态”。在AUTOSAR方法论中,它会被分解为:SWC级需求“DoorLock SWC的Runnable RE_DoorLock_Update周期为10 ms,读取DoorStatus端口并写入LockCmd端口”;配置级需求“RTE事件到Runnable的映射使用TimingEvent,周期10 ms”;验证需求“在HIL台架上注入车门状态变化,测量LockCmd输出变化时间≤100 ms”。

需求层级 示例需求ID 关键属性 对应交付物
ECU级 REQ_BCM_LOCK_010 响应时间≤100 ms,来源:整车网络管理规范 ECU需求规格书
SWC级 REQ_BCM_LOCK_010_S1 Runnable周期10 ms,端口DoorStatus/LockCmd SWC描述文件(.arxml)
配置级 REQ_BCM_LOCK_010_C1 TimingEvent周期10 ms,RTE生成选项 RTE配置与生成代码
验证级 REQ_BCM_LOCK_010_V1 HIL注入,测量点LockCmd,阈值100 ms HIL测试用例与报告

这张映射表的价值在于:它把“需求—配置—代码—测试”串成一条可检查的链。任何一环缺失,都会在追溯审查中暴露。对于AUTOSAR项目而言,需求工程不是文档工作,而是配置生成和代码交付的输入约束。只有需求类型清晰、层级完整、属性可验证、生命周期受控,后续的SWC集成、RTE生成和BSW配置才有可靠依据。