あなたのシステムに対して、良いユースケースを書きましたか?
ソフトウェア開発における最も難しい問題の一つは、本当に作りたいものを正確に捉えることである。不正確な要件は、最終的に大きなプロジェクトの遅延や再作業、さらにはプロジェクトの放棄につながる可能性がある。
ユースケース技法の効果的な適用は、チームがユーザーの視点から要件を捉えるのを助け、エンドユーザーとチームの両方にとって理解しやすいものにする。ユースケース駆動開発は、分析、設計、テストなどの後続の開発活動を支援する。

ユースケースとは何か?

ユースケースとは、アクターが観察可能なビジネス目標を達成するためにやりたいことである。短い動詞、または動詞+名詞の表現で名前を付ける。曖昧さを避けるために、具体的な動詞と名詞を使用すべきである。「する」や「実行する」などの動詞、および「データ」や「情報」などの名詞は可能な限り避けるべきである。
理論的には、エンドユーザーはユースケース分析で特定された最終目標を達成するために、システムが支援する行動を実行する。オンラインホテル予約システムを例に挙げよう。「予約」は明らかにビジネス目標であり、したがってユースケースである。オンラインマップ上でホテルを探す能力もユーザーが望む可能性がある。しかし、この行動自体が観察可能な目標を生み出さないため、ユースケースとは言えない。
実装上の問題に関連する要件をユースケースとしてモデル化することは適切ではない。たとえば、複数の発生をサポートすること、デプロイの配置、データベースの構築などである。これらすべては誤りであり、悪い、あるいはまったく誤ったシステムの構築につながる可能性がある。
ユーザーストーリーは今や広く使われている
ソフトウェア開発経験を持つ誰もが、エンドユーザーと開発チームの間でコミュニケーションの問題に直面する可能性がある。メンバーが異なるリモート場所で作業している場合、その問題はさらに悪化する。ユーザーストーリーは、顧客との対話を開く優れた方法であり、実際に何を望んでいるかを正確に理解できることを保証する。
プロダクトオーナーが作成したユーザーストーリーは、要件の「誰が」「何を」「なぜ」を簡潔かつ明確に捉え、しばしば技術的でない自然言語で書かれる。
アジャイル開発は、ユーザーストーリーとともに、要件の発見に用いられる開発手法の主流となった。
実践的な考慮事項
通常、平均10人のアジャイルチームは、ワークフローに何百ものユーザーストーリーを抱えている。そのうちのいくつかはエピックから派生したり、前のスプリントの詳細なユーザーストーリーから分割されたものである。ユーザーストーリーは一時的なアーティファクトであり、スプリント内でのみ存在し、開発イテレーションの終了時に破棄される。
アジャイルチームやスクラムメンバーは、スプリントの関連するユーザーストーリーを参照したい場合に、管理が難しくなり、整理整頓が困難になることがよくある。
代わりに、ユースケースはソフトウェア開発ライフサイクル全体にわたってより連続性を持ち、エピックの範囲内で関連するユーザーストーリーを保持するためのプレースホルダーとして機能する。さらに、ユースケースは開発チームにとって継続的な参照資料となるべきである。

ユースケース図とは何か?
ユースケース図は一種の統一モデリング言語(UML)要件抽出のために作成された図で、オブジェクト管理グループ(OMG)。ユースケース図は、ユーザー(アクターによって表現)がシステム(システム境界によって表現、オプション)を使用して達成したい目標(ユースケースによってモデル化)のグラフィカルな概要を提供する。
ユースケース図内のユースケースは、関連性、抽象度、ユーザーへの影響に基づいて整理・配置できる。依存関係、包含関係、拡張関係を示すために接続することもできる。ユースケース図を用いたユースケースのモデリングの主な目的は、ユーザーが何を望んでいるかを特定することで、システムの堅固な基盤を築くことである。分析の結果に基づいて、ユーザーのニーズをどのように満たすかを検討することができる。
ユースケース図は主にアクター、ユースケース、および関連(接続線)で構成される。
アクターとは、ユーザーの目標を達成するためにシステムとやり取りする個人または外部システムを指す。アクターには主に2種類ある:主なアクターと補助的なアクター。
- 主なアクターとは、システムとやり取りして直接的な利益を得る個人または物である。
- 補助的なアクターとは、ユースケースの達成に参加するが、システムから直接的な利益を得ない個人または物である。多くの場合、補助的なアクターは主なアクターがユースケースを達成するのを支援する存在である。
Visual Paradigmでユースケース図を描く
このチュートリアルでは、Visual Paradigmを用いて効果的なユースケースを書く方法を、オンラインホテル予約システムを例に説明する。まず、ユースケース図を描くところから始めよう。得られた設計をもとに、効果的なユースケースを書き続ける。
- Visual Paradigmで「UeXceler > UeXcelerアプリケーションツールバーから。
- 次のを開くユースケース図ページ。

- 選択アクター図ツールバーの。図上でクリックしてアクターを作成し、名前を付ける顧客.

- 顧客はホテルの予約を行うことができる。これはシステムのユースケースである。次の顧客アクターからユースケースを作成しよう。マウスポインターを顧客アクターの上に移動する。右上にあるリソースカタログアイコンを押してドラッグする。

- 選択関連 -> ユースケースリソースカタログで。

- マウスボタンを離してユースケースを作成する。名前を予約の作成。アクターとユースケースの関連は、アクターが関連するユースケースを達成するためにシステムとやり取りすることを示している。
- デザインを完成させ、以下のようになるようにする:

ユーザーストーリーによるユースケースの詳細化
ユースケースは開発されるITシステムのビジネス目標である一方、ユーザーストーリーは、ユースケースの詳細な議論の過程でアナリストや現場のステークホルダーが把握したユーザーの問題や懸念を表している。すべての収集されたユーザーストーリーは、ITシステムのビジネス目標を達成することを目的としていることは疑いがない。
- 右クリック予約の作成して、選択ユースケース詳細を開く… ポップアップメニューから。

- を開くユーザーストーリーページ。

- タブ内の空の領域をダブルクリックしてユーザーストーリーを作成します。3つのストーリーを作成します:ホテル検索, ホテル予約を行う および 急行予約の処理.

ユーザーストーリーのシナリオを記録する
ユーザーストーリーは、まずユーザーの問題を特定することで、エンドユーザーが何を達成したいかを示します。問題を特定した後、解決策を探り始めることができます。ユーザーストーリーのシナリオツールを使用すると、ユーザーストーリーで記述された問題を解決するためのアクターとシステム間の対話を図示できます。このツールを使用して、ユーザーが望むシステムの振る舞いを特定できます。
ユーザーストーリーのシナリオは、アクターが意図することや行うことを明らかにし、システムがそのアクターの入力にどのように反応するかを明らかにする目的を持つ、高レベルのユーザーとシステム間の対話です。イベントストリームに含める内容を決定する際は簡潔にすること。システムがユーザー入力を内部でどのように処理するか、あるいはデータベースレコードを挿入するといった実装の詳細は含めないでください。これは誤りです。なぜなら、ユーザーストーリー、そして実際のユースケース分析は、エンドユーザーの視点から要件を特定することを目的としているからです。ただし、実装の詳細は、ユーザーストーリーのサブダイアグラムとしてUMLシーケンス図でモデル化できます。
ユーザーストーリーのシナリオを書いてみましょう。
- ユーザーストーリーをダブルクリックしますホテル検索を開きます。

- を開くシナリオタブ。シナリオエディタは、ステップと呼ばれる行で構成されています。各ステップはアクターの入力またはシステムの応答を表します。

- 最初のステップをクリックし、最初のユーザー入力として入力します:都市、到着日、出発日、部屋タイプを入力し、検索をクリック.

- 以下のUeXcelerツールバーのフォーマットツールを使用して、単語検索を青色で太字にして強調します。

- 押す入力を入力してこのステップを完了します。ステップ2が自動作成されます。
- ステップ2はシステムがユーザーの入力にどう反応するかに関するものです。”システム…”と書き始めるかもしれませんが、システムの応答をより良い方法で表現する方法があります。ツールバーからUeXceler > コントロール追加 > システム応答を選択して、システム応答のステップを追加します。

- それでは、ステップ2の内容を入力できます:ホテルの一覧を表示.

- 以下のステップを追加します:
ユーザー入力 システム応答 ホテルのロゴをクリックして詳細を確認 ホテルの詳細を表示 
さらに進んでみる – シナリオベースのワイヤーフレームの作成
ワイヤーフレームはユーザーインターフェースのスケッチです。要件収集の初期段階で、開発予定のシステムの画面や画面遷移を表現するのに役立ちます。シナリオ内のステップにワイヤーフレームを関連付けることができます。このセクションでは、ワイヤーフレームツールを使ってステップにワイヤーフレームを追加する方法を紹介します。
- 最初のステップをクリックします。

- マウスのポインタを右側の緑色の三角形に移動します。その後、ワイヤーフレームの定義.

- 右側にグレーのパネルが表示されましたか?クリックして作成するワイヤーフレームの種類を選択します。

- ポップアップウィンドウでウェブサイト.

- をクリック新しいウェブサイトワイヤーフレーム。新しいワイヤーフレームが表示され、その中に空のブラウザウィンドウがあります。ここにウェブサイトのモックアップを作成できます。
- ブラウザウィンドウにさまざまなコンポーネントを追加する前に、サイズを小さくするためにリサイズしましょう。ブラウザウィンドウのタイトルをクリックします。
- クリックすると、ブラウザウィンドウの周りにリサイズハンドラが表示され、手動でウィンドウサイズを調整できます。より直接的な方法を試してみましょう。ブラウザのタイトルを右クリックし、「ブラウザサイズ(1024 x 768)> 800 x 600」をポップアップメニューから選択します。

- 図のツールバーに表示されているワイヤーフレームツールを使用して、このようなワイヤーフレームを作成します:

- ステップタイトルの隣にある三角ボタンをクリックして、シナリオエディタに戻ります。

完了しました。ワイヤーフレームのサムネイルがシナリオエディタに表示されます。
