DDD / Modeling Paradigms and Tool Support


モデリングパラダイムとツールサポート(Modeling Paradigms and Tool Support) (P50)

要約

  • モデリングパラダイムとツールサポート(p50 - p52)
    • モデル駆動設計にはツール(言語)のサポートが必要
    • 多くの開発者は認識していないが、オブジェクト指向プログラミングが強力なのは、モデルの概念をコードで表現できるから
    • Prologは特定の分野でモデル駆動設計に適している
    • モデル駆動設計はC言語のような手続き型言語には限定的には適用できない。これは、手続き型言語はモデルの概念(ドメインのactive aspect)を記述しないから(結果、「手続き型言語で書かれたソフトウェアはかえって複雑になることがある」と言いたい模様。)
    • FORTRAN は数学的なモデルは記述できるが、多くの数学的でないドメインは数式や手続きでは表現されない
    • この本ではオブジェクト指向設計を第一に取り上げる
  • 手続きからモデル駆動(P52 - p57)
    • 前提
      • レイアウトルールのグループ(例では bus)が存在するとして、プリント基板レイアウトツールにはそれを表現する機能がないという問題がある
    • 機械的な設計とモデル駆動設計の実施
      • 機械的な設計では、スクリプトでツールのファイルデータを書き換えて、bus のようなコンセプトを実現する。ドメインのコンセプト(このケースでは bus のようなレイアウトルールのグループの存在)は、ファイル中の文字列比較とソートによって推測される
      • モデル駆動設計(A MODEL-DRIVEN DESIGN)では、ドメインのコンセプトはモデルとして表現される
    • まとめ
      • サンプルのようにファイルに対するスクリプト操作を一回行うだけならその方が適している
      • 実際には 20 以上のルールが存在しているから、モデル駆動設計の方が多くのルールと制約に対応できるし、明確なインタフェースを持っているからテストもしやすい
      • ただ、このような設計は一度に出てくるものではなく、反復によって徐々に洗練されることで生まれてくるものである

担当者のつぶやき

  • まだ読み途中でいるかわからないけど登場する図を書いた
    • http://www.kodougu.net/u/akasata/diagram/173.png
  • 図、あまりいらなかったか。
  • モデルにドメインのコンセプトを伝えることが大切。

みんなの突っ込み

  • どうでもいい話ですが,C 言語には「(線形の) メモリ」というパラダイムがあるとか言ってみるテスト. -- 小林 (koichik)? 2008-08-03 (日) 00:10:52
  • おお、面白そうな本ですね。あるいは「Cはアセンブリ言語のマクロ」とか言ってみるテスト(笑)。Cはメモリが透けて見えるからVMとか基盤系の実装に向いてますよね -- あかさた? 2008-08-23 (土) 02:00:48

まとめ (議事録)