面向对象分析与设计练习题

发布时间 : 星期五 文章面向对象分析与设计练习题更新完毕开始阅读

1. 一个设计得好的OO系统具有?

(A)低内聚、低耦合的特征(B)高内聚、低耦合的特征 (C)高内聚、高耦合的特征(D)低内聚、高耦合的特征

2. CocoCola是一家大型公司,由于公司业务的发展,准备对公司已有的ERP软件系统进行升级,因

此委托CoolSoft公司负责该项工作。Cococola公司所使用的系统是很久以前采用结构化开发方法开发的,该系统非常复杂,而且系统使用多线程来处理公司中并发的帐务处理请求。由于系统开发出来后经过多次修改,因此最初的系统开发文档已经过时。CoolSoft公司的专家建议在对系统升级前和Cococola公司的高层管理人员开一次讨论会,以便能更好地了解目前所使用的软件系统。那么在这次讨论会中,下面几个图中哪个图是最有用的? (A)活动图

(B)部署图

(C)状态图

(D)顺序图

3. Coolsoft准备为Mergon银行开发一个自助ATM服务系统AutoCard,AutoCard的具体需求如下:

AutoCard将使用三个插槽,第一个插槽用于系统送出新的信用卡,第二个插槽用于在向信用卡中加钱时插入信用卡,第三个插槽用于在向信用卡中存钱时插入纸币。系统运行时会显示一个界面,界面中有三个选项:(1)获取新的信用卡;(2)为信用卡加钱;(3)打印存款凭条。选项1允许用户获得一张新的信用卡。新的信用卡在使用前必须先存钱。选项2允许用户为新卡或旧卡加钱,这时要求把信用卡插入第二个插槽中,把纸币插入第三个插槽中。选项3允许用户打印与存钱活动有关的收据,或打印信用卡最近一次使用情况的收据。在开发AutoCard系统完成上述功能时,下面几个图中哪个图是最有用的? (A)组件图

(B)部署图

(C)活动图

(D)状态图

4. CoolSoft公司打算为Pepsi饮料公司设计一个库存管理系统,在设计系统的用户界面时,如果对Pepsi

饮料公司员工的计算机技能水平不是很清楚,那么CoolSoft公司应该采用下面哪种方法是最好的? (A) 确定使用该系统的用户所要具备的计算机技能水平,并提供详细的系统联机帮助,当用户需要

帮助时,能迅速获得这些帮助。

(B) 确定使用该系统的用户所要具备的计算机技能水平,并安排对用户进行必要的培训。 (C) 开发一个用户界面的部分原型,并做一些可用性测试以确定用户的计算机技能水平以及用户使

用什么样的界面操作会比较满意。根据测试结果对系统界面做一些修改,并重复这个过程。

(D) 开发一个用户界面的部分原型,并做一些可用性测试以发现用户使用过程中会存在的问题,将

这些问题用文档详细说明,并与最终系统一起交付给用户。

5. “一个研究生在软件学院做助教(teaching assistant),同时还在校园餐厅打工做收银员(cashier)。

也就是说,这个研究生有3种角色:学生、助教、收银员,但在同一时刻只能有一种角色。” 根据上面的陈述,下面哪个设计是最合理的?

1

PersonPerson0..1<<接口>>PersonRoleStudentTeachingAssistantCashierStudentTeachingAssistantCashier(A)<<接口>>Cashier<<接口>>TeachingAssistant(B)<<接口>>Student

StudentTeachingAssistantCashierPersonPerson(C)(D)

6. 在互联网时代,共享软件无处不在,美国共享软件职业联盟对共享软件的定义是:“Shareware”is

software that offers a “try before you buy”(TBYB)capability,共享软件实质是采用“先用后买”的营销手段的商业软件。周弈靠一个非主流的MP3-CD Maker小软件,一个月就从美国人那里得到了5万美元的注册收入。周弈的例子让我们意识到个人英雄主义的时代并没有过去,只是有了新的环境。周弈的软件很小,甚至可以不用软件工程的方法就可以开发出来,只是内部的一个转换算法复杂,为了描述这个算法,下面哪个图是最合适的? (A)类图

(B)状态图

(C)活动图

(D)用例图

7. 如果要对一个学院课程注册系统中三个主要角色学生、教授、教务长的工作流程建模,那么下面4

个图中哪个图是最有用的? (A)活动图

(B)类图

(C)交互图

(D)部署图

8. 在课程注册系统中,有3个用例,分别是“注册课程”、“查询成绩”、“修改学生个人情况”,其中

“注册课程”是高风险、高业务价值的用例;“查询成绩”是低风险、高业务价值的用例;“修改学生个人情况”是低风险、低业务价值的用例。在开发时准备采用迭代式开发,先实现其中的一个用例,那么首先应实现哪个用例? (A)“修改学生个人情况”用例 (C)“注册课程”用例

(B)“查询成绩”用例

(D)3个用例中的任意一个都可以

9. 汽车(Car)由轮子、发动机、油箱、座椅、方向盘等组成。那么car类和其他类(Wheel、Engin、

Tank、Chair、SteeringWheel)之间的关系是: (A)泛化关系(Generalization) (C)包含关系(Inclusion)

(B)实现关系(Realization) (D)组合关系(Composition)

2

10. Innovation公司正在为美国国防部的新型导弹UMS—993开发嵌入式控制软件,为了描述和理解该

嵌入式系统中的控制机制,如在不同的飞行情况下导弹的响应动作,下面哪几个图是最有用的? (A)交互图

(B)活动图

(C)状态图

(D)类图

11. 在一个网络游戏系统中,定义了类Cowboy和类Castle,并在类Cowboy中定义了方法open(c:

Castle)和方法Close(c:Castle),则类Cowboy和类Castle之间的关系是: (A)依赖(dependency)关系 (C)泛化(generalization)关系

(B)组合(composition)关系 (D)包含(include)关系

12. 一个银行ATM系统采用下图所示的配置图,则下列叙述不正确的是:

ATM客户机-城域网ATM应用服务器-局域网ATM数据服务器储户

(A)与GUI有关的类应该部署在ATM客户机上

(B)这个图表示一个三层的体系结构,不管ATM客户机、ATM应用服务器上、ATM数据服务器上是运行在同一台机器上还是不同的机器上

(C)为了系统的可伸缩性(scalability),与业务逻辑有关的对象应该部署在ATM应用服务器上 (D)为了系统的可伸缩型,与业务逻辑有关的对象应该部署在ATM客户机上

13. 系统架构师Bob在分析面向对象的课程注册系统的“注册课程”用例时,得到了一组协作关系复杂

的类,下面哪种图可以描述该用例中多个对象之间的相互协作关系以及协作过程中的行为次序? (A)交互图

(B)状态图

(C)对象图

(D)用例图

14. Wylie学院准备开发一个新的OO课程注册系统,由于开发费用和时间的限制,这个新的课程注册

系统将使用已有的一个非OO的课程目录遗留系统(legacy system)所提供的一些功能,因此需要和这个课程目录系统集成。Wylie学院也预见到,以后这个课程目录系统遗留系统将会被放弃,新的OO系统将逐步实现目前非OO系统所提供的功能。那么在考虑系统体系结构方面的问题时,下面哪些做法是不可以接受的?

(A) 定义一个接口,对遗留系统中提供的功能进行封装; (B) 采用层次体系结构,组成新系统的类单独放在某一层中;

(C) 采用层次体系结构,定义一些类来解决OO系统和遗留系统之间可能存在的不匹配问题,

并把这些类放在某一层中。

(D) 新系统中的类直接调用遗留系统中的功能,以增加整个系统的性能。 15~16题参考下面库存管理系统的类图(部分)和顺序图(部分):

3

StoreDeliverySchedule1Inventory+nextDeliveyFor()1Inventory-size-color+isDamaged()+location()nInventoryProduct-amountOnhand : int+nextDelivery()+price()1..n1..nSupplier+nextDeliveyFor()+saleItems()nInventoryProduct-amountOnhand : int+nextDelivery()+price()+isDamaged()+location()修改方案D

PreferedSupplierPurchasable+price():DeliveryForm:InventoryProduct:XXX:YYYnextDelivery()nextDeliveryFor(p)nextDeliveryFor(p)

15. 顺序图中缺了两个类名,用XXX和YYY代替,则XXX和YYY分别可以是什么类? (A)XXX=DeliverSchedule,YYY=Supppier (B)XXX= Supppier,YYY= PreferredSupplier (C)XXX= PreferredSupplier,YYY= DeliverSchedule (D)XXX= DeliverSchedule,YYY= PreferredSupplier

16. 如果有新的需求:(1)对已有损坏(damaged)的货物的价格进行打折;(2)可以按货物的大小和

颜色对货物进行查找。那么应该如何修改类图中的类比较好?(注:下面图中的isDamaged()方法可以判断一个货物是否已损坏;loacation()方法返回货物所存放的具体位置。) (A)增加类InventoryProduct的属性和方法,如图A所示,其余部分不变;

4

联系合同范文客服:xxxxx#qq.com(#替换为@)