UMLの基礎まとめ【構造図・振る舞い図の種類と特徴を解説】

UMLに関するブログのアイキャッチ画像 システム開発技術
広告

 このページでは,基本情報技術者試験をはじめとする情報処理技術者試験で必須となる,UMLについてシンプルにまとめています。UMLの概要を押さえたうえで,構造図(クラス図,オブジェクト図,コンポーネント図,配置図など)と,振る舞い図(アクティビティ図,ユースケース図,シーケンス図など)の種類と特徴を整理して解説します。各図が「何を表現するためのものか」を意識しながら確認し,試験で問われるポイントをしっかり押さえていきましょう。

広告

UML(Unified Modeling Language:統一モデリング言語)とは(目的と概要)

 UMLは,オブジェクト指向設計で用いられる表記法です。分析・設計からテストまで,各工程における図の表現方法として普及しています。

構造図とは(静的モデルの表現)

 構造図は,システムの静的な振る舞いを表現します。

クラス図とは(クラス間の関係)

 クラス図は,属性(データ)と操作(メソッド)をカプセル化して定義した各クラスの相互関係(関連,汎化,集約,多重度など)を表現する図です。

※ オブジェクト指向開発の各フェーズに合わせた詳細度で記述する

※ クラスについては,「オブジェクト指向設計の基礎まとめ(クラスとは)」を参照

クラス図に関する説明画像

オブジェクト図とは(インスタンス関係)

 オブジェクト図は,クラスから生成される各インスタンスの関係を表現する図です。

※ ある時点における各オブジェクトの状況を把握できる

オブジェクト図に関する説明画像

コンポーネント図とは(部品依存関係)

 コンポーネント図は,各コンポーネントの依存関係を表現する図です。

※ コンポーネント…インタフェースを持つクラス

コンポーネント図に関する説明画像

配置図とは(物理配置と構成)

 配置図は,コンポーネントの配置などを表現する図です。

配置図に関する説明画像

コンポジット構造図とは(内部構造の詳細)

 コンポジット構造図は,システムの内部構造を詳細に表現する図です。

パッケージ図とは(パッケージと依存関係)

 パッケージ図は,各パッケージの汎化・依存関係を表現する図です。

※ パッケージ…関連するクラスやコンポーネント

パッケージ図に関する説明画像

広告

振る舞い図とは(動的モデルの表現)

 振る舞い図は,システムの動的な振る舞いを表現します。

アクティビティ図とは(処理・業務の流れ)

 アクティビティ図は,業務や処理の実行順序を表現する図です。

※ フローチャートと違い,並行処理を表現できる

※ 上流工程で業務の流れを分析する際にも使用できる

アクティビティ図に関する説明画像

ステートマシン図(状態遷移図)とは

 ステートマシン図は,1つのオブジェクトの状態が,イベントによりどのように変化するかを表現する図です。

※ 状態遷移図の例は,「ソフトウェア要件定義・ソフトウェア方式設計・ソフトウェア詳細設計の基礎まとめ(状態遷移図とは)」を参照

ステートマシン図に関する説明画像

ユースケース図とは(機能と外部関係)

 ユースケース図は,システムが提供する機能とサービスの範囲を表現する図です。

※ システム化の範囲や機能,外部との関係を明らかにできる

ユースケース図に関する説明画像

コミュニケーション図とは(相互作用関係)

 コミュニケーション図は,各オブジェクトの相互作用(メッセージの送受信)を関連に着目して表現する図です。

※ オブジェクト図に動的な表現を加えたような図

※ シーケンス図は時系列に表現するが,コミュニケーション図は各オブジェクトの関連に着目して表現する

コミュニケーション図に関する説明画像

シーケンス図とは(時系列相互作用)

 シーケンス図は,各オブジェクトの相互作用(メッセージの送受信)を時系列に表現する図です。

※ シーケンス図は時系列に表現するが,コミュニケーション図は各オブジェクトの関連に着目して表現する

シーケンス図に関する説明画像

相互作用概要図とは(複合的相互作用のまとめ)

 相互作用概要図は,シーケンス図やアクティビティ図に記述した各オブジェクトのメッセージのやり取りを,その関係に着目して表現する図です。

タイミング図とは(状態変化の時間表現)

 タイミング図は,オブジェクトの状態の変化を,時間の流れに沿って表現する図です。

まとめ

 今回は,UMLについてシンプルにまとめてみました。各図の役割や使い分けは,実際の試験でも頻繁に問われます。構造図と振る舞い図の違いを意識しながら,代表的な図の特徴を整理して覚えていきましょう。

 理解が進んだら,過去問題等にもチャレンジしてみてください。