読み方 : クラスず

クラス図 【class diagram】

概要

クラス図(class diagram)とは、ソフトウェア設計などに用いられるUMLで規定された図(ダイアグラム)の一つで、システムを構成するクラスの構成や、クラス間の関係を表現する図。システム全体の静的な構造を明らかにするために作成される。
クラス図のイメージ画像

解説 UML(Unified Modeling Language)はオブジェクト指向のソフトウェア開発において、データ構造や処理の流れなどソフトウェアに関連する様々な設計や仕様を図示するための記法を定めた標準規格である。クラス図はシステムの構造を図示する構造図の一つで、クラスの構成やクラス間の関係を表現することができる。

オブジェクト指向プログラミングでは互いに関連するデータと操作手順を「クラス」という単位で一体的に定義する。クラス図ではクラスを矩形で示し、クラス間の関係を線で表す。クラスを外部から操作する方法だけを定義した「インターフェース」(interface)も矩形で示し、クラスと対応付ける。

矩形の内部にはクラスが表す対象の性質や状態を表す「属性」(property)や、属性に対する操作である「メソッド」(method)を名前やデータ型と共に列挙する。他のクラスから見えるかどうかを指定したい場合は、項目の先頭に「+」(public:どこからでも見える)、「#」(protected:子クラスからのみ見える)、「-」(private:外部からは見えない)、「~」(package:同じパッケージ内から見える)という記号を付ける。

主な関係の種類

クラス間の関係は、クラスをプログラム中で実際に具象化した「インスタンス」(instance)同士の関係と、複数のクラス同士の関係に分かれる。クラス同士の場合もインスタンス同士の場合もありえる関係として「依存」(dependency)があり、あるクラスが機能するためには別のクラスの存在が必要という関係を表す。

インスタンス同士の関係としては、クラス間に何らかの繋がりがあることを示す「関連」(association)、あるクラスが別のクラスの部分を構成する「集約」(aggregation)や「コンポジション」(composition)がある。集約では部品は複数のクラスに属することができるが、コンポジションは所属先がただ一つに定まっている。

クラス同士の関係としては、あるクラスが別のクラスの子クラスサブクラス)となる「継承」(inheritance)あるいは「特化」(specialization)、逆に、子クラスにとって親クラススーパークラス)であることを示す「汎化」(generalization)、抽象クラスやインターフェースで示された仕様を子クラスで具体化する「実現」(realization)あるいは「実装」(implementation)などがある。

(2024.3.13更新)

他の用語辞典による「クラス図」の解説 (外部サイト)

資格試験などの「クラス図」の出題履歴

▼ 基本情報技術者試験
令7修1 問38】 プログラムからUMLのクラス図を生成することを何と呼ぶか。
令3修6 問49】 プログラムからUMLのクラス図を生成することを何と呼ぶか。
令2修7 問45】 UMLのクラス図のうち,汎化の関係を示したものはどれか。
令1修12 問50】 プログラムからUMLのクラス図を生成することを何と呼ぶか。
平31修1 問47】 UMLのクラス図のうち,汎化の関係を示したものはどれか。
平29修7 問50】 プログラムからUMLのクラス図を生成することを何と呼ぶか。
平29修6 問46】 UMLのクラス図のうち,汎化の関係を示したものはどれか。
平27修1 問46】 UMLのクラス図のうち,汎化の関係を示したものはどれか。
平26秋 問50】 プログラムからUMLのクラス図を生成することを何と呼ぶか。
平25秋 問46】 UMLのクラス図のうち,汎化の関係を示したものはどれか。
平24修6 問46】 システム開発において,UMLで用いられる図式はどれか。
平23修6 問52】 プログラムからUMLのクラス図を生成することを何と呼ぶか。
平22春 問49】 プログラムからUMLのクラス図を生成することを何と呼ぶか。