第五章 面向对象设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第五章 面向对象设计
1

主要内容
5.1 什么是面向对象的设计 5.2 问题域部分的设计 5.3 体系结构的设计
2

5.1 什么是面向对象的设计
OOD——按实现条件对OOA模型进行调整,并补充几个新的 组成部分(也是由对象构成)
与实现有关的因素:
— 图形用户界面系统 — 硬件、操作系统及网络 — 数据管理系统 — 其他 编程语言、可复用的类库…
OOA 模型
补充 补 充
调整
补 充
补充
3

实现条件
按实现条件调整 OOA模型
新增的组成部分, 隔离实现条件
实 现 条 件 实现条件 基本思想:
尽可能隔离实现条件对系统的影响——提供独立的接口 对不可隔离的因素,按实现条件调整OOA模型
实 现 条 件
4

OOA与OOD的关系:
1、从OOA到OOD不是转换;
——是调整和增补 将OOA模型搬到OOD; 进行必要的调整, 作为OOD模型的问题域 部分;
OOA 模型
控制驱动部分 人 机 交 互 部 分
增补其它部分,成为完 整的OOD模型。
问题域 部分
构件部署部分
数 据 管 理 部 分
5

2、采用一致的概念和表示法
——不存在分析与设计之间的鸿沟
分析 数据流图 (DFD) 设计 模块结构图 (MSD) 实体-关系图(ERD) OOA OO模型
一致的 概念 一致的 表示法
OOD OO模型
传统方法分析与设 计之间的鸿沟
面向对象的分析与设计 之间不存在鸿沟
3、有不同的侧重点和不同的策略
OOA主要针对问题域,识别有关的对象以及它们之间的 关系,产生一个满足用户需求,独立于实现的OOA模型。 OOD主要解决与实现有关的问题,基于OOA模型,针 对具体的软、硬件条件(如机器、网络、OS、GUI、 DBMS等)产生一个可实现的OOD模型。
6

OOD模型
——从两个侧面来描述
从另一侧面观察 OOD模型每个部分 如何用OO概念表达 ——采用OOA的概念 及 模型组织方式 从一个侧面观察 OOD模型包括几个主 要部分 ——一个核心部分加 几个外围部分
在辅助模型中要增加分别用 于描述构件模型和部署模型 的构件图和部署图

OOD过程模型 问题域部分的设计 人机交互部分的设计 控制流管理部分的设计 数据管理部分的设计 构件部署部分的设计 前4项不强调次序
每个部分均采用与OOA一致的概念、表示法及活动,但具 有自己独特的策略。
进行构件部署设计要在其前面四个部分完成后进行。
8

主要内容
5.1 什么是面向对象的设计 5.2 问题域部分的设计 5.3 体系结构的设计
9

5.2 问题域部分的设计
问题域部分的设计要对OOA结果按实现条件进行补充与调整。 即,要 继续运用OOA的方法,包括概念、表示法及一部分策略。 按实现条件 (编程语言 ,网络与操 作系统,复 用支持等) 进行必要的 调整。
OOA 模型
将OOA模型搬到OOD 作为OOD的基础
控制驱动部分 人 机 交 互 部 分
问题域 部分
构件部署部分
数 据 管 理 部 分
不但要根据实现条件进行OOD设计,而且由于需求变化或新发现 了错误,也要对OOA的结果进行修改。
10

。。。。

公司人员
身份
雇主
职员
雇主身份
职员身份
0..1 1 公司人员 1
0..1
雇主职员
21

方法2:压平
公司人员
问题:有什么缺点?
顾主 顾主职员 职员
顾主信息
职员信息
问题:改成继承?
22

方法3:不支持泛化
顾主 顾主职员 职员
问题:有什么缺点?
23

对多态性的调整
24

(5)调整与完善属性
按照语法:[可见性] 属性名[‘:’类型][‘=’ 初始值] 对属性的定义进行完善。 每一个属性或者包含单个值,或者包含作为一个整体的密切相关的一组值
若要给出对属性的性质的约束,如“工龄<60”或“0≤英语成绩≤100”等, 也要看语言是否对其直接支持,否则要在算法上考虑如何实现。
25

主要内容
5.1 什么是面向对象的设计 5.2 问题域部分的设计 5.3 体系结构的设计
26

5.3 体系结构的设计
软件体系结构
软件体系结构涉及软件系统的总体组织、全局控制、数 据存取以及子系统之间的通信协议等
典型的软件体系结构风格
仓库或知识库结构 分层体系结构 模型/视图/控制器体系结构 客户机/服务器结构 27

1. 仓库体系结构
仓库或知识库结构(Repository architecture)
仓库结构是一种以数据为中心的体系结构 包含两种不同的软件部件:一个中心数据库和一组相互 独立的处理中心数据的子系统 主要适合于数据由一个子系统产生而由其他子系统使用 的情形 典型应用:现代编译器、管理信息系统、CAD系统和 CASE工具集等
28

1. 仓库体系结构
29

1. 仓库体系结构
仓库体系结构的优点
无需在子系统之间进行数据转换,是一种共享大量数据 的高效方法 只要与共享模型相一致,新的子系统可以很容易地增加 到系统中
共享数据很容易变成系统的瓶颈
子系统为了与共享模型保持一致,势必在性能上会受到 影响 由于每一个子系统和共享数据的耦合度很高,因此共享 数据结构的修改将在很大程度上影响外部子系统 30

相关文档
最新文档