|
関心の分離(かんしんのぶんり、、SoC)とは、ソフトウェア工学において、プログラムを機能面において可能な限り重複がない、複数の機構に明確に分割することをいう。ここでいう「関心(関心事)」とは、プログラムのある機能や振る舞い、目的のことである。 関心の分離は目新しいものではなく、「大きな問題を小さな部分問題に分解することができれば解決が容易になる」という昔からある考え方である。特に、大問題の解法が部分問題の解法の組み合わせとして得られる場合にはそれが成り立つ。 あらゆるプログラミングパラダイムは開発者が関心の分離を実践することを手助けするものである。例えばオブジェクト指向プログラミングはデータに関する関心をクラスやオブジェクトに分離し、MVCのようなデザインパターンはデータとその表現を分離する。サービス指向設計は関心をサービスに分離する。手続き型プログラミングでは手続きに、アスペクト指向プログラミングではアスペクトに分離する。 関心の分離の実現には、モジュール性とカプセル化が重要となる。 関心の分離は都市計画や建築、情報デザインなど、他の多くの工学分野でも重要な設計思想である。その目的は、ある機能をその他の機能から独立して最適化できる、ある機能の故障が他の機能の障害とならないようなシステムを設計すること、そして複雑で依存関係が入り乱れたシステムの理解・設計・運用を容易にすることである。よく知られた例として、セントラルヒーティングがある。 == 歴史 == 「関心の分離」を意味する英語「」は、エドガー・W・ダイクストラが1974年に論文「」(: 科学思想の役割)で初めて使用したとされている。 その15年後には、「関心の分離」という思想が受け入れられ始めていたことが明らかである。1989年にChris Reade が「」(: 関数型プログラミングの要素)というタイトルの書籍で関心の分離を説明している。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「関心の分離」の詳細全文を読む スポンサード リンク
|