【UML入門】ダイアグラムの種類

プログラミング入門
Designed by Freepik
スポンサーリンク

こんにちは!しーま(@s59shima)です。

いつもブログをご覧いただきありがとうございます。

この記事では、こんな悩みや疑問のある方に向けて記事を書きました。

読者
読者

UMLって何!?プログラミングとは違うの!?よく分かっていない・・・

UMLダイアグラムの種類・特徴について知りたい方におすすめの記事です。

ダイアグラムの種類を第1弾から第3弾に分けて紹介します。

UMLの概要

Unified Modeling Languageの略。

統一モデリング言語と訳されます。

ソフトウェアの機能や構造を図で表現したものです。

UML ダイアグラムは【12】種類

No名称説明イメージ図
1クラス図クラスが持つ属性や操作、クラス間の関連を表現※図1参照
2オブジェクト図オブジェクトの持つ属性や操作、オブジェクト間のつながりを表現※図2参照
3ユースケース図システムの要件と利用者の関係を明確にし、実現すべき機能を表現※図3参照
4シーケンス図システムの動作がどのように実現されているか時系列で表現※図4参照
5パッケージ図モデル要素を分割し、関係性を整理
※図5参照
6複合構成図要素の入れ子構造を表現
※図6参照
7コンポーネント図コンポーネント間の関係を明確にし、システム全体を表現
※図7参照
8配置図システムを構成するハード・ソフトウェア関連などの構造を表現
※図8参照
9ステートマシン図システムやクラスなどの状態と遷移を表現
※図9参照
10アクティビティ図システムのフロー・制御を表現
※図10参照
11コミュニケーション図ライフライン同士の構造的なつながりを表現
※図11参照
12タイミング図相互作用内にある要素の状態遷移と、要素間のメッセージの送受信を同時に表現
※図12参照
図.UMLダイアグラムの種類

これらの図を大きく分けると、静的な構造を表現する構造図、動的な振る舞いを表現する振る舞い図があります。

《無料カウンセリングの申込はこちら》

Aidemyが選ばれている理由

クラス図

クラス図は、クラスが持つ属性や操作、クラス間の関連を表現します。

長方形の3段構成とし、上段にクラス名を明記します。

インターフェースを表現する場合、ステレオタイプ≪interface≫を明記します。

クラス図
図1.クラス図

クラス図を表現するために、以下5つの表記法があります。

  • 属性
  • 操作
  • 可視性
  • 関連
  • 多重度

1つずつ解説しますね。

属性

クラスが持つフィールドを明記します。3段構成の中段です。

属性には、下記4つを定義できます。

  • 属性名
  • 可視性
  • 初期値

操作

クラスが持つ処理を明記します。3段構成の下段です。

操作には、下記4つを定義できます。

  • 操作名
  • 可視性
  • 戻り値の型

可視性

属性操作では、可視性を定義できます。

可視性とはアクセス範囲のことで、下記の4種類あります。

記号表現意味
public全てのクラスからアクセス可能
private自クラスのみアクセス可能
protected自クラスと継承されているクラスからアクセス可能
package同一パッケージ内のクラスからアクセス可能
可視性の種類

Javaのアクセス修飾子については下記の記事も参考にしてください。

関連

複数のクラス間で関係性が存在する場合、関連として明記します。

その場合、クラス間を実線で結び【関連名】を明記します。

多重度

関連するクラス間で、互いに見たときの多重度を明記します。

オブジェクト図

オブジェクト図は、オブジェクトの持つ属性や操作、オブジェクト間のつながりを表現します。

※図2.オブジェクト図
しーま
しーま

クラス候補の洗い出しやクラス関連や多重度の検討に役立ちます。

リンク

オブジェクト同士が構造的につながっていることを表現します。

属性

オブジェクトには属性や属性値を持ちます。属性=属性値の形式で表現します。

簡単30秒!無料サポート登録はこちら

AI人材が最初に登録するフリーランスエージェント

ユースケース図

システムの要件と利用者の関係を明確にし、実現すべき機能を表現します。

システムを作る目的を明確にするために必要な図ですね。

※図3.ユースケース図

ユースケース

対象システムで実現するべき機能を表現したものをユースケースと言います。

楕円を書いて、その中にユースケース名を書きます。

図3では「会員登録する」「会員登録を確認する」「会員登録を承認する」がユースケースとなります。

システム境界

システムの対象範囲を明確するためにシステム境界があります。

ユースケースアクターとの間を区別します。

関連

ユースケースアクターとのつながりを関連で表します。

アクター

対象システムを利用する要素を表します。

人間・外部システム・ハードウェアなどがあります。

上記の図では「登録者」「管理者」がアクターになります。

シーケンス図

システムの動作がどのように実現されているか時系列で表現したものです。

シーケンス図は時間軸に沿った処理の流れを表現するのにとても適しています。

※図4.シーケンス図

相互作用名

図で表現されている内容が、最終的にどのような目的を達成するかを明記します。

目的を達成するために複数のライフライン間でやり取りされること相互作用と言います。

アクター

対象システムを利用する要素を表します。

人間・外部システム・ハードウェアなどがあります。

ライフライン

相互作用内での役割を表現する要素です。

図では「ログイン画面」「ログイン処理」「会員情報」になります。

実行指定

シーケンスはライフラインがメッセージを送受信し合うことで進行します。

メッセージ受信からメッセージ内容の終了までの間を実行指定と言います。

メッセージ

ライフライン間のやり取りを表現する要素です。

図では「ログイン情報を入力する」「ログインする」「会員情報を取得する」になります。

パッケージ図

パッケージ図は、モデル要素を分割し、関係性を整理する時に活用されます。

モデル要素とは、パッケージ依存関係を指しています。

パッケージ図を作成することでシステム全体を俯瞰的に見ることができます。

UML_パッケージ

パッケージ名

パッケージ名はタブに配置しても、長方形に配置してもどちらでもOKです。

ただし、パッケージ内部にグルーピングする要素を書く場合は、タブに配置したほうがよいです。

UML_パッケージ_名前

依存関係

パッケージ間で依存関係がある場合、点線の矢印を使います。

依存元から依存先に矢印を向けます。

依存関係が分かれば、変更による影響を可視化できます。

UML_パッケージ_依存関係

複合構成図

複合構成図の用途は2つあります。

  • 要素の入れ子構造を表現
  • 特定の目的を達成する場合の各要素の役割を表現
UML_複合構成図

本記事では【要素の入れ子構造を表現】について解説を行います。

構造化分類子

スマートフォンの中に「CPU」「メモリ」などが含まれることを表現しています。

入れ子構造になっている要素を「構造化分類子」といいます。

パート

構造化分類子の中に含まれる要素のうち、実線で表現された要素を「パート」といいます。

上記の 図.複合構成図 では「CPU」「メモリ」「ボード」などがパートになります。

パートは構造化分類子の一部となります。

コネクタ

パート同士がやり取りを行う際の経路を「コネクタ」といいます。

ポート

外部とのやり取りを表現する際には「ポート」を使用します。

コンポーネント図

コンポーネント図とは、コンポーネント間の関係を明確にし、システム全体を表現するための図です。

UML_コンポーネント

コンポーネント

コンポーネントとは、1つ以上のインターフェースを持ち、システム内で自立している1つの集合体になります。

ポート

対象の分類子と外部間の相互作用の接点です。

サブシステム

複数のコンポーネントを組み合わせたコンポーネントのことをいいます。

上記の図では、学習管理システムは「受講管理」コンポーネントと「請求管理」コンポーネントで構成されるサブシステムになります。

アセンブリコネクタ

あるコンポーネントの提供インターフェースと要求インターフェースをセットにしたことをいいます。

上記の図では、受講管理コンポーネントと請求管理コンポーネントになります。

配置図

配置図は、システムを構成するハードウェア・ソフトウェア関連などの構造を表現します。

UML_配置図

ノード

ノードは、物理的なハードウェア装置から、ソフトウェア環境のどちらかを表します。

デバイス

ノードが物理的なハードウェア装置の場合、ステレオタイプ≪device≫を配置、ソフトウェア環境の場合、≪executionEnvironment≫を配置します。

通信経路

ノード間は通信経路として表現し、両端に多重度を付けることができます。

ステートマシン図

ステートマシン図は、システムやクラスなどの状態遷移を表現します。

システムやクラスは、動ている間も特定の事象をきっかけとして状態が変わります。

その状態と遷移の分析・設計を容易にする特徴があります。

UML_ステートマシン

状態と遷移

システムやクラスの最初の状態を開始疑似状態といいます。

そして、遷移の終了を終了状態といいます。

また、別の状態に遷移することを外部遷移といいます。

トリガ・エフェクト

トリガとは、遷移のきっかけとなる事象です。

上記の図では、entryアクション・doアクション・exitアクションになります。

エフェクトとは、遷移するときに実行される処理になります。

上記の図では、状態に遷移した直後・状態にいる間は実行・状態から離れる直前になります。

entryアクション

entryアクションは、状態に遷移したとき1度だけ実行される処理になります。

doアクション

doアクションは、状態にいる間、実行され続ける処理になります。

entryアクションの実行直後からexitアクションが実行直前までの間のことをいいます。

exitアクション

状態から離れる直前に1度だけ実行される処理になります。

アクティビティ図

アクティビティ図は、処理内容や順序を明確にし、システムのフロー・制御を表現します。

フローチャートとは異なり、並列処理を表現する要素があります。

UML_アクティビティ

アクション

アクションは、個々の活動や処理を表現する要素です。

アクションの完了後、制御フローを用いて次のアクションへの制御が移ります。

デシジョンノード

条件に応じてフローが分岐することを表現する要素になります。

マージノード

別々のフローが合流して1つのフローになることを表現する要素になります。

フォークノード

複数のアクションを並行して実行することを表現する要素になります。

ジョインノード

複数の入力フローに対して1つの出力フローがあることを表現する要素になります。

コミュニケーション図

コミュニケーション図は、ライフライン同士の構造的なつながりを強調して表現します。

シーケンス図と同じく、システムの構成要素の相互作用を表現する図です。

UML_コミュニケーション

ライフライン

ライフラインは、具体的なモノや͡コトを抽象化して分類した分類子と、相互作用内の役割を表現する要素です。

つまり、ライフライン名は役割名分類子名で表記します。

メッセージ

ライフライン間のやり取りを表現する要素です。

タイミング図

タイミング図は、相互作用内にある要素の状態遷移と、要素間のメッセージの送受信を同時に表現します。

UML_タイミング

ライフライン

相互作用に登場する分類子と、その相互作用内の役割を表現する要素

状態と状態タイムライン

ライフラインの状態遷移を表現する要素として、状態・状態タイムライン・イベントの3つあります。

まとめ

今回は、UMLダイアグラムの種類・特徴について解説しました。

最後まで読んでいただきありがとうございます(*^-^*)

本記事をまとめると以下の通りです。

No名称説明イメージ図
1クラス図クラスが持つ属性や操作、クラス間の関連を表現図1参照
2オブジェクト図オブジェクトの持つ属性や操作、オブジェクト間のつながりを表現図2参照
3ユースケース図システムの要件と利用者の関係を明確にし、実現すべき機能を表現図3参照
4シーケンス図システムの動作がどのように実現されているか時系列で表現図4参照
5パッケージ図モデル要素を分割し、関係性を整理図5参照
6複合構成図要素の入れ子構造を表現図6参照
7コンポーネント図コンポーネント間の関係を明確にし、システム全体を表現図7参照
8配置図システムを構成するハード・ソフトウェア関連などの構造を表現図8参照
9ステートマシン図システムやクラスなどの状態と遷移を表現図9参照
10アクティビティ図システムのフロー・制御を表現図10参照
11コミュニケーション図ライフライン同士の構造的なつながりを表現図11参照
12タイミング図相互作用内にある要素の状態遷移と、要素間のメッセージの送受信を同時に表現図12参照
図.UMLダイアグラムの種類


レバテックキャリア


ギークスジョブ

おすすめ記事

プログラミングを本格的に勉強したいっ!」という方へ

Javaスキルをアップしたい」という方へ

Javaスキルで悩んでいる方必見!本気で学習できる環境を探してみよう!
詳細はこちら
Javaスキルで悩んでいる方必見!本気で学習できる環境を探してみよう!
詳細はこちら
タイトルとURLをコピーしました