すべてのソフトウェア設計を共通性と可変性における主要な演習と考えれば、マルチパラダイム設計について理解する必要があることは明らかです。
MSDN Magazine: 働くプログラマ - マルチパラダイムと .NET (第 2 部)

seen from Malaysia

seen from United States
seen from Canada

seen from United States

seen from United States
seen from Germany
seen from United States
seen from Yemen
seen from United States
seen from Italy
seen from China
seen from United States

seen from Malaysia
seen from United States

seen from United States

seen from United Kingdom

seen from United States
seen from Yemen
seen from United Kingdom

seen from Sweden
すべてのソフトウェア設計を共通性と可変性における主要な演習と考えれば、マルチパラダイム設計について理解する必要があることは明らかです。
MSDN Magazine: 働くプログラマ - マルチパラダイムと .NET (第 2 部)

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
ジェネリックが導入された理由が明らかになってきました。ジェネリックは、設計に対して可変性の異なる "軸" をサポートします。これは、従来の継承ベースの軸とは大きく異なります。設計者はこの軸を利用して、実装を共通性として、実装に基づいて操作できる型を可変性として扱うことができます。
MSDN Magazine: 働くプログラマ - マルチパラダイムと .NET (第 2 部)
設計とは、アプリケーションドメインの構造に対して、ソリューションドメインの構造を適合させるプロセスである。言い換えれば、問題における共通性と可変性に対して、それを解決できるソリューションの共通性と可変性を取り揃えなくてはいけない。
新装版 マルチパラダイムデザイン p.220 第8章 1つのドメインに混在するマルチパラダイム 8.2 共通性分析:共通性の設計次元軸とは何か
ソフトウェアの問題と、その問題に対処しようとするソリューションは、さまざまな構造を持っている。構造(structure)、名前(name)、振る舞い(behavior)といった評価基準に基づいて、データ構造と機能(function)をグルーピングすることができる。そのように何らかの関連性を持つ要素からなるグループを、ファミリ(family)と呼ぶ。
新装版 マルチパラダイムデザイン p.40 第2章 共通性分析 2.1 共通性:抽象のエッセンス 2.1.2 ソフトウェアファミリ
共通性の認知は、2通りの方法で行われる。以前に見かけたパターンを認知することと、これまでに見たことのない構造を認知することである。1番目の方法は経験に関係し、2番目の方法は学習の一形式である。いずれの方法も、ソフトウェア設計に関係がある。再利用は経験に関係し、再利用以外の設計項目のうち「新規に抽象を生成する」ことなどは学習モデルに関係する。ソフトウェアに対する視点というのは、我々が自分の周りの世界を考えることとかけ離れてはいない。
新装版 マルチパラダイムデザイン p.39 第2章 共通性分析 2.1 共通性:抽象のエッセンス 2.1.1 演繹的共通性と帰納的共通性

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
共通性分析は、3つの点でソフトウェア開発に重要となる。第1に、共通性分析は抽象化をサポートする。クラス群を1つの設計抽象にグルーピングすることにより、設計のその部分を一塊だと考えて設計を進めていくことができるようになり、複雑性に対処することが可能となる。この良い例が継承階層である。継承階層は基底クラスを持つが、これがその階層のクラス群を抽象化したものを表している。第2に、共通性分析は凝集度/結合度の分析をサポートする。共通性によるグルーピングでは、それぞれの塊が別の塊の要素とは共通性をほとんど持たないために、互いに独立した塊を自然と作り出すことができる。第3に、共通性分析はメンテナンスコストを減少させる。共通性が幅広いものになればなるほど、長期にわたってその共通性が保持される可能性も高くなる。強い共通性は、設計上での不変構造(invariant structure)になる可能性が高い。
新装版 マルチパラダイムデザイン p.38-39 第2章 共通性分析 2.1 共通性:抽象のエッセンス
給与支給データを処理するパッケージを設計していると想定してみよう。我々は、そのデータをソートするのに、多数の評価基準に従う必要があることを知っている。設計のあるレベルに達した時点で、ソートすることがビジネス上の主要な抽象の1つであるという判断をすることになるかもしれない。「ソートすること」という抽象は、オブジェクトパラダイムから生み出されるものではなく、手続きパラダイムに基づくものだ。しかしそうであっても、それが主要なビジネス上の抽象であることに変わりはない。
新装版 マルチパラダイムデザイン p.37 第2章 共通性分析 2.1 共通性:抽象のエッセンス
しかしLakoffは、Wittgensteinの初期の仕事[Wittgenstein1953]を受け継ぐ彼の研究が、この2000年以上の伝統を打ち消すものであると言い切る。古典的モデルは現代や時代遅れであるとされ、我々が「モノ」をカテゴリにグループ分けするのに、共通の特性に基づいて行うという考えに疑問を呈しているのである。新しい理論では、人間のカテゴリ化のプロセスが共通性と可変性に基づくのではなく、メタファによるのだと考えられている。特性によって分類するという古典的理論が、Lakoffの猛攻の対象となっているのである。
新装版 マルチパラダイムデザイン p.29 第1章 序論:マルチパラダイムが必要とされる背景 1.9 共通性分析:別視点から考える 1.9.3 哲学的考察