ドメイン駆動設計はソフトウェアプロダクトラインとオブジェクト指向分析のミッシングリング
@yojikさんのアドバイスを受けて、「エリック・エヴァンスのドメイン駆動設計」を読んでみたら、とてもインスピレーションが働いたので、即購入した。
@yojikさん、ありがとう。
【発端】
Twitter / @yojik: DDD本ってパターン本ですよ。。。 / ドメイン駆動設計よりもパターン本が好き: プログラマの思索 http://htn.to/8ZD5B9
Twitter / @yojik: どちらかというと @akipii さんが好きなタイプの本かもです!
【元ネタ】
「保守しやすいこと」が、良いプロセス~開発における、「設計」と「プロセス」の双対関係~:An Agile Way:ITmedia オルタナティブ・ブログ
Conwayの法則~アーキテクチャは組織にしたがう: プログラマの思索
Redmineプロジェクトの構造とConwayの法則: プログラマの思索
「エリック・エヴァンスのドメイン駆動設計」では、GoFのデザインパターン、ファウラーのアナリシスパターン
やエンタープライズ アプリケーションアーキテクチャパターン
を駆使して、OOAのモデリングの過程を詳しく解説してくれているのがとても分かりやすかった。
ファウラーのアナリシスパターンや児玉公信さんの本「UMLモデリングの本質
」は2000年代前半に勉強会で輪読したから、OOAがどういう手法でどんな成果物を作るのか、ということは分かっていたので、「エリック・エヴァンスのドメイン駆動設計
」がやろうとしているモデリングの感触は雰囲気はつかめた。
まだ1回しか読んでいないので詳しく解読できてないけど、ソフトウェアプロダクトラインのコア資産の抽出と再利用を目指しているような感想を持った。
特に第16章の「大規模な構造」では、例えばファウラーの知識・操作レベルのパターンを用いて、従業員タイプ(管理職・平社員)を見出すモデリングがあるけれど、その目的は抽象度を上げることによって、コア資産を抽出して再利用できるようにしたいためのように思えた。
「蒸留」という概念はコアドメインの抽出ないし抽象化を意味するが、それはソフトウェアプロダクトラインのコア資産抽出と非常に似ている。
コア資産を抽出できれば、次々に似たような製品の開発、つまり派生開発がやりやすくなるだろう。
つまり、ソフトウェアプロダクトラインのような製品ファミリー開発がやりやすくなるはずだ。
MSのOffice製品、AppleのiPod/iPhone/iPad製品系列などがまさにソフトウェアプロダクトラインの良い例に当たるように思えるが、その背後にはドメイン駆動設計があるのではなかろうか?
又、第17章の「戦略をまとめあげる」でモデリングの組織構造について解説しているが、その内容は丁度、Conwayの法則(ソフトウェアの構造は開発チームの構造に似てしまう)をなぞっているように思えた。
つまり、設計者と開発者に分けるのではなく、設計と開発を行き来しながらモデルを作り上げた方が良いモデルが作れる、と。
アーキテクチャチームが設計し、開発チームがそれを指示書としてコーディングする体制にすると、ソフトウェアの構造にその体制のインターフェイスが反映されてしまって、本来のモデルからかけ離れてしまう可能性があるからだ。
面白いので又読んでみる。
| 固定リンク
「モデリング」カテゴリの記事
- リプレースとアーキテクチャモダナイゼーシヨンの違いの本質は何なのか?(2026.04.08)
- すり合わせの優位性は健在か?日本の製造業が直面するPLM活用とMBSEソフトウェア運用の理想と現実(2026.03.29)
- アーキテクチャモダナイゼーションにおけるAMETチームの役割と責任範囲は何か(2026.03.23)
- アーキテクチャモダナイゼーションとはそもそも何なのか?(2026.03.22)
- 自動車の組込ソフトウェア開発が難しい理由は3つある(2026.02.23)
「ソフトウェア工学」カテゴリの記事
- リプレースとアーキテクチャモダナイゼーシヨンの違いの本質は何なのか?(2026.04.08)
- アーキテクチャモダナイゼーションにおけるAMETチームの役割と責任範囲は何か(2026.03.23)
- アーキテクチャモダナイゼーションとはそもそも何なのか?(2026.03.22)
- 自動車業界におけるA-SPICE・機能安全・サイバーセキュリティの規格に対応したプロセス改善とは何か?(2026.02.15)
- Jiraの機能はTracに似ている気がする #redmine(2025.06.01)


コメント