西安交通大学软件学院:《面向对象的软件工程》 第九章 远程软工

西安交通大学现代远程教育课程 软件工程概论 第9章面向对象设计 ·面向对象的设计原则 ·系统设计 对象设计 设计模式 RUP的设计活动 ·RUP的实现活动 主讲教师:刘海岩副教授
1 第9章 面向对象设计 • 面向对象的设计原则 • 系统设计 • 对象设计 • 设计模式 • RUP的设计活动 • RUP的实现活动

西安交通大学现代远程教育课程 软件工程概论 91面向对象的设计概念及原则 1、有关概念 面向对象设计将面向对象分析创建的分析模型变换 为设计模型,它将作为软件构造的蓝图。但由于面向对 象分析与设计活动是一个迭代与演化的过程,概念与表 示方法的一致性使得分析与设计阶段平滑过渡 传统的设计方法将问题域分解成一系列任务来完成, 这些任务形成过程式软件的基本结构。面向对象方法把 问题域作为一系列相互作用的对象,在此基础上构造出 基于对象的软件系统结构 面向对象设计包括系统设计和对象设计。系统设计 包括如何把整个系统分解为子系统、子系统的软硬件布 局等策略性决策;对象设计是根据具体的实现策略,对 分析模型进行扩充。通过系统设计和对象设计产生设计 模型,是进一步完成系统实现的基础。下表列出了分析 模型与设计模型的区别: 主讲教师:刘海岩副教授
2 9.1 面向对象的设计概念及原则 1、有关概念 面向对象设计将面向对象分析创建的分析模型变换 为设计模型,它将作为软件构造的蓝图。但由于面向对 象分析与设计活动是一个迭代与演化的过程,概念与表 示方法的一致性使得分析与设计阶段平滑过渡。 传统的设计方法将问题域分解成一系列任务来完成, 这些任务形成过程式软件的基本结构。面向对象方法把 问题域作为一系列相互作用的对象,在此基础上构造出 基于对象的软件系统结构。 面向对象设计包括系统设计和对象设计。系统设计 包括如何把整个系统分解为子系统、子系统的软硬件布 局等策略性决策;对象设计是根据具体的实现策略,对 分析模型进行扩充。通过系统设计和对象设计产生设计 模型,是进一步完成系统实现的基础。下表列出了分析 模型与设计模型的区别:

西安交通大学现代远程教育课程 软件工程概论 分析模型 设计模型 概念模型,回避了实现问题;物理模型,是实现蓝图; 对设计是通用的; 针对特定的实现; 对类型有3种构造型; 对类型有任意数量的构造型 (依赖于实现语言); 不太形式化; 比较形式化; 开发费用较低 开发费用较高; 层数少; 层数多; 动态的; 动态的(特别关注时序); 勾画系统的设计轮廓; 进行系统设计; 主要通过硏讨会等方式创建;设计模型和实现模型需双向 开发; 可能不需要在整个生命周期在整个生命周期内都应该维护 内都做维护 主讲教师:刘海岩副教授
3 分析模型 设计模型 概念模型,回避了实现问题; 物理模型,是实现蓝图 ; 对设计是通用的; 针对特定的实现; 对类型有3种构造型; 对类型有任意数量的构造型 (依赖于实现语言); 不太形式化 ; 比较形式化; 开发费用较低; 开发费用较高; 层数少; 层数多; 动态的; 动态的(特别关注时序); 勾画系统的设计轮廓; 进行系统设计; 主要通过研讨会等方式创建; 设计模型和实现模型需双向 开发; 可能不需要在整个生命周期 在整个生命周期内都应该维护 内都做维护

西安交通大学现代远程教育课程 软件工程概论 2、OO设计原则 (1)封装 是将一个完整的概念组成一个独立的单元,然后通过 个名字来引用它。在OO系统的较高层次,将一些相关 的应用问题封装在一个子系统中,对子系统的访问是通过 访问子系统的接口实现的;在较低的层次将具体对象的属 性和操作封装在一个对象类中,通过类的接口访问其属性。 (2)抽象 O○方法不仅支持过程抽象还支持数据抽象。类封装了 数据和操作数据的方法,类是一种包含过程抽象的数据抽 象,它对外提供的公共数据接口构成了类的规格说明(类 的协议)。使用者无需知道类中的具体操作是如何实现的, 无需了解内部数据的具体表现方式,只要搞清它的规格说 明,就可通过接口定义的操作访问类的数据。 主讲教师:刘海岩副教授
4 2、OO设计原则 (1)封装 是将一个完整的概念组成一个独立的单元,然后通过 一个名字来引用它。在OO系统的较高层次,将一些相关 的应用问题封装在一个子系统中,对子系统的访问是通过 访问子系统的接口实现的;在较低的层次将具体对象的属 性和操作封装在一个对象类中,通过类的接口访问其属性。 (2)抽象 OO方法不仅支持过程抽象还支持数据抽象。类封装了 数据和操作数据的方法,类是一种包含过程抽象的数据抽 象,它对外提供的公共数据接口构成了类的规格说明(类 的协议)。使用者无需知道类中的具体操作是如何实现的, 无需了解内部数据的具体表现方式,只要搞清它的规格说 明,就可通过接口定义的操作访问类的数据

西安交通大学现代远程教育课程 软件工程概论 (3)信息隐蔽 信息隐蔽是通过对象的封装实现的。类的结构分离 了接口和实现,对于类的使用者来说,属性的表示和操 作的实现都是隐蔽的。 (4)强内聚 服务内聚: 个服务完成且仅完成一个功能 类内聚:一个类的属性和操作全部都是完成某个 任务所必须的,其中不包括无用的属性和操作。 ·层内聚:把向用户或高层提供相关服务的功能放 在一起,而将其他内容排除在外。为了保证适当的层内 聚,往往有严格的层次结构,高层能够访问低层的服务, 而低层却不能访问高层的服务(下图描述了这种关系)。 以下的相关服务可以放在同一层:计算服务、消息 或数据传输服务、数据存储服务、管理安全服务、用户 交互服务、访问操作系统服务、硬件交互服务等 主讲教师:刘海岩副教授
5 (3)信息隐蔽 信息隐蔽是通过对象的封装实现的。类的结构分离 了接口和实现,对于类的使用者来说,属性的表示和操 作的实现都是隐蔽的。 (4)强内聚 • 服务内聚: 一个服务完成且仅完成一个功能。 • 类内聚: 一个类的属性和操作全部都是完成某个 任务所必须的,其中不包括无用的属性和操作。 • 层内聚: 把向用户或高层提供相关服务的功能放 在一起,而将其他内容排除在外。为了保证适当的层内 聚,往往有严格的层次结构,高层能够访问低层的服务, 而低层却不能访问高层的服务(下图描述了这种关系)。 以下的相关服务可以放在同一层:计算服务、消息 或数据传输服务、数据存储服务、管理安全服务、用户 交互服务、访问操作系统服务、硬件交互服务等。•

西安交通大学现代远程教育课程 软件工程概论 处理应用协议 用户界面 处理连接 应用逻辑 处理包 访问操作访问数网络通信 系统 据库 传输和接收 应用程序的典型层次 通信系统中的简化层次 主讲教师:刘海岩副教授
6 用户界面 应用逻辑 访问操作 系统 访问数 据库 网络通信 应用程序的典型层次 处理应用协议 处理连接 处理包 传输和接收 通信系统中的简化层次

西安交通大学现代远程教育课程 软件工程概论 层向外界提供服务的过程和方法通常称为应用编程 接口( Application Programming Interface,AP|)。APl 的规格说明必须描述高层用来访问服务的协议,还要描 述每个服务的语义和副作用 层内聚的优点如下 替换高层模块对低层模块没有影响 可以用等价的层替换低层,但必须复制该层所有 的APl,这样高层才不受影响。 其他有关传统方法中的功能内聚、通信内聚、顺序 内聚、时间内聚等概念及提高内聚的原则在○O设计中 仍然适用。 主讲教师:刘海岩副教授
7 层向外界提供服务的过程和方法通常称为应用编程 接口(Application Programming Interface, API)。API 的规格说明必须描述高层用来访问服务的协议,还要描 述每个服务的语义和副作用。 层内聚的优点如下: • 替换高层模块对低层模块没有影响。 • 可以用等价的层替换低层,但必须复制该层所有 的API,这样高层才不受影响。 其他有关传统方法中的功能内聚、通信内聚、顺序 内聚、时间内聚等概念及提高内聚的原则在OO设计中 仍然适用

西安交通大学现代远程教育课程 软件工程概论 (5)弱耦合 OO设计中,耦合主要指不同对象(包括类、包) 之间相互关联的程度,如果一个对象过多地依赖于其 它对象来完成自己的工作,不仅使系统的可理解性下 降,还会增加测试、修改的难度,同时降低了类的可 复用性和可移植性。但对象不可能完全孤立,当两个 对象必须相互联系时,只通过类的公共接口实现耦合, 不应该依赖于类的具体实现细节。 设计时尽量减少对象之间发送的消息数( Meyer 建议的少接口),减少消息中的参数个数(小接口) 对象之间以明显和直接的方式通信,减少通信的复杂 程度(显式的接口)。传统方法中有关降低耦合的原 则在OO方法中仍然适用 8 主讲教师:刘海岩副教授
8 (5)弱耦合 OO设计中,耦合主要指不同对象(包括类、包) 之间相互关联的程度,如果一个对象过多地依赖于其 它对象来完成自己的工作,不仅使系统的可理解性下 降,还会增加测试、修改的难度,同时降低了类的可 复用性和可移植性。但对象不可能完全孤立,当两个 对象必须相互联系时,只通过类的公共接口实现耦合, 不应该依赖于类的具体实现细节。 设计时尽量减少对象之间发送的消息数(Meyer 建议的少接口),减少消息中的参数个数(小接口), 对象之间以明显和直接的方式通信,减少通信的复杂 程度(显式的接口)。传统方法中有关降低耦合的原 则在OO方法中仍然适用

西安交通大学现代远程教育课程 软件工程概论 (6)可复用 为了提高工作效率、减少错误、降低成本,就要充分考 虑软件的复用性。复用有两个方面的含义:一是尽量使用已 有的类,包括开发环境提供的类库和已有的相似类。二是创 建新类时考虑将来的可复用性。 类有三种复用方式: 实例复用 由于类的封装特性,使用者不需要了解内部的实现细节 就可用适当的构造函数创建需要的实例,然后向所创建的实 例发送适当的消息,启动相应的服务,完成需要的任务 设计一个可复用性好的类是一件很困难的事情,因为, 类提供的服务太多,会增加接口的复杂度,降低类的可理解 性;提供的服务太少,则可能会降低复用性。在设计时,需 要根据具体的应用环境和以往的经验来综合考虑,设计出合 适的类构件 9 主讲教师:刘海岩副教授
9 (6)可复用 为了提高工作效率、减少错误、降低成本,就要充分考 虑软件的复用性。复用有两个方面的含义:一是尽量使用已 有的类,包括开发环境提供的类库和已有的相似类。二是创 建新类时考虑将来的可复用性。 类有三种复用方式: • 实例复用 由于类的封装特性,使用者不需要了解内部的实现细节 就可用适当的构造函数创建需要的实例,然后向所创建的实 例发送适当的消息,启动相应的服务,完成需要的任务。 设计一个可复用性好的类是一件很困难的事情,因为, 类提供的服务太多,会增加接口的复杂度,降低类的可理解 性;提供的服务太少,则可能会降低复用性。在设计时,需 要根据具体的应用环境和以往的经验来综合考虑,设计出合 适的类构件

西安交通大学现代远程教育课程 软件工程概论 继承复用 当已有的类构件不能通过实例复用满足要求时,可 以通过继承复用对已有的类构件进行修改,使它满足要 求。在设计时,关键是要设计一个合理的、具有一定深 度的类构件的继承层次结构。每个子类在继承父类的属 性和服务的基础上,加入少量的新属性和新服务,这样 做的好处是父子类的耦合度比较适当,接口简单,易于 理解。 多态复用 多态是一种特性,这种特性使得一个属性或变量在不 同的时期可以表示不同的对象。利用多态性可以使对象 的对外接口更加一般化,系统运行时,根据接收消息的 对象类型,由多态机制启动正确的方法,响应一个一般 化的消息。 10 主讲教师:刘海岩副教授
10 • 继承复用 当已有的类构件不能通过实例复用满足要求时,可 以通过继承复用对已有的类构件进行修改,使它满足要 求。在设计时,关键是要设计一个合理的、具有一定深 度的类构件的继承层次结构。每个子类在继承父类的属 性和服务的基础上,加入少量的新属性和新服务,这样 做的好处是父子类的耦合度比较适当,接口简单,易于 理解。 • 多态复用 多态是一种特性,这种特性使得一个属性或变量在不 同的时期可以表示不同的对象。利用多态性可以使对象 的对外接口更加一般化,系统运行时,根据接收消息的 对象类型,由多态机制启动正确的方法,响应一个一般 化的消息
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 西安交通大学软件学院:《面向对象的软件工程》 第八章 面向对象分析.ppt
- 西安交通大学软件学院:《面向对象的软件工程》 第八章 远程软工.ppt
- 西安交通大学软件学院:《面向对象的软件工程》 第七章(7-2) 面向对象软件工程的概念.ppt
- 西安交通大学软件学院:《面向对象的软件工程》 第七章 远程软工.ppt
- 西安交通大学软件学院:《面向对象的软件工程》 第六章(6-2) 远程软工.ppt
- 西安交通大学软件学院:《面向对象的软件工程》 第六章 软件维护.ppt
- 西安交通大学软件学院:《面向对象的软件工程》 第五章 软件测试续.ppt
- 西安交通大学软件学院:《面向对象的软件工程》 第五章 软件测试.ppt
- 西安交通大学软件学院:《面向对象的软件工程》 第四章 软件设计.ppt
- 西安交通大学软件学院:《面向对象的软件工程》 第三章 软件需求分析.ppt
- 西安交通大学软件学院:《面向对象的软件工程》 第二章 软件项目管理.ppt
- 西安交通大学软件学院:《面向对象的软件工程》 第一章 绪论.ppt
- 西安交通大学软件学院:《面向对象的软件工程》 第十一章 软件工程的前景.ppt
- 西安交通大学软件学院:《面向对象的软件工程》 第十章 面向对象测试.ppt
- 武汉大学计算机学院:《多媒体技术及应用》 第四章 多媒体同步.ppt
- 武汉大学计算机学院:《多媒体技术及应用》 第二章 多媒体系统的主要属性.ppt
- 武汉大学计算机学院:《多媒体技术及应用》 第三章 多媒体数椐压缩編码.ppt
- 武汉大学计算机学院:《多媒体技术及应用》 第一章 多媒体通信技术概述.ppt
- 武汉大学计算机学院:《多媒体技术及应用》 第五章 多媒体通信网络的服务质量.ppt
- 武汉大学计算机学院:《多媒体技术及应用》 Chapter 7 protocols for Qos Support.ppt
- 西安交通大学软件学院:《面向对象的软件工程》 第九章(9-2) 面向对象设计.ppt
- 《网络程序设计》PPT电子课件(共三章).ppt
- 《C语言》课程教学资源(作业习题)实例试题100题.doc
- 《汇编语言程序设计教程》 第一章 基础知识.ppt
- 《汇编语言程序设计教程》 第二章 Intel80x86系列微处理器.ppt
- 《汇编语言程序设计教程》 第三章 Windows汇编程序基础.ppt
- 《汇编语言程序设计教程》 第四章 数据操作.ppt
- 《汇编语言程序设计教程》 第五章 分支与循环程序设计.ppt
- 《汇编语言程序设计教程》 第六章 子程序设计.ppt
- 《汇编语言程序设计教程》 第七章 常用数据结构.ppt
- 《汇编语言程序设计教程》 第八章 汇编语言高级编程技术.ppt
- 《汇编语言程序设计教程》 第九章 I/0程序设计.ppt
- 《汇编语言程序设计教程》 第十章 保护模式及其编程.ppt
- 黑龙江八一农垦大学:《计算机辅助设计》课程教学大纲(草业科学及园林专业).doc
- 黑龙江八一农垦大学:《计算机辅助设计》理论课程各章电子教案.doc
- 《计算机辅助设计》AutoCAD教程讲义(共十章).doc
- 《高级程序设计语言》 第一章 C语言概述.ppt
- 《高级程序设计语言》 第七章 数组.ppt
- 《高级程序设计语言》 第三章 数据类型、运算符与表达式.ppt
- 《高级程序设计语言》 第二章 程序的灵魂——算法.ppt