[Interview]
良いユースケースを書くコツを伝授

2003/1/22

 ユースケースはシステムの機能要件を設計者、プログラマ、テスター、ユーザー、そのほかの利害関係者に伝える重要な役割を持つ。UMLを学ぼうとするエンジニアにとって、ユースケースは、クラス図と同様、最初に目にする基本的なダイアグラムだが、基本だからこそ、その真髄は非常に奥深い。良いユースケースを書くうえで、初心者が陥るワナ、回避するコツなどを来日した米ラショナルソフトウェアの要求管理部門エバンジェリスト ジム・ヒューマン氏(Jim Heumann)に聞いた。
米ラショナルソフトウェアの要求管理部門エバンジェリスト ジム・ヒューマン(Jim Heumann)氏

――良いユースケースと悪いユースケースがある。その定義の違いは。

ヒューマン氏 良いユースケースというのは、機能要件を知るべき人々にとって円滑なコミュニケーションを可能にするユースケースのことだ。理解しやすく、簡潔だが必要な情報は十分に盛り込まれている。一方、悪いユースケースはその逆である。必要がないと思われる機能要件をも拾い上げてしまう、詳細すぎるユースケースはその最たる例だろう。ユースケースにGUIの詳細は必要ない。アーキテクチャの詳細もユースケースで表現する必要はない。

――なぜ良いユースケースが必要なのか。

ヒューマン氏 ユースケースというのは、要求管理の重要な一部分である。開発が進む過程で要求のエラーを修正するにはコストがかかりすぎる。そもそもユースケースは、何を構築するのか、あるいは何を構築しないのかをまず明確にすることから始まる。

――初心者がよく陥るワナがある。

ヒューマン氏 ユースケースは機能要件をストーリーとして書き出すことが必要である。その後、ダイアグラムに落としていく。しかし、機能要件を書き出す段階が難しい。表(個条書き)のように書いてしまうのは簡単だが、それでは機能要求を十分に補完することは難しい。そのため、一貫した“話(ストリー)”として表現しなければならないのだ。何がどうなったら、どうなるのか。これが起こらなかったら、何が起こるのか? というように。構造化手法でシステム開発の経験があるエンジニアがよく陥る。

 では、何をアクターにし、何をユースケースとするのか。その判断基準は何だろうか。アクターの定義にはいろいろな解釈があるが、標準的なTipsとしては、プリンタやDBはアクターにはならない、プログラムをしているシステムはアクターにはならない、デバイスはアクターとしてモデリングしないなどの“常識”を知っておくとよい。このような基本的な指針に沿ってアクターを決めていく。行き詰まったら、無視して先に進むこと。重要だと思ったら、後から追加すればよい。

 ユースケースを書くにはスタイルがある。例えば、フローのステップごとに番号を打つのかタイトルだけにするのか、メインフローとサブフローを分けて表現するのか、使われる用語などなど。ユースケースを書くうえでスタイルを統一することが重要だ。これが守られていない例は多い。

――ユースケースを書くうえで注意することは。

ヒューマン氏 利害関係者(機能要求を直接提示する人物)の要求ではない“要求”は、ユースケースとして表現するべきではない。これはどこまで詳細に書くかという問題につながる。

――ラショナルが提唱するスタイルとほかのスタイルとの違いは。

ヒューマン氏 ラショナルが提唱するスタイルは、各ステップにナンバリングをするか名前をつける。メインフロー(main flows)のステップは、代替フロー(alternate flows)を参照しないようにするなどだ(メインフローとは、搭載される予定の機能がトラブルなく推移するフローであり、代替フローは、例外やエラーなどを含むフローである)。ユースケースのスタイルは現在およそ30種類ほどあるが、どれが一番優れているかという議論には意味がない。スタイルが統一されているかどうかが重要になる。スタイルの統一がされていないユースケースは非常に読みにくく、機能要件がうまく伝わらない。ただ、ラショナルでは、要求管理から設計に至るまでをサポートするRUPの存在があり、ユースケースのスタイルとも密接な関係を保っている部分が優位だと考える。もちろん、方法論はなくても開発はできるし、ユースケースも書けるが、ないよりはあった方がいい。

(編集局 谷古宇浩司)

[関連リンク]
日本ラショナルソフトウェア

[関連記事]
UML、RUP創始者を招いたNTTコムウェアの改革への意思 (@ITNews)
[eWEEK] IBMによるラショナル買収、賛否両論 (@ITNews)
学生にもオブジェクト指向開発の実践スキルを、日本ラショナル (@ITNews)
ラショナル、モデリングによるチーム開発スイート製品 (@ITNews)
Rose伝導師、「将来、モデリングは開発者の必需品に」 (@ITNews)

情報をお寄せください:



@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)