ユースケース駆動開発実践ガイド(1)

Javaの勉強会で行っている「ユースケース駆動開発実践ガイド」の読書会の資料という形でまとめたものです。1回目は第2章のドメインモデリングの所をやりました。

ICONIXプロセスとは?

ユースケースロバストネス分析を軸にした実践的な開発プロセスで、次のような特徴を持ちます。

  • 小〜中規模なプロジェクト向け
  • WEBアプリなどの画面を介したアプリケーションに適する
  • UMLを実践的なレベルに簡略化(必要最低限)
  • 設計を段階的に行う(イテレーティブ)
  • レビューを重視

ICONIXでは下の図のようなプロセスで開発を進めます。

※要求定義自体はICONIXプロセスの範囲から外れますが、流れとしてここに含めました。

まず、要求レベルではユースケースを重視しています。ユースケースはユーザがシステムと対話するシナリオとなる為、システムの最終的なテスト項目とユーザガイドに対応していく箇所です。また、ユースケースが概ね抽出できた時点で、最終的な開発の見積もりを算出するべきと述べられています。
予備設計は、従来の言い方で言えば概要設計の画面寄りの設計になります。ロバストネス分析は、ユースケースからシーケンス図に落とし込む準備であり、かつユースケースの問題点を洗い出す工程です。予備設計のレビューはクライアントとシステムの振る舞いを調整する最後の機会になります。ここでシステムの振る舞いのほとんどを抽出する為、「言った言わない」の不毛なやり取りは少なくなるはずです。
詳細設計ではシーケンス図とクラス図を使い、実際にどのようなクラスにどのような責務を与えるかを設計していきます。シーケンス図は意味は解るけどどう書けば効果があるのか解り難いUMLの代表格ですが、ICONIXではロバストネス分析からシーケンス図を導きます。後はクラスの責務に集中してシーケンス図を書くことができます。
詳細設計が完了すると、後はコーディングとテストになります。ここまで設計を進めてくれば、ほとんどのコードを自動生成することも可能となっているはずです。

ICONIXプロセスを導入したからといって、突然に品質や効率があがるというわけではありませんが、UMLを使った設計を学ぶのには最適かと思います。