ども、皆川%夜型人間@豆蔵です。
# 例によってメールの引用部分を一部削らせていただいています。
On Tue, 15 Mar 2005 04:05:48 +0900
Yuji Ito <y_ito@....jp> wrote:
> これは概念レベル・設計レベル・実装レベルというような区分けと理解して良い
> ですか?
はい、そうです。ただ、概念モデル、分析モデル、設計モデル、実装モデル、…
などのモデルのレベルの定義は結構曖昧で、人によって微妙に異なった意味で使
われていたりすることがあるので、ちょっと注意が必要だったりします。
# 「実装モデル」というレベルが存在するのか否かも微妙ですね。「モデル」と
# いうのは対象そのものの特性の一部を捨象して表現したモノなので、もし、そ
# の「実装モデル」と呼ばれるモノが対象となっている実装コードと同等の複雑
# さを持つようなモノだとしたら、もはや「モデル」としての存在理由自体が疑
# われます。実装コードのレベルと同等なクラス図を描くくらいなら、コードそ
# のもので{記述|詳細化}した方が、よほど早く正確に意図が伝わるはずだと(個
# 人的には)思っています。
ちなみに、私が腰を据えてモデリングする際に意識するレベルは(たいてい)、
概念モデル、分析モデル、設計モデル、の3レベルくらいです。場合によっては、
設計モデル(またはその一部)が、特定の実装言語に依存するレベル、特定のミド
ルウェアやライブラリの構造に依存するレベル、といった感じで(必要に応じて)
細分化されることもあります。ただ、あまり細かくモデルのレベルを分けてしま
うと今度はモデル自体のメンテナンス・コストが上がってしまうので、その辺の
トレードオフを鑑みて「適当に」手を抜くことも怠りません (^_^;
> 実装時にはオブジェクトプールやコントローラ等の登場人物が出てきますが、
> 多重継承が出来るか否か等の言語による差異が出るので、レベルを分けて扱う
> 必要性があるという事かな?と思っております。
> 「本質が見えなくなる」ので。
はい、これも仰るとおりです。「実現するため」のモデルは徐々にごちゃごちゃ
複雑な形になっていく傾向が出てきます。つまり、「本来こうあるべき」という
形が実現上の様々な都合で変形していったり埋もれていってしまったりするので、
「元々は(本質は)こういう事を{表現|実現}したかったんだよ」というモノを残
して対応付けを取っておかないと、あっという間に「ワケが判らん」状態に陥っ
てしまったり、必要以上の変形を加えてしまって保守性を落としてしまったり、
いろんな落とし穴にハマりやすくなってしまうのですよね。
以上、このメールが何らかのお役に立ちましたら幸いです。
--
/|/| ▲ 皆川 誠 @ 株式会社 豆蔵
/ ノ / } 「きつねはコンと鳴く」
|// ノ / | 会社用: kitsune@....com
=o=|\| / 自宅用: kitsune-san@....com
く | / 携帯用: kitsunex@....jp
■■■■