読み込み中...オブジェクト指向は、当初プログラムの構造をオブジェクト群の相互作用とおよびその雛形であるクラス群の関係として捉え、プログラムコードを書き表すオブジェクト指向プログラミング (OOP; object-oriented programming) から始まっているが、その後、システム開発における要求分析フェイズにおいて、開発しようとする対象領域の構成要素をオブジェクトとして発見・定義していくオブジェクト指向分析 (OOA; object-oriented analysis) 、システムの動作や構造をオブジェクトとクラスとして記述するオブジェクト指向設計 (OOD; object-oriented design) のための、技術としても広く発展・普及することとなった。
オブジェクト指向の枠組みが持つ道具立ては、一般的で強力な記述能力を持つ。特に複雑なシステム記述、巨大なライブラリ(特に部品間で緊密で複雑な相互関係を持つもの)の記述においては、現実問題としてオブジェクト指向の考え方は必須であるといえる。
これらのどれかのことを指してオブジェクト指向と呼ぶことがある。
オブジェクト指向分析が提唱される以前には、システム分析のレベルにおいては、データ構造を中心としたシステムの分析技法である構造化技法が存在した。
また、プログラミングのレベル (プログラミングパラダイム) では、プログラムの実行の流れを決められた制御構造の組み合わせとして書き下す構造化プログラミングや、カプセル化を促すモジュールプログラミング、多態に対応するデータ指向プログラミングという技法が存在していた。
これらに対し、オブジェクト指向手法はそれらを一般化しさらに推し進めたものであるという考え方がある。
オブジェクト指向分析やオブジェクト指向設計に基づいてシステムを実際に開発する際には、オブジェクト指向プログラミング言語 (OOPL; object-oriented programming language) を用いる必要は必ずしもない。ただし、オブジェクト指向によるシステム分析結果を実装するには、プログラム構造とのセマンティクスギャップが少ないオブジェクト指向プログラミング言語を用いるのが普通である。
なおオブジェクトという用語は時に「もの」という直訳語で認識される場合があるが、英語のobjectには「目的語」、または「目的となる対象物」という意味がある。従ってオブジェクト指向は本来「述語(機能)よりもその対象を中心に据える」というニュアンスをもつ用語である。
近年、これらの各種の方法論で使用するダイアグラムの表記法は、OMG (Object Management Group) によって UML (Unified Modeling Language; 統一モデリング言語) として1997年に標準化されており、以降はほとんどのオブジェクト指向開発方法論においてUMLが採用されている。
オブジェクト指向プログラミングを構成する概念には、次のようなものが挙げられる。