1、1一、选择题1. 软件设计中的( ) 设计指定各个组件之间的通信方式以及各组件之间如何相互作用。 A数据 B接口 C结构 D组件 2. UML 是一种( ) 。 A面向对象的程序设计语言 B面向过程的程序设计语言 C软件系统开发方法D软件系统建模语言 3. 面向对象中的( )机制是对现实世界中遗传现象的模拟,通过该机制,基类的属性和方法被遗传给派生类。 A封装 B多态 C继承 D变异 4. 下面关于类、对象和实例的叙述中,错误的是( ) 。 A 类是创建对象的模板 B 对象是类的实例 C 类是对象的实例 D 类是一组具有共同特征的对象集合 5. 下列 不在 UP 的初始阶段中完成的A 编制简要
2、的愿景文档 B 粗略评估成本C 定义大多数的需求 D 业务案例6. 下面那一种模式是不属于 GRASP 模式的A 多态(Ploymorphism) B 行为对象(pure fabrication)C 中间者(Indirection) D GoF 7. 类是一组具有相同属性的和相同服务的对象的抽象描述,类中的每个对象都是这个类的一个 。A 例证 B 用例 C 实例 D 例外8. 类之间共享属性与服务的机制称为 (22) 。A 多态性 B 动态绑定 C 静态绑定 D 继承9. 一个对象通过发送 来请求另一个对象为其服务。A 调用语句 B 消息 C 命令 D 口令10. 下面的陈述中,对迭代和增量式
3、开发描述错误的是() 。A. 迭代是时间定量的B. 系统是增量式增长的C. 迭代是以循环反馈和调整为核心驱动力的D. 当迭代无法依照时间表来集成、测试和稳定局部系统时,可以推迟完成日期。11. 有关 UP 阶段的说法,不正确的是()A. UP 的一个开发周期(以系统发布作为产品结束标志)由多个迭代组成;B. 初始阶段不是需求阶段,而是研究可行性的阶段。C. 细化阶段就是需求或设计阶段;D. 细化阶段就是迭代地实现核心架构并解决高风险问题的阶段;12. 下面关于领域模型的描述,不正确的是()A. 领域模型就是软件对象图;B. 应用 UML 表示法,领域模型被描述为一组没有定义操作的类图;C. 创
4、建领域模型的原因之一是帮助理解关键业务概念和词汇;2D. 领域模型和领域层使用相似的命名可以减少软件表示与我们头脑中的领域模型之间的差异。13. 封装是指把对象的( )结合在一起,组成一个独立的对象。A 属性和操作 B 信息流 C 消息和事件 D 数据的集合14. 封装是一种( )技术,目的是使对象的生产者和使用者分离,使对象的定义和实现分开。A 工程化 B 系统维护 C 信息隐藏 D 产生对象15. 面向对象方法中的( )机制使子类可以自动地拥有(复制)父类全部属性和操作。A 约束 B 对象映射 C 信息隐藏 D 继承16. 使得在多个类中能够定义同一个操作或属性名,并在每一个类中有不同的实
5、现的一种方法是() 。A 继承 B 多态性 C 约束 D 接口17. 顺序图和协作图主要用于对用例图中( )的建模,用它们来描述用例图的行为。A 数据流 B 控制流 C 消息流 D 数据字典18. 顺序图的模型元素有( ) 、消息、链接等,这些模型元素表示某个用例中的若干个对象和对象之间所传递的消息,来对系统的行为建模。A 对象 B 箭线 C 活动 D 状态19. 顺序图描述( )对象之间消息的传递顺序。A 某个 B 单个 C 一个类产生的 D 一组20. 顺序图和协作图建立类 UML 面向对象开发过程中的对象动态( )模型。A 交互 B 状态 C 体系结构 D 软件复用21. 状态图可以表现
6、( )在生存期的行为、所经历的状态序列、引起状态转移的事件以及因状态转移而引起的动作。A 一组对象 B 一个对象 C 多个执行者 D 几个子系统22. 状态图描述一个对象在不同( )的驱动下发生的转台迁移。A 事件 B 对象 C 执行者 D 数据23. 一个( )迁移图符可以有多个源状态或目标状态,它们可以把一个控制分解为并行运行的并发线程,或多个并发线程接合成单个线程。A 状态 B 对象 C 活动 D 同步并发24. 活动图中动作状态之间的迁移不是靠( )触发的,当活动(动作)状态中的活动完成时就被触发。A 对象 B 事件 C 执行者 D 系统25. 状态图和活动图建立了 UML 面向对象开
7、发过程中的对象动态( )模型。A 交互 B 状态 C 体系结构 D 软件复用26. UML 中关联的多重度是指( )A 一个类有多个方法被另一个类调用B 一个类的实例能够与另一个类的多个实例相关联C 一个类的某个方法被另一个类调用的次数D 两个类所具有的相同的方法和属性27. 在某个信息系统中,存在如下的业务陈述:一个客户提交 0 个或多个订单;一个订单由一个且仅由一个客户提交。系统中存在两个类:“客户”类和“订单” 类。对应每个 “订单”类的实例,存在 ( 1)B “客户”类的实例;3对应每个“客户 ”类的实例,存在 D(2) 个“订单 ”类的实例。供选择的答案:A 0 个 B 1 个 C
8、1 个或多个 D 0 个或多个28. 什么是关联类?( )A 它描述了可以存在于类之间的各种关系。B 它在另外两个类之间的关联中添加属性和/或行为。C 它关联对象和该对象所属的类。29. 为什么层在子系统设计中非常重要?( ) (多选题)A 更容易改变实现方式B 减少了实现代码中类的数量C 提高了重用性D 降低了复杂性30. 如果两个顾客在世界的不同地方,要购买音乐会的最后一张票,如何分配这张票?( )A 引入一个额外的业务规则,把可用票的查询和临时预定合并起来。B 使顾客参与软件“竞争” ,以买到票。C 不允许卖出最后一张票,因为这对其中的一位顾客是不公平的。31. 如图 6-12 所示:(
9、1) X1、X2 和 X3 是什么?( ) (单选题)A 角色 B Prima donnas C 参与者 D 棒(2)下面哪个语句是正确的?( ) (多选题)A X3 可以使用 UC4 与系统交互。B X1 可以使用 UC1 和 UC4 与系统交互。C X1、X2 与 X3 不同。D UC3 是没有步骤的抽象用例。(3)下面哪个语句是正确的?( ) (多选题)A UC5 是 UC4 的补充部分。B UC4 是 UC5 的可选部分。C UC1 是没有用的。D UC2 是 UC4 的可选部分。E UC4 是 UC2 的补充部分。参与者和角色之间的差别?用例模型的用途就是列出系统中的用例和参与者4U
10、C1UC2UC5 X3UC3X1X2UC432. 如图所示,下面哪些陈述是正确的?( )A 汽车总是有相同的车身B 一些汽车有备用轮胎C 汽车有一个引擎,引擎在汽车之间不共享D 所有的汽车都有四或五个轮胎E 汽车必须有至少一个司机F 乘客不可能是司机DriverPasengerEngineBodyWhelCar1.*0.7 11114.5Driver PasengerEngine Body WhelCar1.* 0.711 1 1 4.5533. 如图,A、B 和 C 是什么对象?A A 是实体,B 是控制者,C 是边界。B A 是边界,B 是实体, C 是控制者。C A 是实体,B 是边界,
11、 C 是控制者。D A 是控制者,B 是实体,C 是边界。A B C634. 领域模型是一组表示( ),在设计工作中广泛用来启发设计软件对象.A 真实世界的概念类 B 虚拟世界的概念类 C 软件部件的模型 D 硬件部件的模型35. UML 提供了一系列的图支持面向对象的分析与设计,其中 _(1)_F_给出系统的静态设计视图;_(2)_B_对系统的功能进行组织和建模是非常重要的;_(3)_C_和_(4)_E_ 都是描述系统动态视图的交互图,其中_(5)_C_描述了以时间顺序组织的对象之间的交互活动,_(6)_E_强调收发消息的对象的组织结构。A 状态图 B 用例图 C 序列图 D 部署图 E 协
12、作图 F 类图36. 类是一组具有相同属性的和相同服务的对象的抽象描述,类中的每个对象都是这个类的一个 (1)c 。类之间共享属性与服务的机制称为 d(2) 。一个对象通过发送 b(3) 来请求另一个对象为其服务。(1)A 例证 B 用例 C 实例 D 例外(2)A 多态性 B 动态绑定 C 静态绑定 D 继承(3)A 调用语句 B 消息 C 命令 D 口令37. 领域模型又称为()A业务流程模型 B.用例模型 C.概念模型 D.设计模型 38. 在面向对象的方法学中,对象可看成是属性及对于这些属性的专用服务的封装体。封装是一种 (1) 技术,封装的目的是使对象的 (2) 分离。(1)A 组装
13、 B 产品化 C 固化 D 信息隐藏(2)A 定义和实现 B 设计和测试 C 设计和实现 D 分析和定义39. 如果你想对一个类的意义进行描述,那么应该采用 ?A. 标记值 B. 规格描述 C. 注释 D.构造型40. 软件复用是面向对象系统分析与设计的核心支持技术之一,软件复用的核心是( ) 。A 对象类 B 软件构件技术 C 设计模式 D 模块41. 软件测试通常采用黑盒测试和白盒测试。其中黑盒测试根据软件的( a) 设计测试用例,白盒测试根据软件的(c ) 设计测试用例。 A功能规格说明 B需求说明 C内部结构和逻辑 D数据流图 42. 将软件从一种计算机环境转换到另一种环境运行的难易程
14、度是指软件的(B) 。在规定的条件下和规定的时间间隔内,按设计要求,软件成功运行的特性称为(A ) 。 A可靠性 B可移植性 C可使用性 D灵 性 43. 原型化方法是动态确定软件需求的方法之一,该方法适应于( ) 的系统。A需求不确定性高 B需求确定 C结构简单 D可移植性好 44. 瀑布模型是传统的软件开发过程模型,它强调各阶段的严格性,其主要缺点是( ) 。 7A需要软件人员和用户进行沟通 B需要付 较高的维护成本 C开发的软件不易于移植 D不适应需求不确定的软件开发 45. 软件设计中的( ) 设计指定各个组件之间的通信方式以及各组件之间如 何相互作用。 A数据 B接口 C结构 D组件
15、 46. ( ) 不是面向对象程序设计语言。 AXML BJava CC# DSimula 47. 在画 SSD 图时, 应该如何对待所涉及的系统:A.详细描述其内部结构及其功能;B.简单描述其内部结构,但是罗列系统所有的功能C.详细描述其内部结构,并不列出系统的功能D.不对系统的内部结构与功能进行描述.48. 定义大多数的需求和范围的工作是在 UP 中的 阶段完成的。A 初始阶段 B 细化阶段 C 构造阶段 D 提交阶段49. 下列 不在 UP 的初始阶段中完成的A 编制简要的愿景文档B 粗略评估成本C 定义大多数的需求D 业务案例二、简答题1. 统一过程中有哪四个阶段,各阶段需要完成的主要
16、工作有哪些? 答:1)初始阶段:编制简要的愿景文档、 业务案例、 确定范围、 粗略评估成本。2)细化阶段:细化愿景文档、 迭代地实现核心构架、 解决高风险的问题、定义大多数的需求和范围、 进一步评估成本3)构造阶段:迭代地实现系统的其余部分、 准备部署4)提交阶段:beta 测试、部署2. 统一过程中的核心工作流有哪些? 答:业务建模、 需求分析、 设计、 实现、 测试。3. UP 的核心思想有哪些? 答:短时间盒的迭代式开发开发过程中不断进行调整在早期的迭代中解决高风险和高价值的主要问题不断与用户衔接,及时得到反馈意见早期注意构造核心的体系结构早期进入实现和测试,不断进行质量检验使用用况(u
17、se case )可视化建模(用 UML)仔细地管理需求控制变更是什么语言?84. 什么是增量开发? 答:增量开发包括两层意思:1)对复杂的用况分多次迭代,一部分一部分地实现2)将所有用况按其优先级分别安排在不同的迭代中实现 三、画图题1. 已知三个类 A.B 和 C.其中类 A 由类 B 的一个实类和类 C 的 1 个或多个实类构成.请画出能够正确表示类 A,B 和 C 之间关系的 UML 类图。2. 画出下面场景的顺序图1.收款员(Cashier)启动一次销售(makeNewSale()2.收款员输入商品标识(enterItem(itemID,quantity)3.销售结束,系统计算并显示
18、总金额(endSale() )4.顾客付款,系统(System)处理支付。(makePayment(amount)3. 下面一段代码为 UserInfo 类和 Company 类的定义的代码,请根据代码画出类图(类及其关系) ,并标记出类之间关系的重数。public class UserInfoprivate Company oneCompany; /其他的成员定义public class Companyprivate ArrayList allUserInfo; /其他的成员定义4. 找出下面场景中的概念类:(1).顾客带着购买的商品或服务来到 POS 收款台(2).收款员启动一次销售(3)
19、.收款员输入商品标识(4).系统记录商品,并且显示该商品说明,价格,并计算总金额。按一组计价规则计算单价。四、案例分析PizzaBase 案例分析PizzaBase 饭馆想把顾客预定比萨的过程自动化。每张桌子都配备一个触摸式屏幕,顾客可以用它浏览所供应的比萨,并点菜。该饭馆供应两种基本类型的比萨:自助类只有西红柿酱,顾客可以选择任意数量的配料,每种配料的价格都是固定的。预制类有几个小类,每个小类都有固定的配料。每种比萨都可以预定酥脆型和松软型,有三种规格:6 英寸、9英寸和 12 英寸。顾客还可以预定饮料,例如可乐类和柠檬类,每种饮料都有大杯和小杯两9种规格。顾客确认了预定的食物后,就显示总价
20、。之后,屏幕显示食物的准备和烹饪进度。在顾客吃完后,可以以方便的方式付费。(1)在 PizzaBase 案例分析中,在分析阶段的属性列表是哪一个?( )A 可乐、基本类型、价格、规格、柠檬、付费方式B 口味、品种、付费方式、总价、显示、肉类、西红柿C 进度、品种、口味、价格、触摸式屏幕、规格、饮料D 基本类型、价格、品种、规格、进度、口味(2)如图所示,哪个图是 PizzaBase 饭馆中比萨的最佳模型?( )A 图 1B 图 2C 图 3OrderMenu Piza+specifies+lists图1 Menu图2 Piza+listOrder Choice+kindOf+spcifiesC
21、ustomer 图3 Piza+orders(3)在 PizzaBase 案例分析中,分析类最有可能是哪个列表?( )A Payment, Order, Drink, Topping, Pizza, Restaurant, Base, SauceB Customer, Table, Pizza, Topping, Drink, Restaurant, OrderC PizzaBase, Cola, Restaurant, Lemonade, Do-it-yourself, Prefab, Table, OrderD Restaurant, Pizza, Topping, Display, Pa
22、yment, Order, Touch五、填空题1. 在协作图中通过 消息编号 表示出消息的时间顺序。2. 小步骤 、 快速反馈 、 调整 是迭代开发的主要思想,迭代时间过程会破坏迭代开发的核心动机并增加项目风险。仅一周的迭代时间不足以获得有意义的产出和反馈;若迭代周期大于 6 周,则复杂性会变得不可控制,反馈将延迟。 )3. 理解职责是顺利进行面向对象设计的关键。基本 OO 设计的系统方法GRASP 的 5 个原则和模式为 创建者 、 信息专家 、 高内聚 、 低耦合 、 控制器 。4. UML 只是一种标准的、可视化建模语言,了解它的细节并不能教会你如何用对象思想来思考,最关键的软件开发工具是受过良好设计原则训练的 思维 ,而不是 UML 或任何其他技术。六、案例分析10一. 在 Monopoly 案例中,为了能够检索和表示任何 Square(指定其名称) ,某个对象必须知道(持有其信息)所有 Square。下面给出如图 A 和如图 B 的两种设计方案,请用 GRASP 设计模式或原则来评价现有的两种设计方案的优劣,并指出其原因。 (答题要点:需指出好的设计方案采用了那种设计模式,劣的设计方案又违背哪种设计模式,原因是什么?)二. 在 Monopoly 案例中,应用所学过的 GRASP 高内聚的设计模式评价一下左侧图 C 和右侧图 D 两种设计方案的优劣。