BaHo Advent Calendar 2020 10 日目担当の BaHo 猫 です。
今日もマルチパラダイムデザインシリーズです。 8 日目 の続きで、ソリューションドメイン分析について自分の理解を話します。
ソリューションドメインとは
ソリューションドメインは、サービスのドメインを実装として解決するための言語やパラダイムが持つ関心事である。
サービスの関心事を抽象化したものがサービスの関心事(アプリケーションドメイン)だったのに対して、ソリューションドメインはアプリケーションドメインをどのようにして解決するのかという手法を表している。
例えば、C++では多重定義やテンプレート、継承及び仮想関数といった機能を提供している。 これは C++がそれらの機能を用いて何かしらの問題に対処しようとしていることを示唆しているのだ。
ソリューションドメイン分析では、このようにして言語やパラダイムから特徴を抽出することで、そのツールでは何を解決でき何を解決できないのかを探ることになる。
ソリューションドメイン分析の目的
ソリューションドメイン分析は、アプリケーションドメインに対して正しいパラダイムを適用できるようになることを目的としている。 仮にアプリケーションドメインの分析がうまくいったとしても、実装段階で設計との不整合が生じてしまえば設計の意味がなくなるからだ。
ソリューションドメインは最終的にアプリケーションドメインとの照合を行い、そこで初めてサービスに適用できるパラダイムとその構造が決定する。