OOAD的全称是面Object Oriented Analysis Design。中文名称是面向对象程序设计与分析。在这门课程中,主要介绍的是一些理论的知识,是面向对象程序设计与分析中的一些思想与设计方案。在以往的开发方法中,例如像功能分解法,它是以系统需要提供的功能为中心来开发系统的。这种开发的特点是开始容易深入难。以往以开始安装功能需求建立系统的功能模型是很直接的,但是功能与功能接口这些系统成份不能直接的映射到问题域中的事物。这导致所建立的模型难以准确而深入地描述问题域,而且也难以检查所建立的模型的正确性。采用结构化方法开发系统比功能分解法更强调对问题域的分析,但所使用的建模概念仍然不能直接地映射到问题域中的事物中去。
面向对象方法是在传统的方法基础上发展起来的,例如仍使用抽象和模块化等概念。然而,面向对象方法与传统方法相比发生了根本性的变化,主要在于面向对象方法具有把所建立的模型与问题域进行完整而且直接映射的能力,在整个开发过程中均采用一致的概念和表示法,采用诸如封装,继承,和消息等原则使得问题域的复杂性在模型上得以控制。