《软件工程》课件 第十一章面向对象设计

合集下载

软件工程第十一章面向对象设计

软件工程第十一章面向对象设计

THANKS
感谢观看
01
抽象类是一种不能被实例化的 类,它只能被其他类继承。
02
抽象类可以包含抽象方法和具 体方法。抽象方法是没有具体 实现的方法,需要在继承抽象 类的子类中实现。
03
通过继承抽象类,子类可以继 承抽象类的属性和方法,并且 可以重写或实现抽象类中的方 法。
接口与抽象类的选择
在设计软件时,选择使用接口还是抽象类取决于具体需求和设计目标。
关系
关系描述了对象之间的交互和联系。 常见的关系包括关联、聚合和继承。
继承与多态的设计
继承
继承是一种实现代码重用的方式,子类可以继承父类的属性和方法,并可以扩展或覆盖它们。通过继承,可以建 立类之间的层次结构,使得代码更加清晰和易于维护。
多态
多态是指一个接口可以有多种实现方式,或者一个对象可以有多种形态。多态可以提高代码的灵活性和可扩展性, 使得程序更加易于维护和修改。
02
类与对象的设计
类的定义与属性
类的定义
类是对象的抽象,它描述了一组具有相同属性和行为的对象。类定义了对象的结构、行为和关系。
属性
属性是类中用于描述对象状态的变量。每个对象都有其自己的属性值,这些属性值决定了对象的状态 。
对象的行为与关系
行为
行为是类中定义的方法,用于描述对 象可以执行的操作。方法定义了对象 的行为和功能。
高层模块不应该依赖于低层模块,它们都应 该依赖于抽象。
面向对象设计的优势
提高代码可重用性
通过类和继承实现代码重用,减少重 复代码。
提高代码可维护性
面向对象设计使得代码结构更加清晰, 易于理解和维护。
提高开发效率
通过快速原型开发,快速构建软件系 统。

高级软件工程(第十一章) 面向对象设计方法PPT课件

高级软件工程(第十一章) 面向对象设计方法PPT课件
➢在一个用例中,一个控制类应该同一个且仅一 个参与者相关联。
➢协调边界类和实体类之间的消息及消息发送的 顺序。
12

➢控制类作为完成用例任务的责任承担者,协调 、控制其他类共同完成用例规定的功能或行为 。对于比较复杂的用例,控制类通常并不处理 具体的任务细节,但是它应知道如何分解任务 ,如何将子任务分派给适当的辅助类,如何在 辅助类之间进行消息传递和协调。
② 开发交互图,即为每一个用例产生一个交互 图:其决定哪些对象一起工作,及怎样协同 工作。 (系统设计的核心);
③ 根据开发交互图时得到的信息,迭代设计类 图和开发方法名称(确定类的行为和职责)
④ 用包图将设计类图分割成相关的功能。
3
用例的实现
➢称设计模型的最终开发结果为用例的实现。 ➢术语实现指的是对每个用例的详细系统过程进
16
导航可见性
➢一个对象可看到另一个对象并与之交互(导航 、可见性)。
➢一个对象可导航(发送消息)到另一个对象。 ➢一个对象通过发消息的方式和另一个对象进行
联系,那么第二个对象对于第一个对象来说必 须是可见的。 ➢对象具有能看见另一对象并与其交互的能力。
17
用例实现与交互图
➢用例的实现是在交互图的开发过程中完成的, 用例实现的过程就是确定哪些类通过发送消息 与其他类进行协作的过程。
➢设计时开发的交互图:顺序图或协作图。
18
对象职责
➢一种由对象负责实施系统过程的设计准则。 ➢集中确定一个系统必须支持的行为,再设计实
现这些行为的方法。通过这些行为,确定对象 职责。
19
用例控制器
➢每个用例含有许多来自外部参与者不同的消息。 ➢作为OO分析一部分的系统顺序图能够描述出这些

太原理工大学软件工程第十一章PPT课件

太原理工大学软件工程第十一章PPT课件

2020/7/19
第11面向对象的设计与实现
第18页
11.2.1 问题域子系统设计
(1)为复用设计与编程的类而增加结构
如果OOA识别和定义的类是本次开发中新定义的,那就需要 进行从头开始设计。如果已存在一些可复用的类,而且这 些类既有分析、设计时的定义,又有源程序,那么复用这 些类即可提高开发效率与质量。注意可复用的类可能只是 与OOA模型中的类相似,而不是完全相同,因此需对其进 行修改。设计目标是尽可能使复用成分增多,新开发的成 分减少。
2020/7/19
第11面向对象的设计与实现
第12页
11.1.2 启发式规则
(3)减少消息模式的数目:如果已有标准的消息协议,涉 及人员应该遵守这些协议。如果确需自己建立消息协议,则 应该尽量减少消息模式的数目,只要可能,就使消息具有一 致的模式,以利于读者理解。 (4)避免模糊的定义:一个类的用途应该是有限的,而且 应该从类名可以较容易地推导出它的用途。
重要措施。保障设计结果清晰易懂的主要因素如下。 (1)用词一致:设计中应该使名字与它所代表的事物一致,而且
应该尽量使用人们习惯的名字。不同类中相似服务的名字应该 相同。 (2)使用已有的协议:如果开发同一软件的其他设计人员已经建 立了类的协议,或者在所使用的类库中已有相应的协议,则应 该使用这些已有的协议。
2020/7/19
第11面向对象的设计与实现
第22页
11.2.1 问题域子系统设计
(5)对复杂关联的转化并决定关联的实现方式。 【例11.3】 把多对多关联转化为一对多关联,参见图11.4。
2020/7/19
第11面向对象的设计与实现
第23页
11.2.1 问题域子系统设计
【例11.4】 把多元关联转化为二元关联,参见图11.5。

第十一章 软件工程 面向对象设计

第十一章 软件工程 面向对象设计
6
11.1 面向对象设计的准则
强内聚—— 服务内聚:一个服务应该完成一个且仅完成一个功能。 类内聚:一个类应该只有一个用途,它的属性和服务应该
是高内聚的,也就是说,类的属性和服务应该全都是完成 该类对象的任务所必需的,其中不包含无用的属性或服务 。实际上,对于面向对象软件来说,最佳的内聚是信息型 内聚:一个模块可以完成许多相关的操作,每个操作都有 各自的入口点,它们的代码相对独立,而且所有操作都在 相同的数据结构上完成 。 一般-特殊内聚:设计出的一般-特殊结构应该是对相应的 领域知识的正确抽取。一般说来,紧密的继承耦合与高度 的一般-特殊内聚是一致的。
7
11.1 面向对象设计的准则
可重用——重用是提高软件开发生产率和目标系统质量的
重要途径。
重用基本上从设计阶段开始。
重用有两方面的含义:
尽量使用已有的类(包括开发环境提供的类库,及以往开
发类是系统是创建的类)
如果确实需要创建新类,则在设计这些新类的协议时,应
该考虑将来的可重复使用性
8
11.2 启发规则
各开发活动之间的平滑过渡,这是面向对象方法的一大优 点。
3
概述
数据 客观世界的 对象和操作 程序员对 问题的表达 问题空间 客观世界的算法空间 结果
客观世界 的对象
程序设计语言 的对象和操作
计算机算法 解空间 输出数据
•对象、操作、消息 类、实例和继承 •对象描述(对象名及所属对象类,私有数据结构的每一 数据项及类型,每个操作的过程描述或指向该过程描述 的指针)
2
概述
设计是把分析阶段得到的对目标系统的需求转变成符合成
本和质量要求的、抽象的系统实现方案的过程。
从面向对象分析到面向对象设计,是一个逐渐扩充模型的

软件工程-第11章-面向对象设计

软件工程-第11章-面向对象设计
进程的别名,是执行一系列活动的一段程序。
设计任务管理子系统
设计任务管理子系统:确定各类任务并把任务分 配给适当的硬件或软件去执行。
确定事件驱动型任务:由事件驱动完成通信工作的任 务。
确执定行时某钟些驱处动理型的任任务务:。每隔一表定明时某间些间数隔据就到被达触的发信以号 确定优先任务和关键任务:有关系统成功或失败的关
在面向对象分析中,只涉及到问题论域部分, 其余3部分是在面向对象设计中加进来的。
图11.2 典型的面向对象设计模型
设计问题域子系统(一)
面向对象设计通常仅需从实现角度对问题域模 型作一些补充或修改,主要是增添、合并或分 解类-&-对象、属性及服务,调整继承关系 等。
调整需求:修改分析结果,再把修改反映到问题域 子系统中
*11.3 软件重用(一)
概念
重用:也叫再用或复用,是指同一事物不 作修改或稍加改动就多次重复使用。包括 知识重用、方法和标准的重用、软件成分 的重用3个层次。
1. 软件成分的重用级别
代码重用:调用库中的模块,
源代码剪贴:存在配置管理问题,无法跟踪 原始代码块的修改
源代码包含:提供包含(include)库中源代 码,修改库中源代码之后,所有包含它的程 序都必须重新编译
和继承机制,增加了创建及管理类和对象的通用服务 2)扩展的面向对象程序设计语言:增加了在数据库中
存贮和管理对象的机制
设计数据管理子系统
设计数据格式 设计相应的服务
设计类中的服务
确定类中应有的服务 设计实现服务的方法
设计实现服务的算法
算法复杂度 容易理解与容易实现 易修改
选择数据结构 定义内部类和内部操作
设计关联
关联的遍历 实现单向关联 实现双向关联 链属性的实现

《软件工程》课件第11章 面向对象的OMT方法

《软件工程》课件第11章 面向对象的OMT方法
分析的目的是确定一个系统“干什么”的模型,该模 型通过使用对象、关联、动态控制流和功能变换等来描述。 分析过程是一个不断获取需求及不断与用户磋商的过程。
1. 问题陈述 问题陈述为记下或获取对问题的初步描述。
第11章 面向对象的OMT方法
2. 构造对象模型 构造对象模型的步骤如下: (1) 确定对象类。 (2) 编制类、属性及关联描述的数据词典。 (3) 在类之间加入关联。 (4) 给对象和链加属性。 (5) 使用继承构造和简化对象类。 (6) 将类组合成模块,这种组合在紧耦合和相关 功能上进行。 最后得到:对象模型=对象模型图+数据词典。
第11章 面向对象的OMT方法
两个类之间的关联称为二元关联,三个类之间的 关联称为三元关联。关联的表示是在类之间画一连线。 图11.3表示了二元关联,图11.4表示一种三元关联, 说明程序员使用计算机语言来开发项目。
第11章 面向对象的OMT方法 图11.3 二元关联
第11章 面向对象的OMT方法 图11.4 三元关联
第11章 面向对象的OMT方法
操作的表示如图11.2底部区域所示,操作名后可跟 参数表,用括号括起来,每个参数之间用逗号分开,参 数名后可跟类型,用冒号与参数名分开,参数表后面用 冒号来分隔结果类型,结果类型不能省略。
2. 关联和链 关联和链是建立对象及类之间关系的一种手段。 1) 关联和链的含义 链表示对象间的物理与概念的联结,如张三为通 达公司工作。关联表示类之间的一种关系,就是一些可 能的链的集合。 正如对象与类的关系一样,对象是类的实例,类是 对象的抽象。而链是关联的实例,关联是链的抽象。
第11章 面向对象的OMT方法
3. 构造动态模型 构造动态模型的步骤如下: (1) 准备典型交互序列的脚本。 (2) 确定对象间的事件并为各脚本安排事件跟踪。 (3) 准备系统的事件流图。 (4) 开发具有重要动态行为的各个类的状态图。 (5) 检查状态图中共享事件的一致性和完整性。 最后得到:动态模型 = 状态图 + 全局事件流图。

软件工程导论课件之第11章面向对象设计

软件工程导论课件之第11章面向对象设计
据抽象。 3. 信息隐藏 n 在面向对象方法中,信息隐藏通过对象的封装
性实现。
软件工程导论课件之第11章面向对象 设计
4. 弱耦合 n 耦合指不同对象之间相互关联的紧密程度。 n 一般说来,对象之间的耦合可分为两大类:
q 交互耦合
n 如果对象之间的耦合通过消息连接来实现,则这种耦合 就是交互耦合。
要划分“主题”。
软件工程导论课件之第11章面向对象 设计
4. 使用简单的协议 n 一般说来,消息中的参数不要超过3个。当然,
不超过3个的限制也不是绝对的。 5. 使用简单的服务 n 一般说来,应该尽量避免使用复杂的服务。 n 如果一个服务中包含了过多的源程序语句,或
者语句嵌套层次太多,或者使用了复杂的 CASE语句,则应该仔细检查这个服务,设法 分解或简化它,考虑用一般-特殊结构代替。
软件工程导论课件之第11章面向对象 设计
6. 可重用 n 软件重用是提高软件开发生产率和目标系统质
量的重要途径。 n 重用基本上从设计阶段开始。 n 重用有两方面的含义:
q 一是尽量使用已有的类(包括开发环境提供的类库, 及以往开发类似系统时创建的类),
q 二是如果确实需要创建新类,则在设计这些新类的 协议时,应该考虑将来的可重复使用性。
1. 调整需求 n 有两种情况会导致修改通过面向对象分析所确
定的系统需求:
q 一是用户需求或外部环境发生了变化; q 二是分析员对问题域理解不透彻或缺乏领域专家帮
助。
n 无论出现上述哪种情况,通常都只需简单地修 改面向对象分析结果,然后再把这些修改反映 到问题域子系统中。
软件工程导论课件之第11章面向对象 设计
软件工程导论课件之第11章面向对象 设计
11.3.2 类构件

软件工程导论PPT课件-第11章-面向对象的分析

软件工程导论PPT课件-第11章-面向对象的分析

11.2 静态结构建模
一对一的关联。一个类的实例对象只能和另一个类的惟一对象发 生联系。
拥有
一对多关联。一对多关联是指有关联关系的两个类之间,从一个 方向上看是一对多关联,从另一个方向上看则是一对一关联。
拥有
11.2 静态结构建模
多对多关联。多对多关联是指有关联关系的两个类之间,从两个 方向上都是一对多的关联。
象模型、用户界面
系统设计
分析模型 动态模型 用例模型、对象模型
对象设计
面向对象分析过程
11.2 静态结构建模
面向对象的分析分为静态分析和动态分析两种,静态分析 是分析静态模型(类图或对象图);动态分析是分析动态 模型(顺序图或协作图)
静态结构建模确定系统的逻辑或物理部分,以及如何把它 们连接在一起,它描述了如何构建和初始化系统。
第11章 面向对象的分析
➢ 11.1 面向对象分析的任务 ➢ 11.2 静态结构建模 ➢ 11.3 动态结构建模
第11章 面向对象的分析
分析的过程都是提取系统需求、开发分析模型的过程。 这个阶段的工作既需要开发技术人员的参与,又需要 客户、未来软容,这就是理解、表达和验证。 分析过程得出的最重要的文档资料是软件需求规格说
11.2 静态结构建模
(5)完善初始的静态结构模型
- 识别继承关系 检查已经提交的类对象之间是否存在继承关系,如果存在继承,
则利用类之间的继承特征来改进类模型,从而提高类模型的可复用 性。可以从类的属性与操作及问题域中的可复用性两个角度来确定 可能存在的继承关系。 - 分解、合并系统中的类对象
对于系统中已有的类对象认真分析,检查是否有些类可以进一步 地分解为不同的类或者可以将一些类对象进行合并。
明(在面向对象分析中,主要由对象模型、动态模型 和功能模型组成)。

软件工程第11章面向对象设计

软件工程第11章面向对象设计

2. 重用已有的类
重用已有类(代码重用)实现分析模型;若没有可以重用类而需要创建新 类时,则在设计这些新类时需要考虑其可重用性。
对于已有的可重用类,典型重用方法和过程如下: 1)选择可能被重用的已有类,标出类中对本问题无用的属性和服务,选 择那些能使无用的属性和服务最少的类; 2)从被重用的已有类派生出问题域类(继承重用类而产生问题域类); 3)标出从已有类继承来的属性和服务,而无须在分析类内定义;
6. 可重用
软件重用是提高软件开发生产率和目标系统质量的重要途径。 重用有两方面的含义: 一是尽量使用已有的类(类库或已建立的类), 二是如果确实需要创建新类,则在设计这些新类的协议时,应该考虑将 来的可重复使用性。
11.2
启发规则
与结构设计规则类似,通过OOD实践也总结了一些设计规则: 1. 设计结果应该清晰易懂 设计结果清晰、易读、易懂,是提高软件可维护性和可重用性的重要 措施。保证设计结果清晰易懂的主要因素为:用词一致;使用已有的 协议;避免模糊的定义等。
1)层次组织:这种组织方案把软件系统组织成一个层次系统,每层是一 个子系统。上层和下层自系统形成C/S结构 层次结构的两种模式:封闭式和开放式:封闭式,每层子系统仅仅使用其 直接下层提供的服务;开放式,任一层次可以向下跨层次调用。 2)块状组织:把软件系统垂直地分解成若干个相对独立的、松耦合的子 系统,一个子系统相当于一块,每块提供一种类型的服务。
第11章
11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 11.10 11.11
面向对象设计
面向对象设计的准则 启发规则 软件重用 系统分解 设计问题域子系统 设计人机交互子系统 设计任务管理子系统 设计数据管理子系统 设计类中的服务 设计关联 设计优化
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2014年春 • 软件工程
4、使用简单的protocol,减少message 中传递的 parameters 5、使用简单的method(CASE 可考虑用 inheritance替代)。 6、把设计变动减至最小。
2014年春 • 软件工程
11.3
软件重用
知识 工程
概念: 知识重用(例如软件工程知识的重用)
2014年春 • 软件工程
5、内聚Cohesion: 服务内聚(service cohesion):一个服务只完成一个功能。
类内聚(class cohesion):一个类只有一个用途,否则分
解之。
一般-特殊内聚
6、复用性Reusability
2014年春 • 软件工程
11.2
启发规则
2014年春 • 软件工程
3. 设计命令层次 (1) 研究现有的人机交互含义和准则 (2) 确定初始的命令层次 (3) 精化命令层次 4. 设计人机交互类 人机交互类与所使用的操作系统及编程语言 密切相关。例如,在Windows环境下运行的Vis ual C++语言提供了MFC类库,设计人机交互 类时,往往仅需从MFC类库中选出一些适用的 类,然后从这些类派生出符合自己需要的类就 可以了。
方法和标准重用(例如OO方法和国家规定
的软件开发规范的重用)
软件成分的重用
重用软件成分有三个级别: ① 代码重用: • 源码剪贴 —— 无法溯源,无配置管理 • Include —— 修改后所有包含了此段代码的程 序都须重新编译。 • Inheritance —— 无须改动原有代码
2014年春 • 软件工程
P
O
2014年春 • 软件工程
2、设计实现方法 ⑴ 算法设计:要求做到易修改,并且复杂度低(即 效率高); 易理解,易实现。 ⑵ 数据结构设计:需要考虑具体的物理结构的选择。 ⑶ 新添用于存放内部处理中间结果的class;引入新 的低层操作,进一步细化。
2014年春 • 软件工程
11.10
设计关联
2014年春 • 软件工程
request request
Peer subsystem contract
2、系统组织方案
① 水平层次组织: 将系统组织成hierarchy,同一层中的objects相 互独立,而上、下层间有 client-server关系。

一个client只能调用其相邻下层的server —— 封闭式(closed) 一个client可调用其下任一层的server —— 开放式(open)
2014年春 • 软件工程
11.7
设计任务管理子系统
1. 分析并发性 2. 设计任务管理子系统 (1) 确定事件驱动型任务 (2) 确定时钟驱动型任务 (3) 确定优先任务 (4) 确定关键任务 (5) 确定协调任务 (6) 尽量减少任务数 (7) 确定资源需求
2014年春 • 软件工程
11.8
11.1
面向对象设计的准则
优秀软件设计的一个重要特点是容易维护 回顾:SD准则包括 模块化 抽象 信息隐藏 模块独立
2014年春 • 软件工程源自对于 OOD有类似的准则: 1、模块化:Module = Object 2、抽象Abstraction:抽出事物的本质特性, 暂不考 虑其细节,使设计从具体实现方法中超脱。 3、信息隐藏Information hiding = 对象封装 Encapsulation of object 4、耦合Coupling: 交互耦合(interactive coupling):通过传递message 发生;要求降低参数个数和参数复杂性 继承耦合(inheritance coupling): 要求 Parent class IS_A child class as high as p ossible
2014年春 • 软件工程
11.5
设计问题域子系统
可能对面向对象分析所得出的问题域模型做 的补充或修改 1. 调整需求 有两种情况会导致修改通过面向对象分析所确定的 系统需求:一是用户需求或外部环境发生了变化; 二是分析员对问题域理解不透彻或缺乏领域专家 帮助,以致面向对象分析模型不能完整、准确地 反映用户的真实需求。
2014年春 • 软件工程
1、子系统之间的交互方式(collaboration)
① 客户-供应商(client-server)关系:
Client subsystem request Server subsystem contract

② 平等伙伴(peer-to-peer)关系:
Peer subsystem contract
(2) 由数据管理子系统负责存储对象
账户类对象在接到“存储自己”的通知后,知道应该向数据管理子系统 发送什么消息,以便由数据管理子系统把它的状态保存起来,为此也需 要增加属性和服务来定义上述行为。使用这种方法的优点,是无须修改 问题域子系统。
2014年春 • 软件工程
如上一小节所述,应该定义一个数据管理类Objec tServer,并声明它的对象。这个类提供下列服务: 通知对象保存自身或保存需长期存储的对象的状态; 检索已存储的对象并使之“复活”。
2014年春 • 软件工程
11.9
设计类中的服务
Status 1 do: Action 1 Event Status 2 do: Action 2
—— 细化object model中的 methods
1、确立服务
⑴ 从 dynamic model出发:
……
⑵ 从function model出发:
I
11.4
系统分解
I P O
回顾SD:从DFD出发 OOD模型分解:
Category
问题域
Application Domain
人机交互 任务管理 数据管理
HumanTask Data Computer Management Management Interface (HCI)
Class-&-Object Structure Attribute Method
2014年春 • 软件工程
3. 把问题域类组合在一起 通过引入一个根类而把问题域类组合在一起。 4. 增添一般化类以建立协议 一些具体类需要有一个公共的协议,即一组类似 的服务。在这种情况下可以引入一个附加类 (例如, 根类),以便建立这个协议(即命名公共服务集合, 这些服务在具体类中仔细定义)。 5. 调整继承层次 (1) 使用多重继承机制 (2) 使用单继承机制
2014年春 • 软件工程
2. 重用已有的类
重用已有类的典型过程如下: (1) 选择有可能被重用的已有类,标出这些候选类中 对本问题无用的属性和服务,尽量重用那些能使无用 的属性和服务降到最低程度的类。 (2) 在被重用的已有类和问题域类之间添加泛化关系 (即从被重用的已有类派生出问题域类)。 (3) 标出问题域类中从已有类继承来的属性和服务, 现在已经无须在问题域类内定义它们了。 (4) 修改与问题域类相关的关联,必要时改为与被重 用的已有类相关的关联。
设计数据管理子系统
11.8.1 选择数据存储管理模式
1. 文件管理系统 2. 关系数据库管理系统 3. 面向对象数据库管理系统
11.8.2 设计数据管理子系统
设计数据管理子系统,既需要设计数据格式又需 要设计相应的服务。 1. 设计数据格式 2. 设计相应的服务
2014年春 • 软件工程
11.8.3

② 设计重用 —— 当移植系统时
③ 分析重用 —— 当需求未变,而系统结构改变时
重用效果的衡量: 额外代价: 创建可重用成分的专门投资 多花2 ~ 4倍时间测试以保证质量 构件库的建立与维护需要投资 以上投资将分摊到重用这些构件的新系统 成本中。重用次数越多,分摊成本越少。
2014年春 • 软件工程
优点:高效; 缺点:修改影响面广

2014年春 • 软件工程
② 垂直块组织: 将系统垂直分解成若干独立的子系统,一个子 系统相当于一块,每块提供一种类型的服务。
典型应用系统的组织结构
应 用 软 件 包
人机对 话控制
窗口图形 HCI 图形 屏幕图形 处理 象素图形
仿真 软件包
操 作 系 统 计 算 机 硬 件
1、设计结果清晰易懂,应做到: ① 用词一致 —— 按习惯用法命名。不同cla sses中相似的methods最好取同一名字。 ② 使用已有的protocol。 ③ 尽量减少message模式的数目。 ④ 避免模糊定义。 2、一般-特殊结构的深度应适当 (约100个classes,则设计7±2层)
2014年春 • 软件工程
例子
为具体说明数据管理子系统的设计方法,让我们再 看看图11.7所示的ATM系统。 从图中可以看出,惟一的永久性数据存储放在分行 计算机中。因为必须保持数据的一致性和完整性, 而且常常有多个并发事务同时访问这些数据,因此, 采用成熟的商品化关系数据库管理系统存储数据。 应该把每个事务作为一个不可分割的批操作来处理, 由事务封锁账户直到该事务结束为止。
2014年春 • 软件工程
6. ATM系统实例
图11.7 ATM系统问题域子系统的结构
2014年春 • 软件工程
11.6
设计人机交互子系统
人机交互部分的设计结果,将对用户情绪和 工作效率产生重要影响。人机界面设计得好,则 会使系统对用户产生吸引力,用户在使用系统的 过程中会感到兴奋,能够激发用户的创造力,提 高工作效率;相反,人机界面设计得不好,用户 在使用过程中就会感到不方便、不习惯,甚至会 产生厌烦和恼怒的情绪。
第11章 面向对象设计
11.1 11.2 11.3 11.4 11.5 11.6 面向对象设计的准则 启发规则 软件重用 系统分解 设计问题域子系统 设计人机交互子系统 11.7 设计任务管理子系统 11.8 设计数据管理子系统 11.9 设计类中的服务 11.10 设计关联 11.11 设计优化
相关文档
最新文档