2010-02-22 00:54:59
1日目 UMLシーケンス図とは?
テーマ:一日一学
■ UML(Unified Modeling Language)
統一モデリング言語。オブジェクト指向分析、設計においてシステムをモデル化する際の記法(図法)を規定した言語(ビジュアル・ランゲージ)。UML2.0以降では、13種類の図(ダイアグラム)を必要に応じて書き分ける。
■ シーケンス図
UMLで定義される図の1つで、相互作用図の一種に位置づけられる。
オブジェクト指向を用いた開発で利用され、オブジェクト間のメッセージの流れを時系列に表現する事が可能。
■ UMLシーケンス図をなぜ使う?
UMLシーケンス図は、システム内のロジックを時系列、視覚的に表現した図であるため、プログラムだけを目視するよりも、プログラム全体の構造や動きを目で捉える事が可能となる。
通常、システム開発とは複数人で行う物であり、設計を検討する際に全員がUMLの語彙を持っていれば、簡潔かつビジュアルに設計方針を示す事が可能となる。
■ UMLシーケンス図の構成
【オブジェクト(Object)】
クラスが実体化したものをオブジェクトと呼び、「オブジェクト名:クラス名(下線)」で記述。
「オブジェクト名(下線)」や「:クラス名(下線)」で記述することも可能。
【ライフライン(LifeLine)】
オブジェクトの生存期間を示す点線で、オブジェクトから垂直方向に伸びる。
点線の先に×が現れるまでが生存期間。
【メッセージ(Message)】
ライフライン間を結ぶ水平の矢印とメッセージ名で表現。
矢印には、同期と非同期の2種類があり、先端の形状が異なる。
同期的なメッセージは黒三角の矢じり、非同期的なメッセージは「く」の字の矢じり。
同期的とは、メッセージのリターンを待って次の処理に進むような場合で、通常のプログラミング言語の関数呼び出しを示す。非同期的とは、リターンを待たずに次の処理に進む場合を示す。
【リターン(Return)】
破線の矢印で表し、返り値を記述。リターンは省略可能。
【活性区間(Activation)】
ライフラインの上に上書きされる長方形で、この区間は、そのオブジェクトに制御が移り、オブジェクトがアクティブな状態であることを示す。
※追記
【再帰呼び出し】
他のオブジェクトでなく自分自身のオブジェクトのメッセージを呼び出す際に使用。
矢印を自分自身に向けて記述。活性区間は重ねて記述。
【結合フラグメント】
UML2.0で導入。結合フラグメントは処理の分岐や並行処理を表現する。
UML1.xまではシーケンス図で処理の分岐や並行処理を表現する事は困難であったが、結合フラグメントにより記述が容易となった。フラグメント(断片)は、それ自体が一つのシーケンス図であり、フレームの左上にインタラクションオペレーターを記述する。
以下に主なインタラクションオペレーターを示す。
alt(alternative) 条件分岐(if ~ else文)
opt(option) 条件分岐(if文)
loop(loop) 繰り返し文(for文)
par(parallel) マルチスレッド
◆ 参考サイト
- UML超入門
統一モデリング言語 - Wikipedia
今日から始めるUMLモデリング(UML2.0版)第3回:シーケンス図
◇ コメント
現在、作成中の内部設計書・・・、ほぼ作り直しだな。
今使ってるVisioにUML2.0に追加された様な結合フラグメントなんであったかな~。
統一モデリング言語。オブジェクト指向分析、設計においてシステムをモデル化する際の記法(図法)を規定した言語(ビジュアル・ランゲージ)。UML2.0以降では、13種類の図(ダイアグラム)を必要に応じて書き分ける。
■ シーケンス図
UMLで定義される図の1つで、相互作用図の一種に位置づけられる。
オブジェクト指向を用いた開発で利用され、オブジェクト間のメッセージの流れを時系列に表現する事が可能。
■ UMLシーケンス図をなぜ使う?
UMLシーケンス図は、システム内のロジックを時系列、視覚的に表現した図であるため、プログラムだけを目視するよりも、プログラム全体の構造や動きを目で捉える事が可能となる。
通常、システム開発とは複数人で行う物であり、設計を検討する際に全員がUMLの語彙を持っていれば、簡潔かつビジュアルに設計方針を示す事が可能となる。
■ UMLシーケンス図の構成
【オブジェクト(Object)】
クラスが実体化したものをオブジェクトと呼び、「オブジェクト名:クラス名(下線)」で記述。
「オブジェクト名(下線)」や「:クラス名(下線)」で記述することも可能。
【ライフライン(LifeLine)】
オブジェクトの生存期間を示す点線で、オブジェクトから垂直方向に伸びる。
点線の先に×が現れるまでが生存期間。
【メッセージ(Message)】
ライフライン間を結ぶ水平の矢印とメッセージ名で表現。
矢印には、同期と非同期の2種類があり、先端の形状が異なる。
同期的なメッセージは黒三角の矢じり、非同期的なメッセージは「く」の字の矢じり。
同期的とは、メッセージのリターンを待って次の処理に進むような場合で、通常のプログラミング言語の関数呼び出しを示す。非同期的とは、リターンを待たずに次の処理に進む場合を示す。
【リターン(Return)】
破線の矢印で表し、返り値を記述。リターンは省略可能。
【活性区間(Activation)】
ライフラインの上に上書きされる長方形で、この区間は、そのオブジェクトに制御が移り、オブジェクトがアクティブな状態であることを示す。
※追記
【再帰呼び出し】
他のオブジェクトでなく自分自身のオブジェクトのメッセージを呼び出す際に使用。
矢印を自分自身に向けて記述。活性区間は重ねて記述。
【結合フラグメント】
UML2.0で導入。結合フラグメントは処理の分岐や並行処理を表現する。
UML1.xまではシーケンス図で処理の分岐や並行処理を表現する事は困難であったが、結合フラグメントにより記述が容易となった。フラグメント(断片)は、それ自体が一つのシーケンス図であり、フレームの左上にインタラクションオペレーターを記述する。
以下に主なインタラクションオペレーターを示す。
alt(alternative) 条件分岐(if ~ else文)
opt(option) 条件分岐(if文)
loop(loop) 繰り返し文(for文)
par(parallel) マルチスレッド
◆ 参考サイト
- UML超入門
統一モデリング言語 - Wikipedia
今日から始めるUMLモデリング(UML2.0版)第3回:シーケンス図
◇ コメント
現在、作成中の内部設計書・・・、ほぼ作り直しだな。
今使ってるVisioにUML2.0に追加された様な結合フラグメントなんであったかな~。