ユースケース図そしてシーケンス図は補完的ですUMLツールこれらは一緒に働き、システムの機能と動作について包括的な理解を提供します。このガイドでは、これらの図を効果的に一緒に使う方法を、実践的な例と詳細な説明とともに紹介します。
ユースケース図は、システムの高レベルな機能(ユースケース)と、それらの機能とやり取りする外部のアクター(ユーザーまたは他のシステム)を表します。これらは、ユーザーの視点からシステムが何をすべきかを特定するのに役立ちます。何システムがユーザーの視点から何をすべきかを示します。ユースケースは楕円で表され、アクターは人形で表され、関係性は相互作用や依存関係を示します。
例:オンラインバンキングシステムを考えてみましょう。ユースケース図には、顧客、銀行管理者、外部決済ゲートウェイなどのアクターが含まれるかもしれません。ユースケースには「ログイン」、「資金の送金」、「明細の確認」、「アカウントの管理」などが含まれます。関係性は、どのアクターがどのユースケースとやり取りするかを示し、システムの機能的範囲を明確に把握できるようにします。
シーケンス図はどのように特定のユースケースを実現するために、時間の経過とともにオブジェクト(クラスのインスタンス)間で交換されるメッセージの順序を示すことで、その動作をモデル化します。オブジェクトのライフラインと、ユースケースの動作を実行するために必要な相互作用の時間順序を描きます。
例:オンラインバンキングシステムの「資金の送金」ユースケースについて、シーケンス図は顧客、銀行口座、取引プロセッサ、外部決済ゲートウェイなどのオブジェクト間の相互作用を示します。図では、「送金依頼」、「口座の検証」、「取引の処理」、「送金の確認」などのメッセージの順序を示し、機能を実装するために必要な動的動作と協働の詳細な視点を提供します。
システムの主要なユースケースとアクターを特定し、モデル化します。これにより、システムの機能的範囲とユーザーとの相互作用について明確な概要が得られます。
例:図書館管理システムの場合、ユースケース図には図書館員、会員、管理者などのアクターが含まれるかもしれません。ユースケースには「本の貸し出し」、「本の返却」、「カタログの検索」、「在庫の管理」などが含まれます。関係性は、どのアクターがどのユースケースとやり取りするかを示し、システムの機能要件を明確に定義するのに役立ちます。
さらに詳しく調べたい特定のユースケース(例:「本の貸し出し」)を選択します。このユースケースがシーケンス図の基礎になります。
例:図書館管理システムにおいて、「本の貸し出し」ユースケースを選択すると、会員が本を借りるために必要な主要な相互作用と手順を特定することになります。これには、本の在庫状況の確認、会員アカウントの更新、取引の記録が含まれます。
ユースケースのシナリオに関与するオブジェクト(例:会員、本、図書館データベース、取引ログ)をモデル化します。これらのオブジェクト間の相互作用(メッセージ)を、発生する順序で示し、ユースケースを達成するために必要な動作を明確にします。これにより、機能を実装するために必要な動的動作と協働が明確になります。
例: 「本を借りる」ユースケースの場合、シーケンス図は会員、本、図書館データベース、取引ログの間の相互作用を示す。図は「本の依頼」「在庫確認」「会員アカウントの更新」「取引の記録」などのメッセージの順序を示し、機能を実装するために必要な動的動作と協働の詳細なビューを提供する。
メインのフローに加えて、ユースケース内の代替フローや例外フローを表すために追加のシーケンス図を作成する。
例:「本を借りる」ユースケースにおいて、代替フローとして本が利用できない状況が考えられる。この代替フローのシーケンス図は、「本の依頼」「在庫確認」「利用不可の通知」「代替品の提案」などの相互作用を示し、システムが例外をどのように処理するかの詳細なビューを提供する。
シーケンス図を対応するユースケースに戻すリンクを設けることで追跡可能性を維持し、上位レベルの要件と詳細な相互作用の間での明確なナビゲーションを確保する。
例:図書管理システムにおいて、「本を借りる」ユースケースのシーケンス図をユースケース図に戻すリンクを設けることで、ステークホルダーが上位レベルの概要と詳細な相互作用の間を簡単に移動できる。この追跡可能性は開発プロセス全体で明確さと一貫性を維持するのに役立つ。
| 図の種類 | 目的 | 主要な要素 | 開発における役割 |
|---|---|---|---|
| ユースケース図 | システムの機能とアクターを把握する | アクター、ユースケース、関係 | 定義する何をシステムが行うか |
| シーケンス図 | 時間経過に伴うオブジェクト間の相互作用をモデル化する | オブジェクト(ライフライン)、メッセージ | 定義するどのようにシステムが動的に振る舞うか |
オンライン書店のユースケース図は、顧客や管理者といったアクターを特定し、「注文する」や「在庫を管理する」などのユースケースを示す。関係性により、どのアクターがどのユースケースと相互作用するかが明らかになり、システムの機能的範囲の明確な概要を提供する。
例:
シーケンス図は、顧客、カート、注文、在庫オブジェクト間のやり取りを、発生する順序で示すことにより、「注文する」ユースケースをモデル化する。これにより、機能を実装するために必要な動的動作と協働の仕組みが明確になる。
例:
ユースケース図とシーケンス図を組み合わせることで、システム機能の高レベルな概要と、その機能を実現するために必要な相互作用の詳細な視点を得られ、明確なコミュニケーションと効果的なシステム設計が可能になる。
ユースケース図:
「処方箋を出す」ためのシーケンス図:
ユースケース図:
「チェックアウト」のシーケンス図:
ユースケース図とシーケンス図の両方を活用することで、システムの機能と動作に関する包括的な理解が得られます。ユースケース図はシステムが何をすべきかという高レベルの概要を提供し、シーケンス図はシステムの動的動作に関する詳細な視点を提供します。この組み合わせにより、明確なコミュニケーション、効果的なシステム設計、複雑なシステムの成功した実装が保証されます。
参考文献:
[1] https://www.visual-paradigm.com/support/documents/vpuserguide/94/2577
[2] https://www.visual-paradigm.com/support/documents/vpuserguide/94/2577_sequencediag.html
[3] https://www.visual-paradigm.com/support/documents/vpuserguide/94/2575/6362_drawinguseca.html
[4] https://www.visual-paradigm.com/learning/handbooks/software-design-handbook/sequence-diagram.jsp
[5] https://www.visual-paradigm.com/VPGallery/diagrams/Sequence.html
[7] https://www.visual-paradigm.com/support/documents/vpuserguide/124_interoperabi.html
[8] https://www.visual-paradigm.com/support/documents/vpuserguide/94/2575_usecasediagr.html