Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

IT技術 (Technology)

シーケンス図の書き方やサンプルのご紹介(内部設計)

投稿日:2021年12月18日 更新日:

 

<目次>

(1) シーケンス図の書き方やサンプルのご紹介(内部設計)
 (1-1) シーケンス図を作る目的
 (1-2) シーケンス図の書き方
 (1-3) ご参考:縦軸の単位について

(1) シーケンス図の書き方やサンプルのご紹介(内部設計)

(1-1) シーケンス図を作る目的

シーケンス図は、クラスやプロセス間の「連続した処理の流れ」を定義したドキュメントです。
 
機能の全体像や処理の流れを掴むのに役立ちます。また、障害発生時における迅速な調査や、性能検証を行う際の単位としても使用されるケースがあります。
 
・(例)障害発生時
⇒シーケンス図ベースで障害箇所の認識合わせを行う
・(例)性能検証
⇒シーケンス図の矢印単位に処理時間を明確化していく

(1-2) シーケンス図の書き方

●①インスタンス/プロセスの追記(英:Lifelines)

関係するクラス(orプロセス)を、登場人物としてドキュメントの上部に水平に並べます。図形は四角で表現し、箱の中にはインスタンス名やプロセス名を書きます。また、各図形から下向きに点線を下ろし、そこに処理の流れを表現していきます。
 
(図110)

●②アクティベーションバーの追記(英:Activation Bar)

アクティベーションバーは、インスタンス/プロセスが有効な期間を表すために記載します。①のインスタンス/プロセスの点線上に細長いバーを描画する事で、その間はインスタンス/プロセスが有効である事を意味します。
 
(図111)

●③インスタンス/プロセス間の通信を追記(英:Messages)

インスタンス間/プロセス間の通信を、上から順番に、矢印で表現します。この通信(Message)は大きく6種類に大別する事が出来ます。
 
(図112)①
 
(表)
①同期メッセージ 同期処理では、前の処理が完了するのを待ってから次の処理に移ります。

つまり、メッセージの送信者は、受信者の処理が完了するまで(応答メッセージを受け取るまで)待ってから、次の処理に移ります。

②非同期メッセージ 非同期処理では、前の処理の完了を待たずに次の処理に移ります。

つまり、メッセージの送信者は、受信者から応答を待たずに次の処理に進みます。

③応答メッセージ メッセージの受信者⇒送信者への応答です。
④自己メッセージ 自分自身にメッセージを送るケースです。
プログラミング上の具体例は「再帰的呼出」(※注1)などが該当します。

(※注1)
メソッドの中で自分自身を呼び出すこと。

⑤参加者生成メッセージ シーケンス上で、インスタンスを新規に生成する場合の表現です。
⑥参加者破棄メッセージ シーケンス上で、インスタンスを破棄する場合の表現です。

一部追記した例が(図112)②になります。

(図112)②
 
これを他の部分についても同様に記載していったのが(図112)③になります。
(図112)③
 

●④条件分岐の追加

条件分岐の追加は、分岐箇所を四角の枠(英:Sequence Fragment)で囲い、左上に処理の意味を表すコード(altならif文、loopならfor文など)を記載します(英:Fragment Operator)。
 
その中で、ifとelseの処理を点線で区切り、それぞれ左側に条件(英:Guard)を記載します。
 
(図113)
 

(1-3) ご参考:縦軸の単位について

縦軸に並べる単位は明確に1つには決まりませんが、代表的なものとしては「インスタンス」の他に「プロセス」を使う事もあります。

Adsense審査用広告コード


Adsense審査用広告コード


-IT技術 (Technology)

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

hostsファイルとは?書き換えや反映の手順をご紹介(Windows編)

<目次> (1) hostsファイルとは?書き換えや反映の手順をご紹介(Windows編)  (1-1) hostsファイルとは?  (1-2) hostsファイルの主な用途  (1-3) hosts …

リトルエンディアンとビッグエンディアンの違いや概要

  <目次> (1) リトルエンディアンとビッグエンディアンの違いや概要  (1-1) 「リトルエンディアン」と「ビッグエンディアン」とは?  (1-2) どのようなシーンで利用される? ( …

プロセスとは? Linuxの例も交えてご紹介

  <目次> (1) プロセスとは? Linuxの例も交えてご紹介  (1-1) プロセスとは?  (1-2) プロセスの構成要素  (1-3) プロセスの状態遷移 (1) プロセスとは? …

CORBA通信とは?概要やアーキテクチャについて

  <目次> (1) CORBA通信とは?概要やアーキテクチャについて  (1-1) CORBA通信とは?  (1-2) CORBAのアーキテクチャについて (1) CORBA通信とは?概要 …

画面設計の項目一覧の書き方とサンプルのご紹介

  <目次> (1) 画面設計の項目一覧の書き方とサンプルのご紹介  (1-1) 項目一覧とは?  (1-2) 項目一覧の書き方は?  (1-3) 項目一覧のサンプル (1) 画面設計の項目 …

  • English (United States)
  • 日本語
Top