软件工程第七章面向对象方法学优秀课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
独立地定义和创建整体对象和部分对象,并在 整体对象中设置一个属性,它的值是部分对象 的对象标识,或者是一个指向部分对象的指针。
结构化及其他方法学并不能完全消除软件
危机。结构化及其他方法学仍然有许多不足之 处。对某些类型的软件开发,这种方法学比较 适用。对另一些类型的软件则可能完全不适用。
7.1.1 问题的表现
1. 生产效率低率 生命周期方法学中强调采用先进的结构分
析、设计、编程技术和软件工具的技术方法 不能满足软件的需要量急剧增长。
封装是面向对象方法的一个原则,也是面
向对象技术必须提供的一种机制。例如在面向 对象的语言中,要求把属性和服务结合起来定 义成一个程序单位,并通过编译系统保证对象 的外部不能直接存取对象的属性或调用它的内 部服务。这种机制就叫作封装机制。
强调严格的封装,则对象的任何属性都不 允许外部直接存取,因此就要增加许多没有其 它服务意义,而仅负责读或写的服务。这为编 程工作增加了负担。
类与对象的关系如同一个模具与用这个模 具铸造出来的铸件之间的关系。他们的关系可 以用图7.2表示。
图7.2 类与对象的关系
7.2.3 继承(inheritance)
继承是面向对象中的重要概念,在软件实 现中的重要手段。并且是面向对象技术可提高 软件开发效率的重要原因之一。
特殊类的对象拥有其一般类的全部属性与 服务,称作特殊类对一般类的继承。
对象有如下一些基本特点: 1. 以数据为中心。 2. 对象是主动的。 3. 实现了数据封装。 4. 本质上具有并行性。 5. 模块独立性好。
7.2.2 类(class)
类的定义: 类是具有相同属性和服务的一组对象的集
合,它为属于该类的全部对象提供了统一的抽 象描述,其内部包括属性和服务两个主要部分。
当一个对象是另一个(组)对象的组成或 部分,则称他们有整体-部分关系。整体-部 分结构由一组彼此间存在着这种组成关系的 对象构成。它描述对象之间的组成关系。即: 如图7--4所示。
图7--4整体-部分结构
整体-部分结构有两种实现方式。
用部分对象的类作为一种广义的数据类型来定 义整体对象的一个属性,构成一个嵌套对象。
一个特殊类既有自己新定义的属性和服务, 又有从它的一般类中继承下来的属性与服务。
继承的实现是通过面向对象系统的继承机 制来保证的。
继承关系具有传递性。
一个类可以是多个一般类的特殊类,它从
多个一般类中继承了属性与服务,这种继承模 式叫作多继承。
7.2.4封装(encapsulation)
封装就是把对象的属性服务结合成为一个 独立的系统单位,并尽可能隐蔽对象的内部细 节。
1. 结构化技术本身的问题 2. 预先定义的需求可能是过时 3. 语言鸿沟 4. 系统需求的模糊性
7.2 面向对象的基本概念
7.2.1 对象(object)
对象是实现世界中一个实际存在的事物,它可 以是有形的(比如一辆汽车),也可以是无形 的(比如一项计划)。
对象的定义:
对象是问题域或实现域中某些事物的一个 抽象,它反映该事物在系统中需要保存的信息 和发挥作用;它是一组属性和有权对这些属性 进行操作的一组服务的封装体。
软件工程第七章面向对 象方法学
第七章 面向对象方法学
7.1 传统方法学的缺点 7.2 面向对象的基本概念 7.3 对象模型 7.4 动态模型 7.5 功能模型
7.1 传统方法学的缺点
结构化及其他方法学的本质,是在具体的 软件开发工作开始之前,通过需求分析预先定 义软件需求。结构化及其他方法学部分地缓解 了软件危机,对软件开发工程化起了重要的促 进作用。
封装是一种信息隐蔽技术。封装是面向对 象方法的一个重要原则。它有两个涵义:
把对象的全部属性和全部服务结合在一起,形成 一个不可分割的独立单位。
尽可能隐蔽对象的内部细节,只保留有限的对外 接口使之与外部发生联系。
封装是一种机制,封装的信息隐蔽作用反 映了事物的相对独立性。
封装的原则在软件上的反映是:要求使对 象以外的部分不能随意存取对象的内部数据 (属性),从而有效地避免了外部错误对它的 “交叉感染”,使软件错误能够局部化。
2. 不能满足用户需要
3. 软件复用程度很低
结构分析、结构设计和结构程序设计技术开发软 件时,几乎每一次开发一个新系统时都要针对这个 具体的系统做大量重复繁琐的劳动。
4. 软件仍然很难维护
实践的经验告诉我们,即使是用生命周期方法学 开发出的软件,维护起来仍然相当困难,软件维护 成本仍然很高。
7.1.2 问题的原因
7.2.6结构与连接
为了完成某种功能,需要用消息将独立的 对象联系起来。在构造系统中,对象间关系不 仅仅是用消息的连接方式。为了使系统能够有 效地映射问题域,系统开发者需认识并描述对 象之间的的分类关系、对象之间的组成关系、 对象属性之间的静态联系和对象行为之间的动 态联系。
面向对象方法运用一般-特殊结构、整体部分结构、实例连接和消息连接描述对象之间 的关系。
面向对象方法中将这种向对象发出的服务 请求称作消息。
ቤተ መጻሕፍቲ ባይዱ
面向对象方法的另一个原则是通过消息进
行对象之间的通信。它与封装的的原则有密切 的关系。封装使对象成为互不干扰的独立单位; 而消息通信则为它们提供合法动态联系途径, 使它们互相配合构成一个系统。
面向对象方法中对消息的定义:
消息就是向对象发出的服务请求,它应该 含有下述信息:提供服务的对象标识、服务标 识、输入信息和回答信息。
1. 一般-特殊结构
一般-特殊结构是由一组具有一般-特殊关 系的类所组成的结构。它是一个以类为结合, 以继承关系为边的连通有向图。
如果是由一些存在单继承关系的类形成的 结构又称作层次结构或树型结构 ;
如果由一些存在多继承关系的类形成的结 构又称作网格结构 。
图7.3 一般 -- 特殊结构
2. 整体-部分结构
所以我们在用面向对象进行编写程序时,
总会觉得程序显得臃肿。为了避免这一点,语 言往往采取一种比较现实的灵活态度–––允许 对象有不同程度的可见性。
7.2.5消息(message)
对象是一个独立的单位,它通过对外提供 的服务在系统中发挥作用。而只有当系统中的 其它对象向它请求某个服务时,它就响应这个 请求,才能体现其作用。
相关文档
最新文档