開発の工程をスムーズに進行し、より完成度の高いシステムを作成するには、設計のプロセスを理解するとともに図表を適切に使いこなすことが重要となります。
その中で、「シーケンス図」はシステム開発の設計に用いられる図のひとつで、実用性・有用性の高いものです。
当記事では、シーケンス図の概要・必要性・構成要素から作成のポイントまでを幅広く紹介します。
シーケンス図をより効果的に活用したい場合、ぜひ参考にして下さい。
シーケンス図とは?
シーケンス図とは、システムの概要・仕様・処理の流れを記載した図のことで、システム開発の設計書として使用されます。クラス・オブジェクト間のやり取りを、時間軸に沿って一定の書式に則って記載する点が特徴です。
設計時のみならず、開発・保守・運用フェーズにおいてもシステムの詳細を把握するためにも使用されます。
シーケンス図は、システム開発の設計過程で使用されるUML(Unified Modeling Language)の一種であり、詳細設計の工程で発生する成果物の一種です。一般的に、より実際のシステムに近い処理の概要や流れが記載されます。
シーケンス図の必要性
シーケンス図が必要である理由は、システム設計時はもちろんクライアントへの説明や保守・追加開発時まで含めて業務を円滑に進行できるというメリットがあるためです。
また、シーケンス図を参照することによって、開発プロセスにおけるコミュニケーションエラーや認識違いといったリスクを回避することもできます。
シーケンス図を作成することで得られる具体的なメリットについて、以下に詳しく解説します。
処理概要を整理できる
シーケンス図を作成する最大のメリットは、システム処理の概要・仕様・手順について整理できる点です。
シーケンス図は一定の記述ルールに従って視覚的に分かりやすい形式で記述されるため、テキストベースの仕様書を読むよりも、システムの詳細についてスムーズかつ正確に理解することができます。
また、仕様書よりも全体像の把握やミスの発見が容易であるといったメリットもあります。
特に、概要や仕様の理解・把握が難しい大規模システムや複雑なシステムを開発する場合においては、シーケンス図を作成するメリットは大きいといえるでしょう。
クライアントへの説明に活用できる
シーケンス図は、システムの処理手順が分かりやすく可視化されて示されているため、自社内の開発メンバーで共有して活用するだけではなく、クライアントへシステムの概要や仕様を説明する際にも活用できます。
口頭やテキスト資料で説明するよりもシステムの詳細をクライアントに分かりやすく伝えることができるため、IT・システムに明るくない方へ対しての説明にも効果的です。
また、シーケンス図を用いることにより、開発サイドとクライアントサイドでシステム開発のイメージを共有できるといったメリットもあります。認識の相違を防げるため、急な仕様変更や修正が発生するリスクを回避することにも繋がるのです。
保守・追加開発時に活用できる
シーケンス図は、新規システム開発時だけでなく保守・追加開発が発生した際にも活用することができます。シーケンス図を参照することで、保守・追加開発の対象となるシステムの概要・仕様をスムーズに把握して、効果的な施策を打つことができるためです。
システム開発の現場では新規システム開発時と保守・追加開発時のメンバーが異なることが多くあり、同一メンバーであっても時間が経過していればシステムの概要・仕様を失念しています。
新規開発・納品・保守・追加開発といったシステム会社が請け負う一連のフェーズをスムーズに行うためにも、シーケンス図の作成は必須であり自社の資産となり得るといえるでしょう。
シーケンス図の構成要素
ここでは、シーケンス図の構成要素について解説します。
シーケンス図は複雑なイメージがありますが、実際は以下4つの要素をルールに基づいて組み合わせたものであり、構成要素さえ理解すれば、不慣れな方でもシーケンス図を読み解くことができるでしょう。
■シーケンス図の構成要素
ライフライン |
オブジェクト名・クラス名を記述して示すための要素です。 |
実行仕様 |
ライフライン上で実行される処理の仕様を記述する要素であり、ライフライン上に設置します。 |
停止 |
ライフライン上で処理が実行されていないことを示す要素で、処理が完了してライフラインを破棄する際に使用します。 |
メッセージ |
送付先のライフライン上の処理実行に対するメッセージで、同期・非同期・応答・ファウンド・ロストの5種類があります。 |
シーケンス図の複合フラグメントとは?
シーケンス図の複合フラグメントとは、並列処理・ループ処理・条件分岐などの具体的な処理内容を示す記号ルールのことです。処理手順を枠線で囲み、左上に処理内容を記述します。
シーケンス図に要素だけ記述した場合においてもシステムの処理手順は把握できますが、具体的な処理内容が判断できません。より分かりやすく有用性の高いシーケンス図を作成するためにも、複合フラグメントを記述することが重要となります。
ここでは、シーケンス図の複合フラグメントの名称・記号・処理内容についてそれぞれ解説します。
「alt」-条件分岐
名称 |
Alternatives |
記号 |
alt |
処理内容 |
条件分岐 |
条件分岐を複合フラグメントで示す場合は、「alt」の記号を使用します。条件分岐の条件については、” [ ]”(ガードと呼ばれる括弧)で囲んで記述します。
例えば、通販サイトのオンラインクーポンを有効期限で条件分岐する場合は、以下のように記述します。
[有効期限内]・・・割引計算を行い計算結果を返す [有効期限外]・・・期限切れメッセージを表示 |
各処理内容については点線で区切って記載します。
「opt」-条件一致
名称 |
Option |
記号 |
opt |
処理内容 |
条件一致(指定した条件が満たされた時のみ実行される処理) |
条件一致(条件指定)を複合フラグメントで示す場合は、「opt」の記号を使用します。条件指定の内容は、「alt」と同じく” [ ]”で囲んで記述します。
「alt」と類似している複合フラグメントとなりますが、「alt」はA・Bどちらかに分岐させるのに対して、「opt」はAとA以外はすべてBというような処理が行われることが特徴です。
例えば、免税店のPOSシステムの場合、顧客が免税の対象となる外国人の場合のみ、免税ボタンを押して免税システムと連携させるといった使い方を行います。
「ref」-外部参照
名称 |
Reference |
記号 |
ref |
処理内容 |
外部参照(外部のシーケンス図を参照) |
「ref」は、「囲まれている部分は、外部のシーケンス図を参照して下さい」という意味の複合フラグメントです。システムの規模が大きくなったり複雑化したりして、1つのシーケンス図には収まりきらない場合に使用されます。
例えば、POSレジと会計システムの連携やECサイトのシステムなど、複数の複雑な処理を並行して行うケースが挙げられます。
「par」-並列処理
名称 |
Parallel |
記号 |
Par |
処理内容 |
並列処理(並行処理) |
並列処理とは、1つのアクションに対して複数の処理が並行して行われる場合に使用される複合フラグメントです。並列処理をシーケンス図に記載する場合は枠線で囲んだ左上に「par」と記述して、実行される処理内容については点線で区切ります。
並列処理が用いられるケースとしては、例えば通販サイトでの販売確定時に注文処理システムと在庫管理システムの更新処理を同時に行う場合などが挙げられます。
「Loop」-ループ処理
名称 |
Loop |
記号 |
loop |
処理内容 |
ループ処理(反復処理・繰り返し処理) |
ループ処理を複合フラグメントで示す場合は、「loop」の記号を使用します。ループ処理の記述方法は、「Loop[開始条件,終了条件]」という形式でシーケンス図に記述します。
例えば、通販サイトでの決済処理を行う場合は、「loop[1,商品数]」と記述します。この場合、1点以上の商品数があった場合には、商品数の数だけループ処理が繰り返されます。
「Consider」-重要処理
名称 |
Consider |
記号 |
consider |
処理内容 |
重要処理・有効処理 |
「Consider」は、システムのコア」となるような特に重要な処理を行っている部分を示す際に使用される複合フラグメントです。重要処理をシーケンス図に記述する場合は、処理部分を枠線で囲んで左上に「consider{処理内容A、処理内容B}」のように記述します。
例えば通販サイト・実店舗の受注管理システムの場合だと、「Consider{会計システム、在庫管理システム}」のように処理内容の記述を行います。
「break」-中断処理
名称 |
Break |
記号 |
break |
処理内容 |
中断処理(指定した条件を満たした処理を中断) |
「break」の複合フラグメントは、指定した条件を満たした場合に処理を中断する際に使用される複合フラグメントです。中断の条件は「break[在庫=<0]在庫切れメッセージ」のように[]内に記述します。
上記の記述例の場合は、在庫が無くなったら(0になったら)処理を中断して在庫切れのメッセージを表示することを示しています。
「neg」-否定処理
名称 |
Negative |
記号 |
neg |
処理内容 |
否定処理(不正な処理に対してエラーを返す部分を示す) |
「neg」は、通常では発生しない不正な処理に対してエラーを返すシステム部分を示す複合フラグメントです。否定処理をシーケンス図に記述する場合は、エラーを返す部分を枠線で囲み、左上に「neg」を記述します。
否定処理が使用されるケースとしては、在庫管理システムで在庫マスタの更新を行う際に、通常の処理手順では整合性が取れない場合などに整合性エラーを返す処理等が挙げられます。
「critical」-排他処理
名称 |
Critical Region |
記号 |
critical |
処理内容 |
排他処理(割り込み・中断を受け付けない処理) |
「critical」は、指定した処理の実行中は割り込みや中断といった他の処理を受け付けないことを示す複合フラグメントです。
例えば、レンタルスペースの使用中処理と予約受付処理を並行処理する予約管理システムの場合だと、レンタルスペースの使用中は「critical」で使用中処理の保護を行います。
レンタルスペースの使用中は、使用中処理が保護されるため、他の動きを受け付けませんが、予約受付は行えるといったイメージです。
シーケンス図の作成ポイント
シーケンス図はシステム開発において必要性・重要性の高いツールですが、闇雲に作成してしまうと扱い難い図となってしまう場合があります。そのため、作成にあたっては実用性を考慮して以下のようなポイントを押さえておくことが大切です。
- シーケンス図の利用シーンを想定して作成する
- 複数メンバーが共有しても内容が分かりやすいように作成する
- クライアントと共有する場合は分かりやすさを特に意識して作成する
シーケンス図はあくまでシステム開発の業務フローをスムーズにするためのツールです。作成者や熟練者しか読み取れないようでは、実用性が低下してしまう点に留意しておきましょう。
シーケンス図作成にあたって押さえるべき具体的なポイントについて以下に紹介します。
シナリオを明確にする
シーケンス図を作成する際にまず意識すべきことは、「シナリオを明確にする」ことです。シナリオが不明瞭であると、シーケンス図の可読性が低下して分かりにくくなり、実用性も大きく悪化してしまうでしょう。
シナリオを作成する際には、クライアントへのヒアリングを入念に行い、業務フローを明確にしておくことがポイントとなります。
また、1つのシーケンス図に複数のシナリオを混在させないことも、可読性を低下させない重要なポイントです。なるべく1つのシーケンス図には、1つのシナリオのみを記載して、複数シナリオが存在する場合はシーケンス図を分けたり外部参照を活用して作成するようにしましょう。
長くなりすぎないようにする
シーケンス図を作成するもうひとつのポイントとして、詳しく書き込みすぎて図が複雑で長くならないようにすることが挙げられます。
シーケンス図は、その気になれば非常に詳しく具体的に作成することが可能です。情報量が多いと、視認性や可読性が低下してしまいます。
シーケンス図は上述した通り複数の社内メンバー及びクライアントと情報を共有する用途で使用されるため、どの程度まで書き込むかはあらかじめルール付けしておくことが重要です。
図が複雑で長くなりすぎる場合は、複数シナリオの混在を回避する時と同じく、図を分けたり外部参照を活用するといいでしょう。
詳細設計書作成における課題
シーケンス図の作成のみならず、詳細設計のフェーズにおいて多くの企業が抱える課題が、ドキュメントの作成ルールが決まっていないため、一定の基準で作成することが難しい点です。作成者によって作成される図が異なる部分があるなど、属人化が発生しやすいという課題があります。
また、シーケンス図はシステム開発の全体像や業務フローについて一定レベル以上の理解が不可欠であり、作成に時間が掛かり設計者の負担が増すという懸念もあります。
このような課題を解決するには、どのような取り組みが必要なのでしょうか。以下で見ていきます。
課題解決のヒント
詳細設計書作成の課題を解決するためには、「誰を対象として書くのか」「どの程度まで詳しく書くのか」といったことを、あらかじめ定義しておくことがポイントです。可能な範囲で定義しておくことで、品質・基準をある程度一定に確保することができます。
また、属人化を防止する、設計書作成の時間を短縮したい場合には、システム開発設計用の「CADツール」を活用することも効果的な方法です。
弊社システムインテグレータでは、システム開発の設計書作成を支援するCADツール「SI Object Browser Designer」を提供しています。システム開発の設計工程管理を合理化・効率化できるツールであるため、ぜひご検討下さい。
まとめ
シーケンス図は、システム開発の設計ならびに開発を円滑に進める上で、必須といえる重要なドキュメントの一つです。特に、オブジェクト指向のソフトウェア設計では必要不可欠だといえるでしょう。シーケンス図の作成は複雑難解なイメージがありますが、書き方とコツをマスターすれば、若手エンジニアでも作成することができます。
しかし、当記事で解説した通り、詳細設計書の作成課程には属進化が発生したり作成に時間が掛かったりといった懸念があることは事実です。このような課題については、システム開発の設計用用CADツールを活用することで解決することができます。
記事内でご紹介した通り、弊社システムインテグレータでは、システム開発設計用のCADツール「SI Object Browser Designer」を提供しています。
システム設計に関するお役立ち資料も、無料で公開しているので、ぜひお気軽にご活用ください。
- カテゴリ:
- キーワード: