第9章面向对象方法学

合集下载

第9章 面向对象的分析设计方法

第9章  面向对象的分析设计方法

第9章 面向对象的分析设计方法
9.1 面向对象的分析与设计方法概 述
面向对象技术是当前的热门话题,也是软件开发方法 的潮流和方向。面向对象方法的形成最初是从面向对象程 序设计语言开始的,随后才逐渐形成了面向对象的分析和 设计。面向对象是近几十年来国内外IT行业最为关注的技 术之一,面向对象技术是一种按照人们对现实世界习惯的 认识论和思维方式来研究和模拟客观世界的方法学。它将 现实世界中的任何事物都视为“对象”,将客观世界看成 是由许多不同种类的对象构成的,每一个对象都有自己的 内部状态和运动规律,不同对象之间的相互联系和相互作 用就构成了完整的客观世界。面向对象方法(Object Oriented,简称OO方法)克服了传统的功能分解方法只能 单纯反映管理功能的结构状态、数据流程模型只侧重反映 事物的信息特征和流程、信息模拟只能被动地迎合实际问 题需要等缺点,构成以系统对象为研究中心,为信息管理 系统的分析与设计提供了一种全新的方法。
第9章 面向对象的分析设计方法
面向对象方法就是以对象为中心、以对象为出发点的方 法。在应用领域中有意义的、与所要解决的问题有关系的任 何人或事物(即我们说的实体)都可以作为对象,它既可以 是具体的物理实体的抽象,也可以是人为的概念,或者是任 何有明确边界和意义的事物或东西。在面向对象方法中,对 象是一组数据(属性)和施加于这些数据上的一组操作代码 (操作)构成的独立类体。换言之,对象是一个有着各种特 殊属性(数据)和行为方式(方法)的逻辑实体。对象是一 个封闭体,它向外界提供一组接口界面,外界通过这些接口 与对象进行交互,这样对象就具有较强的独立性、自治性和 模块性,从而为软件的重用奠定了坚实的基础。
第9章 面向对象的分析设计方法
第9章 面向对象的分析设计方法 章

《实用软件工程》第9章 面向对象设计

《实用软件工程》第9章 面向对象设计

• 信息隐藏:对于类而言,其内部信息如属性的表示方法和操作的实现算法,对 外界是隐藏的。外界通过有限的接口来访问类的内部信息。
17
9.3.2 面向对象设计的原则
• 低耦合:在面向对象设计中,耦合主要指对象之间相互关联的紧密程度,低耦 合有利于降低一个模块改变对其他模块的影响。
• 高内聚:内聚与耦合密切相关,低耦合往往意味着高内聚,高内聚有助于提高 系统独立性。
但随着需求理解的加深,以及对系统认识程度的逐步 提高,设计人员还要对模型进行修正和完善。 • 设计任务管理子系统包括确定任务,分配任务,还包 括权衡一致性、成本、性能等因素以及未来可扩充性。 • 设计数据管理子系统,需要设计数据格式以及相应的 服务,设计数据格式的方法与所用的数据存储管理模 式密切相关,不同数据存储管理模式时,属性和服务 的设计方法是不同的。
9.2 面向对象设计与面向对象分析的关系
• 设计阶段的任务是及时把分析阶段得到的需求转变成符合各项要求的 系统实现方案。与传统的软件工程方法不同的是,面向对象的方法不强调 需求分析和软件设计的严格区分。实际上,面向对象的需求分析和面向对 象的设计活动是一个反复迭代的过程,从分析到设计的过渡,是一个逐渐 扩充、细化和完善分析阶段所得到的各种模型的过程。严格的意义上来讲, 从面向对象分析到面向对象设计不存在转换问题,而是同一种表示方法在 不同范围的运用。面向对象设计也不仅仅是对面向对象分析模型进行细化。
• (2)人机交互子系统包括有效的人机交互所需的显示和输入,这些类在很大程度上 依赖于所用的图形用户界面环境,例如Windows、Delphi、C++,而且可能包括“窗 口”、“菜单”、“滚动条”、“按钮”等针对项目的特殊类。
25
9.5.1 系统分解

面向对象方法名词解释

面向对象方法名词解释

面向对象方法名词解释
面向对象方法(Object-Oriented Method)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO (Object-Oriented)方法,是建立在“对象”概念基础上的方法学。

面向对象方法认为,对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。

而每继承性是对具有层次关系的类的属性和操作进行共享的一种方式。

所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。

面向对象方法作为一种新型的独具优越性的新方法正引起全世界越来越广泛的关注和高度的重视,它被誉为"研究高技术的好方法",更是当前计算机界关心的重点。

《软件工程导论》课后习题答案

《软件工程导论》课后习题答案
23:59:38
作业及解答(第3章)
• 数据结构的描述 符 号
= +
含 义
x = a+b


被定义为 与 或
[...,...] 或 [...|...] { ... }或 m{...}n (...) “...” ..
23:59:38
x = [a , b],x = [a | b] 重复 x = {a}, x = 3{a}8 可选 x = (a) 基本数据元素 x = “a” 连结符 x = 1..9
P1 记录存款信息
P2 打印存单 F5存款信息 F3存单 E1 储户 F4利息
F5存款信息 D1存款信息 F7密码 F2取款单
F5存款信息 P3 核算密码
F4利息 F4利息 F6取款信息 P6 设置利率 P4 计算利息
P5 打印利息清单 F8储蓄利率
E2 业务员
23:59:38
F8储蓄利率
F8储蓄利率
23:59:38
重庆工学院计算机科学与工程学院 李梁(liliang@) 李梁
作业及解答( 作业及解答(第3章)
23:59:38
重庆工学院计算机科学与工程学院 李梁(liliang@) 李梁
作业及解答( 作业及解答(第3章)
• 3-6 复印机的工作过程大致如下:未接到复印 命令时处于闲置状态,一旦接到复印命令则进 入复印状态,完成一个复印命令规定的工作后 又回到闲置状态,等待下一个复印命令;如果 执行复印命令时发现没纸,则进入缺纸状态, 发出警告,等待装纸,装满纸后进入闲置状态, 准备接收复印命令;如果复印时发生卡纸故障, 则进入卡纸状态,发出警告等待维修人员来排 除故障,故障排除后回到闲置状态。 • 请用状态转换图描绘复印机的行为。

第9章 面向对象编程习题及答案

第9章 面向对象编程习题及答案

1、关于python类说法错误的是:A 类的实例方法必须创建对象后才可以调用B 类的实例方法必须创建对象前才可以调用C 类的类方法可以用对象和类名来调用D 类的静态属性可以用类名和对象来调用答案:B2、如下类的定义,下列描述错误的是?class A(object):passclass B(A):passb=B()A、i sinstance(b,A)==TrueB、isinstance(b,object)==TrueC、i ssubclass(B,A)==TrueD、i ssubclass(b,B)==True答案:D3、定义类如下class Hello():def __init__(self,name)=namedef showInfo(self)print()下面代码能正常执行的:A、h = Helloh.showInfo()B、h = Hello()h.showInfo(‘张三’)C、h = Hello(‘张三’)h.showInfo()D、h = Hello(‘admin’)showInfo答案:C4、导入模块的方式错误的是:A、i mport moB、from mo import *C、i mport mo as mD、i mport m from mo答案:D5、以下关于模块说法错误的是:A、一个xx.py就是一个模块B、任何一个普通的xx.py文件可以作为模块导入C、模块文件的扩展名不一定是 .pyD、运行时会从制定的目录搜索导入的模块,如果没有,会报错异常答案:C6、多重继承的执行顺序,请解答以下输出结果是什么?并解释。

class A(object):def __init__(self):print('A')super(A, self).__init__()class B(object):def __init__(self):print('B')super(B, self).__init__()class C(A):def __init__(self):print('C')super(C, self).__init__()class D(A):def __init__(self):print('D')super(D, self).__init__()class E(B, C):def __init__(self):print('E')super(E, self).__init__()class F(C, B, D):def __init__(self):print('F')super(F, self).__init__()class G(D, B):def __init__(self):print('G')super(G, self).__init__()g = G()f = F()答案:GDABFCBDA7、编写程序,创建类Temperature,其包含成员变量degree(表示温度)以及实例方法ToFahrenheit(将摄氏温度转换为华氏温度)和ToCelsius(将华氏温度转换为摄氏温度),其中,(华氏度-32)*5/9=摄氏度,摄氏度*9/5+32=华氏度答案:class Temperature:def __init__(self, degree):self.degree = degreedef toFahrenheit(self):return self.degree*9/5 + 32def toCelsius(self):return (self.degree -32) * 5/9n1 = float(input("请输入摄氏温度:"))t1 = Temperature(n1)print("摄氏温度= {0:.2f},华氏温度= {1:.2f}".format(n1, t1.toFahrenheit()))n2 = float(input("请输入华氏温度:"))t2 = Temperature(n2)print("摄氏温度= {0:.2f},华氏温度= {1:.2f}".format(t2.toCelsius(), n2))8、定义一个至少有两个方法的类: getString:从控制台输入获取字符串 printString:打印输入字符串对应的大写形式。

面向对象方法学

面向对象方法学
2、软件生存期各阶段所使用旳措施、技术具有高度 旳连续性。 使用喷泉模型作为其工作模型,软件生存期各 阶段没有明显旳界线,开发过程回溯重叠,使用 相同旳描述措施和模型。
7
面对对象措施旳主要特点(续)
3、软件开发各个阶段有机集成,有利于系统旳稳定 性。 将OOA(Object-Oriented Analysis)、 OOD(Object-Oriented Design)、OOP(ObjectOriented Program)有机地集成在一起。
22
七、构造与连接
• 1、一般-特殊旳构造
又称为分类构造(classification structure), 由一组具有“一般-特殊”关系(继承关系)旳类 构成。是一种以类为结点,以继承关系为边旳连 通有向图。
单重继承构成旳类之间旳关系
交通工具
是层次构造(hierarchy
structure)是一棵树。
• 多态性增强了软件旳灵活性和重用性,允 许用更为明确、易懂旳方式去建立通用软 件,多态性和继承性相结合使软件具有更 广泛旳重用性和可扩充性。
18
四、消息
• 消息(Message)是指对象之间在交互中所传送旳 通信信息。一种消息应该包括下列信息:消息名、 接受消息对象旳标识、服务标识 、消息和措施、 输入信息、回答信息。使对象之间相互联络、协 同工作,实现系统旳多种服务。
• 一般一种对象向另一种对象发送信息祈求某项服 务,接受对象响应该消息,激发所要求旳服务操 作,并将操作成果返回给祈求服务旳对象。
• 注意:在并发系统中,多种控制线程(Thread of Control)并发执行,情况就复杂得多,消息能够 是发出服务祈求、提交数据、公布事件信息或是 传递同步控制信息。

第9章面向对象方法学

第9章面向对象方法学

(三) 面向对象的概念
1. 对象
在应用领域中有意义的、与所要解决的 问题有关系的任何事物都可以作为对象。 它既可以是具体的物理实体的抽象,也 可以是人为的概念,或者是任何有明确边界和 意义的东西。
客观世界的问题看成对象取决于应用的 视角和问题的性质。 当你在路上找人,你看到的对象就是流 动的人群; 当你需要出租车,你看到的对象就是过 往的车辆。
当对象 MyCircle 接受到这个消息后, 执行Circle类中所定义的 Show 操作。 注意: 1)消息由接受消息的对象来解释。 (MyCircle 就是接受消息的对象) 2)一个对象需要另一个对象服务时,就向 它发出请求服务的消息。这时,接受消息 的对象响应消息,触发所要求服务的操作 的方法来完成服务。
OO技术以对象(object)为核心,把静态 属性的数据,和对这些数据施加的操作封装在 一起所构成的统一体。
2. 稳定性好 面向对象的软件系统的结构是根据问题 领域的模型建立起来的。 (而传统方法是基于系统的功能的分解。) 当对系统的功能需求变化时并不会引起 软件结构的整体变化。因此,以对象为中心构 造的软件系统也是比较稳定的。
7. 封装(encapsulation) 从字面上理解,所谓封装就是把某个事物 包起来,使外界不知道该事物的具体内容。 对象具有封装性的条件如下: (1) 有一个清晰的边界。 (2) 有确定的接口。这些接口就是对象可 以接受的消息,只能通过向对象发送消息来使 用它。 (3) 受保护的内部实现。实现对象功能的 细节(私有数据和代码)不能在定义该对象的 类的范围外访问。
一. 传统方法学的问题
(一) 软件不能真正满足用户需求
1. 软件开发效率低 2. 软件不能满足“需求变化”、“需求模糊” 和“需求灵活性” 3. 软件重用度低 4. 软件仍然很难维护

第九章软件工程面向对象实现

第九章软件工程面向对象实现
着眼长远,反复考虑、精心设计。 主要准则: ① 提高方法的内聚 一个方法(服务)应只完成单个功能,若某个方法涉及两个或 多个不相关的功能,则应将其分解为几个更小的方法。
② 减小方法的规模 若某个方法规模过大(代码长度超过一页纸),即应将其分
解为几个更小的方法。 ③ 保持方法的一致性
一般而言,功能相似的方法应有一致的名字、参数特征(包括参数 个数、类型、次序)、返回值类型、使用条件及出错条件等。
同样,属性和关联也可分为公有和私有两大类,公有属性或关 联又可进一步设置为具有只读权限或只写权限两类。
3、提高健壮性
编写实现方法的代码时,既应考虑效率,也应考虑健壮性,通 常需要在健壮性与效率之间做适当的折衷。
作为软件不可忽视的质量指标。提高健壮性应遵守如下准则: ① 预防用户的操作错误
软件系统必须具有处理用户操作错误的能力。当用户在输入数据时发 生错误,不应该引起程序运行中断,更不应该造成“死机”。
若在执行过程中发现错误,仅返回执行状态。由于实现方法是自含式算法,相 对独立于具体应用,因此在其他应用系统中也可能重用它们。
为提高可重用性,在编程时不应将策略和实现放在同一个方法中,而应将算法 的核心部分放在一个单独的具体实现方法中。为此需要从策略方法中提取具体参 数,作为调用实现方法的变元。
⑤ 全面覆盖 若输入条件的各种组合都可能出现时,应针对所有组合写出方
2、提高可扩充性
上述提高可重用性的准则,也能提高程序的可扩充性。 此外,以下面向对象程序设计准则也有助于提高可扩充性。 ① 封装实现策略
将类的实现策略(包括描述属性的数据结构、修改属性的算法 等)封装起来,对外只提供公有的接口,否则将降低今后修改数 据结构或算法的自由度。 ② 避免用一个方法遍历多条关联链

管理信息系统第九章 面向对象的分析与设计

管理信息系统第九章 面向对象的分析与设计
构成对象的基本要素: ➢ 标识:即是对象的名称,用来在问题域中区分其它对 象; ➢ 数据:描述对象属性的数据或数据结构,表明对象的 一个状态; ➢ 操作:即对象的行为。分为对象自身承受的操作和施 加于其它对象的操作; ➢ 接口:主要指对外接口,是指对象受理外部消息所指 定的操作名称集合。
一、对象的基本概念 -2
对象、类和消ห้องสมุดไป่ตู้传递
二、类的继承 -1
类的层次
实际应用中,事物分类很难一蹴而就,往往要先进行粗分 类,再进一步细分,最终使分类相互联系而形成完整系统结构.继 承是类之间的重要关系,依赖继承机制,可由类产生对象,或由已 知类定义其它类.
继承是指一个类(即称子类)因承袭而具有另一个类 (或称父类)的能力和特征的机制或关系。
称为OOPL)。50年代后期,在用FORTRAN 语言编写大型程序时,常出现变量名在程序不 同部分发生冲突的问题。鉴于此,ALGOL语 言的设计者在ALGOL60中采用了以 "Begin……End"为标识的程序块,使块内变 量名是局部的,以避免它们与程序中块外的同 名变量相冲突。这是编程语言中首次提供封装 (保护)的尝试。此后程序块结构广泛用于高 级语言如Pascal 、Ada、C之中。
有继承关系的类之间应具有如下特性: 类间具有共享特征(包括数据和程序代码的共享); 类间具有细微的差别或新增部分(包括非共享程序代码 和数据); 类间具有层次结构。
二、类的继承 -2
类的层次
例如,飞机和交通工具都是类,它们之间的关系是“is a”关系,飞机是 一种特殊的交通工具。
通常,越上层的类越具有一般性和共性,越下层的类越特殊、越具体。
OOD是把系统所要求解的问题分解为一些对象及对象间传 递消息的过程;

张海藩《软件工程导论》(第6版)(课后习题 第9章 面向对象方法学引论)【圣才出品】

张海藩《软件工程导论》(第6版)(课后习题 第9章 面向对象方法学引论)【圣才出品】

第9章面向对象方法学引论1.什么是面向对象方法学?它有哪些优点?答:(1)面向对象方法学是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类解决问题的方法与过程,使描述问题的问题空间与实现解法的解空间在结构上尽可能一致的方法学科。

(2)面向对象方法学优点:①与人类习惯的思维方法一致。

②面向对象软件稳定性好。

③面向对象软件可重用性好。

④较易开发大型软件产品。

⑤可维护性好。

2.什么是“对象”?它与传统的数据有何异同?答:(1)对象是对问题域中某个实体的抽象。

(2)相对于传统数据结构的静态被处理,对象既有静态的属性,也有动态的行为,是进行处理的主体。

3.什么是“类”?答:类是对具有相同数据结构和相同操作的一组组相似对象的定义,即类是对具有相同属性和行为的一个或多个对象的描述,包括对怎样创建该类的新对象的说明。

4.什么是“继承”?答:继承是指能够直接获得已有的性质和特征,而不必重复定义它们。

在面向对象的软件技术中,继承是子类自动地共享基类中定义的数据和方法的机制。

5.什么是模型?开发软件为何要建模?答:(1)模型是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。

模型由一组图示符号和组织这些符号的规则组成,利用它们来定义和描述问题域中的术语和概念。

模型是一种思考工具,利用这种工具可以把知识规范地表示出来。

(2)由于建模忽略了事物的非本质属性,因此模型比原始事物更容易操作。

对于那些因过分复杂而不能直接理解的系统,特别需要建立模型,模型通过吧系统的重要部分分解成人的头脑一次能处理的若干个子部分,从而减少了系统的复杂程度。

6.什么是对象模型?建立对象模型时主要使用哪些图形符号?这些符号的含义是什么?答:(1)对象模型表示静态的、结构化的系统的数据性质。

它是对模拟客观世界实体的对象以及对象彼此间的关系的映射,描述了系统的静态结构。

(2)通常使用UML提供的类图来建立对象模型。

(3)在UML中“类”的实际含义是。

计算机科学与技术专业课课件_软件工程SE_Chapter9

计算机科学与技术专业课课件_软件工程SE_Chapter9

●实现了数据封装。
●本质上具有并行性。 ●模块独立性好(信息内聚)。
2013-8-31 上海大学计算机学院 10
一些概念
◆类
具有相同数据和相同操作的一组相似对象的集合
◆实例
由某个特定的类所描述的一个具体的对象
◆消息(Message)
要求某个对象执行在定义它的那个类中所定义的某个 操作的规格说明。
◆方法(Method)
传统方法
解空间与问题空间不一致 以算法为核心,数据和过程分离。 软件系统由模块组成,模块间通过调 用来集成系统。 自顶向下按部就班。 总存在用错误的数据调用正确的模块, 或用正确的数据调用错误的模块的危险。
稳定性
较好 较差 功能需求变化仅需要作一些局部性的修改 基于功能分解,需求变化大多针对功能 可派生子类以实现功能扩充或修改 功能变化引起软件结构的整体修改 较好 较差 通过对象实例或派生类 标准函数库不是自含的和独立的 方便修改和扩充,且不影响原有类的使用 模块重用,则相应的数据也必须重用。 较易 可分解成相互独立的小产品 较好
第9章
面向对象方法学引论
◆面向对象方法学概述 ◆面向对象的概念 ◆面向对象建模 ◆对象模型 ◆动态模型 ◆功能模型 ◆3种模型之间的关系
2013-8-31上海大学计算机学院 Nhomakorabea1
面向对象方法学概述
◆ 传统的软件工程方法学
● 中、小规模软件项目都获得了成功 ● 部分地缓解了软件危机
◆面向对象方法学
●发展
2013-8-31 上海大学计算机学院 9
对象
对象是封装了数据结构及可以施加在这些数据结 构上的操作(服务或方法)的封装体。 对象∷=〈ID,MS,DS,MI〉其中,

第09-3章(Coad与Yourdon方法)

第09-3章(Coad与Yourdon方法)

识别类以及结构
4.识别类以及结构 识别类,对类进行划分,也就是结构的认定。结构是指多种对 象的组织方式,用来反映问题空间中的复杂事物和复杂关 系。 有两种结构: ● 分类结构 分类结构针对的是事物类别之间的组织关系;通常可以进行层 次划分,思维方式是从一般性到特殊性(由顶向下,由底 向上)得到的是继承关系。
连接属性
连接属性:连接属性又称为链属性,链属性是关联中连接的 一个特性,每一个连接属性都有一个值(属性值)。连接 属性是一个集合。 在OMT中,连接属性用“信箱”表示。例如,文件与用户连 接的连接特性有“允许访问”,即反映了用户对文件的访 问权。
对象图的例子,一家公司的对象模型。
主题
5.定义主题 定义主题即划分主题,主题(Subjects)是一种抽象机制, 是一种思维的产物。从实际开发经验总结而来。 当问题比较复杂时,例如,涉及到成百上千个类和对象时, 由于受到人思维能力的限制,可能会造成理解上的混乱。 这时,要对类和对象作进一步的抽象处理,OOA引进主 题词机制。 主题词机制的核心思想是,将关系比较密切的紧耦合类和 对象划分为一组,作为一个主题词的内容,主题词直观 上看是一个名词或名词短语,与对象名类似,只是抽象 程度不同。 主题起一种控制作用,实际上是对类进行分组,是一种类 的划分方法,从粗到细的过程,按问题领域而不是按功 能划分主题。也就是以主题分组,应把着眼点放在主题 词中。
类与对象的识别
类与对象的识别 通常,在问题解的描述中,找出名词或名词短语做候选对 象,找动词作为方法(服务)。 例子,问题陈述:开发一个非常简单的字处理程序。 解的描述:这个字处理系统允许用户产生文档;所产生的 文档存储在一个用户目录中;用户可以打印和显示文 档;文档可以被改变;文档可以从用户目录删除。 ·潜在(候选)对象(可能成为对象)形式 例如:外部实体(分类结构和组装结构)、概念实体(政 策,版权法)、记忆的事件(飞行,访问)、各种角 色(教师,医生)、位置场所、组织部门、单位(计 算机系,财务处)、设备等等。

张海藩《软件工程导论》(第6版)(章节题库 第9章 面向对象方法学引论)【圣才出品】

张海藩《软件工程导论》(第6版)(章节题库 第9章 面向对象方法学引论)【圣才出品】
5 / 17
圣才电子书 十万种考研考证电子书、题库视频学习平台

7.通过执行对象的操作改变该对象的属性,但它必须通过( )的传递。 A.接口 B.消息 C.信息 D.操作 【答案】B 【解析】对象之间进行通信的构造叫做消息。在对象的操作中,当一个消息发送到某个 对象时,消息包含接收对象去执行某种操作的信息。接收信息的对象经过解释,然后给予响 应。这种通信机制称为信息传递。所以必须通过消息的传递,才能通过执行对象的操作改变 对象的属性。

14.主要的对象类型有_____、_____、_____和_____。 【答案】有形实体;作用;事件;性能说明
15.在类描述模板中,应该给出每个属性的详细说明,主要包括下述信息:_____、_____、 _____、_____。
【答案】属性的说明;属性的数据类型;属性所体现的关系;实现要求及其他 二、填空题 1.对象模型的描述工具是( )。 A.状态图 B.数据流图 C.对象图 D.结构图 【答案】C 【解析】对象模型描述系统中对象的静态结构、对象之间的关系、对象的属性、对象的 操作。对象模型表示结构上的、系统的“数据”特征。对象模型用包含对象和类的对象图来 表示。
6.在软件工程学中,我们把一组具有相同数据结构和相同操作对象的集合定义为 ( ),此定义包括一组数据属性和在数据上的一组合法操作。
A.类 B.属性 C.对象 D.消息 【答案】A 【解析】具有相同数据结构和操作的对象被定义为类;对象的特性、状态称为属性;对 象是类的一个实例;消息是对象之间信息传递的方式。
圣才电子书 十万种考研考证电子书、题库视频学习平台

第 9 章 面向对象方法学引论
一、选择题 1.对象的抽象是_____,类的实例化是_____。 【答案】类;对象

第9章 面向对象方法学

第9章 面向对象方法学

第9章面向对象方法学一、填空题(10小题)1、对象具有状态,描述对象的状态用它的()。

答案:属性值2、类具有属性,描述类的属性用()。

答案:数据结构3、子类自动共享父类的属性和操作的机制称为()。

答案:继承4、封装性是指所有软件部件内部都有明确的()以及清楚的()。

每个软件部件都有友好的(),软件部件的()与()分离。

答案:范围、外部边界、界面接口、内部实现、外部可访问性5、结构化方法的本质是(),其()、可修改性和可重用性都比较差。

答案:功能分解、稳定性6、动态模型描述了系统的()。

答案:动态行为7、类具有属性,它是对象的()的抽象,用()来描述类的属性。

答案:状态、数据结构8、动态模型描述了系统的()结构。

答案:控制9、对象具有状态,对象用()来描述它的状态。

答案:数据值10、在C++和C中有一个()函数,可以使用这个过程来说明构成系统主要对象的那些类的实例。

答案:main()二、单项选择题(20小题)1、在确定类时,所有()是候选的类。

A、名词B、形容词C、动词D、代词答案:A2、面向对象软件技术的许多强有力的功能和突出的优点,都来源于把类组织成一个层次结构的系统,一个类的上层可以有父类,下层可以有子类,这种层次结构系统的一个重要性质是(),一个类获得其父类的全部描述(数据和操作)。

A、传递性B、继承性C、复用性D、并行性答案:B3、对象是面向对象开发方法的基本成分,每个对象可用它本身的一组()和它可以执行的一组操作来定义。

A、服务B、参数C、属性D、调用答案:C4、面向对象开发方法子概念和表示上的一致性保证了分析和设计的()过渡。

A、困难B、不容易C、平滑D、顺序答案:C5、以下说法正确的是()。

A、组装结构可用来描述现实世界中的一般的抽象关系B、分类结构可用来描述现实世界中的类的组成的抽象关系C、面向对象的继承性是子类自动共享父类数据结构和方法的机制D、面向对象的唯一性是指将具有一致性的数据结构(属性)和行为(操作)的对象抽象成类答案:C6、与事件联系在一起的瞬时操作是()。

《软件详细设计教程》课件第9章

《软件详细设计教程》课件第9章

第9章 面向对象分析
上述五个层次对应着在面向对象分析过程中建立对象模 型的五项主要活动:找出类与对象;识别结构;识别主题; 定义属性;定义服务。必须强调指出的是,我们说的是“五 项活动”,而没有说五个步骤。事实上,这五项工作完全没 有必要顺序完成,也无须彻底完成一项工作以后再开始另外 一项工作。虽然这五项活动的抽象层次不同,但是在进行面 向对象分析时并不需要严格遵守自顶向下的原则。人们往往 喜欢先在一个较高的抽象层次上工作,如果在思考过程中突 然想到一个具体事物,就会把注意力转移到深入分析发掘这 个具体领域上,然后又返回到原先所在的较高的抽象层次。 例如,分析员找出一个类与对象,想到在这个类中应该包含 的一个服务,于是把这个服务的名字写在服务层,然后又返 回到类与对象层,继续寻找问题域中的另一个类与对象。
第9章 面向对象分析
终端与相应的分行计算机通信,分行计算机具体处理针对某 个账户的事务并且维护账户。
拥有银行账户的储户有权申请领取现金兑换卡,使用现 金兑换卡可以通过ATM访问自己的账户。目前仅限于用现 金兑换卡在ATM上提取现金(即取款),或查询有关自己账户 的信息(例如某个指定账户上的余额)。将来可能还要求使用 ATM办理转账、存款等事务。
第9章 面向对象分析
9.2 需 求 陈 述
9.2.1 书写要点 通常,需求陈述的内容包括:问题范围、功能需求、性
能需求、应用环境及假设条件等。总之,需求陈述应该阐明 “做什么”而不是“怎样做”。它应该描述用户的需求而不 是提出解决问题的方法;应该指出哪些是系统必要的性质, 哪些是任选的性质;应该避免对设计策略施加过多的约束, 也不要描述系统的内部结构,因为这样做将限制实现的灵活 性。对系统性能及系统与外界环境交互协议的描述,是合适 的需求。此外,对采用的软件工程标准、模块构造准则、将 来可能做的扩充以及可维护性要求等方面的描述,也都是适 当的需求。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

--意义

允许每个对象以自己最合适的方式去响应共同的消 息,从而增强软件的灵活性和可复用性。
9.2 面向对象的概念

多态性的示例
海尔 长虹 TCL
9.3 面向对象建模
建立问题模型是人们理解表达问题的方法之一。 模型是对事物作出的一种抽象,是对事物的一
种形式化的描述。 模型常由专门的语言 (一组图示符号和规则)来 描述. 面向对象建模就是根据面向对象观点(模拟人类 习惯的思维方式)建立问题的解模式. 面向对象的 实现能将此模式在计算机上实施.
(2) 面向对象
UML还吸取了面向对象技术领域中其他流派的长处。UML符号表示 考虑了各种方法的图形表示,删掉了大量易引起混乱的、多余的和极 少使用的符号,也添加了一些新符号。 9.3 面向对象建模
(3) 可视化、表示能力强
事件指对象之间一次消息的传递

多个事件按照时间顺序可构成事件序列
消息 vs. 事件:静 vs. 动
9.2 面向对象的概念

消息与对象

一个对象能接收不同形式不同内容的多个消息。 相同形式的消息可以送往不同的对象。 对于相同形式的消息,不同对象可以有 不同的解释,可以作出 不同的反映。

消息与方法
面向对象方法是一种新的思维方法,它是把程 序看作是相互协作而又彼此独立的对象的集合。 这样就减小了语义断层:系统中解空间对象可以 直接模拟问题空间的对象,解空间与问题空间 的结构十分一致。

9.1 面向对象方法学概述
面向对象方法具有下述4个要点: (1)认为客观世界是由各种对象组成的,任何事物都 是对象,复杂的对象可以由比较简单的对象以某种 方式组合而成。因此,面向对象的软件系统是由对 象组成的。 (2)类(class)是对一组对象的抽象,集中了该组对象 的共同特性(一组数据和一组方法)。对象是类的 实例。
9.1 面向对象方法学概述
与传统方法相反,面向对象方法是一种以数据 或信息为主线,把数据和处理相结合的方法。 面向对象方法把对象作为由数据及可以施加在 这些数据上的操作所构成的统一体。 对象与传统的数据有本质区别,它不是被动地 等待外界对它施加操作,相反,它是进行处理 的主体。

9.1 面向对象方法学概述
9.2 面向对象的概念

类的两种图形记法:
类名 属性:
例: Teacher类
teacher
操作
Username Password
属性: classes 操作:
Addclass() Removeclass()
9.2 面向对象的概念

对象

状态:张三,30岁,计算机系,讲师,1000元 行为:提职称,调工资
统一建模语言UML
2000年 (计划的较小修订) 1999
<documents> UML 1.4 <documents> UML 1.3 <documents> UML 1.2 <documents> UML 1.1 <documents> UML1.0 <documents> UML 2.0
1998 1997年9月最后 提交给OMG 1997年1月最 初提交给 OMG 1996 1995
9.4 对象模型
对象模型表示静态的、结构化的系统的“数据” 性质。它是对模拟客观世界实体的对象以及对 象彼此间的关系的映射,描述了系统的静态结 构。
用UML表达的对象模型由类图(类和类间关系)构 成.
9.4.1 类图的基本符号
类图描述类及类与类之间的静态关系。类图是一种 静态模型,它是创建其他UML图的基础。一个系统 可以由多张类图来描述,一个类也可以出现在几张 类图中。 1. 定义类 UML中类的图形符号为长方形,用两条横线把长方 形分成上、中、下3个区域(下面两个区域可省 略),3个区域分别放类的名字、属性和服务,如 图9.5所示。
9.4.1 类图的基本符号 2. 定义属性
UML描述属性的语法格式如下: [可见性] 属性名: 类型名=初值 {性质串} ——类的属性中还可以有一种能被该类所有对象共享的 属性,称为类的作用域属性,也称为类变量。C++语言 中静态数据成员就是这样的属性,在类图中表示为带下 划线的属性。 例如:发货单类的类变量“货单数”: -货单数:Integer



在问题空间中……
“人以类聚,物以群分” 类代表着具有类似性质的一组对象 类中的每一个对象即为类的不同实例 (instance)
在解空间 (计算机系统) 中……



类是对一组对象的抽象,集中了该组对象的共同特性。 在构造软件时,类实际上是具有特定功能的模块,其代码由该 种所有对象所共享。 类 vs. 对象:静 vs. 动。

类 (教师)

属性:姓名,年龄,系别,职称,工资 操作:提职称,调工资 方法 (指操作的具体代码实现)

实际上,类是创建对象的模板!
9.2 面向对象的概念

消息和事件(message & event) 消息是对象之间进行通信的构造或结构

消息分为请求消息和完成消息两种 (由消息模式描述) 消息模式:发送对象、接收对象、内容
9.1 面向对象方法学概述

对象?(面向对象语言)
在问题空间中,对象是…… • 现实世界中存在的实体 • 应用所关心的抽象概念、规则、事件、或者具有明 确边界和意义的具体事物
在解空间 (计算机系统) 中,对象是…… • 问题空间中的对象在计算机系统中的表示 • 封装 (encapsulation) 了数据和行为的通信单位
9.1 面向对象方法学概述
•面向对象方法学的要点
现实世界
领域知识 抽象
生成知识 设计知识 模拟 解空间 (计算机系统) 实现域
问题空间 问题域
9.1 面向对象方法学概述

客观世界中的实体既具有静态的属性又具有动 态的行为。然而传统语言提供的解空间对象实 质上却仅是描述实体属性的数据,必须在程序 中从外部对它施加操作,才能模拟它的行为。
9.3 面向对象建模
面向对象方法需要建立3种形式的模型:
1)描述系统数据结构的对象模型 2)描述系统控制结构的动态模型 3)描述系统功能的功能模型
在不同的应用问题中,这3种模型的相对重要程度会有 所不同,对象模型始终都是最重要、最基本、最核心的。 典型的软件系统组合了上述3方面内容: 使用数据结构(对象模型),执行操作(动态模型),并且完 成数据值的变化(功能模型)。 本课程介绍UML作为描述这些模型的语言.
9.1 面向对象方法学概述

面向对象的方法学可以用下列方程来概括:
OO=objects +classes +inheritance +communication with messages
面向对象就是既使用对象又使用类和继承等机 制,而且对象之间仅能通过传递消息实现彼此 通信。 也可以说,只有同时使用对象、类、继承和消 息的方法,才是真正面向对象的方法。
交 互

注 释
用 对 构 实 类 例 象 件 施 图 图 图 图 图 节 点 顺 协 状 活 序 作 态 动 图 图 图 图
用 接 类 例 口
协 作
活 动 类
组 件
统一建模语言UML
(1) 统一标准
UML统一了Booch、OMT和OOSE等方法中的基本概念,已成为OMG的 正式标准,提供了标准的面向对象的模型元素的定义和表示。
9.4.1 类图的基本符号 2. 定义属性
UML描述属性的语法格式如下: [可见性] 属性名: 类型名=初值 {性质串} ——属性的[可见性]:
公有的(public) (+) 、 私有的(private) (-) 保护的(protected) (#) 注意: 没有默认的可见性。
——类型名表示该属性的数据类型,它可以是基本数据 类型,也可以是用户自定义的类型。 ——{性质串}明确地列出该属性所有可能的取值,也可 以说明属性的其他性质。 e.g. “+婚否:布尔=假{真,假}”
9.4.1 类图的基本符号
图9.5 表示类的图
9.4.1 类图的基本符号
为类命名时应该遵守以下几条准则: (1) 使用标准术语。 例如,“交通信号灯”比“信号单元”这个名字好, “传送带”比“零件传送设备”好。 (2) 使用具有确切含义的名词。 例如,“库房”比“房屋”或“存物场所”更确切。 (3) 必要时用名词短语作名字。 例如,“最小的领土单元”、“储藏室”、“公司员 工”等都是比较恰当的名字。 总之,名字应该是富于描述性的、简洁的而且无二义性的。
第九章 面向对象方法学引论
9.1 9.2 9.3 9.4 9.5 9.6 9.7 面向对象方法学概述 面向对象的概念 面向对象建模 对象模型 动态模型 功能模型 3种模型之间的关系
9.1 面向对象方法学概述
-- 源于20世纪60年代后期出现的面向对象编程语言 Simula-67(类和对象的概念),逐步形成了面向对象 方法学 。到了20世纪90年代,面向对象方法学已经 成为人们在开发软件时常选的范型。

9.2 面向对象的概念


对象 类 类间关系 消息与事件 多态性
9.2 面向对象的概念

对象 定义:是类的实例,是属性+方法封装在一起构 成的实体。 对象的三要素是:名称+属性+方法
例:三角形对象
triangle (10,50) (30,60) (20,30) Draw Move(Δx, Δy) Contains?(a point)
3. 定义服务 服务也就是操作,UML描述操作的语法格式如下: 可见性 操作名(参数表): 返回值类型{性质串} 参数表是用逗号分隔的形式参数的序列。描述一个参数的 语法如下: 参数名: 类型名=默认值 当操作的调用者未提供实在参数时使用默认值。 与属性类似,在类中也可定义类作用域操作:这种操作只 能存取本类的类作用域属性。 “- set_counters(Integer=0, Integer): Integer {-1,0}”
相关文档
最新文档