今回は情報処理技術者試験によく出題されるUMLのクラス図について解説していこうと思います。
この記事では、基本情報技術者試験対策として、過去問を用いてクラス図の基礎を解説していきます。
UMLのクラス図とは
そもそもUMLとは
そもそもUMLとは、Unified Modeling Languageの略で、オブジェクト指向のソフトウェア開発においてソフトウェアの設計を図示するための表記法です。
UMLという表記法は、以前までバラバラで統一されていなかったオブジェクト指向のソフトウェア開発の表記法を標準化するために考え出されました。
UMLで定義されている図には主に以下のものがあり、クラス図はその一つです。
- クラス図
- オブジェクト図
- アクティビティ図
- シーケンス図
今回はこの中で最も重要なクラス図についてのみ説明していこうと思います。
クラス図とは、クラス図の書き方
クラス図とは、クラス同士の関係を表す図のことです。
システムの構造を記述する静的な構造図です。
クラス図は以下のように長方形の枠の中にクラス名、データ(属性)、メソッド(手続)の3つを記入します。
クラス同士の関係には
- 汎化(継承)
- 関連
- 集約
- コンポジション
- 依存
- 実現
の6つがあります。
それぞれ以下のように表記します。(少し図が下手なのは許してください笑)
基本情報技術者試験対策としては、汎化のみ覚えておけば問題ありません。
また、クラス図には1や*などの多重度を表す記号が添えられることがあります。多重度とはクラス間の量の関係を表す度合いのことです。
多重度を表す記号には以下のものがあります。
1…1(そのまま)
*…任意の整数
0..1…0から1の範囲
1..*…1以上(1~任意の整数)
「..」は範囲を表します。
例えば下図のように表します。
車一つに対してタイヤが複数あるという意味になります。
基本情報技術者試験過去問
まず以下の2つの問題を解いてみてください。
問1
UMLのクラス図に記述するものはどれか。
基本情報技術者試験ドットコムより
ア.アクティベーション,オブジェクト,ライフライン
イ.オブジェクト,メッセージフロー, リンク
ウ.初期状態,終了状態,遷移
エ.操作,属性,ロール名
平成19年秋期 午前
問2
UMLのクラス図のうち,汎化の関係を示したものはどれか。
基本情報技術者試験ドットコムより
ア
イ
ウ
エ
平成25年秋期 午前
問1.解説
クラス図は、UMLの1つで、クラス、属性、クラス間の関係からシステムの構造を記述する静的な構造図です。クラス間のリンク、関連、集約、汎化、特化、実現などの関係を表現することができます。
ア…誤り。シーケンス図に記述するものです。
イ…誤り。コミュニケーション図に記述するものです。
ウ…誤り。状態遷移図に記述するものです。
エ…正しい。クラス図に記述するものです。上図には記述がありませんが、ロール名とは、関連におけるそれぞれのクラスの役割を示すものです。
問2.解説
汎化-特化関係は、「犬は動物である」などのように「下位クラスは、上位クラスである。」という関係を表します。
(動物が上位クラス、犬が下位クラス)汎化とは、下位クラスに共通する特性を抜き出した上位クラスを定義すること、または下位クラスとの関係をいいます。
UMLでは、汎化の関係は下位クラスから上位クラスへと結んだ「白抜きの矢印」で表現します。
ア…
誤り。自動車と車検証が1対1で関連する多重度の関係を示しています。
イ…
正しい。スポーツカーと自動車の汎化-特化関係を示しています。
ウ…
誤り。黒いひし形の矢印が示すのは「分解-集約関係」(コンポジション関連)です。
エ…
誤り。点線の矢印で示されるのは「依存関係」です。
まとめ
今回はUMLのクラス図について解説してきました。
クラス図はUMLで定義されている図としても重要で、情報技術者試験でもたまに出題されるのでしっかりと理解しておきましょう!
それでは、今回は以上となります。
最後までご精読いただきありがとうございました。
コメント