2. Arcadia方法框架精讲

Arcadia是Capella建模工具背后的方法论内核,它把系统工程中最容易混淆的一件事——"在什么抽象层次上讨论系统"——拆成了四个递进的架构层级:运行分析(Operational Analysis, OA)、系统分析(System Analysis, SA)、逻辑架构(Logical Architecture, LA)和物理架构(Physical Architecture, PA)。理解这四层的关键,不是记住它们的名字,而是理解每一层回答的问题不同、关注的对象不同、以及层与层之间通过什么"契约"衔接。

四个层级各自回答什么问题

OA层关注的是"用户和外部参与者想达成什么"。这一层不出现"系统"这个概念,只有运行实体(Operational Entity)、运行活动(Operational Activity)和运行能力(Operational Capability)。例如在无人机巡检场景中,OA层描述的是"巡检员"、"地面站操作员"、"空域管理者"这些角色,以及"规划航线"、"采集图像"、"回传数据"这些活动,而不关心这些活动由谁执行、用什么设备执行。

SA层引入"系统"作为黑盒,回答"系统需要为运行实体提供什么"。这一层把OA中的部分活动分配给系统边界,形成系统功能(System Function),并定义系统接口与外部参与者的交互。SA层仍然不关心系统内部怎么实现,只关心系统对外表现出的功能与接口。

LA层开始回答"系统内部由哪些逻辑组件协作完成这些功能"。逻辑组件是职责的划分,不是物理实体。例如"航线规划器"、"图像处理器"、"通信管理器"是逻辑组件,它们通过逻辑接口交换数据。LA层的核心价值在于:它允许你在不绑定具体技术的前提下,验证功能分配是否合理、接口是否完备。

PA层回答"这些逻辑组件由什么物理实体承载"。物理组件可以是硬件、软件、人员或它们的组合。PA层需要做出技术选型:航线规划器运行在机载计算机还是地面站?图像处理器用GPU还是FPGA?这些决策会反过来影响LA层的接口定义,形成迭代。

每个层级的三个核心视角

Arcadia在每个层级内部都要求从三个视角建模,这三个视角不是三个独立的模型,而是同一模型的不同切面:

  • 功能视角(Functional):描述"做什么",即功能分解、功能输入输出、功能之间的数据流。在OA中是运行活动,在SA中是系统功能,在LA/PA中是分配给组件的功能。
  • 行为视角(Behavioral):描述"按什么顺序做",即状态机、场景、时序。行为视角把功能视角中的静态数据流变成有时间顺序的交互序列。
  • 结构视角(Structural):描述"谁来做",即组件、接口、连接。结构视角是功能与行为的承载者。

这三个视角在每一层都必须保持一致:功能视角中定义的数据流,必须在结构视角中有对应的接口承载;行为视角中的场景,必须能追溯到功能视角中的功能。这种一致性检查是Capella模型验证的核心机制之一。

模型驱动工程的基本范式

Arcadia的四个层级不是四个独立的文档,而是一个模型驱动的递进链。每一层的模型都是下一层模型的输入,层与层之间通过追溯链接(Traceability Link)建立映射关系。这种映射关系使得当OA层发生变化时,可以快速评估对SA、LA、PA的影响范围。

模型驱动工程在这里体现为三个关键机制:

  1. 单一数据源:所有层级共享同一个模型仓库,避免文档之间的不一致。
  2. 自动追溯:功能到组件、组件到接口、接口到物理连接的映射由工具自动维护,而不是手工维护表格。
  3. 迭代而非瀑布:虽然层级是递进的,但实际工程中允许从PA层反馈到LA层,甚至从SA层反馈到OA层。Arcadia明确支持这种双向迭代。

关键理解:OA→SA→LA→PA不是"先做完OA再做SA"的瀑布流程,而是"以OA为起点,逐层细化,允许回溯"的迭代过程。每一层的模型都是对上一层问题的"解答",同时又是下一层问题的"约束"。

四层递进关系的可视化

下面的SVG展示了四个层级之间的递进关系、每层的核心视角,以及模型驱动工程中追溯链接的作用方向。图中左侧是层级递进,右侧是每层的三个视角,底部是追溯链接的示意。

Arcadia 四层架构递进关系与核心视角 OA · 运行分析 运行实体 · 运行活动 · 运行能力 回答:用户和外部参与者想达成什么? 不出现"系统"概念 SA · 系统分析 系统功能 · 系统接口 · 外部参与者 回答:系统需要为运行实体提供什么? 系统作为黑盒,不关心内部实现 LA · 逻辑架构 逻辑组件 · 逻辑接口 · 功能分配 回答:系统内部由哪些逻辑组件协作? 职责划分,不绑定具体技术 PA · 物理架构 物理组件 · 物理接口 · 技术选型 回答:逻辑组件由什么物理实体承载? 硬件/软件/人员组合,技术决策 细化 分配 实现 迭代反馈 每层级的三个核心视角 F 功能视角 描述"做什么":功能分解、输入输出、数据流 OA: 运行活动 | SA: 系统功能 LA/PA: 分配给组件的功能 B 行为视角 描述"按什么顺序做":状态机、场景、时序 把静态数据流变成有时间顺序的交互序列 场景必须可追溯到功能视角中的功能 S 结构视角 描述"谁来做":组件、接口、连接 功能与行为的承载者 结构中的接口必须承载功能中的数据流 一致性 一致性 追溯链接(Traceability Link): OA活动 → SA功能 → LA逻辑组件 → PA物理组件 | 每一层的模型既是上一层问题的"解答",又是下一层问题的"约束"

从OA到PA的实践要点

在实际使用Capella建模时,四个层级的递进不是机械的"填表",而是需要反复推敲的决策过程。以下是一些关键实践要点:

  • OA层不要过早引入系统:很多初学者在OA层就开始画"系统"框,这会导致后续SA层失去意义。OA层的运行实体应该是人、组织、外部系统,而不是你要设计的那个系统。
  • SA层的系统边界要明确:哪些功能分配给系统,哪些留给外部参与者,这个决策直接影响后续LA和PA的复杂度。边界越清晰,后续迭代越可控。
  • LA层不要绑定技术:逻辑组件应该按职责划分,而不是按技术划分。例如"通信管理器"是逻辑组件,"4G模块"是物理组件。如果在LA层就写"4G模块",会限制后续的技术选型空间。
  • PA层要接受反馈:物理组件的技术限制(如算力、功耗、成本)会反过来影响LA层的接口定义和功能分配。这种反馈是正常的,不是设计错误。

教学示例:假设一个无人机巡检系统,OA层有"巡检员"和"空域管理者"两个运行实体,运行活动包括"规划航线"、"采集图像"、"回传数据"。SA层将"规划航线"和"采集图像"分配给系统,形成系统功能。LA层将"规划航线"分配给"航线规划器"逻辑组件,"采集图像"分配给"图像采集器"逻辑组件。PA层决定"航线规划器"运行在地面站计算机上,"图像采集器"运行在机载嵌入式设备上。这个过程中,如果PA层发现机载设备算力不足,可能需要将"图像预处理"功能从机载设备移到地面站,这就是PA对LA的反馈。

模型驱动工程的核心价值

Arcadia的四个层级和三个视角,最终服务于一个目标:让系统工程的决策可追溯、可验证、可迭代。在传统文档驱动的工程中,OA、SA、LA、PA往往分散在不同的文档中,变更时难以评估影响范围。而在模型驱动工程中,所有层级共享同一个模型仓库,追溯链接由工具自动维护,变更影响可以快速分析。

这种范式的转变,要求工程师从"写文档"转向"建模型",从"描述系统"转向"定义系统"。Capella作为Arcadia的参考实现,提供了完整的建模语言和工具支持,使得这种转变在工程实践中变得可行。