オブジェクト指向プログラミング
オブジェクト指向プログラミングは、ソフトウェアの大規模化に伴い、より効率的な開発手法が模索される中で1960年代に考案された。OOP言語は歴史的にクラス構造を中心とする"Simula"系統と、メッセージ機能を主体とする"Smalltalk"系統に分けられるが、後に"C++"や"Java"などの言語が派生した前者が主流となった。この前者のオブジェクト指向が示す「内部隠蔽」「継承」「多態性」の三仕様を備えていれば、OOP言語であると見なされる。
オブジェクト指向分析設計
オブジェクト指向設計の工程で使う資料 (オブジェクト指向設計の入力となる資料) の、一つの例を、説明する。いずれの資料も、前工程であるオブジェクト指向分析の成果物である。オブジェクト指向設計における次に示す5つの基本的な概念は、オブジェクト指向プログラミング言語に組み込まれた実装の水準の機能である。オブジェクト指向設計における考え方を説明する。オブジェクト指向設計の作業を行って作成される主な成果物は、次に示すとおりである。なおこの他の種類の資料についても、後工程であるオブジェクト指向プログラミングやソフトウェア保守などにおいて、有用となると認められる文書やモデル図などについては、作成する。アジャイルソフトウェア開発の開発方法論を採用する場合は、オブジェクト指向設計の成果物は、必要十分な最小限の成果物を作成するのみであることが多い。オブジェクト指向設計においては、後工程であるオブジェクト指向プログラミングにおける考え方も、必要に応じて考慮する。オブジェクト指向プログラミング (OOP; object-oriented programming) は、オブジェクト指向開発におけるオブジェクト指向設計 (OOD) の次の工程であり（この「次の工程」という概念自体はウォーターフォール開発に固有の概念であり、それ自体はOOADともオブジェクト指向（及びオブジェクト指向プログラミング）とも独立・無関係である）、この工程でソフトウェアのプログラミングを行う。