智慧树知到《面向对象分析与设计》章节测试答案
第一章单元测试
1、UML中接口可用于()。
A.提供构造型(stereotype)名称为《interface》的具体类
B.Java和C++程序设计中,而C#程序设计中不支持
C.定义可以在多个类中重用的可执行逻辑
D.声明对象类所需要的服务
正确答案:声明对象类所需要的服务
2、在面向对象方法中,两个及以上的类作为一个类的父类时,称为()。
A.多重继承
B.多态
C.封装
D.层次继承
正确答案:多重继承
3、以下关于封装在软件复用中所充当的角色的叙述,正确的是()。
A.封装使得其他开发人员不需要知道一个软件组件内部如何工作
B.封装使得软件组件更有效地工作
C.封装使得软件开发人员不需要编制开发文档
D.封装使得软件组件开发更加容易
正确答案:封装使得其他开发人员不需要知道一个软件组件内部如何工作
4、在定义类一个类时,将其属性声明为private的目的是()。
A.实现数据隐藏,以免意外更改
B.操作符重载
C.实现属性值不可更改
D.实现属性值对类的所有对象共享
正确答案:实现属性值对类的所有对象共享
5、面向对象的四个基本特征是?
A.继承、封装、多态、抽象
B.继承、封装、多态、层次
C.封装、多态、层次、模块化
D.抽象、封装、模块、结构
正确答案:继承、封装、多态、抽象
6、首次提出“面向对象”概念的计算机科学家是()?
A.比尔.盖茨
B.艾伦.灵图
C.艾伦.凯
D.史蒂夫.乔布斯
正确答案:艾伦.凯
7、在面向对象方法中,讲逻辑上相关的数据及行为绑定在一起,使信息对使用者隐藏称为()
A.抽象
B.继承
C.封装
D.多态
正确答案:封装
8、以下关于面向对象继承的叙述中,错误的是()。
A.继承是父类和子类之间共享数据和方法的机制
B.继承定义了一种类与类之间的关系
C.继承关系中的子类将拥有父类的全部属性和方法
D.继承仅仅允许单重继承,即不允许一个子类有多个父类
正确答案:继承仅仅允许单重继承,即不允许一个子类有多个父类
9、一个类是()在定义类时,将其属性可以声明为private、protected、public。
A.一组对象的封装
B.表示一组对象的层次关系
C.一组对象的实例
D.()组对象的抽象定义
正确答案:()组对象的抽象定义
第二章单元测试
1、重新定义方法的功能在面向对象的编程中非常重要,以下哪一条不是原因?
A.因为它可以给方法添加额外的工作
B.因为它可以引入抽象方法,再重新定义为具体的方法
C.因为它可以在子类中提供更准确或更快捷的定义
D.因为它可以禁用子类中的方法
正确答案:因为它可以禁用子类中的方法
2、如图所示,A、B和C是什么对象?

A.A是实体,B是控制者,C是边界
B.A是控制者,B是实体,C是边界
C.A是边界,B是控制者,C是实体
D.A是控制者,B是边界,C是实体
正确答案:A是控制者,B是实体,C是边界
3、如图所示,Car和Engine间的关系最可能的实现方式是什么?

A.一个字段,其类型是Car,在Engine中
B.一个类CarEngine,它有一个Car类型的字段和一个Engine类型的字段
C.一个字段,其类型是Engine,在Car中
D.一个字段,其类型是Engine,在Car中;一个字段,其类型是Car,在Engine中
正确答案:一个字段,其类型是Engine,在Car中
4、在UML中,哪个图用于显示在对象之间传送的消息?
A.对象图
B.状态机图
C.顺序图
D.部署图
正确答案:顺序图
5、术语“多态性”的含义是什么?
A.变量可以在不同的时候指向同一类族的不同对象
B.有相同签名的消息可以在不同的时候调用相同的方法
C.所有面向对象的编程语言都是不同的
D.所有面向对象的方法都使用不同的表示法
正确答案:变量可以在不同的时候指向同一类族的不同对象
第三章单元测试
1、要求计算机201803班的同学今天下午打扫卫生。这是属于()类别的职责。
A.对象需要知道自己的一些数据
B.对象需要知道自己的一些状态
C.对象创建了一个新的实例
D.对象需要自己完成一些事情
正确答案:对象需要自己完成一些事情
2、采用面向对象方法开发软件的过程中,抽取和整理用户需求并建立问题域精确模型的过程叫()。
A.面向对象测试
B.面向对象实现
C.面向对象设计
D.面向对象分析
正确答案:面向对象分析
3、面向对象分析与设计是面向对象软件开发过程中的两个重要阶段,下列活动中,()不属于面向对象分析阶段。
A.构建分析模型
B.识别分析类
C.用例动态建模
D.评估分析模型
正确答案:用例动态建模
4、以下关于统一过程UP的叙述中,不正确的是()。
A.UP是以用例和风险为驱动,以架构为中心,迭代并且增量的开发过程
B.UP定义了四个阶段,即起始、精化、构建和确认阶段
C.每次迭代都包含计划、分析、设计、构造、集成、测试以及内部和外部发布
D.每个迭代有五个核心工作流
正确答案:UP定义了四个阶段,即起始、精化、构建和确认阶段
5、面向对象分析的目的是为了获得对应用问题的理解,其主要活动不包括()。
A.认定并组织对象
B.描述对象间的相互作用
C.面向对象程序设计
D.确定基于对象的操作
正确答案:面向对象程序设计
6、在面向对象设计中,用于描述目标软件与外部环境之间交互的类被称为边界类。它可以()。
A.表示目标软件系统中具有持久意义的信息项及其操作
B.协调、控制其他类完成用例规定的功能或行为
C.实现目标软件系统与外部系统或外部设备之间的信息交流和互操作
D.分解任务并把子任务分派给适当的辅助类
正确答案:实现目标软件系统与外部系统或外部设备之间的信息交流和互操作
7、以下()不是面向对象分析设计时的关键问题。
A.应该如何为对象类分配职责(responsibility)
B.某些针对设计问题的、经过反复验证的解决方案是如何设计出来的
C.什么样的类应该做什么样的事情
D.对象之间应该如何协作
正确答案:某些针对设计问题的、经过反复验证的解决方案是如何设计出来的
8、面向对象分析设计领域,良好的对象设计是构建高质量软件系统的基本要求,如架构性的内聚、可重用性、()等。
A.商业价值
B.可维护性
C.国家政策
D.企业资产
正确答案:可维护性
第四章单元测试
1、面向对象分析师需要把多种不同的寻找概念类的方法融合,实际工作中不再区分用了何种方法。对或错?
A.正确
B.错误
正确答案:正确
2、需求文档中的一个名词,究竟作为一个类,还是一个类的属性,需要具体情况具体分析。对或错?
A.正确
B.错误
正确答案:正确
3、在分析设计的早期,需要为每个概念类定义方法method,对或错?
A.正确
B.错误
正确答案:错误
4、CRC 方法寻找概念类的过程是很正式的行为,得出的结论也是正规的,不需要再修改了。对或错?
A.正确
B.错误
正确答案:错误
5、辨析一个概念类是属性还是类,一般可以参考以下准则(),判定这个概念是属性。
A.它不做具体的事情,它不能改变状态
B.它能完成具体的事情,它不能改变状态
C.它不做具体的事情,它能改变状态
D.它做具体的事情,也能改变状态
正确答案:它不做具体的事情,它不能改变状态
6、在面向对象分析设计过程中,CRC是一种寻找概念类的方法。CRC是指()。
A.Class Relation Clearly
B.Class Responsibility Collaboration
C.Cyclic Redundancy Check
D.Card Reduced Count
正确答案:Class Responsibility Collaboration
7、CRC分析过程的输入信息是()。
A.面向对象程序源码
B.设计模型
C.用例模型
D.绘图工具
正确答案:用例模型
8、关于在适当的细节层面定义概念类,下面描述不正确的是()。
A.当发现一个类非常复杂时,要考虑拆分成多个小一点的类
B.不能有太多的类
C.与所要解决的问题领域有关系
D.在实现时由程序员决定每个定义多少个方法
正确答案:在实现时由程序员决定每个定义多少个方法
9、头脑风暴是执行CRC法寻找概念类的手段之一,其原则是()
A.不是所有的概念都可以提出来,没有依据的概念不应该提
B.不要批评其他人,所有的概念都可以提
C.由小组长指定下一位发言者
D.在整个会议期间一定要严肃,不苟言笑
正确答案:不要批评其他人,所有的概念都可以提
第五章单元测试
1、对象、类、继承和消息传递是面向对象的4个核心概念。其中对象是封装()的整体。
A.命名空间
B.要完成任务
C.一组数据
D.数据和行为
正确答案:数据和行为
2、面向对象()选择合适的面向对象程序设计语言,将程序组织为相互协作的对象集合,每个对象表示某个类的实例,类通过继承等关系进行组织。
A.分析
B.设计
C.程序设计
D.测试
正确答案:程序设计
3、为何需要领域模型? 是因为()
A.领域模型反映了系统的商业价值
B.领域模型影响操作契约、词汇表和设计模型
C.领域模型是用户理解业务系统的关键
D.领域模型是程序员编程的依据
正确答案:领域模型影响操作契约、词汇表和设计模型
4、以下()是创建领域模型的主要目标之一。
A.作为公司核算软件系统利润的依据
B.作为项目进行绩效考核的依据
C.作为系统设计的依据
D.作为系统测试的依据
正确答案:作为系统设计的依据
5、领域模型的主要组成部分,包括;概念类、概念类之间的关系、 以及()。
A.概念类的属性
B.概念类的父类
C.概念类的职责
D.概念类的由来
正确答案:概念类的属性
6、如图所示,这不是一个合适的领域模型,主要理由是()

A.这里面用到了组合关系
B.这里面定义了属性
C.这里面定义了方法
D.这里面有参与者
正确答案:这里面定义了方法
7、在描述软件需求的时候,Vision是指()
A.待开发软件的可见性
B.待开发软件的可视化描述
C.待开发软件的前景描述
D.待开软件的虚拟化
正确答案:待开发软件的前景描述
8、领域模型设计的时候,涉及到一个低表示差异的概念,这个“低表示差异”是指()。
A.领域模型的概念类属于底层的表示概念
B.概念类直接表达了用户的术语
C.概念类为寻找设计类提供了参考
D.领域模型与设计模型是一样的
正确答案:概念类为寻找设计类提供了参考
9、领域模型与数据模型之间的关系,下列()的描述比较贴切。
A.领域模型研究领域概念、实体、及其相互之间的关系
B.数据模型研究领域概念、实体、及其相互之间的关系
C.领域模型研究领域概念如何保存
D.数据模型与领域模型一样,都是研究领域概念
正确答案:领域模型研究领域概念、实体、及其相互之间的关系
第六章单元测试
1、如果两个顾客在世界的不同地方,要购买音乐会的最后一张票,如何分配这张票?()
A.引入一个额外的业务规则,把可用票的查询和临时预定合并起来
B.使顾客参与软件“竞争”,以买到票
C.不允许卖出最后一张票,因为这对其中的一位顾客是不公平的
D.由两个顾客自己商量决定
正确答案:引入一个额外的业务规则,把可用票的查询和临时预定合并起来
2、用例描述有三种详细程度,以下叙述中,()不是有关用例描述的详细程度。
A.简短的 Brief
B.口头的 oral
C.随意的 casual
D.正式的 fully
正确答案:口头的 oral
3、以下关于断言(assertion)的叙述,不正确的是()。
A.在类的代码中,加入一些断言,不是定义契约,仅仅是测试
B.断言仅仅是一些逻辑表达式
C.断言不影响程序的执行
D.断言可以被评估,或者忽略
正确答案:在类的代码中,加入一些断言,不是定义契约,仅仅是测试
4、关于程序正确性的定义:{P} A {Q} ,其中()的叙述是不正确的。
A.P是前置条件
B.Q是运行结果
C.Q是后置条件
D.A是执行功能
正确答案:Q是运行结果
5、若类A仅在其方法Method1中定义并使用了类B的一个对象,类A其他部分的代码都不涉及类B,那么类A与类B的关系应为()。
A.关联
B.依赖
C.聚合
D.组合
正确答案:依赖
6、判断一个用例是否是一个合适的用例,以下()不是一个好的方法。
A.用例是否描述了应该做什么,而不是如何做
B.用例的描述是否采取了参与者的视点
C.用例的描述是否采取了设计者的视点
D.用例是否对参与者有价值
正确答案:用例的描述是否采取了设计者的视点
7、契约式设计(Design by Contract)的核心思想,不包括以下()。
A.软件可靠性需要服务的提供方与客户方都有精确的规格说明
B.契约式设计DbC使用断言作为供/需双方之间的契约
C.类不变量是类实例都有一个自己的固定不变的值
D.断言包括前置条件、后置条件、不变量等
正确答案:类不变量是类实例都有一个自己的固定不变的值
8、针对重要的系统事件定义操作契约,以下()不是操作契约要求的内容。
A.操作契约的名称
B.系统操作的运行时间
C.系统操作的前置条件
D.系统操作的后置条件
正确答案:系统操作的运行时间
9、需求与领域分析阶段的主要工作,不包括()。
A.做正确的事情 “Do the right thing”
B.理解领域问题 Understand the domain
C.澄清并记录约束和需求 Clarify and record the constraints and requirements
D.考虑设计,集中在如何实现这些需求
正确答案:考虑设计,集中在如何实现这些需求
第七章单元测试
1、由谁(某个类)来负责创建另一个类的新实例(对象)?可以根据如下()的GRASP原则来处理。
A.控制器
B.高内聚
C.创建者
D.设计师
正确答案:创建者
第八章单元测试
1、软件设计时需要遵循抽象、模块化、信息隐蔽和模块独立原则。在划分软件系统模块时,应尽量做到()。
A.高内聚高耦合
B.高内聚低耦合
C.低内聚高耦合
D.低内聚低耦合
正确答案:高内聚低耦合
2、在面向对象方法中,支持多态的是()。
A.静态分配
B.动态分配
C.静态类型
D.动态绑定
正确答案:动态绑定
3、开-闭原则(Open-Closed Principle,OCP)是面向对象的可复用设计的基石。开-闭原则是指一个软件实体应当对()开放,对修改关闭。
A.修改
B.扩展
C.分析
D.设计
正确答案:扩展
4、类的设计应遵循三条基本原则。对于一个设计并实现好的类,如果需要功能上的扩充,一般来说应该通过添加新类实现,而不是修改原类的代码。这种原则叫()。
A.封装原则
B.开放/封闭原则
C.最小惊讶原则
D.单一功能原则
正确答案:开放/封闭原则
5、依赖倒置原则(Dependence Inversion Principle, DIP)就是要依赖于(),或者说要针对接口编程,不要针对实现编程。
A.程序设计语言
B.建模语言
C.实现
D.抽象
正确答案:抽象
6、如果依据信息专家原则获得的解决方案不合适,既不想违反低耦合、高内聚,也不想违反其他的原则,该如何把职责分配给对象?以下()是可以选择的GRASP原则。
A.隔离变化
B.间接
C.依赖倒置
D.开闭原则
正确答案:间接
7、以下场景()不适合应用纯虚构原则进行职责分配。
A.一个银行应用有账户、客户、交易等信息需要保存到数据库中
B.仿真游戏中需要扔色子获得面值
C.POS系统每笔销售需要记录不同的商品及其数量
D.POS系统中需要把每笔销售Sales保存到数据库
正确答案:POS系统每笔销售需要记录不同的商品及其数量
8、在面向对象技术中,不同的对象在收到同一消息时可以产生完全不同的结果,这一现象称为()。利用类的层次关系,把具有通用功能的消息存放在高层次,而不同的实现这一功能的行为放在较低层次,在这些低层次上生成的对象能够给通用消息以不同的响应。
A.绑定
B.继承
C.消息
D.多态
正确答案:多态
第九章单元测试
1、一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解。采用()模式,可使各对象不需要显式地相互引用,使其耦合松散。而且可以独立地改变它们之间的交互,分布通信。
A.解释器(Interpreter)
B.策略(Strategy)
C.中介者(Mediator)
D.观察者(Observer)
正确答案:观察者(Observer)
2、如图所示,一个气象站的数据处理解决方案,采用了()设计模式。

A.策略
B.观察者
C.接口实现
D.继承机制
正确答案:观察者
3、以下关于Singleton(单例)设计模式的叙述中,不正确的是()。
A.单例模式是创建型模式
B.单例模式保证一个类仅有一个实例
C.单例类提供一个访问唯一实例的全局访问点
D.单例类提供一个创建一系列相关或相互依赖对象的接口
正确答案:单例类提供一个创建一系列相关或相互依赖对象的接口
4、下图所示为() 设计模式

A.适配器(Adapter)
B.责任链(Chain of Responsibility)
C.外观(Facade)
D.桥接(Bridge)
正确答案:外观(Facade)
5、()将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
A.Adapter(适配器)模式
B.Command(命令)模式
C.Singleton(单例)模式
D.Strategy(策略)模式
正确答案:Adapter(适配器)模式
6、下列UML类图表示的是()设计模式。;

A.备忘录(Memento)
B.适配器(Adapter)
C.状态(State)
D.观察者(Observer)
正确答案:适配器(Adapter)
7、根据Christopher Alexander对模式的定义,模式有四个本质的构成。下列()不是其中之一。
A.模式的名字
B.模式解决的问题
C.模式编程的语言
D.模式提出的解决方案
正确答案:模式编程的语言
8、下图所示为观察者(Obserrver)模式的抽象示意图,其中()知道其观察者,可以有任何多个观察者观察同一个目标;提供注册和删除观察者对象的接口。

A.Subject
B.Observer
C.ConcreteSubject
D.ConcreteObserver
正确答案:ConcreteSubject
9、适配器(Adapter)设计模式可以用于()
A.将已有类的接口转换成和目标接口兼容
B.改进系统性能
C.将客户端代码数据转换成目标接口期望的合适的格式
D.使所有接口不兼容可以一起工作
正确答案:将已有类的接口转换成和目标接口兼容
第十章单元测试
1、()设计模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。
A.工厂方法(Factory Method)
B.享元(Flyweight)
C.观察者(Observer)
D.中介者(Mediator)
正确答案:工厂方法(Factory Method)
2、()设计模式实现了算法的提供方与算法的使用者隔离,使得算法的变化独立于算法的使用。
A.命令(Command)
B.责任链(Chain of Responsibility)
C.观察者(Observer)
D.策略(Strategy)
正确答案:策略(Strategy)
3、()设计模式为股票信息的发布与对股票感兴趣的股民之间的耦合,减少到最小程度,股民可以自由地决定何时需要得到股票信息或者取消得到通知。
A.命令(Command)
B.责任链(Chain of Responsibility)
C.观察者(Observer)
D.策略(Strategy)
正确答案:观察者(Observer)
4、在面向对象软件开发过程中,采用设计模式(),
A.允许在非面向对象程序设计语言中使用面向对象的概念
B.以保证程序的运行速度达到最优值
C.以减少设计过程创建的类的个数
D.以复用成功的设计
正确答案:以复用成功的设计
5、下列UML类图表示的是()设计模式。

A.工厂方法
B.策略
C.抽象工厂
D.观察者
正确答案:工厂方法
6、关于工厂设计模式的叙述中,错误的是()
A.提供创建一系列相关或相互依赖的对象的接口,而无需指定这些对象所属的具体类
B.可应用于一个系统要由多个产品系列中的一个来配置的时候
C.可应用于强调一系列相关产品对象的设计以便进行联合使用的时候
D.可应用于希望使用已经存在的类,但其接口不符合需求的时候
正确答案:可应用于希望使用已经存在的类,但其接口不符合需求的时候
7、在POS系统中,有时需要实行价格优惠, 如,对普通客户或新客户报全价;对老客户统一折扣5%;对大客户统一折扣10%;该如何处理?()
A.采用适配器模式
B.采用观察者模式
C.采用策略模式
D.使用Switch()语句,而不是if语句
正确答案:采用策略模式
8、如图所示的设计方案, 采用了()的设计模式

A.策略模式
B.观察者模式
C.工厂模式
D.外观模式
正确答案:策略模式
9、如图所示的设计方案中,contextInterface(){ ;}里面核心的语句应该是()。

A.strategyBehavior:Strategy()
B.strategyBehavior:concreteStrategyA()
C.strategyBehavior.AlgorithmInterface()
D.strategyBehavior()
正确答案:strategyBehavior.AlgorithmInterface()
第十一章单元测试
1、正式技术评审的目标是()。
A.允许高级技术人员修改错误
B.评价程序员的工作效率
C.发现软件中的错误
D.记录程序员的错误情况并与绩效挂钩
正确答案:发现软件中的错误
2、以下关于文档的叙述中,不正确的是()。
A.项目相关人员可以通过文档进行沟通
B.编写文档会降低软件开发的效率
C.编写高质量文档可以提高软件开发的质量
D.文档是软件的不可或缺的部分
正确答案:编写文档会降低软件开发的效率
3、以下关于文档的叙述中,不正确的是()。
A.文档仅仅描述和规定了软件的使用范围及相关的操作命令
B.文档也是软件产品的一部分,没有文档的软件就不能称之为软件
C.软件文档的编制在软件开发工作中占有突出的地位和相当大的工作量
D.高质量文档对于发挥软件产品的效益有着重要的意义
正确答案:文档仅仅描述和规定了软件的使用范围及相关的操作命令
4、一般而言,高端软件人才应该具备多种素质。以下()不是其中之一。
A.系统分析和设计理论基础,掌握大系统需求分析、建模与仿真技术
B.应用系统设计能力,能够从事战略性新兴产业软件的研发
C.能够按照设计要求完成代码编写的能力
D.国际前沿技术学习能力和交流能力
正确答案:能够按照设计要求完成代码编写的能力
5、架构师的设计思想,来源有多种。下列()不是其中之一。
A.来自神秘的魔术箱
B.重用已有的解决方案
C.研习方法学
D.直觉
正确答案:来自神秘的魔术箱
6、架构师想要成功,在组织内的角色必须完成以下多种工作。()不是其中之一。
A.理解不同的人对架构师的不同期望
B.明白你对不同的人有哪些诉求
C.在不同的人之间协调 ;Coordinate with them
D.不要倾听不同的人的想法、意见 ,以免失去主见
正确答案:在不同的人之间协调 ;Coordinate with them
7、关于软件架构师和管理者之间的角色定位,以下错误的是()。
A.软件架构师是直接的技术贡献者
B.项目管理者是主要的技术贡献者
C.管理者则是通过协调其他人员的活动来间接做出贡献
D.他们往往一起协作,构成高效的管理团队
正确答案:项目管理者是主要的技术贡献者
8、需求分析阶段,与市场部的协调工作,主要是有()完成的。
A.架构师
B.项目经理
C.市场部经理
D.软件工程师
正确答案:项目经理
9、关于软件项目应该采用的新技术、技术培训、技术工具等,主要是由()完成的。
A.架构师
B.项目经理
C.市场部经理
D.软件工程师
正确答案:架构师