Index: [Article Count Order] [Thread]

Date:  Fri, 15 Apr 2005 17:10:29 +0900
From:  Akira Hirasawa <akira.hirasawa@....jp>
Subject:  [modeling-dojo:00304] No.31のモデル ( was Re: 関連クラス名)
To:  modeling-dojo@....jp
Message-Id:  <200504150810.AA07746@....jp>
In-Reply-To:  <20050414121743169.CVTL.8089.t-mta1.odn.ne.jp@....jp>
References:  <20050414121743169.CVTL.8089.t-mta1.odn.ne.jp@....jp>
X-Mail-Count: 00304

立見さん、庄司さん

平澤@ウルシステムズです。

# 師範代ではありませんが、
# 今回のコンテストの運営をお手伝いしています。

>さて、最優秀モデルでは関連クラスが使われていて
>とてもすっきりしていい感じですが、1点気になる
>点がありました。

私も今回の最優秀モデル(No.31)は、一目見たときから気に入りました。
エンティティの単位、ネーミング、配置など
問題文を「素直に」表現していると思いました。

# 実は、あとで公開されると思いますが、私自身が書いたモデルも、
# 庄司さんのものとエンティティの単位&配置が全く同じだったんです!

ただ非常に残念ながらNo.31のモデルには、1つだけ微妙な間違いがあります。
それは「料金」を関連クラスにしてしまっていることです。

「関連クラス」は、関連がないと存在できないため、
品目に依存しない”防虫加工”の料金を設定できません!

# とはいえ「クリーニング品目」と「クリーニングサービス」間の関連の
# 多重度が、0..* vs 1..* になっていたことから、
# 品目に依存しない料金を表現しようとしている「気持ち」は読み取れました。

>関連クラスを料金としてしまうと、クリーニング品目
>とクリーニングサービスの間にある
>標準クリーニング日数のようなデータを格納できなくなります。
>クリーニングサービスをサービスとして
>関連クラスをクリーニングサービスとしたほうが
>しっくり行くと思います。

お題の文章を読む限り、標準日数の話は書いてありませんので、
「サービス料金」でOKだと思います。
ただ、実際の現場では「標準日数」などを管理するべきかを確認する必要がありますね。
その場合は「クリーニングサービス」といったエンティティ名にすべきと思います。

>庄司@NEC情報システムズです。
>
>■ 料金の改定
> これは今回、自分で解決できなかった考慮点です。
>
> こういう場合関連クラスとせず、他の方のモデルのように品目と
> サービスの間に料金クラスをはさめば良かったのでしょうか?

(今回のお題には書いてありませんが)
料金の改定(値上げ、値下げ)まで表現する場合は、
[クリーニング品目]と[クリーニングサービス]の関連エンティティの名前を
[クリーニングサービス]あたりにして、
[クリーニングサービス] 1--* [料金]
と表現すればいいと思います。

[クリーニングサービス]と[料金]を1--*とせず、
限定子に[期間]を設定して、1--1とした方がスマートかも知れませんが。

--
平澤 章 <akira.hirasawa@....jp>