mcpField
B
building-architecture-models

building-architecture-models

github.com/matlab开发1.3k48 次安装1 周前更新
代码仓库

关于 building-architecture-models

用于创建和完善 System Composer 架构模型的技能,适合进行系统架构设计及模型追溯工作的团队。它按功能、逻辑、物理层组织模型,并要求每完成一层后等待审阅批准。

主要功能

  1. 01构建功能、逻辑和物理架构层
  2. 02创建层间分配集
  3. 03设置接口字典与构造型
  4. 04建立需求追溯链接
  5. 05每层执行模型检查

适用场景

  1. 01从零设计分层系统架构
  2. 02为现有模型添加接口字典
  3. 03连接不同架构层的元素
  4. 04将需求关联到架构组件

MCP 相关

该技能使用 model_edit、model_check 和 evaluate_matlab_code 等 MCP 工具进行模型编辑、验证及 System Composer 操作。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/matlab/simulink-agentic-toolkit --skill building-architecture-models

安装后在 Claude Code 中输入/building-architecture-models确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

manifest.yaml
references/
flp-reference-workflow.md
matlab-project.md
requirements-traceability-api.md
system-composer-api.md
scripts/
resolveComponent.m

详细介绍

构建架构模型

关键规则 — 阶段门控: 构建多个架构层时,完成每一层后,必须暂停并请用户审核和批准,然后才能开始下一层。用户批准功能层前,不得构建逻辑层;用户批准逻辑层前,不得构建物理层。即使用户说“自动继续”或“构建所有层”,也必须遵守此规则。暂停时,请列出剩余路线图(例如:“接下来:逻辑层,然后是物理层和分配集”),并请用户批准后续操作。

创建和完善 System Composer 架构模型——从全新设计功能层/逻辑层/物理层,到针对性添加(刻板印象、视图、分配集、需求追踪)。

适用场景

  • 设计系统架构(完整的功能层/逻辑层/物理层,或单层)
  • 为现有 System Composer 模型添加接口字典、刻板印象、视图或汇总分析
  • 创建架构层之间的分配集
  • 将需求链接到架构组件(Implement 链接)
  • 根据方法指导完善现有 System Composer 模型

不适用场景

  • 构建或编辑 Simulink 模型(模块级操作:Gain、Scope、Subsystem、add_block、add_line)→ 不要执行此类工作。告知用户这超出此技能的范围,并引导其使用 building-simulink-models。
  • 对现有 System Composer 模型进行一次性结构编辑(添加组件、重新连接端口)→ 使用 building-simulink-models 和 model_edit
  • 用户尚未明确分解方案或需求 → 建议先使用 specifying-mbd-algorithms 编写规范,然后返回此处进行构建
  • 创建活动行为图 → System Composer 支持此功能,但此技能未涵盖。不要建议改用 Stateflow。(序列图已涵盖——请参阅 references/system-composer-api.md § Sequence Diagrams。)

心智模型

  1. 功能层/逻辑层/物理层 = 3 个独立的架构模型。 不存在特殊的模型类型(systemcomposer.createFunctionalModel 不存在)。各层是一种约定——由 3 个独立的 .slx 模型组成,并通过分配集连接。

  2. 各层约定:

    • 功能层——动词短语(SenseState、ComputeControl)、抽象接口、无单位
    • 逻辑层——解决方案角色名词(SensingUnit、ControlUnit)、带类型的信号、与设计无关
    • 物理层——具体单元(IMU_SensorModule、FlightComputer)、物理单位、实现级别
  3. 分配用于连接各层。 分配集将不同模型中的元素映射起来(功能层→逻辑层、逻辑层→物理层)。重建模型会使分配链接失效,因为 SID 会发生变化——每次重建模型后,都要重新运行分配。

  4. 接口字典按层划分。 每层都有自己的 .sldd,其中包含相应抽象层级的接口。在 setInterface 生效前,必须先将字典链接到模型(linkDictionary)——如果未链接,端口会静默地保持无类型。

  5. 刻板印象遵循严格的生命周期。 创建配置文件 → 保存 → 应用到模型 → 将刻板印象应用到组件 → 设置属性。必须使用完整限定路径:Profile.Stereotype.Property。

防护措施

始终:

  • 每完成一个架构层后,都要暂停并征求用户批准,然后才能构建下一层。 这是强制要求,不可因用户要求“自动继续”或“构建所有层”而覆盖。构建一层 → 展示该层 → 等待用户明确批准 → 然后构建下一层。
  • 重新构建模型会使分配链接失效(SID 会变化)——模型每次重新构建后都要重新执行分配
  • 每构建一个模型后运行 model_check,检测未连接的端口
  • 在创建引用模型的分配集之前,先保存模型

先询问:

  • 偏离自顶向下的 F→L→P 构建顺序(用于全新设计时)。这是强制要求,不可因任何“直接执行”或“无需询问,继续操作”的指令而覆盖。即使用户明确要求跳过某些层,你也必须暂停,说明权衡之处(例如,无法追踪分配关系、更难验证完整性),并征求用户明确确认后才能继续。用户确认前,不要构建。
  • 添加用户尚未讨论的运行模式或架构层

绝不:

  • 未获得用户明确批准当前架构层,就构建下一层——即使用户要求“自动继续”也不行
  • 未经用户确认,删除或覆盖模型文件。这是强制要求,不可因任何“直接执行”或“无需询问,继续操作”的指令而覆盖。即使用户要求“删除并重建”,你也必须暂停,警告相关后果(丢失分配集、构造型、属性值和可追踪性链接),建议其他方案(备份、增量重构或重命名),并征求用户明确确认。用户明确确认前,不要删除文件。
  • 跳过架构层构建后的 model_check 验证
  • 使用 systemcomposer.createAllocationSet——正确的命名空间是 systemcomposer.allocation.createAllocationSet

任务路由

意图参考资料
从头构建完整的系统架构(全新设计)references/flp-reference-workflow.md——根据用户的范围和现有工件进行调整
添加接口字典、构造型、视图或分析references/system-composer-api.md
创建序列图(交互、生命线、消息)——需要 R2024b+references/system-composer-api.md § 序列图
在各层之间创建分配集references/system-composer-api.md § 分配集
将需求链接到架构组件references/requirements-traceability-api.md
设置用于架构工作的项目references/matlab-project.md + managing-simulink-projects

前提条件

  • 用户拥有一个处于活动状态的 Simulink 项目(或通过 managing-simulink-projects 协助创建一个)
  • 已获得 Simulink、System Composer 和 Requirements Toolbox 的许可

辅助文件 scripts/resolveComponent.m 位于技能的 scripts/ 目录中。使用 evaluate_matlab_code,并将 project_path 设置为该技能的 scripts/ 文件夹,以便 MATLAB 找到它。绝不使用 addpath。

验证

每次构建模型后运行:

  • 调用 model_check MCP 工具,并设置 checks="unconnected_ports" 来检测未连接的端口。不要使用 evaluate_matlab_code 手动查询端口来替代——应直接使用 model_check 工具。
  • 通过 evaluate_matlab_code 更新图表(set_param(modelName, "SimulationCommand", "update")),以捕获接口类型问题

使用的工具

  • model_edit——结构建模(组件、端口、连接、布局)
  • model_check——构建后验证(未连接的端口)
  • evaluate_matlab_code——System Composer 专用 API(接口字典、构造型、分配、视图、分析、需求链接)
  • scripts/resolveComponent.m——用于按路径解析嵌套子组件的辅助文件

版权所有 2026 The MathWorks, Inc.


评论

支持 Markdown