
第7章面向对象设计 4学时
第7章 面向对象设计 4学时

言→面向对象的设计 设计模型 子系统层次设计 物理结构设计 接照规范把分析模、 分析模型 型转化为设计模型、 功能模型 用例设计 数据库设计 对象模型 类设计 界面设计 设计规范/模版 动态模型
引言→面向对象的设计 功能模型 对象模型 动态模型 分析模型 子系统层次设计 物理结构设计 用例设计 类设计 数据库设计 界面设计 设计模型 设计规范/模版 按照规范把分析模 型转化为设计模型

第7章面向对象设计 。要求 1)面向对象设计方法和步骤 理解 2)面向对象设计的概念 了解 3)面向对象设计规格说明书的主要内容了解
第7章 面向对象设计 1)面向对象设计方法和步骤 2)面向对象设计的概念 3)面向对象设计规格说明书的主要内容 理解 了解 了解 要求

7.1面向对象设计的概念 口面向对象设计强调定义软件对象,并且使这些软件 对象相互协作来满足用户需求。 口面向对象分析和设计的界限是模糊的,从面向对象 分析到面向对象设计是一个逐渐扩充模型的过程。 分析的结果通过细化直接生成设计结果,在设计过 程中逐步加深对需求的理解,从而进一步完善需求 分析的结果。 口分析和设计活动是一个反复迭代的过程。 口面向对象方法学在概念和表示方法上的一致性,保 证了各个开发阶段之间的平滑性
7.1 面向对象设计的概念 面向对象设计强调定义软件对象,并且使这些软件 对象相互协作来满足用户需求。 面向对象分析和设计的界限是模糊的,从面向对象 分析到面向对象设计是一个逐渐扩充模型的过程。 分析的结果通过细化直接生成设计结果,在设计过 程中逐步加深对需求的理解,从而进一步完善需求 分析的结果。 分析和设计活动是一个反复迭代的过程。 面向对象方法学在概念和表示方法上的一致性,保 证了各个开发阶段之间的平滑性

▣面向对象设计的四个层次 ■确定系统的总体结构和风格,构造系统的物理 模型,将系统划分成不同的子系统。 ■中层设计:对每个用例进行设计,规划实现用 例功能的关键类,确定类之间的关系。 ■进行底层设计:对每个类进行详细设计,设计 类的属性和操作,优化类之间的关系。 ■补充实现非功能性需求所需要的类
面向对象设计的四个层次: ◼ 确定系统的总体结构和风格,构造系统的物理 模型,将系统划分成不同的子系统。 ◼ 中层设计:对每个用例进行设计,规划实现用 例功能的关键类,确定类之间的关系。 ◼ 进行底层设计:对每个类进行详细设计,设计 类的属性和操作,优化类之间的关系。 ◼ 补充实现非功能性需求所需要的类

口面向对象设计与结构化设计的过程和方法完 全不同,要设计出高质量的软件系统,记住:. ■对接口进行设计 ■发现变化并且封装它 ■先考虑聚合然后考虑继承
面向对象设计与结构化设计的过程和方法完 全不同,要设计出高质量的软件系统,记住: ◼ 对接口进行设计 ◼ 发现变化并且封装它 ◼ 先考虑聚合然后考虑继承

强内聚 ▣类内聚 设计类的原则是一个类的属性和 操作全部都是完成某个任务所必须的,其中 不包括无用的属性和操作。 ■例如设计一个平衡二叉树类,该类的目的就是 要解决平衡二叉树的访问,其中所有的属性和 操作都与解决这个问题相关,其他无关的属性 和操作在这里都是垃圾,应该清除
强内聚 类内聚——设计类的原则是一个类的属性和 操作全部都是完成某个任务所必须的,其中 不包括无用的属性和操作。 ◼ 例如设计一个平衡二叉树类,该类的目的就是 要解决平衡二叉树的访问,其中所有的属性和 操作都与解决这个问题相关,其他无关的属性 和操作在这里都是垃圾,应该清除

弱耦合 ▣在面向对象设计中,耦合主要指不同对象之 间相互关联的程度。如果一个对象过多地依 赖于其它对象来完成自己的工作,则不仅使 该对象的可理解性下降,而且还会增加测试 修改的难度,同时降低了类的可重用性和可 移植性。 口对象不可能是完全孤立的,当两个对象必须 相互联系时,应该通过类的公共接口实现耦 合,不应该依赖于类的具体实现细节
弱耦合 在面向对象设计中,耦合主要指不同对象之 间相互关联的程度。如果一个对象过多地依 赖于其它对象来完成自己的工作,则不仅使 该对象的可理解性下降,而且还会增加测试、 修改的难度,同时降低了类的可重用性和可 移植性。 对象不可能是完全孤立的,当两个对象必须 相互联系时,应该通过类的公共接口实现耦 合,不应该依赖于类的具体实现细节

耦合(续) ▣交互耦合一如果对象之间的耦合是通过消 息连接来实现的,则这种耦合就是交互耦合。 在设计时应该尽量减少对象之间发送的消息 数和消息中的参数个数,降低消息连接的复 杂程度
耦合(续) 交互耦合——如果对象之间的耦合是通过消 息连接来实现的,则这种耦合就是交互耦合。 在设计时应该尽量减少对象之间发送的消息 数和消息中的参数个数,降低消息连接的复 杂程度

耦合(续) 口继承耦合 继承耦合是一般化类与特殊化 类之间的一种关联形式,设计时应该适当使 用这种耦合。在设计时要特别认真分析一般 化类与特殊化类之间继承关系,如果抽象层 次不合理,可能会造成对特殊化类的修改影 响到一般化类,使得系统的稳定性降低。另 外,在设计时特殊化类应该尽可能多地继承 和使用一般化类的属性和服务,充分利用继 承的优势
耦合(续) 继承耦合——继承耦合是一般化类与特殊化 类之间的一种关联形式,设计时应该适当使 用这种耦合。在设计时要特别认真分析一般 化类与特殊化类之间继承关系,如果抽象层 次不合理,可能会造成对特殊化类的修改影 响到一般化类,使得系统的稳定性降低。另 外,在设计时特殊化类应该尽可能多地继承 和使用一般化类的属性和服务,充分利用继 承的优势