§2.启发式规则 1、设计结果清晰易懂,应做到 ①用词一致——按习惯用法命名。不同 classes中 相似的 methods最好取同一名字。 ②使用已有的 protocol. ③尽量减少 message 模式的数目。 ④避免模糊定义。 2、一般特殊结构的深度应适当(约100个 classes,则 设计7士2层)
6 §2. 启发式规则 1、设计结果清晰易懂,应做到: ① 用词一致 —— 按习惯用法命名。不同classes中 相似的methods最好取同一名字。 ② 使用已有的protocol。 ③ 尽量减少message模式的数目。 ④ 避免模糊定义。 2、一般-特殊结构的深度应适当(约100个classes,则 设计7±2层)
§2.启发式规则 3、设计简单的clas(定义不超过一页纸或两屏)。 应注意: ①避免过多 attributes; ②能用简单的语句描述一个 class E的任务; ③obet之间合作关系要简单; ④避免过多 methods≤7个) 问题:设计出大量的case,使结构复杂度增加。 解决:划分主题,提高可理解性 4、使用简单的 protocol,,减少 message中传递的 parameters 5、使用简单的 method(CASE可考虑用 inheritance替代)。 6、把设计变动减至最小
7 §2. 启发式规则 3、设计简单的class(定义不超过一页纸或两屏)。 应注意: ① 避免过多attributes; ② 能用简单的语句描述一个class的任务; ③ objects之间合作关系要简单; ④避免过多methods( 7个)。 问题:设计出大量的classes,使结构复杂度增加。 解决:划分主题,提高可理解性。 4、使用简单的protocol,减少message 中传递的 parameters 5、使用简单的method(CASE 可考虑用 inheritance替代)。 6、把设计变动减至最小
§3.软件重用( Software reuse) 概念 知识重用(例如软件工程知识的重用) 方法和标准重用(例如OO方法和国家规定知识 的软件开发规范的重用) 工程 软件成分的重用 重用软件成分有三个级别: ①代码重用: 源码剪贴——无法溯源,无配置管理 Include 修改后所有包含了此段代码的程 序都须重新编译。想象一下,stih被改动之后 Inheritance—无须改动原有代码
8 概念: 知识重用(例如软件工程知识的重用) 方法和标准重用(例如OO方法和国家规定 的软件开发规范的重用) 软件成分的重用 §3. 软件重用 (Software Reuse) 知识 工程 • 源码剪贴 —— 无法溯源,无配置管理 • Include —— 修改后所有包含了此段代码的程 序都须重新编译。 • Inheritance —— 无须改动原有代码 想象一下,stdio.h 被改动之后…… 重用软件成分有三个级别: ① 代码重用:
s3.软件重用 ②设计重用—当移植系统时 ③分析重用—当需求未变,而系统结构改变时 重用效果的衡量 额外代价: 创建可重用成分的专门投资 多花2~4倍时间测试以保证质量 构件库的建立与维护需要投资 以上投资将分摊到重用这些构件的新系统成 本中。重用次数越多,分摊成本越少
9 §3. 软件重用 ② 设计重用 —— 当移植系统时 ③ 分析重用 —— 当需求未变,而系统结构改变时 重用效果的衡量: 额外代价: 创建可重用成分的专门投资 多花2 ~ 4倍时间测试以保证质量 构件库的建立与维护需要投资 以上投资将分摊到重用这些构件的新系统成 本中。重用次数越多,分摊成本越少
§4.系统分解 回顾SD:从DFD出发→PO OOD模型分解: Category 问题域人机交互任务管理数据管理 Class-&-Obiect Application <Human Task Data Structure Domain Computer Management Management Attribute Interface OD(HCI)ex
10 I P O 问题域 Application Domain 人机交互 Human- Computer Interface (HCI) 任务管理 Task Management 数据管理 Data Management Method Attribute Structure Class-&-Object Category §4. 系 统 分 解 回顾SD:从DFD出发 OOD模型分解: