特定のシステムのクラス、属性、操作やオブジェクト間の関係を可視化することで、システムの構造を明確に図式化するクラス図は、統一言語モデリング(UML)で最も有用な図の一種です。Lucidchart のUML 作図ソフトウェアを使えば、クラス図の作成も、想定するほど難しいものではありません。この初心者入門ガイドでは、クラス図の基本情報、書き方、使える使用例やクラス図のルールをわかりやすくご紹介しています。
この記事を読むのに必要な時間 : 4 分
UML図の作成には、ぜひ Lucidchart を試してみましょう。素早く、簡単に使えて、完全に無料です。
UML クラス図とは?
統一モデリング言語 (UMLクラス図) は、さまざまな方法でシステムのモデリングに役立つ言語です。UML で最も一般的なもののひとつに、クラス図があります。クラス図は、ソフトウェアアーキテクチャの文書化を目的としてソフトウェア技術者の間で広く用いられています。モデリングの対象となるシステム内に存在すべき構成要素を図式化したもので、構造図の一種です。 Lucidchart の UML ソフトウェアは、ユーザーの UML やクラス図に関する習熟度にかかわらず使いこなせるよう、シンプルかつ使いやすく設計されています。
UML は、オブジェクト指向のプログラミングアプローチを記述するための標準化されたモデルとして考案されました。クラスはオブジェクトの基礎をなすため、クラス図は UML の土台とも言える存在です。クラス図のさまざまな構成要素は、実際にプログラムされるクラス、主要なオブジェクトに加え、クラスやオブジェクト間の相互作用を表すものです。
クラスの図形自体は、3行からなる長方形で構成されています。最上段の行にはクラスの名前、中段にはクラスの属性がそれぞれ含まれ、最下段にはクラスの用いるメソッドや操作が記述されています。クラスとサブク ラスはグループ化され、オブジェクト間の静的な関係を表します。
Lucidchart の UML 図形ライブラリは、UML 図ツールを使って多種多様なカスタムクラス図を作成する上で役立ちます。

クラス図のメリット
クラス図作成が組織にもたらすメリットはたくさんあり、UML クラス図の用途には以下のようなものがあります。
- 複雑度にかかわらず、情報システムのデータモデルを図式化する。
- アプリケーションの概略図の全体的な概要について理解を深める。
- システムに特有のニーズを視覚的に表現し、その情報を組織全体に伝達する。
- 記述された構造を対象とした、プログラムや実装を要する特定のコードをハイライトした詳細な図を作成する。
- システムで使用され、後に構成要素間で渡される実体型を実装に依存しない形で説明する。
- システム全体を可視化で表現できる。
UML図の作成には、ぜひ Lucidchart を試してみましょう。素早く、簡単に使えて、完全に無料です。
UML図 を作成クラス図の基本的な構成要素
標準的なクラス図は以下の3つのセクションで構成されます。
上段:
クラスの名前が含まれます。分類子の場合でも、オブジェクトの場合でも、このセクションは常に必須です。中段:
クラスの属性が含まれます。クラスの性質の説明に用いるセクションです。クラスの特定のインスタンスを記述する際にのみ必要となります。下段:
クラスの操作 (メソッド) が含まれます。リスト形式で表示され、各行に1つずつ操作を記述します。これらの操作は、クラスがデータと相互作用する方法を示します。
メンバーのアクセス修飾子
各クラスには、アクセス修飾子 (可視性) によりレベルの異なるアクセス権が付与されます。アクセスレベルと対応する記号は以下のとおりです。
- 公開 (+)
- 非公開 (-)
- 保護 (#)
- パッケージ (~)
- 派生 (/)
- 静的 (下線)
メンバーの スコープ
メンバーには分類子とインスタンスの2つのスコープがあります。
分類子が静的メンバーを指すのに対し、インスタンスはクラスにnおける特定のインスタンスを指します。オブジェクト指向の基礎理論に詳しい方であれば、おなじみの内容でしょう。
その他のクラス図の構成要素
クラス図において、クラスは、コンテキストに応じて、主要なオブジェクト、アプリケーション内の相互作用またはプログラム対象のクラスを表します。「UML のクラス図とは?」という問いに答えるには、まずその基本的な仕組みを理解する必要があります。
-
クラス: システムでオブジェクトを作成し、動作を実装するためのテンプレート。UML において、クラスは、共通の構造と動作を有するオブジェクトまたは一連のオブジェクトを表します。クラスの名称、属性と操作を記述した行を含む長方形で表されます。クラス図でクラスを描画する場合に記述が必須となるのは上段の行のみです。他の行は、より詳細に記述を加えたい場合に使用します。
-
名前: クラス図形の上段の行。
-
属性: クラス図形の中段の行。クラスの属性はそれぞれ個別の行に示されます。
-
メソッド: クラス図形の下段の行。メソッドは操作とも呼ばれ、各行にそれぞれリスト形式で示されます。
-
-
シグナル: アクティブなオブジェクト間における一方向の非同期的な通信を表します。
-
データ型: データの値を定義する分類子。データ型は、プリミ ティブ型と列挙型にモデル化することができます。
-
パッケージ: 図内で関連する分類子を整理するための図形。大きなタブ付きの長方形で示されます。
-
インターフェイス: まとまりのある一連の振る舞いを定義する操作シグネチャや属性の定義の集合。インターフェイスはクラスに似ていますが、クラスが自身のクラスの型のインスタンスをもつことができるのに対し、インターフェイスには実装のために少なくとも1つのクラスを要する点で違いがあります。
-
列挙: ユーザー定義のデータ型。列挙には、列挙値を示す識別子のグループが含まれます。
-
オブジェクト: クラスまたはクラスのインスタンス。オブジェクトは、具体的または原型的なインスタンスを表すためのクラス図に追加することができます。
-
成果物: ドキュメント、データベース、実行可能ファイル、ソフトウェアのコンポーネントなど、ソフトウェアシステム内の具体的な実体を表すモデル要素。
相互作用
「相互作用」という用語は、クラス図やオブジェクト図に存在しうるさまざまな関係とつながりを指すものです。最も一般的な相互作用には、以下が含まれます。
-
継承: 親またはスーパークラスの機能を受け継ぐ子またはサブクラスのプロセスで、汎化とも呼ばれます。スーパークラスを指す三角形の閉じた矢印とクラスを接続する直線で示されます。