软件工程--面向对象设计与UML

上传人:ji****72 文档编号:48584587 上传时间:2018-07-17 格式:PPT 页数:44 大小:599.50KB
返回 下载 相关 举报
软件工程--面向对象设计与UML_第1页
第1页 / 共44页
软件工程--面向对象设计与UML_第2页
第2页 / 共44页
软件工程--面向对象设计与UML_第3页
第3页 / 共44页
软件工程--面向对象设计与UML_第4页
第4页 / 共44页
软件工程--面向对象设计与UML_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《软件工程--面向对象设计与UML》由会员分享,可在线阅读,更多相关《软件工程--面向对象设计与UML(44页珍藏版)》请在金锄头文库上搜索。

1、OOA方法的基本顺序:需求陈述建立 Object Model建立 Dynamic Model建立 Function Model定义服务建立 Object Model:确定Class-&-Object确定关联识别主题确立属性确立继承关系1软软 件件 工工 程程-第6章 面向对象的分析与设计方法2面向对象设计 (Object-Oriented Design)1. OOD准则:优秀软件设计的 一个重要特点是容易维护回顾:SD准则包括 Modularization Abstraction Information hiding Module independence对于 OOD有类似的准则:1、模块化:

2、Module = Object31. OOD准则3、信息隐藏Information hiding = 对象封装 Encapsulation of object4、耦合Coupling: 交互耦合(interactive coupling):通过传递message发生 要求降低参数个数和参数复杂性 继承耦合(inheritance coupling):要求 Parent class IS_A child class as high as possible2、抽象Abstraction:抽出事物的本质特性, 暂不考虑其 细节,使设计从具体实现方法中超脱。41. OOD准则 一般-特殊内聚5、内聚C

3、ohesion: 服务内聚(service cohesion):一个服务只完成一个功能 。 类内聚(class cohesion):一个类只有一个用途,否则分 解之。6、复用性Reusability52. 启发式规则1、设计结果清晰易懂,应做到: 用词一致 按习惯用法 命名。不同classes中相似的 methods最好取同一名字。 使用已有的protocol。 尽量减少message模式的数 目。 避免模糊定义。 2、一般-特殊结构的深度应适当(约100个classes,则 设计72层)62. 启发式规则 3、设计简单的class(定义不超过一页纸或两屏)。 应注意: 避免过多attribu

4、tes; 能用简单的语句描述一个class的任务; objects之间合作关系要简单;避免过多methods( 7个)。问题:设计出大量的classes,使结构复杂度增加。 解决:划分主题,提高可理解性。 4、使用简单的protocol,减少message 中传递的 parameters5、使用简单的method(CASE 可考虑用 inheritance替代)。6、把设计变动减至最小。 7概念: 知识重用(例如软件工程知识的重用) 方法和标准重用(例如OO方法和国家规定 的软件开发规范的重用) 软件成分的重用3. 软件重用 (Software Reuse)知识 工程 源码剪贴 无法溯源,无配

5、置管理 Include 修改后所有包含了此段代码的程 序都须重新编译。 Inheritance 无须改动原有代码 想象一下,stdio.h 被改动之后 重用软件成分有三个级别: 代码重用:83. 软件重用 设计重用 当移植系统时 分析重用 当需求未变,而系统结构改变时重用效果的衡量:额外代价: 创建可重用成分的专门投资 多花2 4倍时间测试以保证质量 构件库的建立与维护需要投资以上投资将分摊到重用这些构件的新系统成 本中。重用次数越多,分摊成本越少。9IPO问题域 Application Domain人机交互 Human- Computer Interface (HCI)任务管理 Task M

6、anagement数据管理 Data ManagementMethodAttributeStructureClass-&-ObjectCategory4. 系 统 分 解回顾SD:从DFD出发 OOD模型分解:104. 系 统 分 解1、子系统之间的交互方式(collaboration) 客户-供应商(client-server)关系: 平等伙伴(peer-to-peer)关系:Client subsystemcontractServer subsystemrequestcontractPeer subsystemcontractPeer subsystemrequestrequest114.

7、 系 统 分 解2、系统组织方案 水平层次组织:将系统组织成hierarchy,同一层中的objects相 互独立,而上、下层间有 client-server关系。 一个client只能调用其相邻下层的server 封闭式(closed) 一个client可调用其下任一层的server 开放式(open)优点:高效; 缺点:修改影响面广12HCI典型应用系统的组织结构应 用 软 件 包操 作 系 统 计 算 机 硬 件人机对 话控制仿真 软件包图形 处理窗口图形屏幕图形象素图形4. 系 统 分 解 垂直块组织:将系统垂直分解成若干独立的子系统,一个子系统相当于一块,每块提供一种类型的服务。13

8、5. 设计类中的服务 细化object model中的 methods1、确立服务 从 dynamic model出发:Event Status 1 do: Action 1 Status 2 do: Action 2 从function model出发:IPO145. 设计类中的服务 2、设计实现方法 算法设计:要求做到易修改,并且复杂度低(即效率高) 易理解,易实现。 数据结构设计:需要考虑具体的物理结构的选择。 新添用于存放内部处理中间结果的class;引入新 的低层操作,进一步细化。156. 设计关联1、单向关联 例: 雇 员公 司被雇用1+ 由雇员找其所属公司 ,则设雇主为其属性 ,

9、即一单向指针雇 员 雇主公 司 由公司找其下属某一雇员,则有两种方法:方法1:遍历所有雇员,找雇主匹配且满足特征的雇 员。(省空间)166. 设计关联 方法2:设公司 的属性雇员为 一指针集。( 快速)雇 员公 司 雇员指针集2、双向关联方法1:将上述两种单向 关联结合使用雇 员 雇主公 司 雇员指针集雇 员公 司 关联类雇主 雇员 工资方法2:另设关联类(特 别适用于链属性 )17雇 员公 司find_skill雇 用1+技 能具有技能1+1+7. 优 化1、确定优先级:必须站在全局高度确定各项质量指标的优先级, 在优化设计时制定折衷方案。切忌各子系统自以为 是,导致最终优化目标对立。最常见

10、的情况是在效率与清晰性之间的折衷。 2、提高效率的技术 增加关联(类) 例:设某公司有2000名雇员,平均每名雇员会10 种技能,其中有5人精通日语,现要查询公 司中会讲日语的雇员是哪些人18雇 员公 司精通语言1+语 言1+7. 优化方法1:嵌套查询 遍历雇员2000次,而对每个 雇员遍历技能10次。命中率为1/4000。方法2:用Hash Table实现技能,使“会讲日语”对 应唯一的技能对象,则命中率上升为1/400 。 方法3:增加一个额外的限定关联“精通语言”,即 可立刻查得结果。197. 优化 调整查询次序,优化算法例如公司有5名会日语的雇员,有200名会法语 的雇员。现要找日、法

11、语均会的雇员,则应先找 的 雇员,再从中找 的雇员。会日语 会法语 保留内部中间过程产生的派生属性。 3、调整继承关系 向上归纳 向下派生建立这样的索引必然多占空间,而且基关联改 变时也必须相应地修改索引。因此,应只给那些经 常执行并且开销大、命中率低的查询建立索引。20UMLUML面向对象分析与设计面向对象分析与设计 统一的建模语言统一的建模语言( (UMLUML) ) 已经在企业中广泛使用已经在企业中广泛使用n n设计设计UMLUML的目标的目标uu统统 一不同的建模语言一不同的建模语言uu统统 一开发阶段一开发阶段uu统统 一不同的软件应用论一不同的软件应用论 域域uu统统 一内部结构一

12、内部结构uu与与 多种不同的开发过程多种不同的开发过程 并存并存21UMLUMLn n任何方法都应由任何方法都应由建模语言建模语言和和建建 模过程模过程两部分构成。建模语言两部分构成。建模语言 提供了用于表示设计的提供了用于表示设计的图形符图形符 号号,建模过程描述了进行设计,建模过程描述了进行设计 时所需遵循的时所需遵循的步骤步骤。n nUMLUML则统一了面向对象建模的则统一了面向对象建模的 基本概念、术语及其图形符号基本概念、术语及其图形符号 ,建立了便于交流的通用语言,建立了便于交流的通用语言 。n n在在UMLUML中用中用5 5种不同的视图来种不同的视图来 表示一个系统,这些视图从

13、不表示一个系统,这些视图从不 同的侧面描述系统。同的侧面描述系统。 每一个视图由一组图形来定义每一个视图由一组图形来定义 。22用户模型视图用户模型视图 :从用户角:从用户角 度来表示系统。它用度来表示系统。它用使用实使用实 例例( (use case)use case) 来建立模型,用来建立模型,用 它来描述由用户方面的可用它来描述由用户方面的可用 的场景。的场景。 结构模型视图结构模型视图 :从系统内:从系统内 部来看数据和功能性。即对部来看数据和功能性。即对 静态结构静态结构( (类、对象和关系类、对象和关系) ) 模型化。模型化。 行为模型视图行为模型视图 :这种视图:这种视图 表示了

14、系统动态和行为。它表示了系统动态和行为。它 还描述了在用户模型视图和还描述了在用户模型视图和 结构模型视图中所描述的结构模型视图中所描述的各各 种结构元素之间的交互和协种结构元素之间的交互和协 作作。23实现模型视图实现模型视图 :将系统的:将系统的 结构和行为表达成为易于转结构和行为表达成为易于转 换为实现的方式。换为实现的方式。 环境模型视图环境模型视图 :表示系统:表示系统 实现环境的结构和行为。实现环境的结构和行为。n nUMLUML分析建模分析建模的着眼点放在的着眼点放在 系统的系统的用户模型用户模型和和结构模型结构模型 上。上。n nUMLUML设计建模设计建模的着眼点则定的着眼点

15、则定 位在位在行为模型行为模型、实现模型实现模型和和 环境模型环境模型上。上。24需求定义图需求定义图开发 规划需求 属性导出 相关 需求获得 普通 术语寻找行为者和 使用实例构造行为者和 使用实例模型排定使用 实例优先级建立用户 界面模型建立用户 界面原型详述使用 实例需求评审25分析与设计方法图分析与设计方法图结构分析结构设计流程描述分布描述使用实例分析子系统设计类设计使用实例设计数据库设计结构评审设计评审26UMLUML方法中的基本模型方法中的基本模型27UMLUML规划规划 操作分析过程操作分析过程使用实例图事件流脚本事 务 模 型 分 析相互作用图(时序图,协同图)对象&类对象图,类图类分组封包图状态图构件图配置图面 向 对 象 分 析28类图类图29 类图用于表示类的存在和类类图用于表示类的存在和类 与类之间的相互关系,是从与类之间的相互关系,是

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号