第5章管理信息系统的面向对象开发方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
22
5.2.1 OOA模型与分析过程
⑴OOA的目标是为应用系统建立一个能反映问题域和系统功 能,独立于具体实现条件的OOA模型。OOA模型是由五个层 次叠加而成。 ①主题层。将关系密切的类及对象组织在一起作为一个主题, 整个系统由若干个主题构成。 ②类及对象层。给出直接反映问题域和系统功能的类及对象。 ③结构层。描述类及对象之间的结构关系,包括一般—特殊 结构和整体—部分结构。 ④属性层。定义类及对象的属性和实例连接。 ⑤服务层。定义类及对象的服务和消息连接。 这五个层次叠加在一起便构成一个类图。
2
5.1.1 面向对象方法的思想
一、面向对象方法的基本思想 基本思想:从现实世界中客观存在的事物(即对象)出发来 构造软件系统,并在构造系统时尽可能运用人们的自然思维 方式。面向对象方法强调直接以现实世界(问题域)中的事 物为中心来思考问题、认识问题,并根据这些事物的本质特 征,把它们抽象地表示为系统中的对象,作为系统的基本构 成单位。 面向对象方法强调运用人类在日常的逻辑思维中经常采用的 思想、方法与原则,例如抽象、分类、继承、聚合、封装等。 这样能够使得软件开发者能更有效地思考问题,并以人们能 看得懂的方式把自己的认识表达出来。
面向对象概述
面向对象的系统开发方法是从80年代各种面向对象的程序设 计方法(从Smalltalk到C++)逐步发展而来的。面向对象方法 从面向对象的角度为我们认识事物,进而为开发系统提供了 一种全新的方法。
1
5.1 面向对象方法的基本概念
面向对象方法最主要的应用范围是软件生命周期的各个阶段 (包括分析、设计、编程、测试与维护),以及它所涉及的 各个领域都已形成或正在形成面向对象的理论与技术体系。
15
五、消息
消息的定义 消息就是向对象发出的服务请求,它应该包括有:提供 服务的对象标识、服务标识、输入信息和应答信息。
消息协议 对外提供的每个服务应规定消息的格式。发送消息时, 在它的每个发送点上需要写出一个完整的消息,其内容 包括接收者(对象标识)、服务标识和符合消息协议要 求的参数。
16
六、结构与连接
6
⑵面向对象的设计
OOA针对问题域运用OO方法,建立一个反映问题域的OOA模 型,不考虑与系统的具体实现有关的因素,使得OOA模型独 立于具体实现。而面向对象的设计(OOD)则是针对系统的 一个具体的实现运用OO方法。 OOD阶段包括有两方面的工作: 一方面是把OOA模型不经过转换,仅做些必要的修改和调整 后直接搬到OOD中,作为OOD的一个部分; 另一方面是针对具体实现中的人机界面、数据存储、任务管 理等因素补充一些与实现有关的部分,而这部分采用的表示 法和模型结构与OOA相同。 面向对象的分析与设计与传统的软件工程方法相比,最大的 不同是:OOA与OOD采用一致的表示法,OOA到OOD之间不 存在传统方法中系统分析与设计之间的鸿沟,这样,也就降 低了从OOA过渡到OOD的难度。
26
⑵OOD过程包含的四个活动
OOD的四个活动: 问题域部分的设计 人机交互部分的设计 任务管理部分的设计 数据管理部分的设计
在上述的每个活动中都包含与OOA相同的五个活动:发现类 及对象、识别结构、识别主题、定义属性、定义服务。
27
对象 类 继承 结构与连接
11
一、对象
对象是描述现实世界中一个实际存在的事物,它可以是有形 的,也可以是无形的。 对象是构成客观世界的一个独立单位,一个对象由一组属性 和对这组属性进行操作的一组服务构成。 构成对象的两个主要因素是属性和服务。
属性。属性是用来描述对象静态特征的一个数据项。 服务。服务是用来描述对象动态特征的一个操作序列。
客观世界存在的事物(对象)既具有共同性,也具有特 殊性。我们运用抽象的原则舍弃对象的特殊性,抽取其 共同性。得到一个适应一批对象的类。这个类被称为一 般类。如果在这个类的范围内再增加其自身的一些特殊 性,则这个类称为特殊类。
一般类和特殊类之间是一种真包含的关系
13
三、继承
定义:特殊类的对象拥有其一般类的全部属性与服务, 则称为特殊类对一般类的继承。
18
⑵整体-部分结构
整体-部分结构用来描述对象之间的组成关系,它是由一组彼 此之间存在着这种组成关系的对象构成,客观世界中存在许 多这样的现象。
19
⑶实例连接
实例连接反映了对象与对象之间的静态联系。例如教师和学 生之间的任课关系,飞机与飞行员的驾驶关系等。这种双向 关系在实现中可以通过对象(实例)的属性表达出来(例如 用学生对象的属性表明他选了哪位教师的授课课程)。所以 这种关系称作实例连接。
继承的实现是由面向对象系统的继承机制来保证。它对 于支持软件复用是很有益的。
一个类可以是多个一般类的特殊类,它从多个一般类中 继承了属性与服务,这种继承模式称为多继承。多继承 无论从概念上,还是技术上都是单继承的推广。
14Biblioteka 四、封装⑴封装的定义 封装就是把对象的属性和服务结合成一个独立的系统单位, 并尽可能隐蔽对象的内部细节。 封装涵义:
20
⑷消息连接
消息连接描述了对象之间的动态联系,即若一个对象在执行 自己的服务时,需要通过消息请求另一个对象为它完成某个 服务,我们说第一个对象与第二个对象之间存在着消息连接。 消息连接是有向的,从消息发送者指向消息的接收者。
21
5.2 面向对象的系统分析
面向对象的分析(OOA)是面向对象的软件开发过程中直接 面对问题域的阶段,在这个阶段中建立的系统模型包括基本 模型和补充模型两部分,基本模型是以直观的方式表达了最 重要的系统信息,补充模型则提供了帮助理解基本模型的主 题图和反映系统如何满足用户需求的交互图。
23
5.2.1 OOA模型与分析过程(续)
⑵面向对象的系统分析过程就是针对OOA模型的五个层次进 行五个相关活动:
发现类及对象 识别结构 识别主题 定义属性 定义服务
24
5.3 面向对象的系统设计
一、OOD的特点 基于OOA的OOD有以下特点:
它是在面向对象的分析基础上,继续运用面向对象方法 进行系统设计,一般不依赖结构化分析的结果。
7
⑶面向对象的编程
面向对象的编程(OOP),是面向对象的软件开发最终落实 的重要阶段。OOP工作就是用同一种面向对象的编程语言把 OOD模型中的每个成分书写出来。
8
⑷面向对象的测试
面向对象的测试(OOT),是指对于用OO技术开发的软件, 在测试过程中继续运用OO技术进行以对象概念为中心的软件 测试。 OOT以对象的类作为基本测试单位,查错的范围主要是类定 义之内的属性和服务,以及有限的对外接口(消息)所涉及 的部分。有利于OOT的最大特性是对象的继承性,当对父类 测试完成后,子类的测试重点只需测试哪些新定义的属性和 服务。
25
二、面向对象的设计——OOD模型及设计过程
⑴OOD模型的四个部分 ①问题域部分(PDC)。将OOA结果搬到OOD,并根据实现 条件(如编程语言、可复用构件、机器性能、存储方案等) 做必要的补充与调整,其结果就是OOD的问题域。 ②人机交互部分(HIC)。根据选用的图形用户界面系统 (GUI)和特定用户对人机界面的要求而设计的系统人机界面。 只不过这个人机界面是按照面向对象的概念定义的关于人机 界面的类及对象构成。 ③任务管理部分(TMC)。用于定义系统中需要并发执行的 各个任务。每个任务用一个任务模板来表示。 ④数据管理部分(DMC)。按选定的数据管理系统而设计的 负责对象存储及检索的系统组成部分
为了使系统能够有效地映射问题域,系统开发者需要认识并 描述对象之间的几种关系:即对象的分类关系;对象之间的 组成关系;对象属性之间的静态联系;对象行为之间的动态 联系。 在面向对象的方法中,运用了一般-特殊结构、整体-部分 结构、实例连接和消息连接来描述对象之间的四种关系。
17
⑴一般-特殊结构
一般-特殊结构就是用来描述对象之间的分类关系。它是由一 组具有一般-特殊关系(继承关系)的类所组成的结构。 仅存在单继承关系的类形成的结构称为层次结构,它是一个 以类为结点,以继承关系为边的连通有向图。 由一些存在多继承关系的类形成的结构称为网络结构,它是 一个以一般类为根的树形结构,是一个半序的连通有向图。
9
⑸向对象的软件维护
面向对象的软件工程方法为改进软件维护提供了有效的途径。 程序与问题域是一致的,各个阶段的表示是一致的,从而大 大减少了对系统理解的难度。对象的封装性使得一个对象的 修改对其它对象影响很少,避免了由软件的维护、完善带来 的“波动效应”。
10
5.1.2 面向对象方法的基本概念
面向对象方法的定义:面向对象方法是一种运用对象、类、 封装、继承、聚合、消息传送、多态性等概念来构造系统的 软件开发方法。
与相应的OOA方法共同构成一个完整的OOA&D方法体 系。OOA与OOD采用一致的概念与原则,二者分别解 决软件生命周期中分析阶段和设计阶段的问题,有不同 的目标及策略。
比较全面地体现面向对象方法的概念与原则。 它是独立于编程语言的。即通过面向对象的分析与设计
所得到的系统模型可以由不同的编程语言来实现。
12
二、类
定义:类是具有相同属性和服务的一组对象的集合,它 为属于该类的全部对象提供了统一的抽象表述,其内部 包括属性和服务两个主要部分。
类与对象的关系如同一个模具与用这个模具铸造出来的 铸件之间的关系。类给出了属于该类的全部对象的抽象 定义,而对象则是符合这种定义的一个实体,即一个对 象是类的一个实例,而类也称作为对象的模板。
把对象的全部属性和全部服务结合在一起,形成一个不 可分割的独立单位,这个独立单位是对象。
尽可能隐蔽对象的内部细节,即信息隐蔽。封装不但是 面向对象方法的一个原则,也是面向对象技术必须提供 的一种机制。
⑵封装机制 在面向对象的语言中,把属性和服务结合起来定义成一 个程序单位,对象的外部不能直接存取对象的属性或调 用它的内部服务。
4
三、面向对象的软件工程方法
面向对象的软件工程方法是面向对象方法在软件工程领域的 全面运用。它包括:
面向对象的分析 面向对象的设计 面向对象的编程 面向对象的测试 面向对象的软件维护
5
⑴面向对象的分析
在面向对象的分析(OOA)阶段,强调直接针对问题域中客 观存在的各项事物设立OOA模型中的对象。用对象的属性和 服务分别描述事物的静态特征和行为。问题域中有哪些值得 考虑的事物,在OOA模型中就有哪些对象。 OOA对问题域的观察、分析和认识是很直接的,对问题域的 描述也是直接的。它和问题域中的事物保持了最大程度的一 致,不存在语言上的鸿沟。
3
二、面向对象方法的特点
⑴从问题域存在的事物出发来构造软件系统,用对象作为这 些事物的抽象表示,并以此作为系统的基本构成单位。 ⑵用对象的属性来表示事物的静态特征,而用对象的服务来 表示事物的动态特征。 ⑶将对象的属性和服务结合成一个独立的实体,封装起来对 外屏蔽其内部细节。 ⑷把具有相同属性和服务的对象归为一类,类是这些对象的 抽象描述,而每个对象是它的类的一个实例。 ⑸引用聚合来表示复杂的对象,即用简单对象作为复杂对象 的构成部分。 ⑹运用抽象的原则,可以得到较一般的类和较特殊的类,特 殊类是继承一般类的属性与服务。 ⑺对象之间动态联系的实现依赖于对象之间的消息通信,对 象之间的静态关系则通过关联来表达。
相关文档
最新文档