面向对象分析:Object-Oriented Analysis,简称OOA。面向对象分析阶段最重要的是理解问题域的概念,其结果将影响整个工作。面向对象分析方法的一个优点是便于修改,早期阶段的修改容易提高软件的可靠性。面向对象分析的目标是完成对所解问题的分析,确定待开发软件系统要做什么,建立系统模型。为了达到这一目标,必须完成以下任务:

(1)在客户和软件工程师之间沟通基本的用户需求。

(2)标识类(包括定义其属性和操作)。

(3)刻画类的层次结构。

(4)表示类(对象)之间的关系。

(5)为对象行为建模。

(6)递进地重复任务(1)至任务(5), 直至完成建模。

其中任务(2)至任务(4)刻画了待开发软件系统的静态结构,任务(5) 刻画了系统的动态行为。

面向对象分析方法是将数据和功能结合在一起作为一个综合对象来考虑。面向对象分析包含以下5个活动:

面向对象分析_抽象类

(1)认定对象:在应用领域中,按自然存在的实体确立对象。在定义域中,首先将自然存在的“名词”作为一个对象,这通常是研究问题、定义域实体的良好开始。通过实体间的关系寻找对象常常没有问题,困难在于寻找(选择)系统关心的实质性对象,实质性对象是系统稳定性的基础。例如在银行应用系统中,实质性对象应包含客户账务、清算等,而门卫值班表不是实质性对象,甚至可不包含在该系统中。

(2)组织对象:分析对象间的关系,将相关对象抽象成类,其目的是为了简化关联对象,利用类的继承性建立具有继承性层次的类结构。抽象类时可从对象间的操作或一个对象是另一个对象的一部分来考虑,如房子由门和窗构成。由对象抽象类,通过相关类的继承构造类层次,所以说系统的行为和信息间的分析过程是一种迭代表征过程。

(3)对象间的相互作用:描述出各对象在应用系统中的关系,如一个对象是另一个对象的一部分,一个对象与其他对象间的通信关系等。这样可以完整地描述每个对象的环境,由一个对象解释另一个对象,以及一个对象如何生成另一个对象,最后得到对象的界面描述。

(4)确定对象的操作:当考虑对象的界面时,自然要考虑对象的操作。其操作有从对象直接标识的简单操作,如创建、增加和删除等。也有更复杂的操作,如将几个对象的信息连接起来。一般而言,避免对象太复杂比较好,当连接的对象太复杂时,可将其标识为新对象。

(5)定义对象的内部信息:当确定了对象的操作后,再定义对象的内部,对象内部定义包括其内部数据信息、信息存储方法、继承关系以及可能生成的实例数等属性。