概念を抽出するには
クラスとインスタンスの区別から始まる
エンティティを抽出する時、イメージしている概念はインスタンスなのか、クラスなのか、区別することが意外とできていないのではないか?
ある勉強会で、「日頃具体的な実体(インスタンス)と思って会話している内容が、実は殆どが概念(クラス)で話をしているのではないか?」という問題提起があった。例えば、「顧客」「商品」という言葉で、ユーザとSEの議論が噛み合わない時、「顧客」「商品」から想像される機能がお互いに異なるにもかかわらず、知らずに議論しているように思う。そんなケースは非常に多い。
他には、「本質」では、「ロール名は極力クラスにしない」という原則を提示している。「販売先」「仕入先」という概念は「取引先」のロール(つまりインスタンス)にすべき、という例をあげている。クラスにしてしまうと、柔軟性が失われるからだ。
アナパタでは、クラスとインスタンス以外にも、パワータイプを導入して、モデルを更に柔軟にしようとして複雑にしている部分がある。クラス=集合、インスタンス=集合の要素とするならば、パワータイプ=族集合に相当する。
責任関係パターンが難しいのは、クラスとインスタンスを区別することさえも労力がかかるのに、パワータイプが出てきて混乱しやすいから。
結局、オブジェクト図がモデリングの基本であり、慣れてくると、クラス図だけでオブジェクト図が見えてくる。
インスタンスがはっきりすれば、関連によってどの機能を委譲すればよいか、見えてくる。
| 固定リンク
「日記・コラム・つぶやき」カテゴリの記事
- TwitterやFacebookは人力キュレーションツールとして使う(2022.10.02)
- 「現代病「集中できない」を知力に変える 読む力 最新スキル大全」の感想(2022.08.28)
- 人類は海辺から生まれた~水生類人猿説が面白い(2022.08.09)
- 戦前の日本人の気質はまだ成熟していない青年期と同じだった(2022.06.14)
- 物理学を攻略するためのマップ(2022.04.18)
「モデリング」カテゴリの記事
- 「システム開発・刷新のためのデータモデル大全」を読み直した感想~親子頻出アンチパターンは初心者モデラーに多い(2024.08.31)
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
- 「システムアーキテクチャ構築の原理」の感想(2024.05.06)
- ソフトウェア工学の根本問題から最近のソフトウェア設計を考えてみる(2024.03.03)
- アーキテクチャ量子の考え方はソフトウェア工学に物理学アプローチを適用したアイデアではないか(2024.02.12)
コメント