Skip to Content
C4モデル (Japanese Edition)
book

C4モデル (Japanese Edition)

by Simon Brown
June 2026
Intermediate
180 pages
2h 27m
Japanese
O'Reilly Media, Inc.
Content preview from C4モデル (Japanese Edition)

第2章 基礎

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

本章では、ソフトウェアアーキテクチャを可視化するためのC4モデルの基礎について解説する。前半では、C4モデルの核心を成す一連の階層的抽象化を通じて共通言語を作成することの重要性について論じ、後半では、C4の名前の由来となった一連の図、すなわちシステムコンテキスト、コンテナ、構成要素、およびコードについて紹介する。

共通の表記法に基づく共通の抽象化

これまで見てきた図は、色や形、線のスタイル付けなどが千差万別な、その場しのぎの「四角と矢印」の寄せ集めだった。しかし、異なるのは表記法だけではない。抽象化そのものも異なるのだ。

他の専門分野では、この点においてはるかに成熟している。電気工学を例に挙げよう。典型的な回路図には、図2-1に示すように、抵抗器を表すために一般的に使用されるいくつかの記号のいずれかが含まれている。その記号は図上の標準的な表記要素であり、抵抗器は実世界に存在するオブジェクトである。

Diagram showing symbols used to represent different types of electrical resistors.
図2-1. さまざまな種類の電気抵抗を表すために使用される記号

ソフトウェア開発業界には、共通言語を提供するUML、SysML、ArchiMateが存在する。例えばUMLには、図2-2に示すように、構成要素を指定するために使用できる標準的な要素がいくつかある。

Diagram showing standard UML symbols for representing components, each labeled "Component Name" with different iconography.
図2-2. UMLにおける構成要素を表すために使用される記号

ここで問題となるのは、構成要素の定義が曖昧で不明確だと言える点だ。UML仕様書によれば、構成要素は次のように定義されている:

環境内で置換可能な、明確に定義されたインタフェースを持つモジュール単位

同様に、構成要素という単語の一般的な辞書的な定義は次の通りだ:

より大きな全体を構成する一部

Webアプリケーションとデータベースで構成されるソフトウェアシステムを構築していると想像してほしい。前述の定義に基づけば、以下の2つの「構成要素」という用語の使い方はどちらも有効だ:

  • Webアプリケーションは、ソフトウェアシステムの構成要素である。

  • Webアプリケーションは、多数の構成要素から構成されている。

ここでの「構成要素」という言葉は、2つの全く異なる抽象化レベルを表すために使われている。これにより、チームメンバーが会話では同じ言葉を使い、図上では同じボックス(表記)を使っているにもかかわらず、構造的な観点から見ると、その言葉やボックスが表すもの(抽象化)が全く異なるという状況に陥りやすい。

表記法の重要性は確かに高い。しかし、ソフトウェア開発業界が抱える根本的な問題の一つは、構造的な観点から構築するソフトウェアシステム、つまりソフトウェアシステムを構成するアーキテクチャの構成要素について考え、記述するための共通の語彙が欠如していることだと私は考えている。 以前挙げた電気抵抗器の例のように、私が図に特定の記号を描けば、それがソフトウェア開発業界全体で普遍的に理解されるような段階に、ぜひ到達したいと思う。しかし、この分野やソフトウェアアーキテクチャの図解全般において、業界の成熟度や規律が不足していることを考えると、これが実現可能になるまでにはまだ道のりがあると思う。 ...

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

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

製品志向のエンジニア (Japanese Edition)

製品志向のエンジニア (Japanese Edition)

Drew Hoskins
AIプロジェクトの管理 (Japanese Edition)

AIプロジェクトの管理 (Japanese Edition)

Malini Jain Runtasewee, Adrián González Sánchez
AIに適したデータ設計図 (Japanese Edition)

AIに適したデータ設計図 (Japanese Edition)

Navnit Shukla, Kien Pham, Srikanth Sopirala, Harsha Tadiparthi

Publisher Resources

ISBN: 0642572404864