モデリングの発想方法
業務フローをモデリングしようとすると、特定のパターンを当てはめて組み立てていくよりも、モデルの文脈からどんどん抽象化していく手法の方が、システムの本質に近付く気がする。
「UMLモデリングの本質」で「酒屋問屋の在庫管理」をモデリングする章がある。
最初は、「予定/実績」「タイトル=アイテム」パターンを使って、発注と出荷のトランザクションを関連付けるモデルが出来上がるが、それではシステムの中核機能を実現していない。
児玉さんがよく言う「揺さぶり」によって、色んな業務フローをモデルに割り当て、モデルを変形していく過程で出てくる特徴は、「オブジェクトをどんどん抽象化していくこと」だ。例えば、発注や出荷などのトランザクションは「取引」へ汎化され、小売店やメーカーは「パーティ」へ汎化されてゆく。オブジェクトの状態や種類を汎化によってまとめて、クラス図はより抽象的構造を表現するようになっていく。
モデリングに慣れていない人は、この抽象化の過程が抜け落ちている。ユースケースに出てくるオブジェクトにいつまでも囚われすぎて、トランザクションをただ単に並べたクラス図しか作れない。それではシステムの本質的構造がいつまで経っても見えてこない。
但し、オブジェクト指向モデリングが難しい理由の一つは、概念を抽象化するやり方がモデラーによってマチマチゆえ、どれが正しいのか分かりにくい事だ。OOAの弱点は、DOAよりもモデルの属人性が高いように見えることだと思う。
OOAが一つのモデリング技法として確立するには、「動的分類」と「多重分類」をクラス図のどの箇所で使うのか、を一つのパターンとしてまとめることでないか、と思うのだが、それは「アナパタ」に書いてあるわな(^^)
Fowlerさん、あなたはやっぱり偉いが、「アナパタ」のクラス図はいい加減、UMLで書き直してくれ!!
| 固定リンク
「日記・コラム・つぶやき」カテゴリの記事
- 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)
この記事へのコメントは終了しました。
コメント