ドメイン・エンジニアリング温故知新


ドメイン・エンジニアリング温故知新


  • ソフトウェア開発とは問題ドメインの知識をアプリケーション・ドメインの知識に変換することだといってもいい
    • いままでのソフトウェア開発はアプリケーション・ドメインに重点を置き過ぎていた
    • 結局、ソフトウェア開発がうまくいかない最大の問題は「何を解決すればいいかが分からない」という点
    • だから、

  • まずは問題点(ドメイン)を切り出しなさい
    • ドメインを分析して、そのドメインに適した言語でモデル化しなさい
    • その問題ドメインをアプリケーション・ドメインに変換する方法を考えて実行しなさい
    • そうすればうまくいくよ(多分……) というのが、ドメイン・エンジニアリングの考え方

  • 上に挙げた1つ1つをドメインだと思っていい。 つまり、
    • ビジネス・モデル
    • E-R構造
    • 静的構造
    • 情報構造
    • ビジネス・ルール
    • ワークフローなど。
  • いろいろなツールや言語をたくさん習得するのは大変な面も確かにあるけれど、一度習得すればいろいろな利点がある。つまり、
  • 生産性をかなり向上させることができる
  • 知識がプログラミング言語で記述されたソース・コードの中に分散して埋没せず、明示的な形で表されている
  • 従って、知識資産としての価値がある
  • 知識の表現と、表現された知識の変換/実行が分離されているので再利用性が高い
  • ドメインに適した表現を使うので知識の損失が少ない
  • ドメイン間の知識変換というメタな知識を明示的に蓄積できる