ボヤボヤしていたら、先にやられました。→お勉強会の御題をやってみました
じゃぁ、コードを考えるときの順序(私の場合)に絡めて、クラスの切り出しから行きますか。
クラスの切り出しで、一番簡単な基準は、「名詞」です。オブジェクトはモノですから、モノである名詞を、クラスの候補とします。では、列挙してみます。
スペースの都合上、次の段階も行きます。列挙したモノの中から、システムの中で、クラスとして切り出さなければならないか、検討します。その検討結果も、併記します。
- 売上高入力集計プログラム
- 売上高予算
- 売上高実績
- 売上高入力機能
- 売上高集計機能
- 前月
これは、判定のために用いる基準で、クラスとしては不適切。
- 金額
これは、「売上高予算」、「売上高実績」を抽象化したもの。
- 副支店長
- 所長
- 役職者
- 取締役会
- 操作当日
これは、判定のために用いる基準で、クラスとしては不適切。
- 支店
- 出張所
次に、同じモノの、別の言い回しを探します。すでに記入していますが、「金額」は、「売上高予算」、「売上高実績」の、別の言い回しです。「副支店長」、「所長」、「取締役会」というのも、誰かの「役職」です。「支店」、「出張所」も、規模による「拠点」のランクであり、同じモノです。
また、セットで管理した方がいいものも探しましょう。「売上高予算」と「売上高実績」は、これが「経常利益予算/実績」などになっても、「予算」と「実績」がセットで管理できる方がいいでしょう。
名詞の抽出が済んだら、次は動詞です。動詞は、何がそれをするのか考えて、名詞と対応づけます。
- 売上高入力集計プログラム
- 売上高入力機能を提供する
- 売上高集計機能を提供する
- 売上高入力機能
- 利用者を特定する
- 売上高予算/実績を入力する
- 売上高予算/実績を修正する
- 売上高予算/実績の修正履歴を採る
- 売上高集計機能
- 利用者を特定する
- 売上高予算/実績表を出力する
- 未入力拠点を抽出する
- 金額
- 「値」というプロパティ
- 「値」が、いつ設定されたかを示す情報
- 予算と実績
- 「予算」というプロパティ(コレクション)
- 「実績」というプロパティ(コレクション)
- いつの予実情報かを表す情報
- 予実差を百分率で求める
- 利用者
- 「取締役会」「副支店長」「所長」という役割
- どの「営業拠点」に対する役割かという情報
- 営業拠点
- 拠点としての情報(支店名、出張所名)
- 「予算と実績」というプロパティ(コレクション)
まずは、こんな感じかな?
「売上高入力集計プログラム」は、クラス図では「パッケージ」として描きますが、まぁ、とりあえず、これで。
投稿日時 : 2006年10月18日 21:41