Hatena::ブログ(Diary)

たまゆら雑記 このページをアンテナに追加 RSSフィード Twitter

2011-02-04

意地悪漢字

 ユースケース仕様の拡張条件と拡張系列とは で、拡張条件について述べました。この拡張条件をどのように挙げたらよいのでしょうか。

 コーバーンの「ユースケース実践ガイド」には次のような記述が載っています。

拡張条件の処理を考える前にブレーンストーミングを行い、拡張条件をできるだけ多く見つけ出すことが重要です。(中略)

シナリオが失敗する道筋や成功する別の道筋を、ブレーンストーミングで考えられるだけ出してみましょう。次の項目をすべて考慮してください。

  • 代替成功パス
    • 社員がショートカットキーを使用する
  • 主アクターの振るまいが正しくない
    • 間違ったパスワード
  • 主アクターが活動を停止する
    • パスワード入力のタイムアウト
  • 「システムは・・・を確認する」という言い回しは、拡張で確認の失敗処理を行わなければならないことを意味する。
    • 口座番号が正しくない
  • 支援アクターからの応答がない、あるいは応答が正しくない
    • 応答待ちのタイムアウト
  • 設計対象システムの内部エラー。正常なビジネスの一部として検出し、処理しなければならない。
    • 現金自動支払機が動かなくなる
  • 予期しない異常な内部エラー。処理しなければならない。結果が外部に見えることもある
    • 壊れたトランザクションのログが見つかる
  • システムのパフォーマンス上の重大な問題点。検出しなければならない。
    • 計算結果が5秒以内に返されない

(p.130〜131)


 この他に、自社で用意したチェックリストを使って挙げている人もいます。先日行われた派生開発推進協議会(AFFORDD)フォーラムにおいて、事例を発表されたデンソーの矢野さんもチェックリストを使っているそうです。


 チェックリストが上手く活用できていればよいのですが、リストだけ一人歩きし本来の使い方をしなくなることがあります。拡張条件を見つけるために使うチェックリストは、あくまでもサンプルであり、これをもとにユースケースに適した拡張条件を見つけるために使います。チェックリストに挙げられている項目だけを考慮すればよいものでありません。チェックリストを参考にしながらブレインストーミング(僕はこのように表記します)するのが、よい使い方だと思います。

 しかし、チェックリストとして提供されてしまうと、どうしてもそのチェック項目しか目が行かず、リストを網羅することで満足してしまいがちです。もしかすると重要な拡張条件を見過ごしてしまうかもしれません。かといって、人のスキルに依存するブレインストーミングでは、より不安になるかもしれません。(ユースケース本にも、用意してある回答の3倍の拡張条件を見つけ出した人の話がでています)

 チェックリストとブレインストーミングの良いところを引き出すツールとして紹介するのが、「意地悪漢字」です。この意地悪漢字は、本来、いわゆる意地悪テストを効率よく実施するために使うツールなのですが、ユースケースの拡張条件を見つけ出すのにも役立ちます。

  f:id:mkoszk:20110204233901p:image

f:id:mkoszk:20110204234033p:image


f:id:mkoszk:20110204234032p:image


 「表」が概ね代替系列、「裏」が概ね例外系列にあたると思ってください。使い方は、ユースケースの拡張条件として成り立ちそうな漢字を見つけ、その漢字から思いつく代替条件や例外条件を挙げていきます。新たな漢字(例えば「忘」など)を思いついたら、その漢字を使って拡張条件を挙げていきます。これを一人ではなく、複数の人とやるとブレインストーミングのようになります。

 チェックリストの良さとブレインストーミングの良さを兼ね備えた「意地悪漢字」を是非使ってみてください。

 なお、意地悪テストとして使う場合には、こちらを参考にしてください。JaSST'10 Hokkaido 意地悪テスト (PDF)