学生高级软件工程复习题.docx

上传人:b****9 文档编号:25335885 上传时间:2023-06-07 格式:DOCX 页数:23 大小:106.56KB
下载 相关 举报
学生高级软件工程复习题.docx_第1页
第1页 / 共23页
学生高级软件工程复习题.docx_第2页
第2页 / 共23页
学生高级软件工程复习题.docx_第3页
第3页 / 共23页
学生高级软件工程复习题.docx_第4页
第4页 / 共23页
学生高级软件工程复习题.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

学生高级软件工程复习题.docx

《学生高级软件工程复习题.docx》由会员分享,可在线阅读,更多相关《学生高级软件工程复习题.docx(23页珍藏版)》请在冰豆网上搜索。

学生高级软件工程复习题.docx

学生高级软件工程复习题

一、选择题:

(共10小题,每题1分,共10分)

1.使得在多个类中能够定义同一个操作或属性名,并在每一个类中有不同的实现的一种方法是【B】。

A)继承B)多态性C)约束D)接口

2.类图应该画在Rose的哪种【B】视图中。

A)UseCaseViewB)LogicView

C)ComponentViewD)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.计算机由中央处理器、内存、软盘、硬盘、显示器、键盘鼠标等组成。

那么Computer类和其他类(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)用来描述系统在事件做出响应时所采取的行动。

用例之间是具有相关性的。

在一个“订单输入子系统”中,创建新订单和更新订单都需要检查用户帐号是否正确。

那么,用例“创建新订单”、“更新订单”与用例“检查用户帐号”之间是【】关系。

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的网络用户都可以浏览电话公司所有的客户信息(包括姓名、住址、电话号码等)。

(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.在下述类图中,是一个仓库管理系统的类模型局部,其中IncomeOrder是指入库单,OrderItem是指入库中的每一项,Product则是产品信息。

请指出模型中的错误,说明原因并手工绘制正确的类图。

7.下图设计是否符合面向对象设计原则?

应如何改进?

8.请问下面包图设计中存在哪些问题?

给出改进后的包图设计。

9.画出自动车锁系统中,实现“锁车”用例的顺序图,涉及的类对象有车主、车钥匙、汽车。

10.某旅店为了需要开发一个房间的预订系统;通过该系统,服务员可以为旅客预订房间,也可为已经预订房间的旅客取消预订的房间,其用例图如下:

其中“预订房间”用例的用例规约(描述)如下:

用例名称:

预订房间

参与者:

服务员、旅客(发起人)

描述:

服务员利用本用例为客户完成房间预订业务

基本事件流:

1)用例起始于旅客现场需要预定房间

2)服务员按照旅客的要求查询相关的房间信息

3)系统显示所有可预定的房间列表

4)旅客选定所需的房间以及预订的时间和天数

5)系统计算所需的总费用和预付订金金额

6)旅客现场用现金支付所需的订金

7)服务员采集相关的预订信息

8)系统记录预订信息,并显示预订成功的信息,并打印收据

备选事件流:

4)a.旅客没有选择到满意的房间,则本次预定业务终止

6)a.旅客金额不足于支付定金,则本次预定业务终止

其它:

1).预定信息包括旅客的基本信息(姓名、地址、联系电话、有效证件号)和本次预订情况(房间号、预订天数、预订时间、预订金额);

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.数据库设计时需要将对象模型转换为数据模型,请根据关联关系的映射规则将下列给出的类

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1