软件工程 (第二版)第11章 面向对象的OMT方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(7) 确定对象属性的明确表示:是将类、关联封 装成模块。
最后得到:对象设计文档 = 细化的对象模型 + 细 化的动态模型 + 细化的功能模型。
11.2 建模概念
11.2.1 对象模型
对象模型表示了静态的、结构化的系统数据性质, 描述了系统的静态结构,它是从客观世界实体的对象 关系角度来描述的,表现了对象的相互关系。该模型 主要关心系统中对象的结构、属性和操作,使用了对 象图的工具来刻画,它是分析阶段三个模型的核心, 是其他两个模型的框架。
系统分析阶段涉及对应用领域的理解及问题域建 模。分析阶段的输入是问题陈述,说明要解决的问题 并提供了对假想系统概念的总览,同用户不断对话以 及对客观世界背景知识的了解作为分析的附加输入, 分析的结果是一个形式化模型。该模型概括了系统的3 个本质因素:对象及对象之间的关系、动态的控制流 以及带有约束的功能数据变换。
Hale Waihona Puke Baidu
3. 构造动态模型 构造动态模型的步骤如下: (1) 准备典型交互序列的脚本。 (2) 确定对象间的事件并为各脚本安排事件跟踪。 (3) 准备系统的事件流图。 (4) 开发具有重要动态行为的各个类的状态图。 (5) 检查状态图中共享事件的一致性和完整性。 最后得到:动态模型 = 状态图 + 全局事件流图。
OMT方法学是组织开发的一种过程。这种过程是建立在 一些协调技术之上的,OMT方法的基础是开发系统的3个模 型,再细化这3种模型,并优化以构成设计。对象模型由系 统中的对象及其关系组成,动态模型描述系统中对象对事 件的响应及对象间的相互作用,功能模型则确定对象值上 的各种变换及变换上的约束。
11.1.2 系统分析
定实现的基础,从分析模型的面向客观边界的观点转到面 向实现的计算机观点上来。对象设计步骤如下:
(1) 从其他模型中获取对象模型上的操作:在功能模 型中寻找各个操作,为动态模型中的各个事件定义一个操 作,这个操作与控制的实现有关。
(2) 设计实现操作的算法:指选择开销最小的算法, 选择适合于算法的数据结构,定义新的内部类和操作。给 那些与单个类联系不太清楚的操作分配内容。
第11章 面向对象的OMT方法
11.1 OMT方法概述 11.2 建模概念 11.3 系统分析 11.4 系统设计 11.5 对象设计 11.6 小结 习题
11.1 OMT方法概述
11.1.1 OMT方法学
OMT是一种软件工程方法学,支持整个软件生存周 期。它覆盖了问题构成、分析、设计和实现等阶段。
(3) 将各子系统分配给处理器及任务。 (4) 根据数据结构、文件及数据库来选择实现存 储的基本策略。 (5) 确定全局资源和制定控制资源访问的机制。 (6) 选择实现软件控制的方法。 (7) 考虑边界条件。 最后得到:系统设计文档 = 系统的基本结构 + 高层次决策策略。
11.1.4 对象设计 对象设计时,对分析模型进行详细分析和阐述并且奠
图11.1 对象的符号表示
2) 类
对象类描述具有相似或相同性质(属性)的一组 对象,这组对象具有一般行为(操作)、一般关系 (对象之间的)及一般语义。类是对象类的略写,类 中对象有相同的属性、行为模式。
通过将对象聚集成类,可以使问题抽象化,抽象 增强了模型的归纳能力。类的图形表示如图11.2所示, 图11.2中的属性和操作可写可不写,取决于所需的详细 程度。
图11.2 类的符号表示
4. 构造功能模型 构造功能模型的步骤如下: (1) 确定输入、输出值。 (2) 需要时使用数据流图来表示功能依赖关系。 (3) 描述各功能“干什么”。 (4) 确定约束。 (5) 详细说明优化标准。 最后得到:功能模型 = 数据流图 + 约束。
5. 验证、重复并完善细化 3 种模型 最后得到:分析文档 = 问题陈述 + 对象模型 + 动态模型 + 功能模型。 11.1.3 系统设计 在系统设计阶段建立系统的高层结构,有各种标 准结构可以用作设计的起点。面向对象的开发方法对 系统设计没有什么特殊的限制,但覆盖了完整的软件 开发阶段。系统设计的开发步骤如下: (1) 将系统分解为各子系统。 (2) 确定问题中固有的并发性。
1. 对象和类
1) 对象
对象就是应用领域中有意义的事物。对象建模的 目的就是描述对象,把对象定义成问题域的概念、抽 象或者具有明确边界和意义的事物。对象有两种用途: 一是促进客观世界的理解,二是为计算机实现提供实 际基础。问题分解为对象依赖于对问题判断和问题的 性质。对象的符号表示如图11.1所示。
系统设计阶段确定整个系统的体系结构。以对象 模型为指导,系统可由多个子系统组成,把对象组织 成聚集并发任务而反映并发性,对动态模型中处理的 相互通信、数据存储及实现要制定全面的策略,在权 衡设计方案时要建立优先顺序。
对象设计阶段要精心考虑和细化分析模型,然后 优化地生成一个实际设计。对象设计的重点从应用域 概念转到计算机概念上来,应选择基本算法来实现系 统中各主要功能。
分析的目的是确定一个系统“干什么”的模型,该模 型通过使用对象、关联、动态控制流和功能变换等来描述。 分析过程是一个不断获取需求及不断与用户磋商的过程。
1. 问题陈述
问题陈述为记下或获取对问题的初步描述。
2. 构造对象模型 构造对象模型的步骤如下: (1) 确定对象类。 (2) 编制类、属性及关联描述的数据词典。 (3) 在类之间加入关联。 (4) 给对象和链加属性。 (5) 使用继承构造和简化对象类。 (6) 将类组合成模块,这种组合在紧耦合和相关 功能上进行。 最后得到:对象模型=对象模型图+数据词典。
(3) 优化数据的访问路径:指增加冗余联系以减 少访问开销,提高方便性,重新排列运算以获得更高 效率。为防止重复计算复杂表达,保留有关派生值。
(4) 实现系统设计中的软件控制。
(5) 为提高继承而调整类体系:是指为提高继承 而调整和重新安排类和操作,从多组类中把共同行为 抽取出来。
(6) 设计关联的实现:分析关联的遍历,使用对 象来实现关联或者对关联中的1、2个类增加值对象的 属性。