現在のソフトウェア開発では、大半がネットワークを利用した高度な機能を要求されている。
また、従来のコンピュータだけではなく携帯電話やカーナビゲーションといった
携帯端末でも動作でき、さらにそれを短期間で開発しなければならない。
このような状況を克服するためには、以下のような技術を融合させる必要があり、
それがすなわちオブジェクト指向なのである。

�@どの環境でも動作するソフトウェア開発言語

�Aどの環境でも動作するソフトウェア部品(再利用コンポーネント)

�Bソフトウェア開発において人間が理解しやすい分析・設計手法

�@は、Javaである程度実現している。C#についてはJava陣営と戦略は異なるものの、
C#をどこでも動作できるような.NET環境の普及を目指している。

�Aは、ソフトウェアを部品として扱うための枠組みである。
�@を実現していることが前提となるが、「オブジェクト(もの)」という単位は、
ソフトウェア部品として理解しやすい。

�Bは、今日のようにシステムが複雑になるにつれて重要になってきた要求である。
従来のソフトウェア開発言語(C言語など関数型言語)で使われていた構造化手法では、
人が理解しやすい分析や設計手法を表現するには限界があった。
オブジェクト指向なら、人が実世界を理解する単位を「オブジェクト」として表現するため、
理解しやすくまたシステムの複雑化にも対応できる。