ひがやすを技術ブログ

電通国際情報サービスのプログラマ

ダイコン時代の設計手法 - ユースケース分析

ユースケースの管理単位は、画面系なら関連のある複数の画面の組み合わせ、
帳票系なら1帳票、バッチ系ならジョブネット。
ユースケース単位に、ロバストネス分析を行って全体構造を把握します。
ロバストネス分析を行うときにもっと重要なのがコントロール
コントロールはVO(〜を〜する)で記述します。
画面系の場合は、ほぼリンクやボタンのクリックのイベントが
1つのコントロールになります。
バウンダリでは画面の入出力項目、帳票の出力項目を定義します。
ユースケースでは具体的な画面は意識しない方がいいなんてことが
いわれたりしますが、それはきれいごと。
実際はこの段階でモックを作ったほうがユーザから多くのフィードバックを
引き出すことができ、仕様をつめることができます。
業務ロジックを含まない画面の仕様はここで固めます。
エンティティはER分析のインプットです。
コントロールはステートレス。
状態がある場合は、一時的な状態はバウンダリに、永続的な状態は
エンティティにマッピングします。
この辺は、UI層のモデルの話が絡んできます。
UI層のモデルは画面項目定義に反映され、エンティティはエンティティ定義に
反映されます。
エンティティ定義は、S2DaoではExcelで定義されデータベースとの
ラウンドトリップも実現する予定です。
コントロールはこの後、UI層のコントローラ、サービス層、永続化層に
マッピングします。
UI層のコントローラの仕様は、画面のイベント定義に反映されます。
サービス層の仕様は、サービス定義書に反映されます。
ユースケース記述(ルール記述)を使ってもいいのかもしれません。

ルール記述書は、事前条件・事後条件・シナリオで構成されているもので、
詳しくはまた後で。
永続化層の仕様はSQL定義書に反映されます。
SQL定義書は、S2Daoの定義そのものであってもいいかもしれません。