第13章 面向对象软件开发方法
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
2. 建立设计模型 在建立设计模型阶段,首先对分析模型进行详细分析 和阐述并且奠定实现的基础,从分析模型的面向客观边界 的观点转到面向实现的计算机观点上来。设计活动在两个 抽象级别上进行,其一是,系统设计,其二是,对象设计。 系统设计着重于构建一个完全的软件产品或得到一个系统 所需的软件布局。对象设计强调具体对象的详细结构。 系统设计的步骤如下。 (1) 将系统分解为各子系统; (2) 确定问题中固有的并发性; (3) 将各子系统分配给处理器及任务;
13.1.2 面向对象的OMT方法
OMT是对象建模技术( Object Modeling Technique ) 的简称,是由Rambaugh. J 及其同事首先提出的。OMT 是一种软件工程方法学,支持整个软件生存期。该方法覆 盖了问题构成、分析、设计和实现等阶段。OMT方法学提 供了组织开发的过程,这种过程使用一些协调技术完成系 统的演化,它的基础是开发系统的3种模型,然后对这3种 模型加以细化和优化,最后构成设计。其中,对象模型由 系统中的对象及其关系组成,动态模型描述系统中对象对 事件的响应及对象间的相互作用,功能模型则确定对象值 上的各种变换及变换上的约束。下面分别对分析和设计的 活动进行介绍。
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
2. 建立设计模型 在Coad方法中,设计模型是在分析模型的基础上建立 起来的。Coad方法的设计模型由4类部件构成,对它们的 设计活动形成了相当于传统设计方法的总体设计的内容。 其中,每个部件的设计又分为主题词、对象和类、结构、 属性及外部服务5个层次。它们是和在分析模型中对这5个 层次的识别活动对应的。这5个层次从纵向反映了系统模 型的渐进和迭代的建模过程,而4类部件的设计从横向反 映了系统模型的组成。设计模型可以用一个二维的矩阵来 表示,如图13.1所示。
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
(3) 选择适合于算法的数据结构; (4) 定义新的内部类; (5) 以改善设计访问和计算效率为目的,对类的组织加以优化; (6) 确定对象属性的明确表示; (7) 实现软件控制; (8) 设计消息序列以实现对象的关联; (9) 包装类和关联为系统模块。 整个设计工作结束时,用一个文档来描述设计结果,该 文档包括细化的对象模型、细化的动态模型和细化的功能模 型。
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
面向对象的设计从面向对象的分析结果出发,从各个 模型导出设计部件。但是,在面向对象设计时,常常从实 现角度对面向对象的分析结果进行改进或增补,主要是增 添、合并或分解类/对象、属性及服务,调整继承关系等。 面向对象的程序设计方法促使人们按原样保持问题域组织 框架。这种方法从分析到设计到编码,每个阶段都是按问 题域本身的样子组织的。在面向对象方法的各个阶段开发 出来的都是对象和类,因此,设计模型也是一个类/对象 模型。由于设计模型要考虑系统的实现,因此,设计模型 可能对在分析模型中得到的对象和结构做较大的变动,甚 至完全重新确定系统的对象和结构。
2012/ 面向对象软件开发方法
建立功能模型包括如下活动。 (1) 确定输入、输出值; (2) 需要时使用数据流图来表示功能依赖关系; (3) 描述各功能“干什么”; (4) 确定约束条件; (5) 详细说明优化标准。 最后得到的功能模型由数据流图和约束条件的描述构 成。 OMT方法使用多种图形工具来描述所建立的模型,下 一小节将介绍常用的图形工具。OMT方法的系统分析阶段 的目的是建立目标系统的体系结构,并且从多种角度对这 种结构进行了描述。
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
(4) 根据数据结构、文件及数据库来选择实现存储的基本 策略; (5) 确定全局资源和制定控制资源访问的机制; (6) 选择实现软件控制的方法; (7) 考虑边界条件; (8) 复审并考虑权衡。 系统设计结束后,要形成一个文档,用来描述系统的 基本结构和高层决策的策略。 对象设计的步骤如下。 (1) 从分析模型中选择操作; (2) 为每个操作定义算法;
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
(5) 使用继承来构造和简化对象/类; (6) 将类组合成模块。 最后得到由对象模型图和数据词典描述的对象模型。 建立动态模型包括如下活动。 (1) 准备典型交互序列的脚本; (2) 确定对象间的事件并为各脚本安排事件跟踪; (3) 准备系统的事件流图; (4) 开发具有重要动态行为的各个类的状态图; (5) 检查状态图中共享事件的一致性和完整性。 最后得到的状态模型由一系列状态图和全局事件流图 构成。
第13章 面向对象软件开发方法
第13章 面向对象软件开发方法 13.1 面向对象开发方法简介 13.2 面向对象技术中的常用建模图形工具 13.3 面向对象分析 13.4 面向对象设计 13.5 实现
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
13.1 面向对象开发方法简介
面向对象软件开发方法是软件工作者综合出来的面向对象 软件开发策略。面向对 象的软件开发方法一般包括面向对象 分析(Object-Oriented Analysis,OOA)、面向对象设计 (Object-Oriented Design,OOD)、面向对象编程(ObjectOriented Programming,OOP)3个阶段。每一个方法都包括一 个过程、一组随过程演化的模型以及能使软件工作者得以用一 致的方式创建模型的符号体系。比较有影响的面向对象程序设 计方法有:Booch方法、Coad和Yourdan方法以及OMT方法。 近年来,合并Booch方法和OMT方法产生的统一建模语言 (Unified Modeling Language,UML)在面向对象程序设计中也 得到了较大应用。本节将简单介绍Coad方法、OMT方法和 UML,主要是这些方法的基本框架,以提供对这些方法的一个 概览。
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
1. 建立分析模型 面向对象分析的目标是建立一系列模型,这些模型用 来描述一组满足用户需求的计 算机软件。在Coad方法中, 建立面向对象的分析模型涉及5种活动,它们对应着以下 五个层次。 ① 标识对象; ② 标识类的结构; ③ 标识主题; ④ 定义属性; ⑤ 定义服务。
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
建立分析模型的工作是一个反复迭代的过程,模型确 定之后,按照下列5个层次对模型进行整理并形成对应的 文档。 (1) 主题层:描述一次分析所考虑的范围,即描述对相关 的类进行归并的结果; (2) 对象层:描述在分析范围内找出的全部对象; (3) 结构层:描述对象的分类结构和组装结构; (4) 属性层:描述每个对象的状态特征; (5) 服务层:描述每个对象所具有的操作。 这5个层次的活动相当于将5张透明的胶片一层一层地 重叠在一起,每层都比前一层显示更多的信息内容,它们 一级比一级更详细。所建立的模型是用类/对象表示的静 态模型。
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
任务管理部件(TMC)的设计活动是为了描述目标系统 中各子系统间的通信和协同,以便简化应用的设计和编码, 具体要完成: ① 区分任务的类型,如事件驱动、时钟驱动; ② 建立优先级; ③ 标识作为其他任务协调者的任务; ④ 为每个任务设计合适的对象。 数据管理部件(DMC)设计活动的目的是把系统的其他 功能与依赖于操作平台的数据存储功能分开。做法是设计 底层的部件完成数据的管理任务,而数据存储的实现细节 集中在DMC中,具体要完成: ① 设计数据结构和布局;
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
其中,标识对象的活动按照“寻找什么”的标准把问 题域中的对象区别出来;标识类的结构包括定义类之间的 一般—特殊关系和定义整体—部分关系,可以用图形工具 描述得到的结构,常用的图形工具在13.2小节中介绍;标 识主题的活动把关系密切的类和对象划分为一组,作为主 题的内容,它可以看作是高层模块或子系统。该活动的结 果给出了面向对象分析模型的总体概貌;定义属性的活动 为在标识对象活动中区分出来的对象添加属性细节,而最 后一项活动为这些对象添加行为细节。通过这5个活动, 系统的总体概貌和问题域中的对象逐步清晰,系统的静态 模型即可被建立起来。
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
图13.1 设计模型的二维矩阵
问题域 PDC 主题层 类对象层 结构层 属性层 服务层 • • • • • • • • • • 人机交互 HCI • • • • • 任务管理 TM C • • • • • 数据管理 DM C
设计模型的4个部件设计对应于面向对象设计的4个主要活 动步骤。 (1) 设计主体部件PDC( Problem Domain Component ); (2) 设计人机界面部件HCI( Human-Computer Interface ); (3) 设计任务管理部件TMC( Task Management Component ); (4) 设计数据管理部件DMC( Data management Component )。
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
② 设计所需要的管理数据结构的服务; ③ 标识可以协助进行数据管理的工具; ④ 设计适当的类和类层次。 设计模型也是使用类/对象图进行描述的,设计结果作 为进行OOP的基础。
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
1. 建立分析模型 OMT方法的分析模型由3个模型构成,它们分别是: 对象模型、动态模型、功能模型。其中,对象模型描述类、 对象、类之间的层次和关系;动态模型描述系统的行为和 动态控制流;功能模型描述系统的功能和信息流。 系统分析阶段有两个主要的活动,其一是,记录对问 题范围的陈述,以便获取对问题的初步描述;其二是,建 立模型。其中,建立对象模型包括如下活动。 (1) 标识和问题相关的对象和类; (2) 编制描述类、属性及关联的数据词典; (3) 在类之间加入关联; (4) 给对象和类加入属性;
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
其中,设计主体部件PDC的活动根据分析模型对得到的 类/对象进行“扩充和调整”,在这个活动中要完成: ① 组合所有的领域特有类; ② 为应用类设计适当的类的层次; ③ 简化可以简化的继承关系; ④ 精化并加入底层的对象。 人机交互部件(HCI)的设计活动对人机交互界面进行详 细设计,具体要完成: ① 定义人员参与者; ② 开发任务场景; ③ 设计任务命令层次; ④ 精化用户交互序列; ⑤ 适当集成图形用户界面。
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
13.1.1 面向对象的Coad方法
面向对象的Coad方法是T. Coad和Y. Yourdon提出来 的。该方法基本分为分析和设 计两个阶段,分别用分析 模型和设计模型描述各个阶段的任务,但是两个阶段之间 没有严格的界限。Coad方法使用统一的基本表示方法来 组织数据及数据上的专有处理。其中,在面向对象的分析 阶段定义问题域中涉及的对象和类,以便反映系统的任务 和功能;在面向对象的设计阶段定义实现系统所需要的附 加的类和对象,以便反映需求的实现,使得在分析阶段和 在设计阶段使用的符号表示无明显差别,从而模糊了从分 析到设计的转换,这是该方法的一个显著特点。
面象对象程序设计
第13章 面向对象软件开发方法
2. 建立设计模型 在建立设计模型阶段,首先对分析模型进行详细分析 和阐述并且奠定实现的基础,从分析模型的面向客观边界 的观点转到面向实现的计算机观点上来。设计活动在两个 抽象级别上进行,其一是,系统设计,其二是,对象设计。 系统设计着重于构建一个完全的软件产品或得到一个系统 所需的软件布局。对象设计强调具体对象的详细结构。 系统设计的步骤如下。 (1) 将系统分解为各子系统; (2) 确定问题中固有的并发性; (3) 将各子系统分配给处理器及任务;
13.1.2 面向对象的OMT方法
OMT是对象建模技术( Object Modeling Technique ) 的简称,是由Rambaugh. J 及其同事首先提出的。OMT 是一种软件工程方法学,支持整个软件生存期。该方法覆 盖了问题构成、分析、设计和实现等阶段。OMT方法学提 供了组织开发的过程,这种过程使用一些协调技术完成系 统的演化,它的基础是开发系统的3种模型,然后对这3种 模型加以细化和优化,最后构成设计。其中,对象模型由 系统中的对象及其关系组成,动态模型描述系统中对象对 事件的响应及对象间的相互作用,功能模型则确定对象值 上的各种变换及变换上的约束。下面分别对分析和设计的 活动进行介绍。
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
2. 建立设计模型 在Coad方法中,设计模型是在分析模型的基础上建立 起来的。Coad方法的设计模型由4类部件构成,对它们的 设计活动形成了相当于传统设计方法的总体设计的内容。 其中,每个部件的设计又分为主题词、对象和类、结构、 属性及外部服务5个层次。它们是和在分析模型中对这5个 层次的识别活动对应的。这5个层次从纵向反映了系统模 型的渐进和迭代的建模过程,而4类部件的设计从横向反 映了系统模型的组成。设计模型可以用一个二维的矩阵来 表示,如图13.1所示。
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
(3) 选择适合于算法的数据结构; (4) 定义新的内部类; (5) 以改善设计访问和计算效率为目的,对类的组织加以优化; (6) 确定对象属性的明确表示; (7) 实现软件控制; (8) 设计消息序列以实现对象的关联; (9) 包装类和关联为系统模块。 整个设计工作结束时,用一个文档来描述设计结果,该 文档包括细化的对象模型、细化的动态模型和细化的功能模 型。
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
面向对象的设计从面向对象的分析结果出发,从各个 模型导出设计部件。但是,在面向对象设计时,常常从实 现角度对面向对象的分析结果进行改进或增补,主要是增 添、合并或分解类/对象、属性及服务,调整继承关系等。 面向对象的程序设计方法促使人们按原样保持问题域组织 框架。这种方法从分析到设计到编码,每个阶段都是按问 题域本身的样子组织的。在面向对象方法的各个阶段开发 出来的都是对象和类,因此,设计模型也是一个类/对象 模型。由于设计模型要考虑系统的实现,因此,设计模型 可能对在分析模型中得到的对象和结构做较大的变动,甚 至完全重新确定系统的对象和结构。
2012/ 面向对象软件开发方法
建立功能模型包括如下活动。 (1) 确定输入、输出值; (2) 需要时使用数据流图来表示功能依赖关系; (3) 描述各功能“干什么”; (4) 确定约束条件; (5) 详细说明优化标准。 最后得到的功能模型由数据流图和约束条件的描述构 成。 OMT方法使用多种图形工具来描述所建立的模型,下 一小节将介绍常用的图形工具。OMT方法的系统分析阶段 的目的是建立目标系统的体系结构,并且从多种角度对这 种结构进行了描述。
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
(4) 根据数据结构、文件及数据库来选择实现存储的基本 策略; (5) 确定全局资源和制定控制资源访问的机制; (6) 选择实现软件控制的方法; (7) 考虑边界条件; (8) 复审并考虑权衡。 系统设计结束后,要形成一个文档,用来描述系统的 基本结构和高层决策的策略。 对象设计的步骤如下。 (1) 从分析模型中选择操作; (2) 为每个操作定义算法;
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
(5) 使用继承来构造和简化对象/类; (6) 将类组合成模块。 最后得到由对象模型图和数据词典描述的对象模型。 建立动态模型包括如下活动。 (1) 准备典型交互序列的脚本; (2) 确定对象间的事件并为各脚本安排事件跟踪; (3) 准备系统的事件流图; (4) 开发具有重要动态行为的各个类的状态图; (5) 检查状态图中共享事件的一致性和完整性。 最后得到的状态模型由一系列状态图和全局事件流图 构成。
第13章 面向对象软件开发方法
第13章 面向对象软件开发方法 13.1 面向对象开发方法简介 13.2 面向对象技术中的常用建模图形工具 13.3 面向对象分析 13.4 面向对象设计 13.5 实现
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
13.1 面向对象开发方法简介
面向对象软件开发方法是软件工作者综合出来的面向对象 软件开发策略。面向对 象的软件开发方法一般包括面向对象 分析(Object-Oriented Analysis,OOA)、面向对象设计 (Object-Oriented Design,OOD)、面向对象编程(ObjectOriented Programming,OOP)3个阶段。每一个方法都包括一 个过程、一组随过程演化的模型以及能使软件工作者得以用一 致的方式创建模型的符号体系。比较有影响的面向对象程序设 计方法有:Booch方法、Coad和Yourdan方法以及OMT方法。 近年来,合并Booch方法和OMT方法产生的统一建模语言 (Unified Modeling Language,UML)在面向对象程序设计中也 得到了较大应用。本节将简单介绍Coad方法、OMT方法和 UML,主要是这些方法的基本框架,以提供对这些方法的一个 概览。
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
1. 建立分析模型 面向对象分析的目标是建立一系列模型,这些模型用 来描述一组满足用户需求的计 算机软件。在Coad方法中, 建立面向对象的分析模型涉及5种活动,它们对应着以下 五个层次。 ① 标识对象; ② 标识类的结构; ③ 标识主题; ④ 定义属性; ⑤ 定义服务。
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
建立分析模型的工作是一个反复迭代的过程,模型确 定之后,按照下列5个层次对模型进行整理并形成对应的 文档。 (1) 主题层:描述一次分析所考虑的范围,即描述对相关 的类进行归并的结果; (2) 对象层:描述在分析范围内找出的全部对象; (3) 结构层:描述对象的分类结构和组装结构; (4) 属性层:描述每个对象的状态特征; (5) 服务层:描述每个对象所具有的操作。 这5个层次的活动相当于将5张透明的胶片一层一层地 重叠在一起,每层都比前一层显示更多的信息内容,它们 一级比一级更详细。所建立的模型是用类/对象表示的静 态模型。
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
任务管理部件(TMC)的设计活动是为了描述目标系统 中各子系统间的通信和协同,以便简化应用的设计和编码, 具体要完成: ① 区分任务的类型,如事件驱动、时钟驱动; ② 建立优先级; ③ 标识作为其他任务协调者的任务; ④ 为每个任务设计合适的对象。 数据管理部件(DMC)设计活动的目的是把系统的其他 功能与依赖于操作平台的数据存储功能分开。做法是设计 底层的部件完成数据的管理任务,而数据存储的实现细节 集中在DMC中,具体要完成: ① 设计数据结构和布局;
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
其中,标识对象的活动按照“寻找什么”的标准把问 题域中的对象区别出来;标识类的结构包括定义类之间的 一般—特殊关系和定义整体—部分关系,可以用图形工具 描述得到的结构,常用的图形工具在13.2小节中介绍;标 识主题的活动把关系密切的类和对象划分为一组,作为主 题的内容,它可以看作是高层模块或子系统。该活动的结 果给出了面向对象分析模型的总体概貌;定义属性的活动 为在标识对象活动中区分出来的对象添加属性细节,而最 后一项活动为这些对象添加行为细节。通过这5个活动, 系统的总体概貌和问题域中的对象逐步清晰,系统的静态 模型即可被建立起来。
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
图13.1 设计模型的二维矩阵
问题域 PDC 主题层 类对象层 结构层 属性层 服务层 • • • • • • • • • • 人机交互 HCI • • • • • 任务管理 TM C • • • • • 数据管理 DM C
设计模型的4个部件设计对应于面向对象设计的4个主要活 动步骤。 (1) 设计主体部件PDC( Problem Domain Component ); (2) 设计人机界面部件HCI( Human-Computer Interface ); (3) 设计任务管理部件TMC( Task Management Component ); (4) 设计数据管理部件DMC( Data management Component )。
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
② 设计所需要的管理数据结构的服务; ③ 标识可以协助进行数据管理的工具; ④ 设计适当的类和类层次。 设计模型也是使用类/对象图进行描述的,设计结果作 为进行OOP的基础。
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
1. 建立分析模型 OMT方法的分析模型由3个模型构成,它们分别是: 对象模型、动态模型、功能模型。其中,对象模型描述类、 对象、类之间的层次和关系;动态模型描述系统的行为和 动态控制流;功能模型描述系统的功能和信息流。 系统分析阶段有两个主要的活动,其一是,记录对问 题范围的陈述,以便获取对问题的初步描述;其二是,建 立模型。其中,建立对象模型包括如下活动。 (1) 标识和问题相关的对象和类; (2) 编制描述类、属性及关联的数据词典; (3) 在类之间加入关联; (4) 给对象和类加入属性;
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
其中,设计主体部件PDC的活动根据分析模型对得到的 类/对象进行“扩充和调整”,在这个活动中要完成: ① 组合所有的领域特有类; ② 为应用类设计适当的类的层次; ③ 简化可以简化的继承关系; ④ 精化并加入底层的对象。 人机交互部件(HCI)的设计活动对人机交互界面进行详 细设计,具体要完成: ① 定义人员参与者; ② 开发任务场景; ③ 设计任务命令层次; ④ 精化用户交互序列; ⑤ 适当集成图形用户界面。
2012/4/25
面象对象程序设计
第13章 面向对象软件开发方法
13.1.1 面向对象的Coad方法
面向对象的Coad方法是T. Coad和Y. Yourdon提出来 的。该方法基本分为分析和设 计两个阶段,分别用分析 模型和设计模型描述各个阶段的任务,但是两个阶段之间 没有严格的界限。Coad方法使用统一的基本表示方法来 组织数据及数据上的专有处理。其中,在面向对象的分析 阶段定义问题域中涉及的对象和类,以便反映系统的任务 和功能;在面向对象的设计阶段定义实现系统所需要的附 加的类和对象,以便反映需求的实现,使得在分析阶段和 在设计阶段使用的符号表示无明显差别,从而模糊了从分 析到设计的转换,这是该方法的一个显著特点。