第十一章OOD OOD的准则 启发式规则 软件重用 系统分解 设计问题域子系统 设计人一机交互子系统 设计任务管理子系统 设计数据管理子系统 设计类中的服务 设计关联 设计优化
第十一章 OOD • OOD的准则 • 启发式规则 • 软件重用 • 系统分解 • 设计问题域子系统 • 设计人—机交互子系统 • 设计任务管理子系统 • 设计数据管理子系统 • 设计类中的服务 • 设计关联 • 设计优化
OOD的准则 模块化 抽象 信息隐蔽 弱耦 交互耦合 继承耦合 强内聚 服务内聚 类内聚 般一特殊内聚 可重用
OOD的准则 • 模块化 • 抽象 • 信息隐蔽 • 弱耦合 – 交互耦合 – 继承耦合 • 强内聚 – 服务内聚 – 类内聚 – 一般—特殊内聚 • 可重用
启发式规则 设计结果应该清晰易懂 用词一致 使用已有的协议 减少消息模式的数目 避免模糊的定义 深度适 设计简单的类 避免包含过多的属性 有明确的类定义 尽量简化对象之间的合作关系 不要提供太多服务 使用简单的协议 把设计变动最小化
启发式规则 • 设计结果应该清晰易懂 – 用词一致 – 使用已有的协议 – 减少消息模式的数目 – 避免模糊的定义 • 深度适当 • 设计简单的类 – 避免包含过多的属性 – 有明确的类定义 – 尽量简化对象之间的合作关系 – 不要提供太多服务 • 使用简单的协议 • 把设计变动最小化
软件重用 重用的三个层次 知识重用 方法和标准的重用 软件成分的重用 软件成分重用的三个级别 代码重用 源代码剪贴 源代码包含 继承 设计结果重用 分析结果重用
软件重用 • 重用的三个层次 – 知识重用 – 方法和标准的重用 – 软件成分的重用 • 软件成分重用的三个级别 – 代码重用 • 源代码剪贴 • 源代码包含 • 继承 – 设计结果重用 – 分析结果重用
软件重用的效果 实现重用的代价 创建构件库的代价 保证可重用构件质量的代价 更新和维护构件库的代价 重用率与生产率的关系 生产率P=程序总长度 所用人时数1-(1-Cn/C2)R C为开发新代码的生产率; C.为重用开发的生产率; R为重用率:重用代码长度 程序总长度
软件重用的效果 • 实现重用的代价 – 创建构件库的代价 – 保证可重用构件质量的代价 – 更新和维护构件库的代价 • 重用率与生产率的关系