预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

面向对象的分析与设计方法 面向对象方法的基本概念和特征 1.面向对象技术的发展 (1)在20世纪80年代初期以前: 面向对象是一种新兴的程序设计方法,或者说它是一种新的程序设计范型,基本思想是使用对象、类、继承、封装、消息等基本概念来进行程序设计。 (2)自80年代以来,面向对象方法已深入到计算机软件领域的几乎所有分支, 远远超出了程序设计语言和编程技术的范畴。同时,面向对象方法也深入到计算机软件以外的一些领域。 (3)目前看,面向对象方法最主要的应用范围仍是软件开发,对软件生命周期的各个阶段(包括分析、设计、编程、测试与维护),以及它所涉及的各个领域(如人机界面、数据库、软件复用、形式化方法、CASE工具等等),都已形成或正在形成面向对象的理论与技术体系。 6.1.1面向对象方法概述 面向方法的特点: ·从问题域中客观存在的事物出发来构造软件系统,用对象作为对这些事物的抽象表示,并以此作为系统的基本构成单位。 ·事物的静态特征(即可以用一些数据来表达的特征)用对象的属性表示,事物的动态特征(即事物的行为)用对象的服务(或操作)表示。 ·对象的属性与服务结合为一个独立的实体,对外屏蔽其内部细节,称作封装。 ·把具有相同属性和相同服务的对象归为一类,类是这些对象的抽象描述,每个对象是它的类的一个实例。 ·通过在不同程度上运用抽象的原则,可以得到较一般的类和较特殊的类。特殊类继承一般类的属性与服务,面向对象方法支持对这种继承关系的描述与实现,从而简化系统的构造过程及其文档。 ·复杂的对象可以用简单的对象作为其构成部分,称作聚合。 ·对象之间通过消息进行通信,以实现对象之间的动态联系。 ·通过关联表达对象之间的静态关系。 面向对象的定义 一种使用对象(它将属性与操作封装为一体)、消息传送、类、继承、多态和动态绑定来开发问题域模型之解的范型。 一种基于对象、类、实例和继承等概念的技术。 用对象作为建模的原子。 6.1.2面向对象的软件工程 定义:是面向对象方法在软件工程领域的全面运用。 组成部分:面向对象的分析(OOA) 面向对象的设计(OOD) 面向对象的编程(OOP) 面向对象的测试(OOT) 面向对象的软件维护 面向对象的分析(OOA) 特点: 保留问题域中的单个事物和事物之间的关系的原貌(没有转换、扭曲、重新组合) 直接针对问题域中客观存在的各项事物建立OOA模型中的对象。 用对象的属性描述事物的静态特征 用对象的服务描述事物的行为。 对象及其服务的命名都强调与客观事物一致。 模型中的对象数等于问题域中的值得考虑的事物(对象)数。 保留了问题域中事物之间的关系。 把具有相同属性和相同服务的对象归结为一类, 用一般/特殊结构(又称分类结构)描述一般类与特殊类之间的关系(即继承关系)。 用整体/部分结构(又称组装结构)描述事物间的组成关系, 用实例连接和消息连接表示事物之间的静态联系和动态联系。 (静态联系是指一个对象的属性与另一对象属性有关 动态联系是指一个对象的行为与另一对象行为有关。) 面向对象的设计(OOD) OOD是针对系统的一个具体的实现运用OO方法。包括两方面的工作: 把OOA模型直接搬到OOD,(仅作某些必要的修改和调整),作为OOD的一个部分。 针对具体实现中的人机界面、数据存储、任务管理等因素补充一些与实现有关的部分。这些部分与OOA采用相同的表示法和模型结构。 优点:OOA与OOD采用一致的表示法。从OOA到OOD不存在转换,只有很局部的修改或调整,并增加几个与实现有关的独立部分。降低了从OOA过波到OOD的难度、工作量和出错率。 面向对象的编程(OOP) 用一种面向对象的编程语言把OOD模型中的每个成分书写出来。 程序员需要动脑筋的工作:用具体的数据结构来定义对象的属性,用具体语句来实现服务流程图所表示的算法。 面向对象的测试(OOT) 在测试过程中继续运用OO技术,进行以对象概念为中心的软件测试。 面向对象的软件维护 为改进维护提供了有效的途径: 程序与问题域一致各个阶段的表示一致,从而降低理解的难度。 对象的封装性使对一个对象的修改对其他影响小。 6.1.3面向对象的基本概念和特征 对象 定义:对象是问题域或实现域中的某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组服务的封装体。 对象的理解: 从动态的观点来看,对象的操作就是对象的行为。 从存储的角度来看,对象是私有存储,其中有数据也有方法。其他对象的方法不能直接操纵该对象的私有数据,只有对象私有的方法才可操纵它。 从对象的实现机制来看,对象是一台自动机,其中私有数据表示了对象的状态,该状态只能由私有的方法改变它。 在面向对象的程序设计中,对象是系统中的基本运行实体。 对象的两个主