2.5.3OOA方法面向对象的分析方法,即OOA方法,是OO方法的组成部分。在一个系统的开发过程进行了系统业务调查以后,就可以按照面向对象的思想来分析问题了。应该注意的是,OOA所说的分析与结构化分析有较大的区别。OOA所强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状的方法的分析。第63页,共102页,星期日,2025年,2月5日2.5.3OOA方法OOA分析方法是建立在对处理对象客观运行状态的信息模拟和面向对象程序设计语言的概念基础之上。它从信息模拟中吸取了属性、关系、结构以及对象作为问题域中某些事物的、实例的表示方法等概念;从面向对象的程序设计语言中吸取了属性和方法的封装,属性和方法作为一个不可分割的整体以及分类结构和继承性等概念。在用OOA具体地分析一个事物时,大致上遵循如下五个基本步骤:第64页,共102页,星期日,2025年,2月5日2.5.3OOA方法第一步,确定对象(object)和类(class),这里所说的对象是对数据及其处理方式的抽象,它反映了系统保存和处理现实世界中某些事物的信息的能力;类是多个对象的共同属性和方法集合的描述,它包括如何在一个类中建立一个新对象的描述。标识对象的首要目的是使一个系统的技术表示同现实世界的观点联系更加密切。第二个目的是希望产生一个稳定的框架模型,以便考虑问题空间并收集用户要求。第三个目的是为了避免从系统分析到设计时改变系统的基本表示。那么,如何确定对象呢?首先从应用领域、文字资料、图片入手,寻找结构、其它系统、设备、事件、作用等。弄清每一个对象的属性、处理方法、处理过程,准确地命名和表示每一个对象。第65页,共102页,星期日,2025年,2月5日2.5.3OOA方法第二步,确定结构(structure)。这里所说的结构是指问题域的复杂性和连接关系,类成员结构反映了泛化-特化关系,整体-部分结构反映了整体和局部之间的关系。分类结构用于应用领域的类-成员层次,它通过搜索公共特性并把这种特性扩充至特例之中来显示现实世界事件的通用性和专用性。例如,通用的交通工具(Transport)及其特例:汽车(Car)、飞机(Aircraft)、轮船(Ship),如图2.5。一些属性和方法适用于所有的交通工具,而另外一些仅适合于汽车、飞机、轮船。第66页,共102页,星期日,2025年,2月5日2.5.3OOA方法根据对象的继承特性,在一个分类结构中,对象共享在它之上定义的属性,例如,交通工具(Transport)结构中,汽车(Car)共享为所有Transport所定义的属性,如Id,Name,Passenger-Capacity等。同样,在一个分类结构中,对象也共享在它之上定义的方法。组装结构用于刻画一个整体及其组成部分,例如,一辆汽车由发动机、传动装置和刹车装置组成。如图2.6所示交通工具汽车飞机轮船汽车发动机传动装置刹车装置图2.5分类结构图图2.6组装结构图第67页,共102页,星期日,2025年,2月5日交通工具汽车飞机轮船汽车发动机传动装置刹车装置图2.5分类结构图图2.6组装结构图2.5.3OOA方法第68页,共102页,星期日,2025年,2月5日2.5.3OOA方法第三步,确定主题(subject)。这里所说的主题是指事物的总体概貌和总体分析模型。定义主题时,根据需要,把紧耦合的主题合在一起,对主题进行编号,画出矩形框图,并将主题间的连接在图上表示出来。第四步,确定属性(attribute)这里所说的属性就是数据元素,可用来描述对象或分类结构的实例,可在图中给出并在对象的存储中指定。第69页,共102页,星期日,2025年,2月5日2.5.3OOA方法第五步,确定方法(method)。这里所说的方法是在收到消息后必须进行的一些处理方法,方法要在图中定义并在对象的存储中指定。对于每个对象和结构来说,那些用来增加、修改删除和选择一个方法本身都是隐含的(虽然它们是要在对象的存储中定义的,但并不在图上给出),而有些则是显示的,如计算费用等。定义方法的中心是为每一个对象和分类结构定义所需要的行为,并确定对象之间的必要的通信。第70页,共102页,星期日,2025年,2月5日2.5.4OOD方法面向对象的设计方法,即OOD方法,是OO方法中一个中间环节。其主要作用是对OOA分析的结果作进一步的规范化整理,以便能够被OOP直接接受。OOD的设计过程由四个部分组成,问题域部分、人机交互部分、业务管理部分和数据管理部分(如图2.7)。具体地讲有如下几项工作。第71页,共102页,星期日,2025年,2