第10章 面向对象的分析
软件工程导论第10章面向对象分析
易于理解,同时减少了代码冗余和重复,提高了开发效率和代码质量。
03
提高软件的可重用性
面向对象分析鼓励使用抽象和封装技术,使得软件组件更加模块化和可
重用,减少了重复开发的工作量,提高了软件开发的效率。
02
面向对象分析的主要步骤
问题识别
总结词
明确问题的本质和范围
详细描述
在面向对象分析中,问题识别是首要步骤,它要求对问题进行深入理解和明确, 包括确定问题的范围、目标、限制条件等,以便为后续的分析和设计工作提供 清晰的方向。
面向对象分析的优势与不足
过度抽象
面向对象分析有时会过度抽象,导致 系统过于复杂,难以理解和实现。
缺乏对系统流程的关注
面向对象分析更关注静态结构,可能 忽略系统流程和动态行为。
面向对象分析与传统分析方法的结合使用
在实际软件开发中,可以结合 面向对象分析和传统分析方法, 取长补短,提高软件开发的效
率和成功率。
05
面向对象分析与传统分析方法的 比较
传统分析方法的问题与挑战
缺乏对系统整体结构的考虑
传统分析方法往往只关注单个功能或模块,忽略了系统整体的结 构和关系。
难以处理复杂系统
对于复杂系统,传统分析方法难以有效地进行抽象和建模。
难以维护和扩展
由于缺乏整体结构和面向对象的思维,传统分析方法构建的系统往 往难以维护和扩展。
对象是指系统中具有明确边界和状态 的结构,它可以包含数据和操作,并 且具有封装性、继承性和多态性等特 征。
面向对象的基本特征
封装
封装是将对象的属性和操作封装 在一起,形成一个独立的实体, 对外隐藏内部实现细节,只通过 接口与外界交互。
继承
继承是指子类可以继承父类的属 性和方法,并且可以扩展或修改 它们,从而实现代码的重用和扩 展。
第十章 状态机图-UML面向对象分析、建模与设计-吕云翔-清华大学出版社
对应于触发器转换,没有明确的触发器的转换成为结束转换或无触 发器转换,是在状态的内部活动执行完毕后隐式触发的。
转换——事件
能够在触发器中接收的事件有以下四种:
调用事件:调用事件表示对象接收到一个调用操作的请求。其期待的结 果是事件的接收者触发一个转换并执行相应的操作。
改变事件:改变事件的发生依赖于事件中某个表达式所表达的布尔条件。 改变事件没有参数,要一直等到条件被满足才能发生。
信号事件:信号由一个对象准确地送给另一个或一组对象。发送给一组 对象的信号可能触发每个对象的不同转换。
时间事件:时间事件的发生依赖于事件中的一个时间表达式。比如,可 以让对象进入某状态后经过一段给定的时间或到达某个绝对时间后发生 该事件。
转换——事件
stm 订单类 Unselected
click(posX, posY) [posX==x and posY==y]
Selected
(a)
SingleSelectionMode shiftKeyUp MultiSelectionMode shiftKeyDown (c)
状态机图
状态机 状态机图
状态机图的基本概念
状态机
状态机是一种行为,它说明对象在其生命周期中响应事件所经历的 状态变化序列以及对那些时间的响应。
一般情况下,一个状态机依附于一个类,用来描述这个类的实例的 状态及其转换,和对接收到的事件所做出的响应。此外,状态机也可 以依附于用例、操作、协作等元素上,描述它们的执行过程。
等待支付
[立即支付] 审核完成
[及时支付]
[超出支付时限]
审核失败
状态机图
第十章 面向对象分析PPT课件
10.3.1 确定类与对象
(1) 冗余 如果两个类表达了同样的信息,则应该保留在 此问题域中最富于描述力的名称。 以ATM系统为例,上面用非正式分析法得出了34 个候选的类,其中储户与用户,现金兑换卡与 磁卡及副本分别描述了相同的两类信息,因此, 应该去掉“用户”、“磁卡”、“副本”等冗 余的类,仅保留“储户”和“现金兑换卡”这 两个类。
题域精确模型的过程。
很难准 确描述
面向对象分析过程从分析陈述用户需求的文件
开始。可能由用户单方面写出需求陈述,也可
能由系统分析员配合用户,共同写出需求陈述。
需求陈述通常是不完整、不准确的,而且往往 是非正式的。
4
10.1.1 概述
通过分析,可以发现和改正原始陈述中的二义
性和不一致性,补充遗漏的内容,从而使需求陈
15
10.2.2 例子
16
10.2.2 例子
银行柜员使用柜员终端处理储户提交的储蓄事 务。储户可以用现金或支票向自己拥有的某个 账户内存款或开新账户。 储户也可以从自己的账户中取款。 通常,一个储户可能拥有多个账户。柜员负责 把储户提交的存款或取款事务输进柜员终端, 接收储户交来的现金或支票,或付给储户现金。 柜员终端与相应的分行计算机通信,分行计算 机具体处理针对某个账户的事务并且维护账户。
述更完整、更准确。
迭代
因此,需求陈述不是一成不变的,它是细化和
完善实际需求的基础。
快速建立的原型系统,有助于分析员和用户之
间的交流和理解,从而能更正确地提炼出用户的
需求。
分析模
接着,系统分析员深入理解用户型需求,抽象出
目标系统的本质属性,并用模型准确地表示出来。
5
10.1.1 概述
第10章 面向对象分析
第10章 面向对象分析
第10章 面向对象分析
• 面向对象软件开发技术
– 面向对象分析(OOA) – 面向对象设计(OOD) – 面向对象实现(OOP)
面向对象技术是一个有全新概念 的开发模式,其特点是:
(1)方法是对软件开发过程所有阶段进 行综合考虑而得到的; (2)从生存期的一个阶段到下一个阶段 所使用的方法与技术具有高度的连 续性;
取消交易
顾客可在按下选择键前任何一个时刻,拉动退币杆取 消交易收回硬币。
自动售货系统系统
-端1 * -端2
自动售货系统::售货
*
顾客
-端2
-端1 *
自动售货系统::供货
*
供货人
-端1 * -端2
自动售货系统::取货款
*
收银员
自动售货系统系统
-端1 *
-端2
售货
*
<<extends>>
售散装饮料
顾客
• 业务中的执行者扮演什么角色?这些角色可以 看作类,如客户、操作员等。
(2)筛选对象类,确定最终对象类 我们可以用以下选择特征来确定最终的对象: 1) 保留的信息:仅当必须记住有关潜在对象的 信息,系统才能运作时,则该潜在对象在分 析阶段是有用的; 2) 需要的服务:潜在对象必须拥有一组可标识 的操作,它们可以按某种方式修改对象属性 的值; 3) 多个属性:在分析阶段,关注点应该是“较 大的”信息(仅具有单个属性的对象在设计 时可能有用,但在分析阶段,最好把它表示 为另一对象的属性);
定义服务
• 对象=属性+操作(服务) • 因为在动态模型和功能模型中更明确地描 述了每个类中应该提供哪些服务,所以在 建立了这两个模型后才能最终确定类中应 有的服务。 • 事实上,在确定类中应有的服务时,既要 考虑该类实体的常规行为,又要考虑在本 系统中特殊需要的服务。
软件工程第10章 面向对象分析(简)
单击此处编辑母版标题样 下图所示为自动取款机(ATM)系统(作为OO分析和OO设计实例) (ATM)系统 OO分析和OO设计实例 下图所示为自动取款机(ATM)系统(作为OO分析和OO设计实例) 式
10.2.2 需求陈述书写举例
ATM系统 图10.2 ATM系统
单击此处编辑母版标题样 自动取款机(ATM)系统需求陈述 P234): (ATM)系统需求陈述( 自动取款机(ATM)系统需求陈述(P234): 某银行拟开发一个自动取款机系统,它是一个由自动取款机、 某银行拟开发一个自动取款机系统,它是一个由自动取款机、中央计 式
主题含义:主题是指导开发人员和用户理解大型、 主题含义:主题是指导开发人员和用户理解大型、复杂模型的一种机 实际上, 制。实际上,主题就是对对象模型所涉及的诸多类和对象按照问题空 间的组成范围(方面)进行划分和归类。 间的组成范围(方面)进行划分和归类。 5个层次对应着建立对象模型的5项主要活动:找出类与对象,识别结 个层次对应着建立对象模型的5项主要活动:找出类与对象, 识别主题,定义属性,定义服务。 构,识别主题,定义属性,定义服务。 面向对象分析的一般步骤:寻找类与对象,识别结构,识别主题, 面向对象分析的一般步骤:寻找类与对象,识别结构,识别主题,定 义属性,建立动态模型,建立功能模型,定义服务。 义属性,建立动态模型,建立功能模型,定义服务。
单击此处编辑母版标题样 式
复杂问题的对象模型的5 图10.1 复杂问题的对象模型的5个层次
单击此处编辑母版标题样 对象模型5个层次的含义:类与对象、结构(类或对象之间的关系)、 对象模型5个层次的含义:类与对象、结构(类或对象之间的关系)、 式 属性和服务的概念,已经在第9章介绍过。现在介绍主题的概念。 属性和服务的概念,已经在第9章介绍过。现在介绍主题的概念。
第10章面向对象分析(OOA)
建立模型:
系统分析员应该深入理解用户需求,抽象出目标系 统的本质属性,并用模型准确地表示出来
分析模型应该成为对问题的精确而又简洁的表示 后继的设计阶段将以分析模型为基础
通过建立分析模型能够纠正在开发早期对问题域的 误解
建模的过程中,系统分析员必须认真向领域专家学 习
注意结果的可重用性
候选类:
银行,自动取款机(ATM),系统,中央计算机,分 行计算机,柜员终端,网络,总行,分行,软件, 成本,市,街道,营业厅,储蓄所,柜员,储户, 现金,支票,账户,事务,现金兑换卡,余额,磁 卡,分行代码,卡号,用户,副本,信息,密码, 类型,取款额,账单,访问
根据领域知识或常识进一步把隐含的类与对象 提取出来
当用户把现金兑换卡插入ATM之后,ATM就与 用户交互,以获取有关这次事务的信息,并与 中央计算机交换关于事务的信息。首先,ATM 要求用户输入密码,接下来ATM把从这张卡上 读到的信息以及用户输入的密码传给中央计算 机,请求中央计算机核对这些信息并处理这次 事务。中央计算机根据卡上的分行代码确定这 次事务与分行的对应关系,并且委托相应的分 行计算机验证用户密码。如果用户输入的密码 是正确的,ATM就要求用户选择事务类型(取款、 查询等)。当用户选择取款时,ATM请求用户输 入取款额。最后,ATM从现金出口吐出现金, 并且打印出账单交给用户。
需求陈述的内容包括:
问题范围 功能需求 性能需求 应用环境及假设条件等
应该阐明“做什么”而不是“怎样做” 应该描述用户的需求而不是提出解决问题的方法 应该指出哪些是系统必要的性质,哪些是任选的 需求陈述可简可繁、要尽力做到语法正确 最好是分析员和系统用户共同完成
10.2.2 例子
面向对象的系统分析
学生
0-n
1
注册
出纳窗口
0-n
1
缴注册费
图10.15 参与者—事务模板
图10.16 地方—事务模板
1 注册费细目
学生
1
0-n
学院
缴注册费 1-n
图10.18 参与者--地方模板
图10.19 事务—事务细目模板
注册费项目 0-n
1 注册费细目
T3—保险费
实验费 体检费 保险费 学费
项目
T3--学费 T2--实验费 T2--学费 T1—保险费 T1-学费
其他事件流A1: (1)控制面板响铃一次. (2)系统复位. (3)执行事件流A0. 错误事件流E1: (1)控制面板显示系统出错. (2)结束使用案例.
10.3.2 类—责任—协作者模型
类—责任—协作者模型:用于描述用户的 需求,标出对象和类。 构成:CRC卡片,顶部: 类名,中左部: 责 任,中右部: 协作者。
10.3.1 使用案例
描述目标系统的一种使用情况。
1)角色 2)使用案例作用 3)使用案例图示 4)使用案例描述(事件流方法)
1)角色
和系统通讯并外部于系统的任何事物 (人、设备)。 特点:① 一个角色代表一类外部实体 ② 仅起一个作用 主要角色:直接并经常和系统相互作用。 次要角色:支持系统,使主要角色起作用。
class class_B { public: class_B( ); ~class_C( ); … }
软件工程第10章 面向对象分析
10.1 面向对象分析的基本过程
10.1.1.概述
面向对象分析,就是抽取和整理用户需求并建立问题域 精确模型的过程。 面向对象分析过程从分析陈述用户需求的文件开始。 接下来,系统分析员应该深入理解用户需求,抽象出目
标系统的本质属性,并用模型准确地表示出来。 在面向对象建模的过程中,系统分析员必须认真向领域
首先,面向对象分析通过控制读者能见到的层次数目 来控制可见性。
其次,面向对象分析增加了一个主题层,它可以从一 个相当高的层次描述总体模型,并对读者的注意力加 以指导。
10.1 面向对象分析的基本过程
在概念上可以认为,面向对象分析大体上按照下列顺 序进行:
寻找类与对象,识别结构,识别主题,定义属性, 建立动态模型,建立功能模型,定义服务。 但是,分析不可能严格地按照预定顺序进行,大型、 复杂系统的模型需要反复构造多遍才能建成。 分析也不是一个机械的过程。系统分析员必须与领域 专家及用户反复交流,以便澄清二义性,改正错误的 概念,补足缺少的信息。
主要内容
10.1 面向对象分析的基本过程 10.2 需求陈述 10.3 建立对象模型 10.4 建立动态模型 10.5 建立功能模型 10.6 定义服务
10.2 需求陈述
10.2.1. 书写要点
需求陈述应该阐明“做什么”而不是“怎样做”!
应该描述用户的需求而不是提出解决问题的方法。 应该指出哪些是系统必要的性质,哪些是任选的性质。 应该避免对设计策略施加过多的约束,也不要描述系
10.3 建立对象模型
10.3.1. 确定类与对象
类与对象是在问题域中客观存在的,系统分析员的主 要任务就是通过分析找出这些类与对象。 首先找出所有候选的类与对象; 然后从候选的类与对象中筛选掉不正确的或不必
张海藩《软件工程导论》(第6版)(课后习题 第10章 面向对象分析)【圣才出品】
第10章面向对象分析1.用面向对象方法分析研究本书第2章第2题中描述的储蓄系统,试建立它的对象模型、动态模型和功能模型。
答:(1)对象模型储蓄系统的对象模型,如图10-2所示。
图10-2储蓄系统的对象模型(2)动态模型①编写脚本a.正常情况脚本第一,储户有存款要求,填写存款单,包含储户个人信息,存款金额和存款类型;第二,业务员查收存款,审核存款与存款单存款金额吻合;第三,存款单生效;第四,储户有取款要求,填写取款单,包含个人账号、密码(待定)和存款金额;第五,业务员审核存款,验证储户身份,确定储户存款金额>=取款金额;第六,审核通过,取款单生效;第七,系统打印利息清单,业务员把本金和利息返回储户。
b.异常情况脚本第一,储户有存款要求,填写存款单,包含储户个人信息,存款金额和存款类型;第二,业务员查收存款,审核存款与存款单存款金额不符;第三,存款单作废;第四,储户有取款要求,填写取款单,包含个人账号、密码(待定)和存款金额;第五,业务员审核存款,验证储户身份,发现储户存款金额<=取款金额;第六,取款单作废。
②事件追踪图储蓄系统的事件追踪图,如图10-3所示。
图10-3储蓄系统的事件追踪图(3)功能模型储蓄系统的数据库流图,如图10-4所示。
图10-4储蓄系统的数据库流图2.用面向对象方法分析研究本书习题2第3题中描述的机票预订系统,试建立它的对象模型、动态模型和功能模型。
答:略。
3.用面向对象方法分析研究本书习题2第4题中描述的患者监护系统,试建立它的对象模型、动态模型和功能模型。
答:略。
4.下面是自动售货机系统的需求陈述,试建立它的对象模型、动态模型和功能模型:自动售货机系统是一种无人售货系统。
售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重量、厚度及边缘类型。
有效的硬币是一元币、五角币、一角币、五分币、二分币和一分币。
其他货币都被认为是假币。
机器拒绝接收假币,并将其从退币孔退出。
面向对象的分析和设计.ppt
子系统的设计准则是: (1) 子系统应具有定义良好的接口,通过接口 和系统的其它部分通信; (2) 除了少数的“通信类” 外,子系统中的类 应只和该子系统中的其它类协作; (3) 子系统的数量不宜太多; (4) 可以在子系统内部再次划分,以降低复杂 性。
24
2) 标识问题本身的并发性,并为子系统分配 处理器 通过对对象--行为模型的分析,可发现系 统的并发性。如果对象(或子系统)不是同时 活动的,则它们不需并发处理,此时这些对象 (或子系统)可以在同一个处理器上实现。反 之,如果对象(或子系统)必须对一些事件同 时异步地动作,则它们被视为并发的,此时, 可以将并发的子系统分别分配到不同的处理器, 或者分配在同一个处理器,而由操作系统提供 并发支持。
15
5. 多态性(polymorphism) 多态性是指同一个操作作用于不同的对象 上可以有不同的解释,并产生不同的执行结 果。例如“画”操作,作用在“矩形”对象 上,则在屏幕上画一个矩形,作用在“圆” 对象上,则在屏幕上画一个圆。也就是说, 相同操作的消息发送给不同的对象时,每个 对象将根据自己所属类中定义的这个操作去 执行,从而产生不同的结果。
16
6. 动态绑定(dynamic binding) 动态绑定是指在程序运行时才将消息所请 求的操作与实现该操作的方法连接起来。 传统的程序设计语言的过程调用与目标 代码的连接(即调用哪个过程)放在程序运 行前(即编译时)进行(称为静态绑定), 而动态绑定则是把这种连接推迟到运行时才 进行。 动态绑定是一种在运行时确定被执行代 码的技术。
模型元素指模型中的实体以及实体间相互连接的关系
类 属性 操作 主动类 属性 操作 对象:类 属性 操作
用况
结点
状态
软件工程面向对象分析
•
软件工程面向对象分析
10.3 建立对象模型-确定类与对象
• 找出候选的对象类 银行、自动取款机、系统、中央计 算机、分行计算机、柜员机、网络、总行、分行、软件、成 本、市、街道、营业厅、储蓄所、柜员、储户、现金、支票 、账户、事务、日志、通讯链路、存折、信用卡、余额、银 行卡、分行代码、卡号、用户、副本、信息、密码、类型、 取款额、账单、访问。
需求分析过程是系统分析员与用户及领域专家反复交流和多 次修正的过程。
理解和验证的过程交替进行,反复迭代
软件工程面向对象分析
10.1 面向对象分析的基本过程-概述
1.1 概述 面向对象分析,就是抽取和整理用户需求并建立问题域精确
模型的过程。 ✓ 需求陈述往往是不完整、不准确的,通过分析应该改正原始
OOA有两个任务 ✓ 形式地说明我们所面对的应用问题,最终成为软件系 统基本构成的对象,还有系统所必须遵从的,由应用环 境所决定的规则和约束。 ✓ 明确地规定构成系统的对象如何协同合作,完成指定 的功能。
OOA概念模型 ✓通过OOA建立的系统模型是以概念为中心的,因此称 为概念模型。 ✓这样的模型由一组相关的类组成。 ✓软件规格说明就是基于这样的概念模型形成的,以模型 描述为基本部分,再加上接口要求、性能限制等其它方 面的要求说明。软件工程面向对象分析
属性——陈述中有些名词实际上描述的是其他对象的属性, 应把这些名词从候选对象中去掉。如果某个性质具有很强的 独立性,则应该把它们作为对象而不是作为属性。现金、支 票、取款额、账单、余额、分行代码、卡号、密码、类型
操作——陈述中有时可能使用一些既作为名词,又可作为动 词的词,应慎重考虑它们在问题中含义,以便正确地决定把 她们作为对象还是作为对象的操作。一般说本身具有属性需 要独立存在的操作,应该作为对象;反之应作为对象操作。
张海藩《软件工程导论》(第6版)(章节题库 第10章 面向对象分析)【圣才出品】
第10章面向对象分析一、选择题1._____是系统一个特定执行期间所发生的事件序列。
【答案】脚本2.功能模型描述系统内的计算,它和_____、_____共同构成系统模型结构的三大支柱。
【答案】对象模型;动态模型3.状态是对象的_____、_____的一种抽象。
【答案】属性值;链接4.在对象模型中,访问操作是直接从类的_____和_____中导出的。
【答案】属性;关联5.对象模型为建立_____和_____,提供了实质性框架。
【答案】动态模型;功能模型6.功能模型由多个_____组成,每个_____说明了操作和结束的含义。
【答案】数据流图;数据流图7.功能模型由多张数据流图组成。
数据流图中包含_____、_____、_____对象和_____对象。
【答案】处理;数据流;动作;数据存储8.事件跟踪图用来表示_____、_____对象和_____对象。
_____和_____可用一条垂直线表示,各_____用水平箭头表示,箭头方向是从_____对象指向_____对象。
【答案】事件;事件的接收;发送;接收对象;发送对象;事件;发送;接收9.状态转换图是_____的重要工具。
【答案】启发分析员认识对象服务10.说明一个状态可采用_____、_____、_____、_____、_____等内容描述。
【答案】状态名;状态目的描述;产生该状态的事件序列;表示状态特征的事件;在状态中接收的条件二、填空题1.一个()能用不同的方法表示它的特征。
A.事件B.抽象C.状态D.脚本【答案】C【解析】状态是对象的属性值和链接的一种抽象。
根据影响对象总的行为的性质,一系列组合在一起是一个状态。
它能用不同的方法表示它的特征。
2.在对象模型中,访问操作是直接从类的属性和关联中导出的。
下列不是对象模型的访问操作的是()。
A.查询B.动作C.抽象D.活动【答案】C【解析】对象模型的访问操作主要包括三大类:查询、活动和动作。
3.()对整个对象的状态/行为关系的图示,它附属于该对象的类描述模板。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第10章面向对象的分析一、填空题(30小题)1、( )最直接地体现系统责任并实现用户需求的成分。
答案:对象的服务2、如果在一个服务中包括了多项可独立定义的功能,则它( ),应尝试把它分解为多个服务。
答案:低内聚的3、主动对象是至少有一个服务不需要接收消息就能( )的对象。
答案:主动执行4、对象的服务可分为( )。
答案:外部服务和内部服务5、对象具有封装性,实现了( )的组合。
答案:数据和操作6、将语言规则应用到软件系统分析的处理称为( )。
答案:基于语言的信息分析(Linguistic_basedInformationAnalysis,LIA)。
7、适当是指( )。
答案:一个合格的程序员看了之后能够正确地理解其要求8、分析员通过( )来发现和定义对象的每个服务。
答案:分析对象的行为9、类属性的定义是( )。
答案:是描述类的所有对象的共同特征的一个数据项,对于任何对象实例,它的属性值都是相同的10、对象具有很强的( )能力和( )功能。
答案:表达、描述11、( )是对整个对象的状态/行为关系的图示。
答案:状态转换图12、( )以帮助分析对象的行为。
答案:构画出一个状态转换图13、系统的需求包括4个不同的层次:( )、( )、( )和( )。
答案:业务需求、用户需求、功能需求、非功能性需求14、服务流程图:( )。
答案:对于功能比较复杂的服务,要给出一个服务流程图,表明该服务是怎样执行的15、状态转换图是( )的重要工具。
答案:启发分析员认识对象服务16、对于每个整体一部分分关系,( )中要增加一个属性来表明它的部分对象。
答案:整体对象17、若类A继承类B,类B继承类C,则( )。
答案:A也继承了C的全部属性与服务18、如果A是B的一部分,B是C的一部分,则( )。
答案:A也是C的一部分19、特殊类之所以称为“特殊”,是因为( )。
答案:它具有独特的属性与服务20、( )应该被划分出去作为部分对象。
答案:引起整体对象的属性与服务21、如果类A具有类B的全部属性和全部服务,而且具有自己特有的某些属性或服务,( )。
答案:则A叫做B的特殊类,B叫做A的一般类22、一般一特殊结构是由( )所组成的结构。
答案:一组具有一般一特殊关系(继承关系)的类23、组合关系具有的最重要的性质是( )。
答案:传递性24、( )是问题域的事物之间客观存在的一种关系。
答案:一般一特殊结构25、如果对象a是对象b的一个组成部分,则( )。
答案:b为a的整体对象,a为b的部分对象26、当组合关系有多个层次时,可以用( )来表示它。
答案:一棵简单的聚集树27、所谓多重性是指( )。
答案:位于连接符一端的一个对象实例要求另一端多少个对象实例与自己进行整体-部分分组合28、一般类与特殊类之间的关系叫做( )。
答案:一般一特殊关系29、整体一部分分关系反映了对象之间的构成关系,它也称为( )。
答案:聚集关系30、如果类A的全部对象都是类B的对象,而且类B中存在不属于类A的对象,( )。
答案:则A是B的特殊类,B是A的一般类二、单项选择题(50小题)1、明显的信息冗余,可以在( )消除。
A、OOA阶段B、OOD阶段C、OOK阶段D、OOE阶段答案:A2、把每个对象的属性和服务都填写到相应的类符号中,就构成了类图的( )。
A、特性层B、状态层C、特征层D、属性层答案:C3、一个面向对象的系统的体系结构通过它的( )的关系确定。
A、类与对象B、成分对象和对象C、过程与对象D、类与界面答案:B4、在一般一特殊结构中,和( )的定位原则一样。
A、属性B、方法C、对象D、类答案:A5、SUMMONS EVENT类的这个服务通过检测召唤请求(召唤按钮被按下)来确定是否有ElevatorSummons事件发生,属于主动服务。
具体过程如下( )。
A、生成一个Summons Event实例B、Summons Event的这个实例发送一个单向的消息给由Summons floor所标识的SummonsPanel实例C、接收来自于Destination Panel的响应,并决定是否需要给Elevator发送一个响应D、结束这个SummonsEvent实例答案:D6、所谓高内聚是指( )。
A、一个服务只完成一项明确定义的、完整而单一的功能,没有出现在一项服务内完成多个功能的现象B、一个服务只完成一项简单的功能C、多个服务只完成一项明确定义的、完整而单一的功能D、出现在一项服务内完成多个功能的现象答案:A7、对象标识是分配给每个对象的永久性标识(又称作“柄”),它符合下述条件( )。
A、在一定的范围或领域(例如一个应用系统)中是唯一的B、与对象实例的特征、状态及分类(可能是动态的)无关C、在对象存在期间保持一致D、在对象存在之后保持一致答案:D8、面向对象技术中,对象是类的实例。
对象有三种成分:( )、属性和方法。
A、标识B、规则C、封装D、消息答案:A9、第一个体现结构化编程思想的程序设计语言是( )。
A、FORTRAN语言B、Pascal语言C、C语言D、PL/1语言答案:B10、( )是启发分析员认识对象服务的重要工具。
A、顺序图B、对象图C、活动图D、状态转换图答案:D11、( )对象的服务和OOA的其他活动一样,应研究问题域和系统责任以明确各个对象应该设立哪些服务以及如何定义这些服务。
A、分析B、发现和定义C、总结D、查找答案:B12、属性的表示法,是在( )的中部填写每一个属性的名字。
A、对象B、实例C、类D、方法答案:C13、对于一个给定的问题域,一个合适的对象集合能够( )。
A、保证可复用性B、提高可扩充性C、提高软件产品的质量和生产率.D、减少研发成本答案:ABC14、一个类的所有对象具有相同的属性,不包括( )。
A、个数B、名称C、数据类型D、定义答案:D15、同一类中有相同的数据结构,这是( )级别的共享。
A、不同应用B、同一应用C、不同类D、同一类答案:D16、如果在一个服务中包括了( )可独立定义的功能,则它是低内聚的,应尝试把它分解为多个服务。
A、一项B、二项C、三项D、多项答案:D17、以下( )活动不能推迟到OOD阶段做。
A、对象标识问题B、规范化问题.C、性能问题D、定义属性答案:D18、找出对象生命历程中所经历的(或者说是可能呈现的)每一种( ),画出状态转换图。
A、行为B、定义C、状态D、方法答案:C19、( )只供对象内部的其他服务使用,不对外提供。
A、外部服务B、内部服务C、内嵌服务D、上层服务答案:B20、( )对整个对象的状态/行为关系的图示,它附属于该对象的类描述模板。
A、状态转换图B、顺序图C、活动图D、对象图答案:A21、( )标注的主动对象和主动服务不一定是最终的定局。
A、OOAB、OODC、OOKD、OOF答案:A22、汽车有一个发动机,汽车与发动机之间的关系是( )关系。
A、一般与具体B、整体与部分C、分类D、is a答案:B23、在Elevator指示就绪状态之前先检测Elevator的超重状态。
具体的过程如下( )。
A、将属性ELEVATOR(elevator_id).current_state的值置为NOT_READYB、接收来自于DestinationPanel的响应,并决定是否需要给Elevator发送一个响应C、反复执行以下操作直到应答为OK:发送一个双向的消息给OVERWEIGHTSENSORD、将属性ELEVATOR(elevatorid).currentstate的值置为READY答案:A24、描述类中某个对象的行为,反映了状态与事件关系的是( )。
A、对象图B、状态图C、流程图D、结构图答案:B25、对行为规则比较复杂的对象都不需要做以下工作( )。
A、找出对象的各种状态B、分析在不同的状态下,对象的行为规则有何不同?在发现它们没有区别时,可以将一些状态合并C、分析从一种状态可以转换到哪几种其他状态以及该对象的什么行为会引起这种转换D、找出类的各种状态答案:D26、( )叫作“执行路线追踪”。
A、发现了某种需要就追踪到下一个对象B、以穷举式的搜索一直进行到全部服务都被模拟过C、看看是否定义了所需要的服务D、在对已发现的服务进行具体的定义和详细说明时进行较为合适答案:B27、面向对象开发产生的分析文档应当( )考虑问题,在分析阶段识别的概念是高层的概念。
A、与问题直接相关B、与问题不相关C、在更小的问题范围内B、在更大的问题范围内答案:D28、面向对象程序设计的基本机制有( )。
A、继承B、消息C、方法D、结构答案:ABC29、( )考虑每个服务是被其他哪些对象的哪些服务请求的,按消息传递的相反方向跟踪上去。
A、考虑问题域B、考虑与系统边界以外的活动者直接进行交互的对象C、考虑系统功能的构成层次中完成最外层功能的对象服务是甭应定义为主动服务D、最后一个策略是进行服务执行路线的逆向追踪答案:D30、( )的描述范围是一个对象,所以它位于类描述模板的对象级。
A、类图B、状态转换图C、实例图D、服务流程图答案:B31、火车是一种陆上交通工具,火车和陆上交通工具之间的关系是( )关系。
A、组装B、整体成员C、has-aD、一般具体答案:B32、如果对象a是对象b的一个组成部分,那么( )。
A、b的类定义引用a的类定义B、a的类定义引用b的类定义C、b的类定义调用a的类定义D、a的类定义调用b的类定义答案:B33、在有多重继承的类层次结构中,它的类层次结构是( )层次结构。
A、树型B、网状C、环型.D、星型答案:B34、分析该消息的发送者与接收者在执行时是否属于同一个控制线程。
可从几个不同的角度去判断( )。
A、按问题域的情况和系统责任的要求应该顺序地执行还是并发地执行B、从发送者的执行到接收者的执行是否引起了控制线程的切换C、接收者是否只有通过当前这种消息的触发才能执行D、看是不是每个类的每个服务都曾经到达并模拟执行过答案:D35、如果缺少这样的主动对象,则考虑是把某个被动对象改为主动对象还是增加一个主动对象,然后分三种情况定义对象之间的消息( )。
A、本地机上同一个控制线程内部的消息B、本地机上不同控制线程之间的消息C、异地机上不同控制线程之间的消息D、异地机上同一个控制线程内部的消息答案:D36、取消那些不合适的结构或对它进行调整一与修改,通过以下几个问题进行审查( )。
A、是否符合分类学的常识B、系统责任是否需要这样的分类C、问题域是否需要这样的分类D、是否构成了继承关系答案:B37、在语义上,一个消息应包括下述信息( )。
A、发送者,这是通过消息发送点的位置隐含表明的B、接收者,是由消息名表达的C、其他需传送的信息,通过入口参数和返回参数表示D、消息名,即接收消息的服务名答案:D38、不需在具有这种实例连接关系的对象类之间统一地给出这种关系的定义是( )。