シーケンス図とは、1つの事例におけるオブジェクト間の相互作用を表現するために使用される図形のことです。これは、システムが互いにどのように作用し、どのような機能を実行してどのような目標を達成するかを示しています。シーケンス図を正しく理解するには、実際のシーケンス図を通して学ぶのが最も良い方法です。この記事では、シーケンス図について詳しくご説明していきますので、ぜひご一読ください。
シーケンス図の例
それでは、シーケンス図例7選を見ていきましょう。
図例1: ドメインモデルUMLクラス図の例
ドメインモデルUMLクラス図は、ソフトウェアエンジニアリングのシーケンス図の 1 つです。クラス図は、どのようなビジネスにおいてもさまざまな形で役立ち、UMLクラス図を使えば、アプリケーションの全体的なレイアウトの理解を助けることができます。また、情報システムのデータモデルを、どんなに複雑なものでも作成することもできます。これは、特に管理職、マネージャー職に便利なものです。たとえば、エンティティの関連機能を可視化し、現在のユーザーや記事のような、エンティティの重要なインスタンスも表示させることができるようになります。
図例2: IT開発シーケンス
次のシーケンス図は、IT開発シーケンスです。システムの開発者は、ある事例におけるオブジェクト間の相互作用を表すために、シーケンス図をよく利用します。たとえば、さまざまなシステムコンポーネントが互いにどのように作用し、どのような順序で結果を生成するかなどを示すことができます。
図例3: ユーザーシーケンス図
ここでは、内部のネットワーク関係がどのようにつながっているかを示したシーケンス図の例を紹介します。まず、Unified Modeling Language(UML)とは、ソフトウェア開発・エンジニアリングのための視覚的表現のモデリング手法のことです。C++やJavaなどのオブジェクト指向のプログラミング言語などに適したモデリング手法です。この図を使えば、ソフトウェアの全体構成や指示の方向性などを示すことができます。ぜひ自分でも作成してみてください。
図例4: トランザクションUMLシーケンス図
トランザクション管理や例外処理を説明するための、UMLシーケンス図の例をご紹介します。Enterprise Java の Spring アプリケーション開発フレームワークには、Hibernate のトランザクション管理が組み込まれています。そのSpringのトランザクションインターセプタは、特定のビジネスメソッドの呼び出しをインターセプトすることがあります。これにより、バックグラウンドインターセプタの背後でHibernate JDBCトランザクションが開始され、ビジネスメソッドが新しいトランザクションのコンテキストで実行されるようになります。
図例 5: 登録プロセス UML シーケンス図
登録プロセス UML シーケンス図は、登録プロセスを示しています。システムのオブジェクト間で交わされるメッセージの順序は、そのシステムの機能に影響を及ぼします。ただし、オブジェクトやクラスは、まず登録システムにおいて表示されることになります。
図例6: Facebook ウェブユーザーの UML シーケンス図
ここでは、シーケンス図の一例をご紹介します。この UML シーケンス図は、使用するWebアプリごとにユーザーを識別し、それぞれFacebook リソースにアクセスする方法を示しています。Facebook は OAUTH 2.0 プロトコルのフレームワークを利用しています。このフレームワークは、FacebookのリソースオーナーでないWebアプリケーションを許可する代わりに、Web アプリケーションはFacebook ユーザーを表示することによって、Facebook ユーザーが管理するリソースへのアクセスを要求します。Webアプリケーションは、Facebookユーザーの認証情報を使用する代わりに、保護されたリソースを使用するためのアクセストークンを取得するのです。
図例7: ホスティングAPI UML図
もう一つ、無料で利用できるシーケンス図の例をご紹介します。DICOMアプリケーションホスティングAPIを表すUMLです。DICOM規格は、ホストシステムとホストアプリケーションという2つのコンピュータプログラム間のAPIを規定しています。同じコンピュータシステム上で動作している間、これら2つのプログラムで、メディカルデータを共有することができます。
以上が、シーケンス図例8選になります。解説付きでご紹介させていただきました。もしUMLシーケンス図を簡単に作成したいのであれば、EdrawMaxが特におすすめです。このソフトは初心者でも簡単に利用できるオールインワンの図解ツールになっています。様々なファイル形式に対応しているだけでなく、プロがデザインしたテンプレートも無料で使用することができます。
シーケンス図を設計するためのヒント
分かりやすいシーケンス図を簡単に作成するための実践的なヒントをご紹介します。
ポイント1: システムのインターフェースと照らし合わせ、無関係と思われるシーケンス図の差し替えや修正を必ず行いましょう。
ポイント2: 単純なインタラクションは表示しないようにしましょう。(プロパティセッターやゲッターのように、変数の値を設定したり取得したりするだけで十分です。このような単純な操作は無意味ですし、シーケンス図の情報的価値を下げてしまうことに繋がります。)
ポイント3: シーケンス図は、クラス図が完成した後に作成してください。これにより、図に描かれた相互作用を確実にコンポーネント内に存在させることができます。さらに、シーケンス図を後から変更する可能性も低くすることができます。
ポイント4: シーケンス図にユースケーステストを追加しましょう。つまり、シーケンス図を関連するユースケースのナラティブフローに対応させるようにしましょう。
ポイント5: 動作を割り当てるときは、メッセージ矢印を使用して、原則通りに作成しましょう。
最後に
ソフトウェアエンジニアリングにおけるシーケンス図の例7選と、より良いシーケンス図を描くための5つのヒントをご紹介しましたが、もしUMLシーケンス図を描くのに最適なツールを探しているのであれば、EdrawMaxがおすすめです。このツールは、ビルトインテンプレートを多数備えているため、必要に応じてカスタマイズするだけで、簡単にシーケンス図を作成することができます。もしよければ、実際に使ってみた感想などをシェアしてくださいね。