软件工程面向对象

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程面向对象
②重用方式:
§3. 软件重用
实例重用(instance reuse \ black-box reuse):
创建class的不同instances,通过messages完成
不同的任务。是最基本的重用方式。
用几个简单的objects创建出更复杂的class,
是实例重用的另一种形式
继承重用(inheritance reuse): 是一种安全地裁剪已有的class component的方式。
多态重用(polymorphism reuse): Parent class与child class有相同的对外接口,使 消息连接的复杂度降低。
1、概念: 知识重用(例如软件工程知识的重用)
方法和标准重用(例如OO方法和国家规定 的软件开发规范的重用)
知识 工程
软件成分的重用
重用软件成分有三个级别: ① 代码重用:
• 源码剪贴 —— 无法溯源,无配置管理
• Include —— 修改后所有包含了此段代码的程
序都须重新编译。
想象一下,stdio.h 被改动之后……
• Inheritance —— 无软须件工改程面动向对原象 有代码
② 设计重用 —— 当移植系统时
§3. 软件重用
③ 分析重用 —— 当需求未变,而系统结构改变时
2、重用效果的衡量:
⑴ 额外代价: 创建可重用成分的专门投资 多花2 ~ 4倍时间测试以保证质量 构件库的建立与维护需要投资 以上投资将分摊到重用这些构件的新系统成
§3. 软件重用
② 软件生成技术: 按照形式化的软件功能描述和一定的生成机
理,由生成器系统(generator system)自动生成目标程序。 重用的是generator 的代码规则
③ OO重用技术:Class component的重用(详见下文)
⑷ 类构件(Class component):
①可重用的软构件应具备的特点: 独立、可塑、接口清晰(文档详尽)
Productivity Lt Ln Lr Et En Er
Reusability =
Lr Lt
开发代码的生产率 C n
Ln En
重用新代码的生产率C r
Lr Er
P
Cn
软件工程1面向(对1象Cn/Cr )R
Q:是否R 越高P就越高?
§3. 软件重用
A:是,前提条件为Cn<Cr ,即重用比新开发效率高。
2、一般-特殊结构的深度应适当(约100个classes,则 设计7±2层)
软件工程面向对象
§2. 启发式规则
3、设计简单的class(定义不超过一页纸或两屏)。 应注意: ① 避免过多attributes; ② 能用简单的语句描述一个class的任务; ③ objects之间合作关系要简单; ④避免过多methods( 7个)。
过程抽象: 在SD中已讨论
数据抽象: Class即是一种抽象数据类型。外界无须知道实 现方法,按照类规格说明(即协议)可以使用合法的操作 符,利用这些操作对类实例中包含的数据进行操作。
参数抽象: 将数据类型作为参数处理。
软件工程面向对象
3、信息隐藏= 对象的封装
§1. OOD准则
4、耦合: 交互耦合(interactive coupling):通过传递message发生要
本中。重用次数越多,分摊成本越少。
软件工程面向对象
§3. 软件重用
⑵ 重用率(Reusability)与生产率(Productivity)
记:Lt = Total length of code ( # of lines)
Ln = Length of new code
Lr = Length of reused code Et 、En、 Er are the corresponding efforts ( # of m-d)
6、可重用(Reusability)(详见§3)
尽量使用已有的类 设计新类时考虑将来的可重复使用性 软件工程面向对象
§2. 启发式规则
1、设计结果清晰易懂,应做到: ① 用词一致 —— 按习惯用法命名。不同classes中 相似的methods最好取同一名字。 ② 使用已有的协议。 ③ 尽量减少message模式的数目。 ④ 避免模糊定义。
问题:设计出大量的classes,使结构复杂度增加。 解决:划分主题,提高可理解性。
4、使用简单的protocol,减少message 中传递的
parameters
5、使用简单的method(CASE 可考虑用 inheritance替代)。
6、把设计变动减至最小。 软件工程面向对象
§3. 软件重用 (Software Reuse)
⑶重用技术:指利用可重用的构件开发软件的技 术,及开发可重用软件的技术。
① 软件组合技术:
底层部件库法(Bottom-up compositional reuse) : 从可重用的代码部件库(reuse reposito程序的组合 软件工程面向对象
第十一章 面向对象设计
(Object-Oriented Design)
§1. OOD准则:优秀软件设计的一个重要特点是 容易维护
回顾:SD准则包括
模块化
抽象
信息隐藏 模块
对于 OOD有类似的准则: 1、模块 = 对象
软件工程面向对象
§1. OOD准则
2、抽象:抽出事物的本质特性, 暂不考虑其细节, 使设计从具体实现方法中超脱。
求 降低参数个数和参数复杂性 减少objects发送 \ 接收message的个数
as loose as possible
继承耦合(inheritance coupling): 要求 Parent class IS_A child class as high as possible
软件工程面向对象
§1. OOD准则
5、内聚: 服务内聚(service cohesion):一个服务只完成一个功能。
类内聚(class cohesion):一个类只有一个用途,否则分 解之。
一般-特殊内聚(general-particular cohesion):
High g-p cohesion High inheritance coupling
相关文档
最新文档