4. 需求建模与导入

在Arcadia方法中,需求建模(Requirements Modeling)是连接“利益相关者期望”与“系统架构设计”的桥梁。Capella并不把需求当作孤立的文本条目,而是将其作为模型中的一等公民:需求可以拥有属性、可以相互引用、可以与任意架构元素建立追溯关系,并且能够通过表格视图批量管理。本节围绕三个核心动作展开:创建需求包与需求、定义需求属性、建立需求与架构元素之间的追溯关系,最后演示从外部需求文件导入的完整操作。

一、需求包与需求的组织结构

在Capella的模型浏览器中,需求被组织在Requirements视角下。需求包(Requirements Package)是需求的容器,通常按照来源或主题划分,例如“利益相关者需求包”“系统需求包”“安全需求包”。需求包可以嵌套,形成层次结构,便于按项目阶段或子系统分类管理。

创建需求包的操作路径为:在模型浏览器中右键目标父级(通常是项目根节点或已有需求包),选择 New > Requirements Package,输入名称后确认。随后在该包内右键选择 New > Requirement 即可创建单条需求。每条需求至少包含名称(Name)和描述(Description)两个基本字段,名称用于快速识别,描述承载需求的完整语义。

需求在Capella中具有唯一标识符(ID),该标识符由模型自动生成,也可通过属性视图手动指定。ID是后续追溯、变更影响分析和需求覆盖度统计的关键索引,建议在项目初期就约定ID命名规则,例如 REQ-SYS-001、REQ-SAF-012。

二、定义需求属性

Capella允许为需求定义自定义属性(User Defined Properties),以承载优先级、来源、验证方法、状态、版本等管理信息。属性定义在模型层面完成,一旦定义,所有需求都可以填写该属性。

定义属性的操作路径为:在模型浏览器中右键项目根节点,选择 New > User Defined Property,设置属性名称、类型(String、Integer、Boolean、Enumeration等)和适用范围(Requirement)。例如,可以定义以下属性:

  • Priority:枚举类型,取值 High / Medium / Low;
  • Verification Method:枚举类型,取值 Test / Analysis / Inspection / Demonstration;
  • Source:字符串类型,记录需求来源文档或利益相关者;
  • Status:枚举类型,取值 Draft / Reviewed / Approved / Implemented。

定义完成后,在需求属性视图(Properties View)中即可看到这些字段并逐条填写。属性不仅用于管理,还可以在需求表格视图中作为列显示,支持排序和筛选,从而快速定位高优先级或未验证的需求。

三、建立需求与架构元素的追溯关系

追溯关系(Traceability)是需求建模的核心价值所在。在Capella中,需求可以与任意模型元素建立追溯链接,包括功能(Function)、组件(Component)、接口(Interface)、数据(Data)等。追溯关系分为两类:满足关系(satisfy)表示架构元素满足某条需求;派生关系(derive)表示需求之间的分解或细化。

建立追溯的常用方式有两种。第一种是在需求属性视图的 Traceability 区域点击 Add,选择目标架构元素;第二种是在架构图中选中某个组件或功能,右键选择 Add Traceability > Requirement,再选择对应需求。无论哪种方式,追溯关系都会在模型数据库中持久化,并可在需求追溯矩阵(Traceability Matrix)中查看。

追溯矩阵是验证需求覆盖度的重要工具。在Capella中打开 Requirements > Traceability Matrix,行显示需求,列显示架构元素,交叉单元格中的标记表示存在追溯关系。通过矩阵可以快速发现“未被任何架构元素满足的需求”和“没有对应需求的架构元素”,前者意味着设计遗漏,后者意味着可能存在过度设计。

需求建模与追溯关系全景 外部需求文件 CSV / ReqIF / Excel REQ-SYS-001 ~ 020 含ID、描述、优先级 验证方法等字段 导入 Requirements Package(需求包) REQ-SYS-001 系统应支持双路电源冗余切换 High REQ-SYS-002 切换时间不超过50ms Medium REQ-SYS-003 电源模块应具备过流保护 High 自定义属性: Priority · Verification Method · Source · Status 架构元素 PowerSwitch 功能 Function PowerModule 组件 Component OverCurrent 接口 Interface SwitchTime 数据 Data satisfy satisfy satisfy satisfy 追溯矩阵(Traceability Matrix) 需求 \ 架构 PowerSwitch PowerModule OverCurrent SwitchTime REQ-SYS-001 REQ-SYS-002 REQ-SYS-003 已建立追溯 未建立追溯

四、从外部需求文件导入的实战操作

实际项目中,需求往往先以Word、Excel或专业需求管理工具(如DOORS、Jama)中的形式存在。Capella支持通过CSV或ReqIF格式批量导入需求,避免逐条手工录入。

以CSV导入为例,首先准备符合Capella导入模板的CSV文件。模板通常包含以下列:Name、Description、ID、Priority、Verification Method。其中Name和Description为必填列,其余列对应已定义的自定义属性。示例CSV内容如下:

Name,Description,ID,Priority,Verification Method
双路电源冗余切换,系统应支持双路电源冗余切换,REQ-SYS-001,High,Test
切换时间限制,切换时间不超过50ms,REQ-SYS-002,Medium,Analysis
过流保护,电源模块应具备过流保护,REQ-SYS-003,High,Inspection

导入操作路径为:在模型浏览器中右键目标需求包,选择 Import > Requirements from CSV,在向导中选择CSV文件、指定分隔符(逗号或分号)、映射列与需求字段的对应关系,确认后执行导入。导入完成后,需求包内会出现对应的需求条目,自定义属性也会自动填充。

导入过程中需要重点检查三项内容:一是编码格式,CSV文件应保存为UTF-8,避免中文乱码;二是列映射,确保CSV列名与Capella字段一一对应,尤其是自定义属性的名称必须与模型中定义的属性名完全一致;三是重复ID处理,若导入文件中存在与模型中已有需求相同的ID,Capella会提示冲突,此时需要选择跳过、覆盖或重命名。

导入完成后,建议立即打开追溯矩阵检查需求覆盖情况。若发现某条需求未与任何架构元素建立追溯,应在架构图中补充对应功能或组件,并建立satisfy关系。这一“导入—检查—补追溯”的循环,是需求建模从文档走向模型的关键闭环。

五、需求追溯的维护与变更影响分析

需求不是一次性录入就结束的。当需求发生变更时,追溯关系可以帮助快速定位受影响的架构元素。在Capella中,选中某条需求,右键选择 Impact Analysis > Show Related Elements,即可查看所有与该需求存在追溯关系的功能、组件和接口。反之,选中某个组件,也可以查看它满足的所有需求。

为了保持模型健康,建议在项目里程碑节点执行以下检查:需求包中是否存在未填写Priority或Verification Method的需求;追溯矩阵中是否存在整行或整列为空的情况;导入的需求ID是否与外部需求文档保持同步。这些检查可以通过Capella的表格视图和筛选功能高效完成,而不需要逐条人工核对。

需求建模的最终目标,是让每一条需求都能在架构中找到“归宿”,让每一个架构决策都能回溯到“理由”。创建需求包、定义属性、建立追溯、批量导入,这四个动作构成了Capella需求工程的基本工作流,也是后续功能分析与逻辑架构设计的输入基础。