TL;DR
利用者とシステムのやりとりを、目的を達成するための台本として描き、システムの振る舞いを把握する技法。Domain Modeling Made Functional の定義では、シナリオをより詳しくしたもの。ある目標を達成するためにユーザが行う操作などを、一般的な言葉で表す。シナリオと同じく、ユーザ中心の概念である。
なぜ必要か
Wikipedia によると、ユースケースはシステムの機能要求を含む振る舞いを把握するための、ソフトウェア工学やシステム工学の技法である。機能要求を把握し、早まった設計を防げる。見積もり、スケジューリング、テストケースの作成、範囲の決定、段階的なリリースにも使える。
仕組み
Wikipedia によると、ユースケースは、利用者(アクター)とシステムのやりとりを、目的を達成するための台本として描く。1 つのユースケースは、1 つの目標やタスクを達成する方法を描く。アクターは人や物の「役割」を指すので、同じ人でも役割が違えば別のアクターになる。ATM で預金を引き出す顧客と、ATM に現金を補充する銀行員は別のアクターである。アクターは別のシステムのこともある。
イヴァー・ヤコブソンが 1986 年に視覚的なモデリングの技法としてまとめ、その後アリスター・コーバーンらが改良した。詳しさには要約、略式、詳細の 3 段階がある。詳細なユースケースは、事前条件、トリガー、基本の経路、代替経路、事後条件などの節を持つテンプレートに沿って書く。ただし標準のテンプレートはなく、プロジェクトごとに決める。
注意点
Wikipedia によると、ユースケースではシステムをブラックボックスとして扱い、何をするかだけを書いて、どう実装するかは書かない。画面表示や UI の詳細も含めない。