シーケンス図とは工程の順序だけを描くアクティビティ図とは違い処理主体となるオブジェクトやクラスがメッセージ(実装においてメソッドの呼び出し)のやり取りを記述する分、より詳細で根気のいる作業になります。
最も重要なUML相互作用図の1つとして、シーケンス図はシステムの内部と外部の間の相互作用プロセスを直感的に伝えることができ、詳細な設計ドキュメントでよく使用されます。
Part 1: シーケンス図とは
シーケンス図とは現在OMG(Object Management Group)が管理している統一モデリング言語(UML英:Unified Modeling Language)にて定義されているインタラクションを表す図を指します。アクティビティ図が処理工程を順序立てる一方、処理主体となるオブジェクトやクラスがメッセージ(実装においてメソッドの呼び出し) のやり取りを記述しているものを指します。横軸に処理主体を置き縦軸に時間軸を設定し図で表現するのです。システム設計時に活躍しますがそれだけでなく、説明書のない既存システムの分析(リバースエンジニアリング)にも使用されることがあります
上図はEdrawMaxにてテンプレートで用意されているUMLシーケンス図です。番号が振られることによって処理の順番がわかりやすくなっています。
Part 2: シーケンス図のメリット
① プログラムの処理概要が整理できる
現在UMLシーケンス図を管理している非営利団体であり仕様を提供するのみで実装を提供しないOMGにてプログラム、システム、ビジネスプロセスなどのモデリングとモデルベースの標準策定に注力している例を挙げても、誰にでもわかりやすく管理しやすい質の良いシステムを提供することに反対する人がいるのでしょうか。シーケンス図を使って伝えたいことをわかりやすくプログラムの処理概要(ロジック)を整理することは最適なシステムを作成する上で必要不可欠なのです。
② 仕様レビュー(批評)と顧客へのエビデンス(根拠)
視覚的に共通認識を得るためにシーケンス図があります。ルールに基づいて描かれるシーケンス図はシステム仕様レビューを効率的に行えるのです。この共通認識は開発プロジェクトに携わるチームだけでなく、トラブルにならないためにも初期段階に成果物の根拠としてシーケンス図を顧客に示し、開発後期での仕様変更リスクを減らすのにも使用することができるのです。
③ 保守や追加開発時に仕様確認するべきところを効率的に見つけることができる
シーケンス図は開発段階だけでなく顧客への納品後の保守運用時においても役に立つのです。開発後の保守チームに対してもシーケンス図で共通認識を得て、要因を効率的にみつけることができ、それに対してすぐにどのような対処をとるべきかについて着手することができるのです。同様に、追加で開発の必要がある場合もすぐに対処すべき要因に注視することができるのです。
Part 3: シーケンス図の結合フラグメント
名称 | 説明 |
条件分岐を表します | |
条件が満たされた場合のみ実行することを表します | |
別のシーケンス図を参照する時に使われます | |
並列処理を表すときに使用します | |
繰り返し処理時に使用します | |
処理の中断を表すときに使います | |
不正を表す時に使います | |
マルチスレッド環境での同期処理などで排他制御を表します | |
処理が妥当であるかの定義を表します |
|
無効な処理を表します | |
重要な処理であることを示します |
こちらの結合フラグメントとは使用することでよりシーケンス図がどのような処理をしているのかをより分かりやすくするための記号(マーカー)と考えてください。
条件分岐(alt)
条件分岐を表す書き方としてaltを用います。身近な例であげれば条件分岐とは年齢別。性別、天候などあらゆる例が当てはまります。
条件指定(Opt)
条件指定を表す書き方としてOptを用います。条件指定は条件が満たされた時に作動するシステムを表します。
外部参照(Ref)
外部参照を表す書き方としてRefを用います。これは文字通りその処理に対してさらに詳細に表した図があることを表すためにされる処理です。
並列処理(Par)
並列処理を表す書き方としてParを用います。ある行動に対して並列で処理が実行されている場合に使われます。具体的には船積書類を作成する時、社内ステムにおいて商品の情報とパッキングに必要な荷造情報を同時に呼び出している状況を指します。
ループ処理(loop)
ループ処理を表す書き方としてloopを用います。これを普段よく目にする場といては、スーパーのレジを思い浮かべるとわかりやすくなります。数ある商品を何度もレジに登録していくおなじみの状況です。
中断処理(break)
中断処理を表す書き方としてBreakを用います。これは特定の条件を満たした時に処理を中断するシステムを指します。ECサイトを運営する上で、在庫数が0になった時に購入ができないようにするといった状況です。
不正(Neg)
不正を表す時の書き方としてNegを用います。この処理はECサイトなどで自分がログイン操作を行っていないのに商品が購入されたなどというエラーを返すシステムにマーカーします。
排他処理(Critical)
排他処理を表す書き方としてCriticalを用います。これは特定の処理を実行中は他からの処理を受け付けないシステムを表します。具体的には本の予約システムにおいて保管冊数上で特定の本の予約が行われている時はその本自体の予約はできませんが予約システムは使用可能である場合などを指します。
アサーション(Assert)
アサーションを表す書き方としてAssertを用います。アサーションは処理内容が妥当であるかをチェックするためのシステムを表現しています。具体的には、在庫数を日別にチェックする場合などが当てはまります。
無効(Ignore)
無効を表す書き方としてIgnoreを用います。これは重要ではない処理をマークするために使用します。システム処理を無効にしているわけでは決してありません。
重要処理(Consider)
需要処理を表す書き方としてConsiderを用います。これは文字通り重要な処理を行っている部分に対してマーカーを行います。
シーケンス図とシーケンス図の結合フラグメントについて種類別にご紹介してまいりました。結合フラグメントはシーケンス図をより分かりやすくするのにとても有効な手段です。
Part 4: シーケンス図作成ソフト
設計のプロセスを相手に伝えようとする時、より視覚的にリラックスした状況で見せるシーケンス図の方がを選びたいとは思いませんか。私がおすすめするEdrawMaxはビジネスを少しでもリラックスして楽しめるハイセンスな書き方でシーケンス図を提案してくれます。
グラフィックなハイセンスな表を描くこともできますし何より、オブジェクトを均等な大きさで均等な距離を保つように補助ラインで教えてくれるところが気に入っています。このシーケンス図だけでなくビジネスに必要な図のテンプレートも豊富にあり、自分のビジネスプランや型が適正なのかを色々な図のテンプレートを使い確認することができるのです。
シーケンス図の結合フラグメントについて種類別にご紹介してまいりました。結合フラグメントはシーケンス図をより分かりやすくするのにとても有効な手段です。アクティビティ図が処理工程を順序立てるのと比べてシーケンス図では処理主体となるオブジェクトやクラスがメッセージ(実装においてメソッドの呼び出し) のやり取りを記述する分、より詳細で根気のいる作業になります。その時にハイセンスで種類も豊富にあり、表現の幅が広がります。EdrawMaxを使って描くことで伝えたい相手には、よりリラックスして自分のビジネスの型を表現できること間違いなしです。
Edraw Max -- All In One の作図ツール
- 豊富なテンプレートと図形
- 様々なファイル形式に対応
- フローチャート、マインドマップ、組織図などを作成
- Officeライクの操作感覚 初心者もすぐ使える