面向对象的系统设计

上传人:san****019 文档编号:20624944 上传时间:2021-04-05 格式:PPT 页数:34 大小:501.55KB
返回 下载 相关 举报
面向对象的系统设计_第1页
第1页 / 共34页
面向对象的系统设计_第2页
第2页 / 共34页
面向对象的系统设计_第3页
第3页 / 共34页
点击查看更多>>
资源描述
梁昌勇 信息系统分析、设计与开发方法 第 6章 面向对象的系统分析 2/29 6.1 从面向对象分析到面向对象设计 6.2 面向对象设计的准则 6.3 启发式规则 6.4 软件重用 6.5 系统分解 6.6 典型的面向对象设计 6.7 类中服务的设计 6.8 关联设计 6.9 设计优化 目录 3/29 6.1从面向对象分析到面向对象设计 6.1.1 从面向对象分析到面向对象设计 面向对象的系统设计 (OOD) 就是在系统分析模型的基础上运用面向对象的方法,来设计 产生一个符合具体实现条件的面向对象设计 (OOD)模型。 对于面向对象设计方法,尽管分析和设计的定义有明显区 别,但是在实际的软件开发过程中二者的界限是模糊的。 分析过程的结果可以直接映射成设计的结果, 初期的分析 过程主要是提取与系统相关的主要类和业务流程,而在设 计阶段将所有的类和流程细化,加深和补充对系统需求的 理解,从而进一步完善分析结果。 4/29 OOA与 OOD关系 它们采用了相同的符号表示,因此相互之间没有明显的分 界线,往往是反复重叠地进行。 系统分析主要考虑的是做什么,因此它识别和定义的类 / 对象,是一些直接反映问题域和系统任务的;而系统设计 主要解决系统如何做,所以它识别和定义的类 /对象是附 加的,反映了需求的一种实现 (对话层、任务管理层、数 据管理层 )。 系统分析是在较高的抽象层次上进行,而系统设计则在较 低的抽象层次上进行。系统分析是独立于程序设计语言的 ,初步的系统设计在很大程度上与语言无关,但详细的系 统设计则都会依赖于程序设计语言。 6.1从面向对象分析到面向对象设计 6.1.1 从面向对象分析到面向对象设计 5/29 面向对象系统设计的主要工作包括以下几个方面 的内容: (1) 设计对象与类。包括分析对象模型,设计对 象与类的属性,设计对象与类的实现结构,以及 设计消息与事件的内容和格式。 (2) 设计系统结构。设计系统结构阶段的主要任 务是设计组件与子系统以及它们之间的静态和动 态关系。对于人机界面、数据管理、任务管理等 问题 ,在面向对象分析阶段一般不提及,而是等到 面向对象设计阶段再进行分析。 6.1从面向对象分析到面向对象设计 6.1.1 从面向对象分析到面向对象设计 6/29 面向对象系统设计的主要工作包括以下几个方面的 内容: (3) 设计人机交互子系统。此阶段的主要任务是设计用户界 面,设计人机交互操作命令和操作顺序,设计详细交互过 程,设计工作的内容包括用户分类,设计人机交互类等。 (4) 设计数据管理子系统。此阶段主要是确定数据管理方法 ,设计数据 库与数据文件的逻辑结构和物理结构。面向对 象的分析设计方法注重的是问题涉及的对象以及对象的相 互关系和相互作用 ,并在此基础上构造这些问题的模型 ,以 期将要解决的实质问题模型化。 6.1从面向对象分析到面向对象设计 6.1.1 从面向对象分析到面向对象设计 7/29 简单与复杂 (1) 小规模和小团队开发的系统在整体框架选择和层次结 构上应尽量简单,而大规模的系统,要考虑到众多模块的 合理配臵,需要构建更多的层次,选用成熟的框架体系。 (2) 在系统资源有限的硬件平台上运行的系统,例如嵌入 式系统,在设计时应尽量简单,以提高运行效率;而在 PC 机以及服务器上运行的系统,可以采用复杂设计,已获得 更好的扩展性。 (3) 对于运行性能要求高的系统,例如需要提供并发服务 的服务器系统,则在访问频繁的模块设计上应遵循简单的 原则。 6.2 面向对象系统设计的准则 6.2.1面向对象系统设计准则 8/29 简单与复杂 (4) 对于开发水平参差不齐的团队,在开发方案的选择上注 意选取简单的方案,减少内部培训和交流的代价。而成熟 的开发团队,则可以根据设计目标灵活地选择设计方案。 (5) 在一个系统的设计中,简单和复杂的原则可能是交替 作用的,在整体结构复杂的系统中,可能在关键性能模块 的设计上追求简单。而在整体结构简单的系统中,对于某 些通用性较强的模块可能采用复杂设计。 (6) 即使确定了简单和复杂的原则,也需要考虑到 “ 度 ” ,过度设计只会使得某些超前的设计方案被废弃。 6.2 面向对象系统设计的准则 6.2.1面向对象系统设计准则 9/29 模块化 模块化是软件设计方法不断演变所追求的目标之一,软件 的模块化使得软件的各个功能在设计时相对独立,能够降 低软件设计的复杂度。 面向对象软件开发方法,对象就是模块。它是把数据结构 和操作这些数据的方法紧密地结合在一起所构成的模块。 对象与单元的区别在于:对象是数据与操作紧密结合的, 在软件运行中有一定生命周期的实体。而单元只是一组函 数功能的集合。 6.2 面向对象系统设计的准则 6.2.1面向对象系统设计准则 10/29 抽象化 面向对象方法不仅支持过程抽象,而且支持数据抽象。 在类的设计中要考虑各种类的关系,需要从具体类中抽象 出具有共同特性的父类或者接口,子类继承父类的方法, 并可以重构不同的实现。类实际上是一种抽象数据类型, 它对外开放的公共接口( interface)构成了类的规格说 明,这种接口规定了外界可以使用的合法操作符,利用这 些操作符可以对类实例中包含的数据进行操作。 6.2 面向对象系统设计的准则 6.2.1面向对象系统设计准则 11/29 弱耦合与信息隐藏 对象间的耦合可分为两大类: ( 1)交互耦合。如果对象间的耦合是通过消息 连接来实现,则这种耦合属于交互耦合。交互耦 合应该尽可能松散。 ( 2)继承耦合。继承是一般化类与特殊类间耦 合的一种形式,从本质来看,是一种通过继承关 系结合起来的基类和派生类,构成了系统中粒度 更大的模块。它们之间是结合得越紧密越好。 6.2 面向对象系统设计的准则 6.2.1面向对象系统设计准则 12/29 信息隐藏 实现弱耦合的重要手段,在面向对象方法中,信息 隐藏通过对象的封装性实现 . 对象的封装有两种形式: 源代码级的封装 ; 二进制代码级的封装。 6.2 面向对象系统设计的准则 6.2.1面向对象系统设计准则 13/29 可重用 软件重用是提供高软件开发生产率和目标系统质 量的重要途径。派生和继承是代码重用的基础。 重用有两方面的含义:一是尽量使用已有的类( 包括开发环境提供的类库,及以往开发类似系统 时创建的类),二是如果确实需要创建新类,则 在设计这些新类的协议时,应该考虑将来的可重 复使用性。 6.2 面向对象系统设计的准则 6.2.1面向对象系统设计准则 14/29 设计结果应该清晰易懂 (1) 用词一致 (2) 使用已有的协议 (3) 减少消息模式的数目 (4) 避免模糊的定义 使类等级中包含的层次数适当 应该使类等级中包含的层次数适当 ,一般来说, 在一个中等规模 (大约包含 100个类 )的系统中,类 等级层次数应保持为 7 2。 6.3 启发规则 15/29 设计简单的类 (1)避免包含过多的属性; (2)有明确的定义;为了使类的定义明确,分配给每个类的任 务应该简单,最好能用一两个简单语句描述它的任务。 (3)尽量简化对象之间的合作关系;对象间的合作关系应尽可 能的简单。 (4)不要提供太多服务; 一个类提供的公共服务不超过 7个; 在开发大型软件系统时,解决这个问题的办法,是把系统 中的类按逻辑分组。 (5) 使用简单的协议;一般消息中的参数不要超过 3个。 (6) 使用简单的服务; (7) 把设计变动减至最小。 6.3 启发规则 16/29 面向对象方法的一个主要目标,就是提高软件的可重用性。 软件重用就是将已有的软件成分用于构造新的软件系统。可 以被重用的软件成分一般称作可重用构件,无论对可重用构 件原封不动地使用还是作适当的修改后再使用,只要是用来 构造新软件,则都可称作重用。 重用级别: 代码的重用 设计的重用 分析的重用 测试信息的重用 6.4 软件重用 17/29 设计复杂应用系统时,会首先根据功能对系统进 行分解,然后再分别设计各子系统。各子系统间 通过接口进行连接和信息传递,接口确定了子系 统间的交互形式和需传递的信息 。 划分和设计子系统时,应该尽量减少子系统间的 耦合度。 6.5 系统分解 18/29 问题域子系统设计;可能对面向对象分析所得出 的问题域模型做的补充或修改。 ( 1)调整需求 ( 2)重用已有类 ( 3)组合问题域类 ( 4)增添一般化类以建立协议 ( 5)调整继承层次 6.6 典型的面向对象设计 19/29 窄菱形模式 阔菱形模式 20/29 单继承模式 21/29 人机交互子系统设计 在面向对象设计过程中,应该对人机交互子系统进 行详细设计,以确定人机交互的细节,其中包括指 定窗口和报表的形式、设计命令层次等内容。 设计人机交互子系统的策略 ( 1)分类用户 ( 2)描述用户 ( 3)设计命令层次 ( 4)设计人机交互类 6.6 典型的面向对象设计 22/29 任务管理子系统设计 分析并发性 设计任务管理子系统 确定事件驱动型任务 确定时钟驱动型任务 睡眠状态。 确定优先任务 确定关键任务 确定协调任务 尽量减少任务数 确定资源需求 6.6 典型的面向对象设计 23/29 数据管理子系统, 是系统存储或检索对象的基本设施,它建 立在某种数据存储管理系统之上,并且隔离了数据存储管理 模式的影响。 选择数据存储管理模式 优点 缺点 文件管理系统 成本低、简单 级别低,必须编写额外的代 码,不同操作系统的文件 管理系统差异明显 关系数据库管理系统 提供了各种最基本的数 据管理功能,提供了 一致的接口,标准化 的语言 运行开销大,不能满足高级 应用的需求,与程序设计 语言的连接不自然 面向对象数据库管理系 统 扩展的关系数据库管理 系统,扩展的面向对 象程序设计语言 6.6 典型的面向对象设计 24/29 设计数据管理子系统 设计数据格式,存储管理模式的设计方法: 文件系统:定义 1NF表;为每个 1NF表定义一个文件; 关系数据库管理系统:定义 3NF表;为每个 3NF表定义 一个数据库表; 面向对象数据库管理系统:扩展的关系数据库途径; 扩展的面向对象程序设计语言途径。 设计相应的服务 如果某个类的对象需要存储起来,则在这个类中 增加一个“隐含”的属性和服务,用于完成存储 对象自身的工作。 6.6 典型的面向对象设计 25/29 下面介绍使用不同数据存储管理模式时的设计要点。 文件系统:被存储的对象需要知道打开哪些文件,怎样把文 件定位到正确的记录上,怎样检索出旧值,以及怎样用现 有值更新它们;应该定义一个 ObjectServer类,并创建它 的实例,该类提供下列服务:通知对象保存自身,检索已 存储的对象。 关系数据库管理系统:被存储的对象,应该知道访问哪些数 据库表,怎样访问所需要的行,怎样检索出旧值,以及怎 样用现有值更新它们;应该定义一个 ObjectServer类,并 声明它的对象,该类提供下列服务:通知对象保存自身, 检索已存储的对象。 面向对象数据库管理系统:扩展的关系数据库途径;扩展的 面向对象程序设计语言途径。 6.6 典型的面向对象设计 26/29 设计类中应有的服务 对象的许多服务都与对象接收到的消息密切相关 ,接收消息的对象必然有由消息选择符指定的服 务,该服务改变对象状态,并完成对象应做的动 作。对象的动作既与消息有关,也与对象的状态 有关。 6.7 类中服务的设计 27/29 设计实现服务的方法 ( 1)设计实现服务的算法 , 设计实现服务的算法时 ,应该考虑下列几个因素: 算法复杂度。 容易理解与实现。 易修改。 ( 2)选择数据结构 ,在面向对象设计过程中,则需要 选择能够方便、有效地实现算法的物理数据结构。 ( 3)定义内部类和内部操作 6.7 类中服务的设计 28/29 关联的方式 ( 1)关联的遍历;单向遍历和双向遍历。 ( 2)实现单向关联 如果关联的重数是一元的,则实现关联的指针是一个简单 指针;如果重数是多元的,则需要用一个指针集合实现关 联。 6.8 关联设计 用指针实现单向关联 29/29 ( 3)实现双向关联 ,实现双向关联有下列 3种方法: 只用属性实现一个方向的关联,当需要反向遍历时就 执行 一次正向查找。 两个方向的关联都用属性实现。 用独立的关联对象实现双向关联。 用指针实现双向关联 30/29 用对象实现关联 31/29 ( 4)关联对象的实现 可以引入一个关联类来保存描述关联性质的信息,关联中的 每个连接对应着关联类的一个对象。实现关联对象的方法取 决于关联的重数。对于一对一关联来说,关联对象可以与参 与关联的任一个对象合并。对于一对多关联来说,关联对象 可以与“ 多 ”端对象合并。如果是多对多关联,则关联链 的性质不可能只与一个参与关联的对象有关,通常用一个独 立的关联类来保存描述关联性质的信息,这个类的每个实例 表示一条具体的关联链及该链的属性。 32/29 确定优先级 提高效率的几项技术 增加冗余关联以提高访问效率 调整查询次序 保留派生属性 调整继承关系 抽象与具体 为提高继承程度而修改类定义 利用委托实现行为共享 6.9 设计优化 33/29 本章是对面向对象分析的扩充,是一个逐渐扩充模型的过 程。通过对系统的分析模型进行分析,了解程序应该实现 的功能、程序的输入和输出数据、数据转换算法、用户界 面等内容。系统设计从增加属性和服务开始,对模型进行 扩充,建立起一个求解问题的实现方案。 首先,给出了面向对象设计有其特有的设计准则和有助于 提高质量的启发式规则。其次,在面向对象方法设计时, 是总体设计和详细设计多次反复迭代的过程,一般划分为 问题域子系统、人机交互子系统、任务管理子系统和数据 管理子系统四大子系统。在设计工作进行中,要根据系统 的目标,不断进行系统的优化设计工作,最终建立一个面 向对象观点的求解空间模型的过程。 本章小结 34/29 主要内容: 面向对象的系统设计原则,软件重用概念及分类,问题领 域子系统的设计,人机交互子系统的设计,外部接口子系 统的设计,数据管理子系统的设计,任务管理子系统的设 计。 重 点: 问题领域子系统的设计,人机交互子系统的设计,外部 接口子系统的设计,数据管理子系统的设计,任务管理子 系统的设计 。 难 点: 多对多关联的映射,设计类图的方法,系统分解 本章小结
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!