【無料テンプレ付】シーケンス図完全マニュアル 基礎知識~書き方まで徹底解説

システム設計でよく使われるシーケンス図。先輩に書けと言われたけど、「そもそもシーケンス図って何?」、「必要性は?」、「どう書けば良いの?」という方も多いのではないでしょうか。 シーケンス図は、オブジェクト指向のソフトウェア設計では必須と言える重要なものです。難しいイメージを持っている方も多いですが、ポイントさえ抑えればけして難しいものではありません。若手エンジニアでも十分書くことができます。 この記事では、シーケンス図の基礎知識から書き方までどの記事よりも詳しく解説します。この記事を読み終えたとき、若手エンジニアもシーケンス図を書けるようになっているでしょう。この記事を参考に、シーケンス図を書いてみましょう。 1.シーケンス図とは シーケンス図とは、オブジェクト指向のソフトウェア標準設計手法群である「UML(統一モデリング言語)」の1つで、プログラムの処理の概要や流れを設計する際に使われる手法です。仕様書がない既存システムの分析に使われることもあります。UMLの中では「相互作用図」の1つに位置づけられています。 オブジェクト指向のソフトウェア設計において、シーケンス図を作成することはグローバルスタンダードと言っても過言ではないほど重要なものです。しっかりシーケンス図の基本を抑えておきましょう。 2.シーケンス図の3つのメリット ここではシーケンス図がなぜ必要なのかそのメリットについて解説します。 2.1.プログラムの処理概要を整理できる プログラムコードはあっという間に数千、数万行を超えます。設計なしに行き当たりばったりでコーディングすることは、「品質の悪いシステム」を作ることに他なりません。コーディングに掛かる工数や仕様変更時の改修工数も増えるでしょう。シーケンス図を使ってプログラムの処理概要(ロジック)を整理することは、最適なシステムを作成する第一歩です。 2.2.仕様レビュー・顧客へのエビデンス コーディング前に仕様をレビューすることは当たり前ですが、何を使ってレビューするかがとても重要です。シーケンス図は、視覚的に優れた図であり、開発チームでの仕様レビューにも適しています。シーケンス図を作成することで、開発メンバーやレビュアーに仕様を的確に伝えることができるでしょう。 また、一般的に顧客(ユーザー)はシステムの内部構造への興味が低いですが、後工程でのトラブルを回避するために顧客との仕様合意に用いても良いでしょう。提出しておくだけでもメリットがあります。 2.3.保守フェーズや追加開発時に仕様を確認することができる シーケンス図は、保守フェーズや追加開発時の「既存仕様」の把握に非常に役立ちます。プログラムコードは数万数十万行以上になることも稀ではありません。プログラムコードから仕様を紐解くにはとても時間が掛かります。シーケンス図があることで、コーディングした人以外が簡単に仕様を把握することができるようになります。 3.シーケンス図のデメリット シーケンス図を作成するデメリットは特にありません。仕様が変わった時にドキュメントを更新する手間が増えますが必要な作業です。仕様変更時はリバースエンジニアリングツールでシーケンス図を自動作成することにより、更新工数を減らすという方法もあります。 4.シーケンス図の基本ルール シーケンス図は、ライフラインやメッセージという「構成要素」と、オブジェクトのつながりや処理内容を表現する「複合フラグメント」を組合せて書きます。 この章では、「構成要素」と「複合フラグメント」のルール(種類)について解説します。シーケンス図の基本ルールは世界共通ですのでしっかり覚えておきましょう。 下図は、店員が商品を検索し商品詳細を参照するというシーケンス図の例です。 4.1.構成要素 構成要素は、ライフライン、実行仕様、停止、メッセージという大きく4種類あります。それぞれの要素の意味は下記のとおりです。 ライフライン オブジェクトやクラスを表現する時に使用します。 箱の中は、「オブジェクト名:クラス名」という書き方をします。 オブジェクト名かクラス名どちらか一方のみの場合は省略できます。 実行仕様 ライフラインで処理が実行されていることを意味します。 実行仕様は別名「制御フォーカス」とも呼ばれます。 ライフライン上に配置します。 停止 ライフラインの消滅を意味します。 処理が終わりライフラインを破棄する際などに使います。 同期メッセージ オブジェクトに対する処理命令(メソッドの起動命令)を意味します。 「同期メッセージ」は、このメッセージの処理が終了するまで 次のメッセージを起動させない仕様の時に使います。 実行元のライフラインはこのメッセージが終了するまで待機します。 メッセージ名の後ろに括弧をつけて引数を記載します。 非同期メッセージ オブジェクトに対する処理命令(メソッドの起動命令)を意味します。 「同期メッセージ」と違い、 実行した処理の完了を待たずに次のメッセージを起動します。 並列処理の場合などに使用します。 メッセージ名の後ろに括弧をつけて引数を記載します。 応答メッセージ 実行した処理の戻り値を意味します。 別名「リプライメッセージ」とも言われています。 メッセージ名の後ろに括弧をつけて引数を記載します。 4.2.複合フラグメント 複合フラグメントとは、オブジェクトの処理内容を表現するためのものです。プログラムコード内で書かれる条件分岐や並行処理、ループ処理などを視覚化するために使います。 シーケンス図上で表現する際は、記号(略名)を用いて記載します。記号は大文字で使うことも小文字で使うこともあります。大文字小文字に意味の違いはありません。会社ごとのドキュメント規約に従って記載して下さい。 名称 記号 処理内容 Alternatives alt 条件による分岐処理(if...
2016年9月12日0 DownloadsDownload