ストーリー
アーキテクチャ設計書の目的
| 目的 | 説明 |
|---|---|
| 共通理解 | チーム全員が同じアーキテクチャ像を共有する |
| 意思決定の記録 | なぜこの設計にしたかを記録する |
| オンボーディング | 新メンバーがシステムを理解する入口 |
| レビュー基盤 | ステークホルダーが評価・フィードバックする材料 |
arc42テンプレート
arc42は、実績のあるアーキテクチャドキュメントのテンプレートです。
1. はじめに・目標
└─ システムの目的、主要なステークホルダー、品質目標
2. 制約条件
└─ 技術的制約、組織的制約、規約
3. コンテキストと範囲
└─ システムの外部環境、外部インターフェース
4. ソリューション戦略
└─ アーキテクチャの基本方針と技術選定
5. ビルディングブロック
└─ システムの静的構造(モジュール分解)
6. ランタイムビュー
└─ 主要なシナリオの動的振る舞い
7. デプロイメントビュー
└─ インフラとデプロイ構成
8. 横断的関心事
└─ セキュリティ、ログ、エラー処理等
9. アーキテクチャ決定
└─ 主要なADR
10. 品質要件
└─ 品質シナリオ、品質ツリー
11. リスクと技術的負債
└─ 既知のリスクと対策
12. 用語集
└─ ドメイン用語の定義
ステークホルダー別の視点
異なるステークホルダーは異なる情報を求めます。
| ステークホルダー | 関心事 | 重要なセクション |
|---|---|---|
| 経営層 | コスト、リスク、スケジュール | 1, 4, 11 |
| 開発者 | 技術詳細、コード構造 | 5, 6, 8 |
| インフラチーム | デプロイ、運用 | 7, 8 |
| セキュリティチーム | セキュリティ対策 | 8, 10 |
| 新メンバー | 全体像、用語 | 1, 3, 12 |
コンテキスト図
システムの境界と外部との関係を示す最初の図です。
graph TD
User["ユーザー"] -->|"HTTPS"| EC["EC Platform"]
EC -->|"API"| Pay["決済GW"]
EC -->|"API"| Ship["配送パートナー"]
EC -->|"API"| Mail["メールサービス"]
EC -->|"API"| Inv["在庫管理システム"]
classDef userStyle fill:#67b7dc,stroke:#3a8ab5,color:#fff
classDef systemStyle fill:#4a90d9,stroke:#2c5f8a,color:#fff
classDef extStyle fill:#e8a838,stroke:#b07c1e,color:#fff
class User userStyle
class EC systemStyle
class Pay,Ship,Mail,Inv extStyle
良い設計書の特徴
| 特徴 | 悪い例 | 良い例 |
|---|---|---|
| 具体性 | 「高可用性を実現する」 | 「マルチAZ構成で99.95%の可用性を実現する」 |
| 図表活用 | 文章のみの長い説明 | C4図 + 補足説明 |
| 更新性 | 100ページのWord文書 | Markdown + Git管理 |
| 対象者明確 | 全員に同じ文書 | ステークホルダー別の要約 |
まとめ
| ポイント | 内容 |
|---|---|
| テンプレート | arc42のような実績あるテンプレートを活用する |
| 読者意識 | ステークホルダーごとに関心事が異なる |
| 図表活用 | テキストより図の方が伝わる |
| 生きた文書 | Git管理で継続的に更新する |
チェックリスト
- arc42テンプレートの構成を理解した
- ステークホルダー別の関心事を把握した
- コンテキスト図の書き方を理解した
次のステップへ
次はC4モデルを使ったアーキテクチャ図の作成方法を学びます。
推定読了時間: 30分