オブジェクト指向分析設計
アプリケーションフレームワークとは、特定のオペレーティングシステム (OS) のためにアプリケーションソフトウェアの標準的な構造を実装するために使われる、ライブラリもしくはクラス群のセットを、多くの場合、さす用語である。大量の再利用可能なソースコードをアプリケーションフレームワークに統合することにより、開発者 (プログラマ) の時間を大きく節約することができる。なぜなら開発者は、新しく一つのアプリケーションソフトウェアを開発するごとに、たくさんの標準的なソースコードを何度も書くという作業を、節約することができるからである。
可能であれば、永続化するオブジェクトやデータを同定する。もし関係データベースを永続化の手段として採用するのであれば、オブジェクトと関係 (表、テーブル) との対応づけを設計する (参考: オブジェクトリレーショナルマッピング)。オブジェクトデータベースを永続化の手段として採用する場合は、関係データベースを採用する場合のような対応づけの作業は必要ない。
複数のコンピュータ上にシステムを分散して配置する場合 (分散オブジェクト環境) には、分散オブジェクト (リモートオブジェクト、別のコンピュータからの呼び出しを受けるオブジェクト) を同定し、定義する。
継承よりも、多態性を備えた複合オブジェクトを採用する。
オブジェクト指向設計における次に示す5つの基本的な概念は、オブジェクト指向プログラミング言語に組み込まれた実装の水準の機能である。
依存性の注入 (dependency injection) の基本的な考えは、あるオブジェクトが何か別のオブジェクトへの参照をもつことに依存しているのであれば、依存される側のオブジェクトを依存する側のオブジェクトに「注入」する、ということである。例えば、データベース接続を表現するオブジェクトが必要なオブジェクトがあるのであれば、そのオブジェクト内でデータベース接続オブジェクトを生成するのではなく、そのオブジェクトのコンストラクタ (新たなオブジェクトを生成する際に呼び出される手続き) への引数 (パラメタ) として、データベース接続オブジェクトをそのオブジェクトに渡すのである。
ユースケースは、何らかのビジネス目標と機能に関するシナリオでの、アクターと呼ばれるユーザとシステムの一連のやりとりを描いたものである。一つのユースケースは、アクターとシステムがどのように相互作用し、ビジネス上の目標の達成もしくはビジネス上の機能の実現をいかに行うかを説明する一つ以上のシナリオを、記述する。ユースケースのアクターは、エンドユーザである場合と、他のシステムである場合とがある。ユースケースはユースケース図を使って描くことができる。
オブジェクト指向プログラミング (OOP; object-oriented programming) は、オブジェクト指向開発におけるオブジェクト指向設計 (OOD) の次の工程であり(この「次の工程」という概念自体はウォーターフォール開発に固有の概念であり、それ自体はOOADともオブジェクト指向(及びオブジェクト指向プログラミング)とも独立・無関係である)、この工程でソフトウェアのプログラミングを行う。
オブジェクト指向プログラミングでは、ほとんどの場合、プログラミング言語としてオブジェクト指向プログラミング言語 (OOPL; object-oriented programming language) を採用する。オブジェクト指向プログラミング言語では、オブジェクト、クラス、情報隠蔽、継承、多態性 (ポリモフィズム) などの概念を、プログラミング言語に組み込んでいる。