第12章 C4 モデルの実践
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
この最終章では、エンジニアリングチームへの指導経験に基づき、C4モデルが実際にどのように機能するかを考察する。私は過去15年間にわたり、40カ国以上、ほぼすべての業界にわたる数百の組織を訪問する機会に恵まれてきた。その対象は、スタートアップや特定の国に特化した中小企業から、急成長企業、世界的に有名な企業まで多岐にわたる。C4モデルは世界中の多くの大学でも教えられており、私は学生向けにゲスト講義を行ってきた。 この間、数多くの質問を受けてきた!必ずしもすべての質問に答えを持っているとは言えないが、旅先で最も頻繁に聞かれる質問への答えは持っている。そして、まさにそれがこの章のテーマだ。
万能薬か?
第2章でも触れたが、C4モデルは万能ではない。組み込みソフトウェアや、既存のプラットフォームをカスタマイズした解決策よりも、一般的なエンタープライズソフトウェアを開発するエンジニアリングチームに適している。しかし、たとえエンタープライズソフトウェアを開発しているとしても、これが図解に関するすべての問題の解決策となるだろうか?
私は、ソフトウェアアーキテクチャ図を描かない、あるいはUMLやArchiMateのようなモデリング手法を使いたくないソフトウェアエンジニアリングチームのための図解テクニックとして、C4モデルを作成した。その結果、C4モデルは他のモデリング手法と比較してかなり「軽量」に見えがちであり、特にソフトウェアアーキテクチャに焦点を絞っている点でそう感じられる。 それにもかかわらず、私の経験では、C4モデルは一般的なエンタープライズソフトウェアを構築しているソフトウェアエンジニアリングチームの大多数にとって有効であるようだ。私の知る限り、ほとんどのチームは第10章で説明したような単純な「ボックスと矢印」表記と組み合わせてC4モデルを使用しているが、より意味的に豊かな表現が必要な場合は、UMLやArchiMateと組み合わせてC4モデルを使用する選択肢もある。
C4モデルを事実上の図解手法として導入しようとしたものの、組織が抱える図解ニーズの広さをカバーできていないことに気づく組織を数多く見てきた。ソフトウェアエンジニアリングの分野でさえ、C4モデルはステートチャート(ステートマシンのモデリング用)やエンティティ・リレーションシップ・ダイアグラム(データベーススキーマの記述用)といった概念を網羅していない。また、C4モデルはエンタープライズアーキテクチャもカバーしていない。 確かに、システムランドスケープ図は、特定の組織境界内に存在するソフトウェアシステムのトップダウンビューを提供できるが、エンタープライズアーキテクチャはこれよりもはるかに広範なものである。 C4モデルには、ArchiMateに見られるようなビジネス層の概念(プロセス、関数、やり取りなど)を表現する手段が実質的に欠けている。私の助言としては、C4モデルをツールボックスの中のもう一つのツールとして扱い、必要に応じてUML図、ArchiMate図、エンティティ関係図などでC4図を補完することだ。
次の点はあなたにとっては自明のことかもしれないが、誰もがそうとは限らない。C4モデルの図には、補足的な文書化を添える必要がある。C4モデルの図は、ソフトウェアがどのように小さな構成要素に分解されているか(4つの静的構造図)、個々の機能が実行時にどのように動作するか(動的図)、そしてソフトウェアがさまざまなデプロイ環境にどのようにデプロイされるか(デプロイメント図)を理解する手段を提供する。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access