软件工程课件:第10章 面向对象方法学3

上传人:夏** 文档编号:571278256 上传时间:2024-08-09 格式:PPT 页数:43 大小:358KB
返回 下载 相关 举报
软件工程课件:第10章 面向对象方法学3_第1页
第1页 / 共43页
软件工程课件:第10章 面向对象方法学3_第2页
第2页 / 共43页
软件工程课件:第10章 面向对象方法学3_第3页
第3页 / 共43页
软件工程课件:第10章 面向对象方法学3_第4页
第4页 / 共43页
软件工程课件:第10章 面向对象方法学3_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《软件工程课件:第10章 面向对象方法学3》由会员分享,可在线阅读,更多相关《软件工程课件:第10章 面向对象方法学3(43页珍藏版)》请在金锄头文库上搜索。

1、第十章第十章面向对象面向对象(3)第十章内容概要第十章内容概要n n面向对象方法学概述面向对象方法学概述n nUML基础基础n n面向对象的需求提取面向对象的需求提取n n面向对象分析面向对象分析n n面向对象设计的准则面向对象设计的准则n n启发规则启发规则n n软件重用软件重用n n面向对象系统设计面向对象系统设计n n面向对象对象设计面向对象对象设计2软件工程 - 2013 - 第十章 面向对象(3)n n模块化模块化模块化模块化n n抽象抽象抽象抽象n n信息隐藏信息隐藏信息隐藏信息隐藏n n弱耦合弱耦合弱耦合弱耦合n n交互耦合交互耦合交互耦合交互耦合n n继承耦合继承耦合继承耦合继

2、承耦合n n强内聚强内聚强内聚强内聚n n服务内聚、类内聚、一般服务内聚、类内聚、一般服务内聚、类内聚、一般服务内聚、类内聚、一般特殊内聚特殊内聚特殊内聚特殊内聚n n可重用可重用可重用可重用面向对象设计的准则面向对象设计的准则3软件工程 - 2013 - 第十章 面向对象(3)第十章内容概要第十章内容概要n n面向对象方法学概述面向对象方法学概述n nUML基础基础n n面向对象的需求提取面向对象的需求提取n n面向对象分析面向对象分析n n面向对象设计的准则面向对象设计的准则n n启发规则启发规则n n软件重用软件重用n n面向对象系统设计面向对象系统设计n n面向对象对象设计面向对象对象

3、设计4软件工程 - 2013 - 第十章 面向对象(3)启发规则启发规则n n设计结果应该清晰易懂设计结果应该清晰易懂n n用词一致用词一致用词一致用词一致n n使用已有的协议使用已有的协议使用已有的协议使用已有的协议n n减少消息模式的数目减少消息模式的数目减少消息模式的数目减少消息模式的数目n n避免模糊的定义避免模糊的定义避免模糊的定义避免模糊的定义n n一般一般特殊结构的深度应适当特殊结构的深度应适当n n设计简单的协议设计简单的协议n n一般说来,消息中的参数不要超过一般说来,消息中的参数不要超过一般说来,消息中的参数不要超过一般说来,消息中的参数不要超过3 3个。个。个。个。5软件

4、工程 - 2013 - 第十章 面向对象(3)n n设计简单的类设计简单的类n n避免包含过多的属性;避免包含过多的属性;避免包含过多的属性;避免包含过多的属性;n n有明确的定义;有明确的定义;有明确的定义;有明确的定义;n n尽量简化对象之间的合作关系;尽量简化对象之间的合作关系;尽量简化对象之间的合作关系;尽量简化对象之间的合作关系;n n不要提供太多服务。不要提供太多服务。不要提供太多服务。不要提供太多服务。n n使用简单的服务使用简单的服务n n把设计变动减至最小把设计变动减至最小启发规则启发规则6软件工程 - 2013 - 第十章 面向对象(3)第十章内容概要第十章内容概要n n面

5、向对象方法学概述面向对象方法学概述n nUML基础基础n n面向对象的需求提取面向对象的需求提取n n面向对象分析面向对象分析n n面向对象设计的准则面向对象设计的准则n n启发规则启发规则n n软件重用软件重用n n面向对象系统设计面向对象系统设计n n面向对象对象设计面向对象对象设计7软件工程 - 2013 - 第十章 面向对象(3)n n重用也叫再用或复用,是指同一事物不作重用也叫再用或复用,是指同一事物不作修改或稍加改动就多次重复使用;修改或稍加改动就多次重复使用;n n软件重用分为软件重用分为3个层次:个层次:n n知识重用知识重用知识重用知识重用( (例如,软件工程知识的重用例如,

6、软件工程知识的重用例如,软件工程知识的重用例如,软件工程知识的重用) );n n方法和标准的重用方法和标准的重用方法和标准的重用方法和标准的重用( (例如,面向对象方法或国家例如,面向对象方法或国家例如,面向对象方法或国家例如,面向对象方法或国家制定的软件开发规范的重用制定的软件开发规范的重用制定的软件开发规范的重用制定的软件开发规范的重用) );n n软件成分的重用。软件成分的重用。软件成分的重用。软件成分的重用。软件重用软件重用8软件工程 - 2013 - 第十章 面向对象(3)n n软件成分的重用软件成分的重用n n代码重用代码重用代码重用代码重用n n源代码剪贴源代码剪贴源代码剪贴源代

7、码剪贴n n源代码包含源代码包含源代码包含源代码包含n n继承继承继承继承n n设计结果重用设计结果重用设计结果重用设计结果重用n n分析结果重用分析结果重用分析结果重用分析结果重用软件重用软件重用9软件工程 - 2013 - 第十章 面向对象(3)n n典型的可重用软件成分典型的可重用软件成分典型的可重用软件成分典型的可重用软件成分n n项目计划项目计划项目计划项目计划n n成本估计成本估计成本估计成本估计n n体系结构体系结构体系结构体系结构n n需求模型和规格说明需求模型和规格说明需求模型和规格说明需求模型和规格说明n n设计设计设计设计n n源代码源代码源代码源代码n n用户文档和技术

8、文档用户文档和技术文档用户文档和技术文档用户文档和技术文档n n用户界面用户界面用户界面用户界面n n数据数据数据数据n n测试用例测试用例测试用例测试用例软件重用软件重用10软件工程 - 2013 - 第十章 面向对象(3)n n可重用软构件应具备的特点可重用软构件应具备的特点n n模块独立性强模块独立性强模块独立性强模块独立性强n n具有高度可塑性具有高度可塑性具有高度可塑性具有高度可塑性n n接口清晰、简明、可靠接口清晰、简明、可靠接口清晰、简明、可靠接口清晰、简明、可靠n n类构件的重用方式类构件的重用方式n n实例重用实例重用实例重用实例重用n n继承重用继承重用继承重用继承重用n

9、n多态重用多态重用多态重用多态重用类构件类构件11软件工程 - 2013 - 第十章 面向对象(3)第十章内容概要第十章内容概要n n面向对象方法学概述面向对象方法学概述n nUML基础基础n n面向对象的需求提取面向对象的需求提取n n面向对象分析面向对象分析n n面向对象设计的准则面向对象设计的准则n n启发规则启发规则n n软件重用软件重用n n面向对象系统设计面向对象系统设计n n面向对象对象设计面向对象对象设计12软件工程 - 2013 - 第十章 面向对象(3)n n系统设计把分析模型转化为系统设计模型系统设计把分析模型转化为系统设计模型n n在这个过程中,开发人员需要:在这个过程

10、中,开发人员需要:n n定义一系列设计目标:描述应优化的系统质量定义一系列设计目标:描述应优化的系统质量定义一系列设计目标:描述应优化的系统质量定义一系列设计目标:描述应优化的系统质量n n将系统分解成能由单个团队实现的子系统将系统分解成能由单个团队实现的子系统将系统分解成能由单个团队实现的子系统将系统分解成能由单个团队实现的子系统n n系统设计的大部分内容是子系统分解,并系统设计的大部分内容是子系统分解,并且,分解中需要考虑一些涉及整个系统范且,分解中需要考虑一些涉及整个系统范围的问题:围的问题:系统设计的内容系统设计的内容13软件工程 - 2013 - 第十章 面向对象(3)n n软硬件映

11、射:系统的硬件配置是什么?哪个节点负软硬件映射:系统的硬件配置是什么?哪个节点负软硬件映射:系统的硬件配置是什么?哪个节点负软硬件映射:系统的硬件配置是什么?哪个节点负责哪个功能?节点间通信如何实现?哪些服务是用已责哪个功能?节点间通信如何实现?哪些服务是用已责哪个功能?节点间通信如何实现?哪些服务是用已责哪个功能?节点间通信如何实现?哪些服务是用已有的软件组件实现的?有的软件组件实现的?有的软件组件实现的?有的软件组件实现的?n n持续化数据管理:哪些数据需成为持续化的?它们存持续化数据管理:哪些数据需成为持续化的?它们存持续化数据管理:哪些数据需成为持续化的?它们存持续化数据管理:哪些数据

12、需成为持续化的?它们存储在什么地方?如何访问它们?储在什么地方?如何访问它们?储在什么地方?如何访问它们?储在什么地方?如何访问它们?n n访问控制:谁可以使用哪个功能、访问哪个数据?如访问控制:谁可以使用哪个功能、访问哪个数据?如访问控制:谁可以使用哪个功能、访问哪个数据?如访问控制:谁可以使用哪个功能、访问哪个数据?如何定义并实现访问控制?何定义并实现访问控制?何定义并实现访问控制?何定义并实现访问控制?n n控制流:系统如何将操作进行排序?如何驱动系统事控制流:系统如何将操作进行排序?如何驱动系统事控制流:系统如何将操作进行排序?如何驱动系统事控制流:系统如何将操作进行排序?如何驱动系统

13、事件?能同时处理一个以上的用户交互吗?件?能同时处理一个以上的用户交互吗?件?能同时处理一个以上的用户交互吗?件?能同时处理一个以上的用户交互吗?n n边界条件:系统如何初始化?如何关闭?如何检测和边界条件:系统如何初始化?如何关闭?如何检测和边界条件:系统如何初始化?如何关闭?如何检测和边界条件:系统如何初始化?如何关闭?如何检测和处理异常情况?处理异常情况?处理异常情况?处理异常情况?系统设计的内容系统设计的内容14软件工程 - 2013 - 第十章 面向对象(3)n n这几个问题中,软硬件映射和持续化数这几个问题中,软硬件映射和持续化数据管理经常会导致在系统中引入附加子系据管理经常会导致

14、在系统中引入附加子系统;控制流和边界条件问题会对子系统的统;控制流和边界条件问题会对子系统的接口产生影响。接口产生影响。系统设计的内容系统设计的内容15软件工程 - 2013 - 第十章 面向对象(3)n n为减少问题空间的复杂性,整个待解问题为减少问题空间的复杂性,整个待解问题被分解、封装成一系列的类(对象)。同被分解、封装成一系列的类(对象)。同样,为减少求解空间的复杂性,系统被分样,为减少求解空间的复杂性,系统被分解为子系统,而子系统由许多求解空间中解为子系统,而子系统由许多求解空间中的类组成。的类组成。n n对于复杂的子系统,不断使用这个原理,对于复杂的子系统,不断使用这个原理,将子系

15、统分解成更简单的子系统:将子系统分解成更简单的子系统:子系统与子系统接口子系统与子系统接口16软件工程 - 2013 - 第十章 面向对象(3)子系统与子系统接口子系统与子系统接口17软件工程 - 2013 - 第十章 面向对象(3)n n比如前面的紧急事件管理系统可以做如下比如前面的紧急事件管理系统可以做如下的子系统分解:的子系统分解:子系统与子系统接口子系统与子系统接口18软件工程 - 2013 - 第十章 面向对象(3)n n每个子系统都需要向其它子系统提供服务。一个每个子系统都需要向其它子系统提供服务。一个每个子系统都需要向其它子系统提供服务。一个每个子系统都需要向其它子系统提供服务。

16、一个服务服务服务服务是一组有着共同目标的相关操作。是一组有着共同目标的相关操作。是一组有着共同目标的相关操作。是一组有着共同目标的相关操作。n n一个子系统提供给其它子系统的一组操作形成一个子系统提供给其它子系统的一组操作形成一个子系统提供给其它子系统的一组操作形成一个子系统提供给其它子系统的一组操作形成子子子子系统接口,系统接口,系统接口,系统接口,它包括操作的名称、参数、类型和返它包括操作的名称、参数、类型和返它包括操作的名称、参数、类型和返它包括操作的名称、参数、类型和返回值。回值。回值。回值。n n系统设计集中定义每个子系统提供的服务,即列系统设计集中定义每个子系统提供的服务,即列系统

17、设计集中定义每个子系统提供的服务,即列系统设计集中定义每个子系统提供的服务,即列举操作、参数以及操作的高层行为。举操作、参数以及操作的高层行为。举操作、参数以及操作的高层行为。举操作、参数以及操作的高层行为。n n对象设计集中定义子系统的接口,即参数的类型对象设计集中定义子系统的接口,即参数的类型对象设计集中定义子系统的接口,即参数的类型对象设计集中定义子系统的接口,即参数的类型和每个操作的返回值。和每个操作的返回值。和每个操作的返回值。和每个操作的返回值。子系统与子系统接口子系统与子系统接口19软件工程 - 2013 - 第十章 面向对象(3)n n设计目标给出了系统应重点考虑的质量要求;设

18、计目标给出了系统应重点考虑的质量要求;n n设计目标的来源主要是系统的非功能性需求;设计目标的来源主要是系统的非功能性需求;n n例如,在事故管理系统中,应把可靠性、系统例如,在事故管理系统中,应把可靠性、系统响应的及时性作为设计目标;考虑到该系统的响应的及时性作为设计目标;考虑到该系统的使用方式以及使用所能造成的后果,应把安全使用方式以及使用所能造成的后果,应把安全性也标识为设计目标。性也标识为设计目标。确定设计目标确定设计目标20软件工程 - 2013 - 第十章 面向对象(3)n n子系统分解也是一项循序渐进的活动:在获得子系统分解也是一项循序渐进的活动:在获得初始分解之后,后续的若干问

19、题会导致分解的初始分解之后,后续的若干问题会导致分解的修改(合并、新增加、再分解);修改(合并、新增加、再分解);n n初始的子系统分解来自功能性需求:通过把若初始的子系统分解来自功能性需求:通过把若干功能上相关的类分组而得到;干功能上相关的类分组而得到;n n出发点:把出发点:把Use Case及其已确定的参与对象分及其已确定的参与对象分配到各子系统中。配到各子系统中。确定子系统确定子系统21软件工程 - 2013 - 第十章 面向对象(3)n n将在一个将在一个Use Case中确定的对象分配到同一中确定的对象分配到同一个子系统中;个子系统中;n n为那些在子系统间传递数据的对象创建一为那

20、些在子系统间传递数据的对象创建一个专用的子系统;个专用的子系统;n n将穿过子系统边界的关联数量降到最小;将穿过子系统边界的关联数量降到最小;n n在同一个子系统中的所有对象必须是功能在同一个子系统中的所有对象必须是功能相关的(增强子系统内聚)。相关的(增强子系统内聚)。将对象分组到子系统中的试探法将对象分组到子系统中的试探法22软件工程 - 2013 - 第十章 面向对象(3)n n选择硬件配置和虚拟机平台选择硬件配置和虚拟机平台n n某些系统需要运行在多台计算机上,并且依靠某些系统需要运行在多台计算机上,并且依靠某些系统需要运行在多台计算机上,并且依靠某些系统需要运行在多台计算机上,并且依

21、靠网络访问,这就要求确定各子系统所处节点位网络访问,这就要求确定各子系统所处节点位网络访问,这就要求确定各子系统所处节点位网络访问,这就要求确定各子系统所处节点位置并设计子系统间通信的基础设施;置并设计子系统间通信的基础设施;置并设计子系统间通信的基础设施;置并设计子系统间通信的基础设施;n n硬件映射会对系统性能、复杂度产生巨大影响,硬件映射会对系统性能、复杂度产生巨大影响,硬件映射会对系统性能、复杂度产生巨大影响,硬件映射会对系统性能、复杂度产生巨大影响,因此应在系统设计早期进行;因此应在系统设计早期进行;因此应在系统设计早期进行;因此应在系统设计早期进行;n n虚拟机包括操作系统、数据库

22、管理系统等。它虚拟机包括操作系统、数据库管理系统等。它虚拟机包括操作系统、数据库管理系统等。它虚拟机包括操作系统、数据库管理系统等。它进一步缩小系统与运行平台之间的距离。进一步缩小系统与运行平台之间的距离。进一步缩小系统与运行平台之间的距离。进一步缩小系统与运行平台之间的距离。将子系统映射到处理器和组件将子系统映射到处理器和组件23软件工程 - 2013 - 第十章 面向对象(3)n n将对象和子系统分配给节点将对象和子系统分配给节点n n节点确定后,各子系统应该能被分配到相应节点;节点确定后,各子系统应该能被分配到相应节点;节点确定后,各子系统应该能被分配到相应节点;节点确定后,各子系统应该

23、能被分配到相应节点;n n硬件节点映射和子系统分解可能相互影响。比如事故硬件节点映射和子系统分解可能相互影响。比如事故硬件节点映射和子系统分解可能相互影响。比如事故硬件节点映射和子系统分解可能相互影响。比如事故管理系统的例子中,报告紧急情况用例的功能是分布管理系统的例子中,报告紧急情况用例的功能是分布管理系统的例子中,报告紧急情况用例的功能是分布管理系统的例子中,报告紧急情况用例的功能是分布在两个节点(现场工作站、调度工作站)上,因此合在两个节点(现场工作站、调度工作站)上,因此合在两个节点(现场工作站、调度工作站)上,因此合在两个节点(现场工作站、调度工作站)上,因此合理的子系统划分应是一个

24、调度员接口子系统、一个现理的子系统划分应是一个调度员接口子系统、一个现理的子系统划分应是一个调度员接口子系统、一个现理的子系统划分应是一个调度员接口子系统、一个现场工作人员接口子系统。场工作人员接口子系统。场工作人员接口子系统。场工作人员接口子系统。n n为了在节点间传送数据,经常要定义新的子系统或对为了在节点间传送数据,经常要定义新的子系统或对为了在节点间传送数据,经常要定义新的子系统或对为了在节点间传送数据,经常要定义新的子系统或对象。事故管理系统中,可以增加一个通知子系统实现象。事故管理系统中,可以增加一个通知子系统实现象。事故管理系统中,可以增加一个通知子系统实现象。事故管理系统中,可

25、以增加一个通知子系统实现现场工作站和调度工作站之间的通信。现场工作站和调度工作站之间的通信。现场工作站和调度工作站之间的通信。现场工作站和调度工作站之间的通信。将子系统映射到处理器和组件将子系统映射到处理器和组件24软件工程 - 2013 - 第十章 面向对象(3)n n持续化数据比系统的简单执行存在的时间要长;持续化数据比系统的简单执行存在的时间要长;持续化数据比系统的简单执行存在的时间要长;持续化数据比系统的简单执行存在的时间要长;n n数据存放的地点以及如何存放会对系统的分解产数据存放的地点以及如何存放会对系统的分解产数据存放的地点以及如何存放会对系统的分解产数据存放的地点以及如何存放会

26、对系统的分解产生影响。可以设置一个子系统专门用来存储数据;生影响。可以设置一个子系统专门用来存储数据;生影响。可以设置一个子系统专门用来存储数据;生影响。可以设置一个子系统专门用来存储数据;数据存放可以考虑数据库,也可以考虑磁盘文件;数据存放可以考虑数据库,也可以考虑磁盘文件;数据存放可以考虑数据库,也可以考虑磁盘文件;数据存放可以考虑数据库,也可以考虑磁盘文件;n n事故管理系统中,考虑到调度员创建的事故管理系统中,考虑到调度员创建的事故管理系统中,考虑到调度员创建的事故管理系统中,考虑到调度员创建的“ “事件事件事件事件” ”等对象需要持续化存储,可以设置一个事件管理等对象需要持续化存储,

27、可以设置一个事件管理等对象需要持续化存储,可以设置一个事件管理等对象需要持续化存储,可以设置一个事件管理子系统,实现事件的创建、修改和存储。子系统,实现事件的创建、修改和存储。子系统,实现事件的创建、修改和存储。子系统,实现事件的创建、修改和存储。定义持续化数据存储定义持续化数据存储25软件工程 - 2013 - 第十章 面向对象(3)n n在多用户系统中,不同的操作者需要访问在多用户系统中,不同的操作者需要访问不同的功能和数据;不同的功能和数据;n n分析时,通过将不同的分析时,通过将不同的Use Case与不同的与不同的Actor相联系来为这些区别建模;相联系来为这些区别建模;n n系统设

28、计时,通过检查对象模型,定义系统设计时,通过检查对象模型,定义Actor共享哪些对象以及定义共享哪些对象以及定义Actor如何控制如何控制访问来为访问建模。访问来为访问建模。定义访问控制定义访问控制26软件工程 - 2013 - 第十章 面向对象(3)n n对访问建模可使用访问矩阵:行表示系统对访问建模可使用访问矩阵:行表示系统有哪些可能的操作者;列表示要进行访问有哪些可能的操作者;列表示要进行访问控制的类;矩阵每一项称为控制的类;矩阵每一项称为访问权限,访问权限,要要列出由该操作者对该类执行的所有操作。列出由该操作者对该类执行的所有操作。n n全局访问表:行、列都有的访问矩阵;全局访问表:行

29、、列都有的访问矩阵;n n访问控制列表:只有针对每个类的列;访问控制列表:只有针对每个类的列;n n能力列表:只有针对每个操作者的行。能力列表:只有针对每个操作者的行。定义访问控制定义访问控制27软件工程 - 2013 - 第十章 面向对象(3)n n控制流是系统中动作的先后次序;控制流是系统中动作的先后次序;n n分析中,对控制流的假定是:所有对象同分析中,对控制流的假定是:所有对象同时运行并在任何需要的时候执行它们的操时运行并在任何需要的时候执行它们的操作;作;n n系统设计时,必须考虑到不是每个对象都系统设计时,必须考虑到不是每个对象都能奢侈到在自己的处理器上运行。能奢侈到在自己的处理器

30、上运行。设计全局控制流设计全局控制流28软件工程 - 2013 - 第十章 面向对象(3)n n三种可能的控制流机制三种可能的控制流机制n n过程驱动控制过程驱动控制过程驱动控制过程驱动控制n n事件驱动控制事件驱动控制事件驱动控制事件驱动控制n n线程线程线程线程n n选定控制流机制后,就可以用一组控制对选定控制流机制后,就可以用一组控制对象来实现它。控制对象负责记录外部事件、象来实现它。控制对象负责记录外部事件、存储它们的临时状态并给出与外部事件相存储它们的临时状态并给出与外部事件相关的边界对象和实体对象的正确操作次序。关的边界对象和实体对象的正确操作次序。设计全局控制流设计全局控制流29

31、软件工程 - 2013 - 第十章 面向对象(3)n n子系统分解基本确定后,还需要检查系统边界条子系统分解基本确定后,还需要检查系统边界条子系统分解基本确定后,还需要检查系统边界条子系统分解基本确定后,还需要检查系统边界条件,即,决定系统什么时候启动、初始化以及关件,即,决定系统什么时候启动、初始化以及关件,即,决定系统什么时候启动、初始化以及关件,即,决定系统什么时候启动、初始化以及关闭,还要定义如何处理主要故障,比如由软件错闭,还要定义如何处理主要故障,比如由软件错闭,还要定义如何处理主要故障,比如由软件错闭,还要定义如何处理主要故障,比如由软件错误或断电引起的数据崩溃;误或断电引起的数

32、据崩溃;误或断电引起的数据崩溃;误或断电引起的数据崩溃;n n例如,现在基本了解了事故管理系统在稳定情况例如,现在基本了解了事故管理系统在稳定情况例如,现在基本了解了事故管理系统在稳定情况例如,现在基本了解了事故管理系统在稳定情况下是怎样运行的,但我们还不知道它怎样初始化,下是怎样运行的,但我们还不知道它怎样初始化,下是怎样运行的,但我们还不知道它怎样初始化,下是怎样运行的,但我们还不知道它怎样初始化,这会导致发现一系列这会导致发现一系列这会导致发现一系列这会导致发现一系列系统管理用例系统管理用例系统管理用例系统管理用例,它们指定了,它们指定了,它们指定了,它们指定了系统启动和关闭阶段的行为;

33、系统启动和关闭阶段的行为;系统启动和关闭阶段的行为;系统启动和关闭阶段的行为;确定边界条件确定边界条件30软件工程 - 2013 - 第十章 面向对象(3)n n确定边界条件时,也应该调查一下系统的确定边界条件时,也应该调查一下系统的异常情况;异常情况;n n例如,事故管理系统中需要考虑系统必须例如,事故管理系统中需要考虑系统必须能兼容通信连接中断的情况。能兼容通信连接中断的情况。确定边界条件确定边界条件31软件工程 - 2013 - 第十章 面向对象(3)第十章内容概要第十章内容概要n n面向对象方法学概述面向对象方法学概述n nUML基础基础n n面向对象的需求提取面向对象的需求提取n n

34、面向对象分析面向对象分析n n面向对象设计的准则面向对象设计的准则n n启发规则启发规则n n软件重用软件重用n n面向对象系统设计面向对象系统设计n n面向对象对象设计面向对象对象设计32软件工程 - 2013 - 第十章 面向对象(3)n n细化分析和系统设计模型,确定新对象。细化分析和系统设计模型,确定新对象。n n消除问题空间对象与现有组件间的差距:消除问题空间对象与现有组件间的差距:n n确定自定义对象确定自定义对象确定自定义对象确定自定义对象n n调整商品组件调整商品组件调整商品组件调整商品组件n n准确说明每个子系统接口和类准确说明每个子系统接口和类准确说明每个子系统接口和类准确

35、说明每个子系统接口和类n n形成类的集合,可由单个人员实现各类。形成类的集合,可由单个人员实现各类。对象设计的内容对象设计的内容33软件工程 - 2013 - 第十章 面向对象(3)n n分析通过确定表示分析通过确定表示分析通过确定表示分析通过确定表示用户可视概念的对用户可视概念的对用户可视概念的对用户可视概念的对象缩小问题和机器象缩小问题和机器象缩小问题和机器象缩小问题和机器间的差距;间的差距;间的差距;间的差距;n n系统设计通过定义系统设计通过定义系统设计通过定义系统设计通过定义提供比硬件层次高提供比硬件层次高提供比硬件层次高提供比硬件层次高的虚拟机平台来缩的虚拟机平台来缩的虚拟机平台来

36、缩的虚拟机平台来缩小问题和机器间的小问题和机器间的小问题和机器间的小问题和机器间的差距;差距;差距;差距;n n对象设计填补分析对象设计填补分析对象设计填补分析对象设计填补分析模型与系统设计模模型与系统设计模模型与系统设计模模型与系统设计模型间的差距。型间的差距。型间的差距。型间的差距。34软件工程 - 2013 - 第十章 面向对象(3)n n对象设计包括一系列活动:对象设计包括一系列活动:n n规格说明:根据类的接口指定子系统服务,包规格说明:根据类的接口指定子系统服务,包规格说明:根据类的接口指定子系统服务,包规格说明:根据类的接口指定子系统服务,包括操作、变量、类型、声明和异常;还要找

37、出括操作、变量、类型、声明和异常;还要找出括操作、变量、类型、声明和异常;还要找出括操作、变量、类型、声明和异常;还要找出系统间传递数据必需但缺少的操作和对象;系统间传递数据必需但缺少的操作和对象;系统间传递数据必需但缺少的操作和对象;系统间传递数据必需但缺少的操作和对象;n n组件选择:通过使用和修改系统设计时确定的组件选择:通过使用和修改系统设计时确定的组件选择:通过使用和修改系统设计时确定的组件选择:通过使用和修改系统设计时确定的商品化组件实现每个子系统,可能需要进行一商品化组件实现每个子系统,可能需要进行一商品化组件实现每个子系统,可能需要进行一商品化组件实现每个子系统,可能需要进行一

38、定的调整,将自定义对象与它们结合,或通过定的调整,将自定义对象与它们结合,或通过定的调整,将自定义对象与它们结合,或通过定的调整,将自定义对象与它们结合,或通过继承来改进它们。继承来改进它们。继承来改进它们。继承来改进它们。对象设计的内容对象设计的内容35软件工程 - 2013 - 第十章 面向对象(3)n n重组:处理系统模型以增加代码的复用性等设重组:处理系统模型以增加代码的复用性等设重组:处理系统模型以增加代码的复用性等设重组:处理系统模型以增加代码的复用性等设计目标。典型活动如将计目标。典型活动如将计目标。典型活动如将计目标。典型活动如将n n元关系转变成二元关元关系转变成二元关元关系

39、转变成二元关元关系转变成二元关系、将没有特殊行为的类退化成属性等;系、将没有特殊行为的类退化成属性等;系、将没有特殊行为的类退化成属性等;系、将没有特殊行为的类退化成属性等;n n优化:解决系统模型的性能需求。如改变算法优化:解决系统模型的性能需求。如改变算法优化:解决系统模型的性能需求。如改变算法优化:解决系统模型的性能需求。如改变算法以满足对速度或存储器的需求、增加多余的连以满足对速度或存储器的需求、增加多余的连以满足对速度或存储器的需求、增加多余的连以满足对速度或存储器的需求、增加多余的连接以提高效率、存储高开销计算的结果以提高接以提高效率、存储高开销计算的结果以提高接以提高效率、存储高

40、开销计算的结果以提高接以提高效率、存储高开销计算的结果以提高操作执行的效率等。操作执行的效率等。操作执行的效率等。操作执行的效率等。对象设计的内容对象设计的内容36软件工程 - 2013 - 第十章 面向对象(3)n n关联的遍历关联的遍历n n单向关联单向关联单向关联单向关联n n双向关联双向关联双向关联双向关联n n实现单向关联实现单向关联n n实现双向关联实现双向关联n n只用属性实现一个方向的关联,当需要反向遍只用属性实现一个方向的关联,当需要反向遍只用属性实现一个方向的关联,当需要反向遍只用属性实现一个方向的关联,当需要反向遍历时就执行一次正向查找;历时就执行一次正向查找;历时就执行

41、一次正向查找;历时就执行一次正向查找;n n两个方向的关联都用属性实现;两个方向的关联都用属性实现;两个方向的关联都用属性实现;两个方向的关联都用属性实现;n n用独立的关联对象实现双向关联。用独立的关联对象实现双向关联。用独立的关联对象实现双向关联。用独立的关联对象实现双向关联。设计关联设计关联37软件工程 - 2013 - 第十章 面向对象(3)38软件工程 - 2013 - 第十章 面向对象(3)n n关联对象的实现关联对象的实现n n对于一对一关联来说,关联对象可以与参与关对于一对一关联来说,关联对象可以与参与关对于一对一关联来说,关联对象可以与参与关对于一对一关联来说,关联对象可以与

42、参与关联的任一个对象合并。联的任一个对象合并。联的任一个对象合并。联的任一个对象合并。n n对于一对多关联来说,关联对象可以与对于一对多关联来说,关联对象可以与对于一对多关联来说,关联对象可以与对于一对多关联来说,关联对象可以与“ “多多多多” ”端对象合并。端对象合并。端对象合并。端对象合并。n n如果是多对多关联,则关联链的性质不可能只如果是多对多关联,则关联链的性质不可能只如果是多对多关联,则关联链的性质不可能只如果是多对多关联,则关联链的性质不可能只与一个参与关联的对象有关,通常用一个独立与一个参与关联的对象有关,通常用一个独立与一个参与关联的对象有关,通常用一个独立与一个参与关联的对

43、象有关,通常用一个独立的关联类来保存描述关联性质的信息,这个类的关联类来保存描述关联性质的信息,这个类的关联类来保存描述关联性质的信息,这个类的关联类来保存描述关联性质的信息,这个类的每个实例表示一条具体的关联链及该链的属的每个实例表示一条具体的关联链及该链的属的每个实例表示一条具体的关联链及该链的属的每个实例表示一条具体的关联链及该链的属性。性。性。性。设计关联设计关联39软件工程 - 2013 - 第十章 面向对象(3)n n确定优先级(系统的各项质量指标并不是确定优先级(系统的各项质量指标并不是同等重要的);同等重要的);n n提高效率的几项技术:提高效率的几项技术:n n增加冗余关联以

44、提高访问效率;增加冗余关联以提高访问效率;增加冗余关联以提高访问效率;增加冗余关联以提高访问效率;设计优化设计优化40软件工程 - 2013 - 第十章 面向对象(3)设计优化设计优化n n调整查询次序调整查询次序调整查询次序调整查询次序n n保留派生属性保留派生属性保留派生属性保留派生属性n n调整继承关系调整继承关系n n抽象与具体;抽象与具体;抽象与具体;抽象与具体;n n为提高继承程度而修改类定义;为提高继承程度而修改类定义;为提高继承程度而修改类定义;为提高继承程度而修改类定义;n n各个现有类中的属性和行为各个现有类中的属性和行为各个现有类中的属性和行为各个现有类中的属性和行为(

45、(操作操作操作操作) ),虽然相似却并,虽然相似却并,虽然相似却并,虽然相似却并不完全相同,在这种情况下需要对类的定义稍加修不完全相同,在这种情况下需要对类的定义稍加修不完全相同,在这种情况下需要对类的定义稍加修不完全相同,在这种情况下需要对类的定义稍加修改,才能定义一个基类供其子类从中继承需要的属改,才能定义一个基类供其子类从中继承需要的属改,才能定义一个基类供其子类从中继承需要的属改,才能定义一个基类供其子类从中继承需要的属性或行为;性或行为;性或行为;性或行为;n n利用委托实现行为共享。利用委托实现行为共享。利用委托实现行为共享。利用委托实现行为共享。41软件工程 - 2013 - 第十章 面向对象(3)42软件工程 - 2013 - 第十章 面向对象(3)n n面向对象的软件工程面向对象的软件工程构建复杂且多构建复杂且多变的系统变的系统,B. Bruegge, A. H. Dutoit,清,清华大学出版社华大学出版社n nJava与模式与模式,阎宏,电子工业出版社,阎宏,电子工业出版社参考资料参考资料43软件工程 - 2013 - 第十章 面向对象(3)

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

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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