マルチパラダイムデザイン - 一旦まとめ

マルチパラダイムデザイン

マルチパラダイムデザイン

  • 作者: ジェームズ・O.コプリン,James O. Coplien,金沢典子,羽生田栄一,平鍋健児
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2001/12
  • メディア: 単行本
  • クリック: 18回
  • この商品を含むブログ (20件) を見る

id:aufheben:20090405 から始めたエントリの一旦まとめ。

マルチパラダイムデザインは、大きく3つのアクティビティから構成されます。1つ目は「アプリケーションドメイン分析」、2つ目が「ソリューションドメイン分析」、3つ目が「設計」です。そして、これら3つを貫く主要な概念が「共通性と可変性」になります。デザインというタイトルがついていますが、分析がかなりの部分を占めます。

アプリケーションドメイン分析

いわゆる(狭義の)「ドメイン分析」です。アプリケーションドメインは「問題領域」と呼ばれることもあります。業務ドメインだけでなく、UIや永続化など非機能要求の分析も含まれます。
共通性分析では、小さな差異は無視して、ドメインに含まれる主要な概念を抽出します。可変性分析では、それらのバリエーションや経時的な変化を分析します。
ドメイン分析では抽象化が強調されることが多いですが、可変性を意識すると良いモデルが生まれるように思います。
共通性と可変性、言われてみれば当たり前なことで、開発の中でも普通に実践していたりしますが、暗黙知形式知になり目から鱗でした。

ソリューションドメイン分析

アプリケーションドメインにおける共通性/可変性をどのように解決するか、その方法を分析します。
大きくはオブジェクト指向アスペクト指向プログラミング言語、データベースなどなど、1つの手法に限定せず、複数の概念を組み合わせるところから「マルチパラダイム」という名前がつけられています。
共通性の解決方法は書いてなかったかもしれないけれど、サブシステムやパッケージ、クラスなどが該当すると思います。名前付けも重要ですね。
可変性の解決方法としては、C++ を例に、継承やテンプレート、#ifdef、デザインパターンなどが例として挙げられています。最近は Java もマルチパラダイム化しているので、Java のソリューションドメインをちゃんと整理するのも価値がありそうですね。
ソリューションドメイン分析は、必ずしもプロジェクト、プロダクトごとに行う必要はなく、再利用が可能です。

設計

アプリケーションドメイン分析とソリューションドメイン分析の結果をマッピングします。

ソリューションドメインを充実させることも大切ですが、共通性/可変性との紐づけを整理し、必要なときに取り出しやすくしておくことが重要だと感じました。