面向对象方法精粹练习题含答案.docx
《面向对象方法精粹练习题含答案.docx》由会员分享,可在线阅读,更多相关《面向对象方法精粹练习题含答案.docx(69页珍藏版)》请在冰豆网上搜索。
面向对象方法精粹练习题含答案
以下关于对象的基本特征,错误的是(D)
A.每个对象均有自己的惟一标识
B.对彖之间通过消息进行通信
C.对象的状态只能被自身的行为所改变
D.对象只有三种行为
2
卩选以下哪个不是基本类间关系(B)
A.继承
B.组合
C.聚合
D.关联
3
小选以下关于继承的说法错误的是(C)
A.继承是一种"求同存异”的髙度抽象方式
B.多继承使类层次复杂化
C.继承不强调一般化,强调具体化
D.多继承容易产生配置控制方而的潜在问题
4
讥选聚合具有哪些性质(A)
A.传递性、逆对称性
B.传递性、对称性
C.逆传递性、对称性
D.逆传递性、逆对称性
5
屮选以下关于关联的说法,错误的是(B)
A.对象实例之间的物理或概念联结被称为链
B.关联是链的实例
C.关联是对一组语义与结构相似的链的抽象
D.关联会破坏封装性
6
g选以下说法正确的是(C)
A.聚合本质上是"或关系”
B.继承本质上是"与关系”
C.聚合是关联的一种特殊形式
D.聚合与关联之间无模糊差异
7
3选哪个不是产生消息的来源(D)
A.由操作系统产生
B.由用户触发的事件转换而来
C.由另一个消息产生
D.由对象产生
8
单选而向对象的特性是(A)
A.标识惟一性、分类性、多态性、继承性
B.标识惟一性、分类性、多态性、聚合性
C.分类性、多态性、继承性、聚合性
D.分类性、多态性、关联性、聚合性
9
单选下列有关类的说法不正确的是(C)
A.对象是类的一个实例
B.任何一个对象只能属于一个具体的类
C.一个类只能有一个对象
D.类与对象的关系和数据类型与变量的关系相似
10
卩选对象的多态性是指(A)
A.两个或多个属于不同类的对象,对于同一个消息(方法调用)作出不同的响应的方式
B.两个或多个属于不同类的对象,对于同一个消息(方法调用)作岀相同的响应的方式
C.两个或多个属于同一类的对象,对于同一个消息(方法调用)作用于不同类型的数据,作岀不同响应的方式
D.两个或多个属于同一类的对象,对于不同消息(方法调用)作用于相同类型的数据,作岀不同响应的方式
OOSE模型包括(ABCDE)
A.需求模型
B.分析模型
C.设计模型
D.实现模型
E.测试模型
2
讥选软件测试的目的是(B)
A.避免软件开发中岀现的错误
B.发现软件开发中岀现的错误
C.尽可能发现并排除软件中潜藏的错误,提高软件的可靠性
D.修改软件中出现的错误
3
讥选下列软件属性中,软件产品首要满足的应该是(A)
A.功能需求
B.性能需求
C.可扩展性和灵活性
D.容错纠错能力
4
巾选以程序的内部结构为基础的测试用例技术属于(D)
A.灰盒测试
B.数据测试
C.黑盒测试
D.白盒测试
5
讥选以下那一种选项不属于软件缺陷(D)
A.软件没有实现产品规格说明所要求的功能
B.软件中出现了产品规格说明不应该岀现的功能
C.软件实现了产品规格没有提到的功能
D.软件实现了产品规格说明所要求的功能但因受性能限制而未考虑可移植性问题
6
丫选在用例建模的过程中,若几个用例执行了同样的功能步骤,这时可以把这些公共步骤提取成独立的用例,这种用例称为(B)
A.扩展用例
B.抽象用例
C.公共用例
D.参与用例
7
中选用例可以用文字方式与图形方式进行描述(对)
A.对
B.错
8
小选使用者与使用事件的有机结合体即为用例(对)
A.对是UML体系的组成部分而哪个是UML中的事物(
B.错
指出下而不合适的类名(B)
A.材料
B.事物
C.订单
D.会员
2
讥选下而哪一个关于对象的说法不正确(B)
A.客观实体
B.事物的对立而
C.认识的指向物
D.软件的一个基本单位
3选下而不是对象图作用的是(A〉
A.功能逻辑建模
B.初期分析工具
C.描述业务场景
D.模拟运行场景
4
卩选UML图不包括(D)
A.用例图
B.类图
C.状态图
D.流程图
5
『选在类图中,下而哪个符号表示继承关系(C)
°aO
b.>
c.
d>
你的回答不正确
正确答題:
>
6
讥逛消息的组成不包括(C)
A.接口
B.活动
C.发送者
D.接收者
卩选类之间的关系不包括(D)
A.依赖关系
B.泛化关系
C.实现关系
D.分解关系
8
甲选下而哪个符号代表包图(A)
你的回答不正确
正确答ms:
-
■p-il构件图的组成不包括(C)
A.接口
B.构件
C.发送者
D.依赖关系
10
讥部署图的组成不包括(C)
A.处理器
B.设备
C.构件
D.连接
UML中的用例和用例图的主要用途是描述系统的(A)
A.功能需求
B.详细设计
C.体系结构
D.内部接口
2
乞选在采用用例模型捕获需求时,需要执行如下(ABCD)操作
A.描述非功能需求
B.用例建模
C.识别用例
D.识别参与者
3
讥选关于参与者的说法错误的是(D)
A.参与者是系统的直接外部用户
B.参与者有一个明确的用途
C.每个参与者都表示以某种方式对系统起作用的那些对象
D.参与者不可以是人、设备和其他系统
4
单选关于用例的说法错误的是(C)
A.用例是系统通过参与者的交互可以提供的一段连贯的功能
B.每个用例会涉及一个或多个参与者以及系统本身
C.用例不涉及系统和其参与者之间的消息序列
D.一些用例有固左的消息序列
5
顷用例关系包含哪三种(ACD)
A.包含
B.迁移
C.一般化
D.扩展
6
卩込用例标识系统的功能,并根据用户的观点组织这些功能(对)
A.对
B.错
7
单选场景不能显示为一列文本语句(错)
A.对
B.错
8
单选顺序图不能显示并发的信号(错)
A.对
B.错
9
•r-.il活动图详细描述了计算的细肖,同时评述了实现一项操作或业务流程所需要的步骤。
(对)
A.对
B.错
10
小选与顺序图类似,活动图可以显示控制流,但专注于操作而不是对象。
(对)
A.对
B.错
在软件生命周期中,占工作量比例最大的是(D)
A.可行性研究
B.建立系统的结构
C.编写程序
D.维护
2
单选类的行为是(A)
A.由一组操作来决泄
B.由类的属性来决宦
C.对类的每一个对象是唯一的
D.由父类决定
3
丫选Booch方法的三种模型不包括(C)
A.概念模型
B.逻辑模型
C.交互模型
D.物理模型
4
中选(C)是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生关系
A.多态性
B.继承
C.封装
D.消息
5
小选UML是(B)的缩写
A.UnifiedModuleLanguage
B.UnifiedModelingLanguage
C.UniversalModuleLeveling
D.UniversalModuleLanguage
6
讥选关于而向对象分析,下列的说法正确的是(A)
A.它是系统需求建模的方法
B.它是分析系统设讣的技术
C.可以从分析直接编写代码
D.在软件生命周期中,它出现在面向对象设计之后
7
讥选网站系统是一个典型的(C)
A.仓库体系结构
B.胖客户对1/服务器结构
C.瘦客户机/服务器结构
D.以上选项都不是
8
卩迪为了使程序能在不同的计算机上运行,程序应当具有较好的(A)
A.可移植性
B.可重用性
C.可维护性
D.可适用性
9
讥(B)可以帮助人们简单方便的复用已经成功的设计或体系结构
A.商业组件
B.设计模式
C.遗留系统
D.需求规格说明书
10
讥选关于继承表述错误的是(D)
A.继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法
B.泛化类(超类)可以显式地捕获那些公共的属性和方法。
特殊类(子类)则通过附加属性和方法来进行实现的扩展
C.破坏了封装性,因为这会将父类的实现细节暴露给子类
D.继承本质上是"白盒复用”,对父类的修改,不会影响到子类
可行性分析研究的主要目的是B
A.定义项目
B.项目是否值得开发
C.开发项目
D.规划项目
2
也九常见的软件开发模型有瀑布模型、演化模型、螺旋模型、喷泉模型等。
苴中(A)模型适用于需求明确或很少变更的项目
A.瀑布模型
B.演化模型
C.螺旋模型
D.喷泉模型
3
讥选在开发一个系统时,如果用户对系统的目标是不很淸楚,难以左义需求,这时最好使用
(A)
A.原型法
B.瀑布模型
C.v—模型
D.螺旋模型
4
心选采用瀑布模型进行系统开发的过程中,每个阶段都会产生不同的文档。
以下关于产生这些文档的描述中,正确的是(D)
A.外部设计评审报告在概要设汁阶段产生
B.集成测评计划在程序设讣阶段产生
C.系统计划和需求说明在详细设汁阶段产生
D.在进行编码的同时,独立的设讣单元测试汁划
5
巾选(A)是一种面向数据流的开发方法,其基本思想是软件功能的分解和抽象
A.结构化开发方法
B.Jackson系统开发方法
C.Booch方法
D.UML(统一建模语言)
6
羊选软件开发中的瀑布模型典型地刻画了软件生存周期的阶段划分,与英最相适应的软件开
发方法是(C)
A.构件化方法
B.而向对象方法
C.结构化方法
D.快速原型方法
7
侦下列关于结构化方法和原型法的描述错误的是(B)
A.结构化开发方法是以系统工程的思想和工程化的方法进行开发
B.对于运算量大、逻辑性较强的程序模块可采用原型法来构造模型
C.结构化方法要求严格区分开发阶段
D.原型法要求的软件支撑环境比结构化方法高
8
小选以下哪个不是增量模型的优点(C)
A.不必等到最终产品完成,客户便可以从早期增呈:
受益
B.客户可以把早期增量作为原型,并为后期增疑提岀需求
C.需求折衷无法回避,最终导致系统与客户实际需求背离
D.尽管某些增量可能存在问题,但是整个项目的风险较低
9
讥选不是传统开发方法的是(D)
A.功能分解法
B.结构化方法
C.信息建模方法
D.面向对象方法
10
单选关于第四代开发技术的说法,错误的是(C)
A.是多种软件过程模型的综合
B.目前的4GT工具易用性不够高
C.目前的4GT工具生成的源代码非常髙效
D.显著缩短了软件的开发时间
作业一
请说出六种典型而向对象方法?
1、OMT/Rumbaugh
OMT[1](ObjectModelingTechnique)方法最早是由Loomis♦Shan和Rumbaugh在1987年提出的,曾扩展应用于关系数据库设计。
JimRumbaugh在1991年正式把OMT应用于面向对彖的分析和设计。
这个方法是在实体关系模型上扩展了类.继承和行为而得到的。
OMT覆盖了分析、设计和实现三个阶段,它包括一组相互关联的概念:
类(class)、对象(object)、一般化(generalization)、继承(inheritance)、链(link)、链属性(linkattribute)、聚合(aggregation)、操作(operation)、事件(event)、场景(scene)、属性(attribute)、子系统(subsystem)模块(module)等。
OMT方法包含分析、系统设计、对象设汁和实现四个步骤,它泄义了三种模型,这些模型贯穿于每个步骤,在每个步骤中被不断地精化和扩充。
这三种模型是:
•对象模型:
用类和关系来刻画系统的静态结构:
•动态模型:
用事件和对象状态来刻画系统的动态特性;
•功能模型:
按照对象的操作来描述如何从输入给出输岀结果。
分析的目的是建立可理解的现实世界模型。
系统设讣确左高层次的开发策略。
对象设计的目的是确左对象的细卩,包括定义对象的界面、算法和操作。
实现对象则在良好的面向对彖编程风格的编码原则指导下进行。
2^OOD/Booch
00D[3](ObjectOrientedDesign)方法是GradyBooch从1983年开始研究,1991年后走向成熟的一种方法。
00D主要包括卜-述概念:
类(class)、对象(object)、使用(uses)、实例化
(instantiates)、继承(inherits)、元类(metaclass)、类范畴(classcategory)、消息(message)、域(field)、操作(operation)、机制(mechanism)、模块(module)、子系统(subsystem)、过程(process)等。
其中,使用及实例化是类间的静态关系,而动态对象之间仅有消息传递的连接。
元类是类的类。
类范畴是一组类,它们在一泄抽象意义上是类同的。
物理的一组类用模块来表达。
机制是完成一个需求任务的一组类构成的结构。
Booch方法在面向对象的设计中主要强调多次重复和开发者的创造性。
方法本身是一组启发性的过程式建议。
00D的一般过程如下:
(1)在一定抽象层次上标识类与对象:
(2)标识类与对象的语义;
(3)标识类与对象之间的关系(如继承、实例化、使用等):
(4)实现类与对象。
3、RDD/Wirfs-Brock
RDD[2](Responsibility-DrivenDesign)方法是Wirfs-Brock在1990年提出的。
这是一个按照类、责任以及合作关系对应用进行建模的方法。
首先左义系统的类与对象,然后确泄系统的责任并划分给类,最后确怎对象类之间的合作来完成类的责任。
这些设计将进一步按照类层次、子系统和协议来完善。
RDD方法主要包含以卞概念:
类(class)、继承(inheritance)、责任(responsibility)、合作(collaboration)、合同(contract)>子系统(subsystem)。
对每个类都有不同的责任或角色以及动作。
合作是为完成责任而需要与之通信的对象集合。
责任进一步精化并被分组为合同。
合同又进一步按操作精化为协议。
子系统是为简化设计而引入的,是一组类和低级子系统,也包含由子系统中的类及子系统支持的合同。
RDD分为探索阶段和精化阶段:
(1)探索阶段:
确定类、每个类的责任以及类间的合作;
(2)精化阶段:
精化类继承层次、确定子系统、确定协议。
RDD按照类层次图、合作图、类规范、子系统规范、合同规范等设计规范来完成实现。
4、OOAD/Coad-Yourdon
00AD[3](Object-OrientedAnalysisandDesign)方法是由PeterCoad和Edward
Yourdon在1991年提出的。
这是一种逐步进阶的面向对象建模方法。
在00A中,分析模型用来描述系统的功能,主要包括以下概念:
类(class)、对象(object)、属性(attribute)、服务(service)、消息(message)、主题(subject)、一般/特殊结构(Gen-Spec-Structure)、全局/部份结构(Whole-Part-Structure)、实例连接(instanceconnection)和消息连接(messageconnection)等。
其中,主题是指一组特定的类与对象。
00A使用了基本的结构化原则,并把它们同而向对象的观点结合起来。
00A完成系统分析,包括以下五个步骤:
确左类与对象、标识结构、左义主题、圧义属性和泄义服务。
00A本质上是一种面向对象的方法,适用于小型系统的开发。
00D负责系统设计,包括以下四个步骤:
(1)设计问题域(细化分析结果);
(2)设计人机交互部分(设计用户界面):
(3)设计任务管理部分(确定系统资源的分配):
(4)设计数据管理部分(确泄持久对象的存储)。
5、OOSE/Jacobson
OOSE[3](Object-OrientedSoftwareEngineering)是IvarJacobson在1992年提出的一种使用事例驱动的而向对象开发方法。
OOSE主要包括下列概念:
类(class)、对象(object).继承(inherits).相识(acquaintance)、通信(communication)、激励(stimuli)、操作(operation)、属性(attribute)、参与者(actor)使用事例(usecase)、子系统(subsystem)>服务包(servicepackage)、块(block)、对象模块(objectmodule)。
相识表示静态的关联关系,包括聚合关系。
激励是通信传送的消息。
参与者是与系统交互的事物,它表示所有与系统有信息交换的系统之外的事务,因此不关心它的细节。
参与者与用户不同,参与者是用户所充当的角色。
参与者的一个实例对系统做一组不同的操作。
当用户使用系统时,会执行一个行为相关的事物系列,这个系列是在与系统的会话中完成的,这个特殊的系列称为使用事例,每个使用事例都是使用系统的一条途径。
使用事例的一个执行过程可以看作是使用事例的实例。
当用户发出一个激励之后,使用事例的实例开始执行,并按照使用事例开始事物。
事务包括许多动作,事务在收到用户结束激励后被终止。
在这个意义上,使用事例可以被看作是对象类,而使用事例的实例可以被看作是对象。
OOSE开发过程中有以下五种模型,这些模型是自然过渡和紧密耦合的:
・需求模型包括由领域对象模型和界而描述支持的参与者和使用事例。
对象模型是系统的槪念化的、容易理解的描述。
界而描述刻画了系统界而的细节。
需求模型从用户的观点上完整地刻画了系统的功能需求,因此按这个模型与最终用户交流比较容易。
•分析模型是在需求模型的基础上建立的。
主要目的是要建立在系统生命期中可维护、有逻辑性、健壮的结构。
模型中有三种对象。
界而对象刻画系统界而。
实体对象刻画系统要长期管理的信息和信息上的行为。
实体对象生存在一个特别的使用事例中。
第三种是按特左的使用事例作而向事务的建模的对象。
这三种对象使得需求的改变总是局限于其中一种。
•设计模型进一步精化分析模型并考虑了当前的实现环境。
块描述了实现的意图。
分析模型通常要根据实现作相应的变化。
但分析模型中基本结构要尽可能保留。
在设计模型中,块进一步用使用事例模型来阐述界而和块间的通信。
•实现模型主要包括实现块的代码。
OOSE并不要求用而向对象语言来完成实现。
•测试模型包括不同程度的保证。
这种保证从低层的单元测试延伸到高层的系统测试。
6、VMT/IBM
VMT[1](VisualModelingTechnique)方法是IBM公司于1996年公布的。
VMT方法结合了OHT、OOSE、RDD等方法的优点,并且结合了可视化编程和原型技术。
VMT方法选择OHT方法作为整个方法的框架.并且在表示上也采用了OMT方法的表示。
VMT方法用RDD方法中的CRC(Class-Responsibi1ity-Collaboration)卡片来上义各•个对象的责任(操作)以及对象间的合作(关系)。
此外,VMT方法引入FOOSE方法中的使用事例概念,用以描述用户与系统之间的相互作用,确左系统为用户提供的服务,从而得到准确的需求模型。
VMT方法的开发过程分为三个阶段:
分析、设计和实现。
分析阶段的主要任务是建立分析模型。
设计阶段包括系统设讣、对象设计和永久性对象设计。
实现阶段就是用某一种环境来实现系统。
作业二
而向对象的设计步骤为?
1.先根据需求找岀对象
2.抽象每一个对象为类
3.找岀各对象之间的关系,使用组合、继承、分类、扩展等描述这些关系
4.找出每个对象实体要做的事,写对象方法
5.找出每个类在不需要有对象实体的情况下要做的事,写类方法
一、单项选择1、在学生管理系统的类图中,班级类和学生类应该是一种()的关系。
A、一对多B、多对一C、一对一D、多对多参考答案:
A2、以下哪个不属于面向对象设计的准则()A、模块化B、抽彖C、信息隐藏D、强耦合参考答案:
D3、()指的是一个软件结构内,不同模块之间互联的紧密程度。
A、内聚B、耦合C、重用D、隐藏参考答案:
B4.()衡量一个模块内各个元素彼此结合的紧密程度。
A、内聚B、耦合C、重用D、隐藏参考答案:
A3、()是组件图中用于描述类或组件的一个服务的操作,它不包含任何属性,也不描述任何具体的实现。
A、对象B、状态C、关系D、接口参考答案:
D6、()是通过从特定实现语言的映射而把代码转换为模型的过程。
A、系统部署B、架构设计C、需求分析D、逆向工程参考答案:
D7、顺序图中的()代表顺序图中的对象在一段时间内的存在。
A、类角色B、生命线C、激活期D、消息参考答案:
B8、顺序图中的()是定义交互和协作中交换的信息。
A、类角色B、生命线C、激活期D、消息参考答案:
D9、()是指对一组具有相同的属A、实体类B、边界类C、控制类D、消息参考答案:
C12、下图中的LoginForm是一个()A、实体类B、边界类C、控制类D、消息参考答案:
B13、类图中的()表达了一个事物访问另一个事物的能力。
A、抽象依赖B、授权依赖C、绑定依赖D、使用依赖参考答案:
B14、类图中的()表明对U标模板使用给定的实际参数进行实例化。
A、抽象依赖B、绑定依赖C、授权依赖D、使用依赖参考答案:
B15UML中的泛化用从子指向父的箭头表示,指向父的是一个()A、实心圆形B、空心圆形C、空心三角形D、实心三角形参考答案:
C16、()指的是一般事物和较特殊事物之间的关系。
A、依赖B、泛化C、关联D、实现参考答案:
B17、组合关系是一种特殊的关联,用整体端有()的简单关联修饰。
A、空心三角形箭头B、实心三角形箭头C、实心菱形箭头D、空心菱形箭头参考答案:
C18、协作图是由()组成。
A、类角色和消息流B、类角色、关联角色和消息流C、关联角色和消息流D、类角色、包角色和消息流参考答案:
B19.类可以分为()3种类型。
A、实体类、边界类、控制类B、实体类、状态类、控制类C.实体类.边界类、状态类D、实体类、事件类、控制类参考答案:
A20、类图中的()是对系统中需要存储的信息和其信息的行为建立模型。
A、实体类B、边界类C.控制类D、事件类参考答案:
A21、类图中的()位于系统与外界的交接处,在一个或多个角色和系统之间建立相互作用的模型。
A、实体类B、边界类C、控制类D、事件类参考答案:
B22、类图中的()负责协调其他类的工作,建立了一个或多个用例的行为模型。
A、实体类B、边界类C、控制类D、事件类参考答案:
C23、以下哪个不属于类之间的关系OA、关联B、泛化C、依赖D、调用参考答案:
D24.类之间的()关系说明一个事物声明说明的变化可能影响到使用它的另一个事物,但反之未必。
A、依赖B、泛化C、关联D、调用参考答案:
A25.活动图中的()可以用来描述每个活动是曲哪个对象负责完成的。
A、分义B、泳道C、汇合D、转移参考答案:
B26、活动图中的()表示对象在当前状态下执行动作,并在某个特定时间发生或某个特定的条件满足时进入后继状态。
A、分支B、汇合C、转移D、泛化参考答案:
C27、活动图中的()是指在对象的