オブジェクト指向による設計やプログラミングにおいて、情報を整理し、複数人の統一を図るため
が全世界で利用されている。
システムをデータの視点から見てクラス構造を記述する図法。
中心となるモデル。
ユーザの視点でシステムの機能的な流れを示す記述法。
システムの使用イメージを表現する。
ユースケース記述は、ユースケース (ユーザから見た機能要求) に対してシステムとアクター (役割) のやり取りを自然言語でシナリオとして記述したもの。
ユースケース図は、複数のユースケースをまとめて一覧できる図として表したもの。
![]() |
| 図1 「図書貸し出し・返却システム」のユースケース図の例 |
手続きなどの振る舞いを記述するための記法。ペトリネットと似ており、並列的な動作を記述できる。
オブジェクト群がメッセージ送信によってどのように相互作用してシステムの一機能を実行していくかを、順序をおって記述する図法。
UML 2 では、相互作用フレームを使って条件分岐や繰り返しも記述できる。
「図書貸し出し・返却システム」で。蔵書の貸し出しが問題なく行われる場合の処理手順、メッセージの流れをシーケンス図で表すと下図のようになる。ただし、「受付」オブジェクト、「貸し出し希望者」オブジェクト、「データ管理」オブジェクトを参加者とする。

オブジェクト群が相互作用して行うまとまった動作を、オブジェクト相互のリンクを強調して記述する図法。
システムをその振る舞いの視点から記述する図法。
個々のオブジェクトが状態マシンとしてモデリングされる。
UMLで最もよく使われるクラス図について、もう少し詳しく説明する。
クラス (class)
同じ属性、オペレーションを持つインスタンスのグループの記述
属性 (attribute)
クラスに属するオブジェクトが保有するデータ
オペレーション (operation)
クラスに属するオブジェクトが持つ機能。メッセージインタフェース
メソッド (method)
オペレーションを具体的に実装したもの
関連 (association)または 関係 (relationship)
オブジェクト間の関係をクラスレベルで表現したもの
役割 (role)
関連する2つのクラス間で、片方のクラスからもう一方のクラスを見たときの呼び名
多重度 (multiplicity)
関連する2つのクラス間で、片方のクラスのインスタンス1つに対する、もう一方のクラスクラスのインスタンスの数についての決り。
1対 (0または1)、1対1、1対多、など。
関連の特殊なもの。
部品を表すクラスと、それを用いて組み立てられるクラスを対応付ける関連。
あるクラスを基にして新たなクラスを定義する場合、それらを「汎化-特化」関係にあるといい、特化されたクラスから汎化クラスへ向かう白抜き三角の矢印で表す。
汎化 (generalization)
複数のクラスに共通の特性を持ったクラスを作ること。
特化、特殊化 (specialization)
元のクラスに、属性やオペレーションの追加、属性間制約の追加を行って新しいクラスを作ること。
「汎化-特化」関係は、実装においては 継承 (inheritance) や コンポジション (composition) で表現される。
UMLにおけるクラス図の記述法の基本を示すと共に、例として、「図書の貸し出し・返却業務」システムのクラス図を示す。
簡易形のクラス図では、利用するクラスをクラスを四角い枠で示して列挙する。枠の中にはクラス名のみを記述する。
また、クラス間の「関連 (association)」は実線でクラス同士をつないで表す。
関連の役割名 (関連ロール, role) を相手側につける。
片方あるいは両方の端に矢印をつけて関連の方向性を表すことができる。
| - | 方向性指定なし |
| → | 方向性を指定 (単方向) |
| ←→ | 方向性を指定 (双方向) |
また、
| 1 | 1個限定 |
| 0..5 | 0個以上5個以下 |
| * | 任意数 (0個以上) |
| 2..* | 2個以上 |
などのように、多重度 (multiplicity) を指定することができる。
例で、「登録者」「蔵書」「受付」をそれぞれクラスとし、また、「データ管理」クラスを「登録者データのリスト」と「蔵書データのリスト」を持つものとして、全体の関係をクラス図で表すと下図のようになる。

クラス図では、「汎化 - 特化」関係は 白抜き三角矢印 (汎化クラスに向ける) のある線 で表される。これは、実装上ではクラスの継承関係を表す。
例で、「登録者」クラスを特化した「貸し出し希望者」クラスおよび「返却希望者」クラスを考えた場合、下図のようになる。

詳細なクラス図では、クラス内部の詳細(属性・メソッド)まで含めて記述する。
クラスの詳細表現は、

の形で表す。
例で、クラス内部の詳細 (属性・メソッド) も設計した上、詳細なクラス図としてまとめると、例えば以下のようになる。
属性およびメソッドの詳細説明は省略する。

コーディングに直接結びつくような設計段階の詳細クラス図には、属性や操作において下記のように型の明示をすることができる。
属性名 : 型
操作名 ( パラメータのコンマ区切りのリスト ) : 戻り値の型
パラメータのリストの中の一つ一つのパラメータも、
パラメータ名 : 型
のように型の明示をすることができる。上図では、属性・操作・パラメータ全ての型を明示している。
別の例として、以下のような、お絵描きアプリケーションの主要部をオブジェクト指向でモデル化した場合の、UMLの詳細クラス図を示す。
詳細クラス図
(ただし、属性・操作・パラメータの型は示していない)