building-architecture-models について
System Composer のアーキテクチャモデルを作成、改善するスキルです。システム設計やトレーサビリティに取り組む人向けで、機能・論理・物理の各層を扱います。各層の完了後、次の層に進む前にレビュー承認を求めます。
主な機能
- 01機能・論理・物理の各層を構築
- 02層間の割り当てセットを作成
- 03インターフェース辞書とステレオタイプを設定
- 04要件をアーキテクチャコンポーネントにリンク
- 05各モデル層を検証
活用シーン
- 01階層型システムアーキテクチャの新規設計
- 02既存モデルへのインターフェース辞書追加
- 03アーキテクチャ層間の要素割り当て
- 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.yamlreferences/flp-reference-workflow.mdmatlab-project.mdrequirements-traceability-api.mdsystem-composer-api.mdscripts/resolveComponent.m詳細
アーキテクチャモデルの構築
重要なルール — フェーズゲート: 複数のアーキテクチャレイヤーを構築する場合は、各レイヤーの完成後に必ず作業を停止し、次のレイヤーに着手する前にユーザーにレビューと承認を求めてください。ユーザーが Functional を承認するまでは Logical を構築しないでください。ユーザーが Logical を承認するまでは Physical を構築しないでください。ユーザーが「自動的に続行」や「すべてのレイヤーを構築」と指示した場合でも、このルールが適用されます。停止する際は、残りの作業計画(例:「次は Logical レイヤー、その後に Physical レイヤーと割り当てセットです」)を示し、続行の承認をユーザーに求めてください。
System Composer のアーキテクチャモデルを新規作成し、改善します。ゼロからの F/L/P 設計から、ステレオタイプ、ビュー、割り当てセット、要件トレーサビリティの追加まで対応します。
使用する場面
- システムアーキテクチャを設計する場合(F/L/P 全体、または単一レイヤー)
- 既存の SC モデルにインターフェース辞書、ステレオタイプ、ビュー、ロールアップ分析を追加する場合
- アーキテクチャレイヤー間の割り当てセットを作成する場合
- 要件をアーキテクチャコンポーネントにリンクする場合(Implement リンク)
- 方法論に基づいて既存の System Composer モデルを改善する場合
使用しない場面
- Simulink モデルを構築または編集する場合(ブロックレベルの作業:Gain、Scope、Subsystem、add_block、add_line)→ 作業を行わないでください。このスキルの対象外であることをユーザーに伝え、
building-simulink-modelsを案内してください。 - 既存の SC モデルに対する単発の構造編集(コンポーネントの追加、ポートの再接続)→
model_editを使用してbuilding-simulink-modelsを実行してください。 - ユーザーが明確な分解や要件をまだ持っていない場合 → まず仕様を作成するために
specifying-mbd-algorithmsを提案し、その後ここに戻って構築してください。 - アクティビティ動作図の作成 → System Composer でサポートされていますが、このスキルの対象外です。代替手段として Stateflow を提案しないでください。(シーケンス図は対象です。
references/system-composer-api.md§ Sequence Diagrams を参照してください。)
メンタルモデル
-
F/L/P は 3 つの独立したアーキテクチャモデルです。 特別なモデルタイプはありません(
systemcomposer.createFunctionalModelは存在しません)。レイヤーは慣例であり、割り当てセットで接続された 3 つの独立した.slxモデルです。 -
レイヤーの慣例:
- Functional — 動詞句(
SenseState、ComputeControl)、抽象インターフェース、単位なし - Logical — ソリューションの役割を表す名詞(
SensingUnit、ControlUnit)、型付き信号、設計非依存 - Physical — 具体的なユニット(
IMU_SensorModule、FlightComputer)、物理単位、実装レベル
- Functional — 動詞句(
-
割り当てによってレイヤーをリンクします。 割り当てセットはモデル間の要素をマッピングします(F→L、L→P)。モデルを再構築すると SID が変わり、割り当てリンクが無効になるため、モデルの再構築後は必ず割り当てを再実行してください。
-
インターフェース辞書はレイヤーごとに用意します。 各レイヤーには、その抽象度に応じたインターフェースを格納する独自の
.slddがあります。setInterfaceが機能するには、辞書をモデルにリンク(linkDictionary)する必要があります。リンクしないと、ポートは型付けされないままになります。 -
ステレオタイプには厳密なライフサイクルがあります。 プロファイルの作成 → 保存 → モデルへの適用 → コンポーネントへのステレオタイプの適用 → プロパティの設定。完全修飾パスが必要です:
Profile.Stereotype.Property。
ガードレール
必ず守ること:
- 各アーキテクチャレイヤーの作成後、次のレイヤーを作成する前に停止し、ユーザーに承認を求めてください。 これは必須であり、「自動的に続ける」「すべてのレイヤーを作成する」というユーザーの指示によって覆すことはできません。1つのレイヤーを作成 → 提示 → ユーザーから明示的な承認を得るまで待機 → その後、次のレイヤーを作成してください。
- モデルを再構築すると割り当てリンクが無効になります(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/ ディレクトリにあります。MATLABがこのファイルを見つけられるよう、project_path をスキルの scripts/ フォルダーに設定して evaluate_matlab_code を使用してください。addpath は使用しないでください。
検証
各モデルの作成後に実行してください。
- 配線されていないポートを検出するには、
checks="unconnected_ports"を指定してmodel_checkMCPツールを呼び出してください。evaluate_matlab_codeによる手動のポート照会で代用せず、model_checkツールを直接使用してください。 - インターフェース型の問題を検出するには、
evaluate_matlab_codeを使用してダイアグラムを更新してください(set_param(modelName, "SimulationCommand", "update"))。
使用するツール
model_edit— 構造モデリング(コンポーネント、ポート、接続、レイアウト)model_check— 作成後の検証(接続されていないポート)evaluate_matlab_code— SC固有のAPI(インターフェース辞書、ステレオタイプ、割り当て、ビュー、解析、要件のリンク)scripts/resolveComponent.m— パスでネストされたサブコンポーネントを解決するヘルパー
Copyright 2026 The MathWorks, Inc.