最新第5章--面向对象系统设计与行为建模
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
❖⑵ 为提高继承程度而修改类定义。 ❖⑶ 利用委托实现行为共享。仅当存在真实的一般—
—特殊关系(即子类确实是父类的一种特殊形式) 时,利用继承机制实现行为共享才是合理的。
5.2 系统交互建模
❖交互图(interaction diagram)是用来描述 对象之间以及对象与参与者之间的动态协作关系 和协作过程中行为次序的图形文档。
2.优化设计时提高效率技术
⑴ 增加冗余关联以提高访问效率。
⑵ 调整查询次序。
⑶ 保留派生属性。
▪ 通过某种运算而从其他数据派生出来的数据,是一种 冗余数据,通常把这类数据“存储”(或称为“隐 藏”)。
▪ 在计算它的表达式中,如果希望避免重复计算复杂表 达式所带来的开销,可以把这类冗余数据作为派生属 性保存起来。
5.1.2系统对象设计
❖ 系统对象设计主要是对分析模型进行整理,生成 设计模型提供给OOP作为开发依据。
❖ OOD包括:架构设计、用例设计、子系统设计、 类设计等。
❖ 架构设计的侧重点在于系统的体系框架的合理性, 保证系统架构在系统的各个非功能性需求中保持 一种平衡;
❖ 子系统设计一般是采用纵向切割,关注的是系统 的功能划分;
❖它通常用来描述一个用例的行为,显示该用例中 所涉及的对象及这些对象之间的消息传递情况。
❖交互图可以帮助分析人员对照检查每个用例中所 描述的用户需求
❖ UML2.0交互图包括交互概览图、顺序图、通信 图和时间图。
5.2 系统交互建模
❖交互概览图是顺序图和活动图的结合,将顺序图 和活动结合起来描述交互流程和交互细节的一种 交互图。
⑹ 可重用。类构件有3种重用方式,分别是实例重用、 继承重用和多态重用。
①
2. 面向对象设计的启发规则
❖⑴ 设计结果应该清晰易懂。使设计结果清晰、易 懂、易读是提高软件可维护性和可重用性的重要 措施。
❖① 用词一致。 ❖② 使用已有的协议。 ❖③ 减少消息模式的数目。 ❖④ 避免模糊的定义。 ❖⑵ 一般——特殊结构的深度应适当。类等级层次
5.1.3 面向对象系统设计优化
面向对象系统设计优化的方式有:提高优先级;提 高效率技术和增加继承等。
1.确定优化级 ▪系统的各项质量指标并不是同等重要的,设计人 员须确定各项质量指标的相对重要性(即确定优先 级),以便在优化设计时制定折衷方案。 ▪最糟糕的情况是,没有站在全局高度正确确定各 项质量指标的优先级,以致系统中各个子系统按照 相互对立的目标做了优化,这将导致系统资源的严 重浪费。
数应保持为7±2。 ❖⑶ 设计简单类。
2. 面向对象设计的启发规则
❖⑷ 使用简单的协议。一般来说,消息中参数不 要超过3个。
❖⑸ 使用简单的操作。面向对象设计出来的类中 的操作通常都很小,一般只有3至5行源程序语句, 可以用仅含一个动词和一个宾语的简单句子描述 它的功能。
❖⑹ 把设计变动减至最小。在设计的早期阶段, 变动较大,随着时间推移,设计方案日趋成熟, 改动也越来越小了。中的峰值与出现设计错误或 发生非预期变动的情况相对应。峰值越高,表明 设计质量越差,可重用性也越差。
1. 面向对象设计的准则
⑸ 高内聚。在面向对象设计中存在3种内聚,即服务 内聚、类பைடு நூலகம்聚和一般—特殊内聚。
① 服务内聚。一个服务应该完成一个且仅完成一个功 能。
② 类内聚。设计类的原则是,一个类应该只有一个用 途,它的属性和服务应该是高内聚的。
③ 一般——特殊内聚。一般说来,紧密的继承耦合与 高度的一般——特殊内聚是一致的。
▪ 派生属性既可以在原有类中定义,也可以定义新类, 并用新类的对象保存它们。
▪ 每当修改了基本对象之后,所有依赖于它的、保存派 生属性的对象也必须相应地修改。
3.建立良好的继承结构
❖⑴ 抽象与具体。在设计类继承时,很少使用纯粹 自顶向下的方法。通常的作法是,首先创建一些满 足具体用途的类,然后对它们进行归纳,一旦归纳 出一些通用的类以后,往往可以根据需要再派生出 具体类。在进行了一些具体化(即门化)的工作之 后,也许就应该再次归纳了。
5.1.1 面向对象系统体系结构设计
设计阶段先从高层入手,然后细化。 ⑴ 系统分解。每次分解的各子系统数目不能太多,
最底层子系统称为模块。 ⑵ 确定并发性。分析模型、现实世界及硬件中不少
对象均是并发的。 ⑶ 处理器及任务分配。各并发子系统必须分配给单
个硬件单元。 ⑷ 数据存储管理。 ⑸ 全局资源的处理。 ⑹ 选择软件控制机制。 ⑺ 人机交互接口设计。
❖ 系统设计是问题求解及建立解答的高级策略,必须 制定解决问题的基本方法。系统设计要决定系统功 能的软件和硬件的分配问题。
❖ 系统的高层结构形式包括子系统的分解、它的固有 并发性、子系统分配给硬软件、数据存储管理、资 源协调、软件控制实现、人机交互接口等。
❖ 用面向对象方法设计软件,原则上也是先进行总体 设计(即系统设计),然后再进行详细设计(即对 象设计),当然,它们之间的界限非常模糊,事实 上是一个多次反复迭代的过程。
❖ 类设计是通过一组对象、顺序图展示系统的逻辑 实现。
1. 面向对象设计的准则
⑴ 模块化。 ⑵ 抽象。 ⑶ 信息隐藏。 ⑷ 低耦合。 一般地对象之间的耦合可分为交互耦合和继承耦合。 ① 交互耦合。尽量降低消息连接的复杂程度,应该
尽量减少消息中包含的参数个数,降低参数的复杂 程度,减少对象发送(或接收)的消息数。 ② 继承耦合。与交互耦合相反,应该提高继承耦合 程度。
第5章--面向对象系统设计与行 为建模
第5章 面向对象系统设 计与行为建模
教学目的
1. 掌握交互图和状态机图的表示方法。 2. 掌握顺序图和通信图的区别。 3. 掌握顺序图、通信图、状态机图的建模步骤。 4. 清楚在实际的建模中什么时候该使用顺序图、
通信图和状态机图等。
5.1 面向对象系统设计概述
❖时间图应用不多。 ❖主要介绍顺序图和通信图,顺序图和通信图在语
义上是等价的。 ❖建模人员可以先用一种交互图进行建模,然后再
将其变换为另一种图而不丢失任何信息。
5.2.1 顺序图
❖1. 顺序图符号
顺序图
⑴ 类角色 ❖类角色(Class Role)代表顺序图中的对象在交
—特殊关系(即子类确实是父类的一种特殊形式) 时,利用继承机制实现行为共享才是合理的。
5.2 系统交互建模
❖交互图(interaction diagram)是用来描述 对象之间以及对象与参与者之间的动态协作关系 和协作过程中行为次序的图形文档。
2.优化设计时提高效率技术
⑴ 增加冗余关联以提高访问效率。
⑵ 调整查询次序。
⑶ 保留派生属性。
▪ 通过某种运算而从其他数据派生出来的数据,是一种 冗余数据,通常把这类数据“存储”(或称为“隐 藏”)。
▪ 在计算它的表达式中,如果希望避免重复计算复杂表 达式所带来的开销,可以把这类冗余数据作为派生属 性保存起来。
5.1.2系统对象设计
❖ 系统对象设计主要是对分析模型进行整理,生成 设计模型提供给OOP作为开发依据。
❖ OOD包括:架构设计、用例设计、子系统设计、 类设计等。
❖ 架构设计的侧重点在于系统的体系框架的合理性, 保证系统架构在系统的各个非功能性需求中保持 一种平衡;
❖ 子系统设计一般是采用纵向切割,关注的是系统 的功能划分;
❖它通常用来描述一个用例的行为,显示该用例中 所涉及的对象及这些对象之间的消息传递情况。
❖交互图可以帮助分析人员对照检查每个用例中所 描述的用户需求
❖ UML2.0交互图包括交互概览图、顺序图、通信 图和时间图。
5.2 系统交互建模
❖交互概览图是顺序图和活动图的结合,将顺序图 和活动结合起来描述交互流程和交互细节的一种 交互图。
⑹ 可重用。类构件有3种重用方式,分别是实例重用、 继承重用和多态重用。
①
2. 面向对象设计的启发规则
❖⑴ 设计结果应该清晰易懂。使设计结果清晰、易 懂、易读是提高软件可维护性和可重用性的重要 措施。
❖① 用词一致。 ❖② 使用已有的协议。 ❖③ 减少消息模式的数目。 ❖④ 避免模糊的定义。 ❖⑵ 一般——特殊结构的深度应适当。类等级层次
5.1.3 面向对象系统设计优化
面向对象系统设计优化的方式有:提高优先级;提 高效率技术和增加继承等。
1.确定优化级 ▪系统的各项质量指标并不是同等重要的,设计人 员须确定各项质量指标的相对重要性(即确定优先 级),以便在优化设计时制定折衷方案。 ▪最糟糕的情况是,没有站在全局高度正确确定各 项质量指标的优先级,以致系统中各个子系统按照 相互对立的目标做了优化,这将导致系统资源的严 重浪费。
数应保持为7±2。 ❖⑶ 设计简单类。
2. 面向对象设计的启发规则
❖⑷ 使用简单的协议。一般来说,消息中参数不 要超过3个。
❖⑸ 使用简单的操作。面向对象设计出来的类中 的操作通常都很小,一般只有3至5行源程序语句, 可以用仅含一个动词和一个宾语的简单句子描述 它的功能。
❖⑹ 把设计变动减至最小。在设计的早期阶段, 变动较大,随着时间推移,设计方案日趋成熟, 改动也越来越小了。中的峰值与出现设计错误或 发生非预期变动的情况相对应。峰值越高,表明 设计质量越差,可重用性也越差。
1. 面向对象设计的准则
⑸ 高内聚。在面向对象设计中存在3种内聚,即服务 内聚、类பைடு நூலகம்聚和一般—特殊内聚。
① 服务内聚。一个服务应该完成一个且仅完成一个功 能。
② 类内聚。设计类的原则是,一个类应该只有一个用 途,它的属性和服务应该是高内聚的。
③ 一般——特殊内聚。一般说来,紧密的继承耦合与 高度的一般——特殊内聚是一致的。
▪ 派生属性既可以在原有类中定义,也可以定义新类, 并用新类的对象保存它们。
▪ 每当修改了基本对象之后,所有依赖于它的、保存派 生属性的对象也必须相应地修改。
3.建立良好的继承结构
❖⑴ 抽象与具体。在设计类继承时,很少使用纯粹 自顶向下的方法。通常的作法是,首先创建一些满 足具体用途的类,然后对它们进行归纳,一旦归纳 出一些通用的类以后,往往可以根据需要再派生出 具体类。在进行了一些具体化(即门化)的工作之 后,也许就应该再次归纳了。
5.1.1 面向对象系统体系结构设计
设计阶段先从高层入手,然后细化。 ⑴ 系统分解。每次分解的各子系统数目不能太多,
最底层子系统称为模块。 ⑵ 确定并发性。分析模型、现实世界及硬件中不少
对象均是并发的。 ⑶ 处理器及任务分配。各并发子系统必须分配给单
个硬件单元。 ⑷ 数据存储管理。 ⑸ 全局资源的处理。 ⑹ 选择软件控制机制。 ⑺ 人机交互接口设计。
❖ 系统设计是问题求解及建立解答的高级策略,必须 制定解决问题的基本方法。系统设计要决定系统功 能的软件和硬件的分配问题。
❖ 系统的高层结构形式包括子系统的分解、它的固有 并发性、子系统分配给硬软件、数据存储管理、资 源协调、软件控制实现、人机交互接口等。
❖ 用面向对象方法设计软件,原则上也是先进行总体 设计(即系统设计),然后再进行详细设计(即对 象设计),当然,它们之间的界限非常模糊,事实 上是一个多次反复迭代的过程。
❖ 类设计是通过一组对象、顺序图展示系统的逻辑 实现。
1. 面向对象设计的准则
⑴ 模块化。 ⑵ 抽象。 ⑶ 信息隐藏。 ⑷ 低耦合。 一般地对象之间的耦合可分为交互耦合和继承耦合。 ① 交互耦合。尽量降低消息连接的复杂程度,应该
尽量减少消息中包含的参数个数,降低参数的复杂 程度,减少对象发送(或接收)的消息数。 ② 继承耦合。与交互耦合相反,应该提高继承耦合 程度。
第5章--面向对象系统设计与行 为建模
第5章 面向对象系统设 计与行为建模
教学目的
1. 掌握交互图和状态机图的表示方法。 2. 掌握顺序图和通信图的区别。 3. 掌握顺序图、通信图、状态机图的建模步骤。 4. 清楚在实际的建模中什么时候该使用顺序图、
通信图和状态机图等。
5.1 面向对象系统设计概述
❖时间图应用不多。 ❖主要介绍顺序图和通信图,顺序图和通信图在语
义上是等价的。 ❖建模人员可以先用一种交互图进行建模,然后再
将其变换为另一种图而不丢失任何信息。
5.2.1 顺序图
❖1. 顺序图符号
顺序图
⑴ 类角色 ❖类角色(Class Role)代表顺序图中的对象在交