スポンサーリンク

【応用情報技術者試験】UML

UML(Unified Modeling Language)は、システムの構造や振る舞いを表すためのモデリング言語です。図の名前を並べて覚える前に、「何を確認したい図か」を区別しましょう。単に箱と線で描いた構成図がすべてUMLになるわけではありません。

まず押さえる5つの図

確認したいこと図読み取る中心
クラスと関係クラス図属性・操作・関連・一般化
メッセージの順序シーケンス図誰から誰へ、どの順に送るか
外部の役割と機能ユースケース図アクターとシステムの振る舞い
処理や業務の流れアクティビティ図アクション・分岐・並行処理
イベントによる状態変化ステートマシン図状態と遷移

クラス図:静的な構造を読む

クラス名・属性・操作と、クラス間の関係を表します。一般化は白抜き三角形を上位側へ向け、集約は白いひし形、コンポジションは黒いひし形を全体側に置きます。多重度の1は1個、0..1は0または1個、0..*は0個以上です。関連の端に付いた多重度は、反対側の1インスタンスに対応する数として読みます。

クラス図の既存図解

シーケンス図:時間順のやり取りを読む

相互作用に参加するライフラインと、メッセージの送受信順序を表します。一般に上から下へ時間が進みます。生成や消滅の記号が示されていない場合、線の始まりと終わりだけでオブジェクトの実際の寿命全体を断定しません。

シーケンス図の既存図解

ユースケース図:誰がどの機能を使うか

アクターはシステム外部の役割で、人間に限らず外部システムも含みます。ユースケースは、その役割に価値を提供するシステムの振る舞いです。内部の細かな処理順序を描く図とは区別します。includeは別の振る舞いを含む関係、extendは基本のユースケースに拡張を加える関係です。

ユースケース図の既存図解

アクティビティ図:分岐や並行処理を読む

業務や処理の流れを、アクションとフローで表します。フローチャートに似ていますが、並行処理やオブジェクトの流れもモデル化できます。黒丸を含む二重丸のアクティビティ終了と、丸に×のフロー終了は違います。フロー終了はその流れだけを終え、他の流れは継続できます。

アクティビティ図の既存図解

ステートマシン図:状態とイベントを読む

対象が持つ状態と、イベントや条件によって起きる遷移を表します。注文の「受付・支払済・発送済」などを考えると、処理手順を表すアクティビティ図との違いが分かります。

ステートマシン図の既存図解

その他の構造図も用途で整理する

オブジェクト図:特定の時点のインスタンスと、その間のリンクを表します。クラスの型そのものを定義する図とは区別します。

オブジェクト図の既存図解

コンポーネント図:ソフトウェア部品と、それらが提供・要求するインタフェースや依存関係を表します。

コンポーネント図の既存図解

パッケージ図:モデル要素をパッケージへまとめ、パッケージ間の依存などを表します。

パッケージ図の既存図解

配置図:処理ノードや実行環境と、配置される成果物などの関係を表します。

配置図の既存図解

複合構造図:構造化された要素の内部にある部分、ポート、コネクタなどを表します。

複合構造図の既存図解

UMLには、モデルの用途に合わせて拡張するプロファイルを表すプロファイル図もあります。構造図は、要素の構成や関係に注目する図として整理しましょう。

その他の相互作用図

コミュニケーション図:参加者のリンクとメッセージに注目し、番号などで順序を示します。

コミュニケーション図の既存図解

タイミング図:時間の経過に対する状態や値の変化、時間制約に注目します。

タイミング図の既存図解

相互作用概要図:複数の相互作用を、制御の流れとして俯瞰します。ユースケース図をそのまま時系列で並べる図という意味ではありません。

相互作用概要図の既存図解

理解を確かめる確認問題

オブジェクト間のメッセージの送受信を、時間順に確認したいときに使う図はどれでしょうか?

解答・解説を見る

シーケンス図です。クラス図は静的な構造、ユースケース図は外部の役割とシステムの振る舞いを確認するために使います。

参考:OMG:UML 2.5.1仕様

既存図解の参照元:IT専科:class、IT専科:object、IT専科:component、IT専科:package、IT専科:deployment、Lucidchart、IT専科:activity、IT専科:usecase、IT専科:state_machine、IT専科:sequence、IT専科:communication、IT専科:timing、IT専科:interaction_overview

コメント