学生高级软件工程复习题.docx
《学生高级软件工程复习题.docx》由会员分享,可在线阅读,更多相关《学生高级软件工程复习题.docx(27页珍藏版)》请在冰豆网上搜索。
![学生高级软件工程复习题.docx](https://file1.bdocx.com/fileroot1/2023-1/26/bf7e1885-b482-4609-901a-3933cc977350/bf7e1885-b482-4609-901a-3933cc9773501.gif)
学生高级软件工程复习题
一、选择题:
(共10小题,每题1分,共10分)
1.使得在多个类中能够定义同一个操作或属性名,并在每一个类中有不同的实现的一种方法是【B】。
A)继承B)多态性C)约束D)接口
2.类图应该画在Rose的哪种【B】视图中。
A)UseCaseViewB)LogicView
C)ponentViewD)DeploymentView
3.在UML中,类之间的关系有一种为关联关系,其中多重性用来描述类之间的对应关系,下面哪个不是其中之一【D】
A)0…1B)0…*C)1…*D)*…*
4.关于下面的类图中所表示的关联关系,下列四个选项中说法错误的是:
【D】
A.一个学生可以选1到多门课程B.一个老师可以教0到多门课程
C.一门课程只能由一位老师上课D.一门课程可以被0到多个学生选课
5.和包相比,子系统具有更丰富的语义,它能够通过接口对外提供行为;下面四个选项中,哪个是包和子系统都具有的特点:
【】
A.一种分组机制B.对外提供行为
C.完全封装实现细节D.容易被替换
6.“交通工具”类与“汽车”类之间的关系属于【】。
A)关联关系B)实现关系C)依赖关系D)泛化关系
7.下图中的空心箭头连线表示【】关系
A)泛化B)包含C)扩展D)实现
8.关于通信图的描述,下列哪个不正确【】
A)通信图作为一种交互图,强调的是参加交互的对象的组织;
B)在ROSE工具中,通信图可在顺序图的基础上按“F5”键自动生成;
C)通信图中有消息流的顺序号;
D)通信图是顺序图的一种
9.计算机由中央处理器、内存、软盘、硬盘、显示器、键盘鼠标等组成。
那么puter类和其他类(CPU、RAM、FloppyDisk、Monitor、Keyboard、mouse)之间的关系是【】。
A)泛化关系B)实现关系C)包含关系D)聚集关系
10.“一个研究生在软件学院做助教(teachingassistant),同时还在校园餐厅打工做收银员(cashier)。
也就是说,这个研究生有3种角色:
学生、助教、收银员,但在同一时刻只能有一种角色。
”
根据上面的陈述,下面哪个设计是最合理的?
【】
AB
CD
11.下列对系统边界的描述中,不正确的是【】。
A.系统边界是指系统与系统之间的界限。
B.用例图中的系统边界用来表示正在建模系统的边界。
C.边界内表示系统的组成部分,边界外表示系统外部。
D.可以使用Rose绘制用例图中的系统边界。
12.下列关于类方法的声明,不正确的是【】。
A.方法定义了类所许可的行动。
B.从一个类所创建的所有对象可以使用同一组属性和方法。
C.每个方法应该有一个参数。
D.如果在同一个类中定义了类似的操作,则它们的行为应该是类似的。
13.下列说法不正确的是【】。
A)用例和参与者之间的对应关系又叫做通信关联,它表示参与者使用了系统中的哪些用例
B)参与者只能是人,不能是子系统、时间等
C)特殊需求指的是一个用例的非功能性需求和设计约束
D)在扩展关系中,基础用例提供了一个或者多个插入点,扩展用例为这些插入点提供了需要插入的行为
14.下列对用例的泛化关系描述不正确的是【】。
A)用例的泛化关系中,所有的子用例都有相似的目的和结构。
注意它们是整体上的相似
B)用例的泛化关系中,基础用例在目的上可以完全不同,但是它们都有一段相似的行为,它们的相似是部分的相似不是整体的相似
C)用例的泛化关系类似于面向对象中的继承,它把多个子用例中的共性抽象成一个父用例。
子用例在继承父用例的基础上可以进行修改
D)用例的泛化指的是一个父用例可以被特化形成多个子用例,而父用例和子用例之间的关系就是泛化关系
15.构架分析一个很重要的原则是避免包之间的循环依赖,下面四个选项中哪个构架示意图中不存在循环依赖:
【】
(A)(B)(C)(D)
16.在某系统中,存在如下的业务陈述:
一个客户提交0个或多个订单;
一个订单由一个且仅由一个客户提交。
系统中存在两个类:
“客户”类和“订单”类。
对应每个“客户”类的实例,存在【】“订单”类的实例;对应每个“客户”类的实例,存在0个或多个“客户”类的实例。
A)0个B)1个C)1个或多个D)0个或多个
17.用例(Use-case)用来描述系统在事件做出响应时所采取的行动。
用例之间是具有相关性的。
在一个“订单输入子系统”中,创建新订单和更新订单都需要检查用户XX是否正确。
那么,用例“创建新订单”、“更新订单”与用例“检查用户XX”之间是【】关系。
A)包含(include)B)扩展(extend)
C)分类(classification)D)聚集(aggregation)
18.下列关于接口关系的说法不正确的是【】?
A)接口是一种特殊的类
B)所有接口都是有构件型<>的类
C)一个类可以通过实现接口从而支持接口所指定的行为
D)在程序运行的时候,其他对象不仅需要依赖于此接口,还需要知道该类对接口实现的其他信息
19.用例从用户角度描述系统的行为。
用例之间可以存在一定的关系。
假设在“图书馆管理系统”用例模型中,所有用户使用系统之前必须通过“身份验证”,“身份验证”可以有“密码验证”和“智能卡验证”两种方式,则“身份验证”与“密码验证”和“智能卡验证”之间是【】关系。
A)关联 B)包含C)扩展D)泛化
20.下列关于使用用例的目的,不正确的是【】。
A)确定系统应具备哪些功能
B)为系统的功能提供清晰一致的描述,方便开发人员传递系统的需求
C)为系统验证工作打下基础
D)减少程序员的编码工作量,提高开发效率
21.当使用用例模型对一个工资系统进行建模时,下列哪个选项可以被认定为该系统的角色(Actor):
【】
A.接收工资单的银行B.工资系统源代码程序C.工资单D.工资数据库
22.关于分析和设计区别,下列哪个说法是错误的:
【】
A.分析侧重于问题域,设计侧重于解域
B.一般情况下,设计模型比分析模型复杂得多
C.分析解决做什么的问题,设计则解决怎么做的问题
D.分析模型主要侧重功能需求,而设计模型则要充分考虑各种非功能需求
E.一般情况下,分析模型不考虑系统结构,而设计模型则对系统结构进行全面设计
23.关于系统架构,下列哪个说法是错误的:
【】
A.软件架构包含着一套关于软件系统组织的重要结论(decision)
B.软件架构决策是最基础的决策,它的改变会带来巨大的影响
C.架构为设计提供了一个框架
D.架构是静态的,而不是动态的
24.关于软件模块分层和分区的注意事项,下列说法中,哪个是错误的:
【】
A.分层时高层模块仅对当前层和紧邻着的下层建立依赖关系,同时尽量避免越层依赖
B.分层时较高层关注用户需求,受需求影响;而较低层关注实施平台,受环境影响
C.分层的目标是减低耦合度,并且减轻维护工作量,因此层数越多越好
D.分区要最大化包内的耦合和内聚,而最小化包之间的耦合
25.在分析阶段,建立了类A到类B的单向关联;在用例设计过程中,出于其它原因将类A封装到子系统S1中,而将类B封装到子系统S2中,此时子系统S1和S2之间:
【】
A.没有任何关系
B.建立从子系统S1到S2的依赖关系
C.建立从子系统S1到S2的关联关系
D.建立从子系统S1到S2的接口之间的依赖关系
E.建立从子系统S1到S2的接口之间的关联关系
26.关于类的状态建模,下列说法中哪项是正确的:
【】
A.对于所有的设计类都需要进行状态建模
B.状态建模描述了一个类的对象的发展历史
C.对于复杂的类,应该利用多个状态图进行状态建模
D.某一时刻,一个类的对象可以处于多个不同的状态
E.状态建模过程只会影响类的操作,而不会涉及类的属性
27.已知类A需要类B提供的服务;下列所描述的四种情况中,哪种情况不会把类A和类B之间的关系定义成依赖关系:
【】
A.类A中存在两个操作都需要访问类B的同一个对象
B.类A的某个操作内部创建了类B的对象,而其它操作均与类B无关
C.类A的某个操作其参数是类B的对象,而其它操作均与类B无关
D.类B是一个全局变量
28.Statopia是一家大型公司,由于公司业务的扩大,准备对公司已有的软件系统进行升级,因此委托ObjectR公司进行升级。
Statopia公司所使用的系统是很久以前开发的,且不是用OO方法开发的,该系统非常复杂,而且系统使用多线程来处理公司中并发的业务请求。
由于原系统开发出来后经过多次修改,最初的系统开发文档已经过时。
ObjectR公司建议在对系统升级前和Statopia公司的高层管理人员开一次讨论会,进一步了解业务,以便能更好地了解目前所使用的软件系统。
在这次讨论会中,下面几个图中哪个图是最有用的?
【】
A)状态图B)部署图C)活动图D)顺序图
29.每个HouseKeeper都有一个Manager负责,有的Manager可能负责多个HouseKeeper,有的Manger可能一个HouseKeeper都没有,下面哪幅图适合描述类HouseKeeper和类Manger的关系?
【】
A.
B.
C.
D.
30.已知三个类A、B和C,其中类A由类B的一个实例和类C的1个或多个实例构成。
能够正确表示类A、B和C之间关系的UML类图是【】。
A.
B.
C.
D.
31.(多选题)UML提供了一系列的图支持面向对象的分析与设计,其中
(1)为系统的静态结构视图;
(2)对系统的参与者和行为进行组织和建模是非常重要的;(3)和(4)都是描述系统动态视图的交互图,其中(3)描述了以时间顺序组织的对象之间的交互活动,(4)强调收发消息的对象的组织结构。
那么,符合
(1)-(4)顺序的答案为【】:
A)状态机图B)用例图C)顺序图
D)部署图E)通信图F)类图
32.(多选题)在“成绩管理系统”中,“查询成绩”和“网上查询成绩”用例之间的关系、“输入成绩”和“登录系统”用例之间的关系分别为【】;
A)扩展B)关联C)泛化D)包含
33.(多选题)在下面的类图中,与卡车有关联的类有:
【】
A.人B.轿车C.卡车D.拖车
34.(多选题)下面是用例间主要关系的有【】
A)扩展B)实现C)泛化D)依赖E)包含
35.(多选题)已知某接口A,存在类B实现了该接口所定义的所有操作;对于这两个类之间存在的关系,下列选项中哪些是正确的(为了简化,图中省略了相关的属性和操作):
【】
A.B.C.D.
36.(多选题)如下图所示,下面哪些陈述是正确的?
【】
(A)汽车总是有相同的车身
(B)一些汽车有备用轮胎
(C)汽车有一个引擎,引擎在汽车之间不共享
(D)所有的汽车都有四或五个轮胎
(E)汽车必须有至少一个司机
(F)乘客不可能是司机
37.(多选题)“持久性”分析机制其对应的设计机制(具体方法)可能是。
提示:
不考虑详细实现策略:
【】
(A)RDBMS(B)ODBC(C)OODBMS(D)ObjectStore(E)JDO
38.(多选题)请根据下述描述,不正确的是【】
A)UML2中一共有九种图:
它们是用例图、类图、对象图、顺序图、通信图、状态机图、活动图、构件图、部署图
B)用例图是从程序员角度来描述系统的功能
C)类图是描述系统中类的静态结构,对象图是描述系统中类的动态结构
D)活动图和状态机图用来描述系统的动态行为
E)通信图的一个用途是表示一个类操作的实现
39.(多选题)多重继承在概念上是比较直接,也是真实世界的体现;然而在实际使用时却要非常谨慎,这主要是因为多重继承存在很多潜在问题,具体表现为:
【】
A.由于继承多个父类,子类经常存在命名冲突B.多重继承增加了系统的复杂程度
C.有些编程语言不支持多重继承的实现D.UML语言不支持多重继承的建模
40.(多选题)已知在某用例实现的分析阶段顺序图中存在A、B两个类;而在设计阶段,已经将这两个类打包在子系统S中,此时如何表示其它类与这两个类的交互:
【】
A.直接在序列图中描绘与A、B两个类的交互过程
B.在序列图中使用子系统S,原来与A、B的交互转化为与S的交互
C.为子系统S设计接口I,原来与A、B的交互转化为与I的交互
D.为子系统S设计代理类P,原来与A、B的交互转化为与P的交互
41.(多选题)持久性框架主要解决的核心问题是:
【】
A.将数据封装成对象B.将对象间的关系转化成数据表之间的关系
C.将对象拆分成数据D.提高数据库访问效率
42.(多选题)下列选项中,那些是“用例描述”应该包含的内容:
【】
A.概述B.基本事件流C.可选事件流D.对象模型E.前置条件
43.(多选题)在下图所示的分层构架中,框架层可以直接使用哪些层次提供的服务:
【】
A.应用程序层B.框架层C.基础设施层D.复用层
44.在分析阶段,职责分配是至关重要的;现已知实体类A、B都有数据a,则对于操作数据a的职责op应该如何设计:
【】
A.将职责交给类A,对其它需要执行该职责的类增加关系
B.将职责交给类B,对其它需要执行该职责的类增加关系
C.将职责放在控制类中,对其它需要执行该职责的类增加关系
D.将职责放在边界类中,对其它需要执行该职责的类增加关系
E.创建一个新类,将职责放在这个新类中,对其它需要执行该职责的类增加关系
45.在UML提供的图中,
(1)【】用于描述系统与外部系统及用户之间的交互;
(2)【】用于按时间顺序描述对象间的交互。
(1)A、用例图B、类图C、对象图D、部署图
(2)A、网络图B、状态图C、协作图D、序列图
二、简答题:
(共10小题,每题3分,共30分)
1.在实际业务中,设计元素主要体现在哪几个方面?
2.关联中的组合和聚合之间的区别是什么?
3.请阐述统一软件过程RUP的核心思想?
4.阐述面向对象的基本设计原则包含哪5个原则?
5.类的关系主要分为依赖关系、关联关系、聚合关系、组合关系、泛化关系、实现关系(类与接口的关系),请根据“高内聚、低耦合”的设计原则,回答哪一种关系的“耦合度”最低?
哪一种关系的“耦合度”最高?
6.请根据下图,来描述界面对象之间的关联的语义联系
7.看图回答下面问题
类“申请”和类“支付明细”之间是什么关系?
并用文字性语言描述该类图表达意思。
8.在下面的顺序图图示中标出哪些符号或文字是对象、消息、自反消息、生命线、控制焦点(或激活条)?
并给出图中的消息名称
9.用例模型分析,根据下图,完成以下6个分析工作
1)上图中的参与者有?
【】
(a)1(b)2(c)3(d)4
2)上图中的用例有?
【】
(a)1(b)2(c)3(d)4
3)2和3之间是什么关系?
5和6呢?
【】
(a)扩展,包含(b)包含,扩展
4)5缺少了3仍然是个完整的用例?
【】
(a)是的(b)不是
5)4能够参与2吗?
1能够参与5吗?
【】
(a)可以,不可以(b)不可以,可以
6)参与者1和参与者4之间具有什么关系?
【】
(a)扩展(b)实现(c)泛化(d)依赖(e)关联
10.面向对象设计的核心思想是什么,并对其进行说明。
11.某公司决定开发一个管理所有客户信息的交互式的网络系统,系统功能需求描述如下:
(1)浏览客户信息:
任何使用Internet的网络用户都可以浏览公司所有的客户信息(包括XX、住址、等)。
(2)登录:
公司授予每个客户一个账号。
拥有授权账号的客户,可以使用系统提供的页面设置个人密码,并使用该账号和密码向系统注册。
(3)修改个人信息:
客户向系统注册后,可以发送电子或者使用系统提供的页面,对个人信息进行修改。
(4)删除客户信息:
只有公司管理人员才能够删除不再接受公司服务的客户的信息。
在需求分析阶段,采用用例图描述系统功能需求(请注意参与者之间的泛化关系的应用),如下图所示,请指出图中的A,B,C和D分别是哪个用例?
12.在考虑部署环境时,如果需要将某个包的内容部署到多个不同的节点,如何对包进行部署?
13.根据给定的设计类类图,请阐述该类图所反映的业务领域知识。
14.下图为用例文档中的事件流描述-用例交互四部曲示意图,请从需求和分析两个阶段根据下图回答问题:
1)需求阶段的用例文档是从用户角度看待用户问题,侧重描述交互的1(动作)、4(响应)步的事件流,请解释为什么?
2)分析阶段和设计阶段则需要从系统角度看待用户问题,重点关注交互的2(验证)、3(处理)步的事件流,请解释为什么?
15.在子系统设计策略中主要遵循的是面向接口的编程思想——采用大量的接口来解耦子系统与外部的耦合。
请问,采取这种策略对设计子系统有何优势?
16.UML中类的关系包括关联、聚合、泛化、实现、依赖等几种类型,请将合适的关系填写在下列描述的【】中。
1)在学校中,一个导师可以指导多个研究生,一个研究生可以由多个导师指导,那么导师和研究生之间是【】关系。
2)交通工具与卡车之间是【】关系。
3)公司与部门之间是【】关系。
4)罚款与读者的类型之间是【】关系。
5)参数类及其实例类之间是【】关系。
17.如图所示,请回答:
①命名对象aPaymentController:
PaymentController必须实现哪些方法?
②命名对象aReservation:
Reservation为什么没有画在顺序图的顶部?
③参与者有哪几个?
④该顺序图中有没有“自反消息”?
18.顺序图,根据下图,完成以下3个分析工作:
1)指出下图中的参与者?
【】
A①B②C③D④
2)哪些是对象?
【】
A①B②③④C④D⑤⑥⑦⑧⑨⑩
3)Server类调用了CreditService类中的什么操作?
【】
A⑦B⑧C⑦⑧D⑧⑨
19.请根据下图回答问题
1)此图反映了参与者之间的什么关系?
2)图中的“安全主管”、“经理”和“保安”三个参与者分别可执行的用例有哪些用例?
20.一般情况下,每个参与者与用例之间可以定义一个边界类,每个用例可以定义一个控制类,那么,请根据下图需要定义几个边界类和几个控制类?
并给出具体的边界类和控制类的名称和符号
三、综合设计题:
(共60分)
1.下述用例图在分析阶段出现了“四轮马车”的现象,为避免“四轮马车”问题,请给出改进后的用例图
2.用例关系主要有:
扩展
、包含
、泛化
三种关系,请根据下述文字描述,画出用例图,并标明用例之间的扩展和包含关系(5分)
业务描述:
短途旅行但汽车的油不足以应付全部路程。
那么为汽车加油的动作在旅行的每个场景(事件流)中都会出现,不加油就不会完成旅行。
吃饭则可以由司机决定是否进行,不吃饭不会影响旅行的完成。
(参与者有司机,用例有旅行、为汽车加油、吃饭)
答:
3.根据以下描述画出类图,并注明多重性关系:
一个学生可以选修多门课程,也可能没有任何课程;一门课程可以被多个学生选修;一个老师可以教多门课程或者不教课;每门课程至少有一个老师,也可以有多个老师任教;每门课程可以有0或1本教材,每本教材只能用于一门课程。
4.类图语义描述:
人由头部、躯干、四肢、内脏等部分组成。
它们的生命周期一致,当人出生时,头部、躯干、四肢、内脏同时诞生,当人死亡时,各组成部分同时死去。
请根据语义描述的内容适用组合关系画出类图(不用标重数)。
5.鸟是一种动物,大雁、鸭子、企鹅各是一种鸟类,动物需要氧气和水,每个鸟有2支翅膀,雁群由大雁构成,找出上述描述中的实体类,分析其中类与类之间的关系后,画出相应类图。
6.在下述类图中,是一个仓库管理系统的类模型局部,其中IneOrder是指入库单,OrderItem是指入库中的每一项,Product则是产品信息。
请指出模型中的错误,说明原因并手工绘制正确的类图。
7.下图设计是否符合面向对象设计原则?
应如何改进?
8.请问下面包图设计中存在哪些问题?
给出改进后的包图设计。
9.画出自动车锁系统中,实现“锁车”用例的顺序图,涉及的类对象有车主、车钥匙、汽车。
10.某旅店为了需要开发一个房间的预订系统;通过该系统,服务员可以为旅客预订房间,也可为已经预订房间的旅客取消预订的房间,其用例图如下:
其中“预订房间”用例的用例规约(描述)如下:
用例名称:
预订房间
参与者:
服务员、旅客(发起人)
描述:
服务员利用本用例为客户完成房间预订业务
基本事件流:
1)用例起始于旅客现场需要预定房间
2)服务员按照旅客的要求查询相关的房间信息
3)系统显示所有可预定的房间列表
4)旅客选定所需的房间以及预订的时间和天数
5)系统计算所需的总费用和预付订金金额
6)旅客现场用现金支付所需的订金
7)服务员采集相关的预订信息
8)系统记录预订信息,并显示预订成功的信息,并打印收据
备选事件流:
4)a.旅客没有选择到满意的房间,则本次预定业务终止
6)a.旅客金额不足于支付定金,则本次预定业务终止
其它:
1).预定信息包括旅客的基本信息(XX、地址、联系、有效证件号)和本次预订情况(房间号、预订天数、预订时间、预订金额);
2).房间费用的计算与房间类型、旅客身份、预订时间、预订天数、支付方式等相关,目前还不太明确。
根据上面的用例图和“预订房间”的用例规约完成①—③题
①在该系统中,实体类有(多选):
ACD
A.旅客B.服务员C.房间D.支付方式
②“预订房间”用例第5步需要计算房间费用,此过程比较复杂(参看用例规约“其它”部分第2条);因此在用例分析阶段,这项职责应该由谁来履行(多选):
A.预订房间控制类B.房间实体类
C.新增一个计算房间费用的控制类D.新增一个存储房间费用的实体类
③预订信息实体类不应该包含的属性有:
A
A.旅客B.预订天数C.预订时间D.预订金额
16.下面模型为“学生选课系统”的部署视图:
根据这个模型,完成①—④题
①该系统有多少个处理器节点:
C
A.1B.2C.4D.3E.无法确定
②部署图中的“连接”有(多选):
BC
A.DesktopPCB.JDBCC.CampusLAND.BillingSystem
③具有DBMS功能,且能够完成“持久性”设计机制的处理器节点有:
(多选)BD
A.DesktopPCB.CourseCatalogC.RegistrationServerD.BillingSystem
④根据业务需要,DesktopPC需要新增一台打印机,请在图中增加一台“打印机”设备节点符号
17.数据库设计时需要将对象模型转换为数据模型,请根据关联关系的映射规则将下列给出的类图中的“订单项”类映射为数据库基表“订单项”,并画出映射后的“订单项”基表定义图,并标明此