面向对象系统分析与设计期末综合练习题
一、选择题
1.Heave学院请Decoder软件公司开发一个新的OO课程系统,院长Tom宣布该系统一定要成为学院的great software,下面对于great software的说法正确的是?()
(A)Decoder公司程序员满意软件。
(B)Heave学院师生满意的软件。
(C)价格最贵的软件。
(D)Decoder公司程序员和Heave学院师生都满意的软件。
2.Heave学院准备开发一个新的Java版的OO课程注册系统,该系统可以供学生查询期末成绩、教师统计班级成绩正态分布、教务统计GUITARIO各项能力在各门课程中的落实情况,而且随着历史数据的积累,今后还可能引入数据挖掘技术,为院长提供各届学生的整体进步情况,请问Decoder公司的系统架构师应该采用哪种设计模式来设计成绩统计模块()
(A)状态模式(B)观察者模式(C)工厂模式(D)装饰者模式
3.Heave学院原有的课程目录系统是用SmallTalk语言开发的,并向外部发不了一套访问接口。学院为了节约成本,不准备重新开发该目录系统,为此Decoder需要设计一套与之兼容的Java接口对其进行封装。这样可以更方便地将旧课程目录系统集成到新的系统中,同时为将来的升级留有余地。请问系统设计师在设计时应该采用哪个设计模式?()
(A)模版方法模式(B)适配器模式(C)观察者模式(D)外观模式
4.Heave学院新的OO课程注册系统,可以与签约银行联网直接代收学费,但银行的业务逻辑错综复杂,为此Heave学院希望银行能够提供一套新的接口以屏蔽并简化原有业务操作的复杂性。这套新接口设计上体现了哪个设计模式的思想()
(A)适配器模式(B)观察者模式(C)装饰者模式(D)外观模式
5.Heave学院的期末成绩统计可以饼状图、柱状图、曲线、表格等多种形式进行显示。但不论何种形式显示,其统计算法census()需要通过prepareData()、generateChart()、saveChart()、showData()四个步骤,其中第1步与第2步对于不同的显示方式是不同的,那么系统设计师在设计该系统时,会使用哪个设计模式()
(A)模版方法模式(B)观察者模式(C)适配器模式(D)外观模式
6.Heave学院的历史数据挖掘器的设计很有挑战性,其难点在于院方要求各种形式的挖掘组件可以任意组合,任意拼装,每个挖掘组件完成独立的挖掘任务,互不干扰,组装后的挖掘器套件运行后,会形成一份报表,用以呈现挖掘结果。请问Decoder的系统设计师,该用哪个设计模式完成上述任务?()(A)观察者模式(B)状态模式(C)装饰者模式(D)单例模式
7.Heave学院的成绩归档子系统可以将课程成绩保存为excell格式、pdf格式、txt格式,这需要根据不同的格式需求,用到不同的文件I/O访问器对象,为了隐藏系统根据格式请求创建访问器对象的具体细节,那么系统设计师应该用哪个设计模式()(A)命令模式(B)策略模式(C)装饰者模式(D)工厂模式
8.Heave学院邮件服务器系统的内核(MailServerCore对象)的启动要用20秒左右的时间,并要占用1.5G
左右的内存空间。请问:为了避免内核对象不会重复或频繁创建,那么应该使用哪个设计模式()(A)命令模式(B)单例模式(C)策略模式(D)外观模式
9.Heave学院的教学楼中准备防止一个自助Gumball服务系统,具体需求如下:AutoGumball将使用3个插槽,第一个插槽用来投入硬币,第二个插槽用来退币或零,第三个插槽用来弹出Gumball。此外系统还有一个Gumball注入口,以及一个系统用户交互接口,用来显示机器的当前信息。在开发Aut
oGumball系统完成上述功能时,会用到哪个设计模式()(A)命令模式(B)观察者模式(C)状态模式(D)外观模式
10.Heave学院的开心学院系统中,每个角有一种业余爱好hobby(),并且要求每个角一次只能拥有一种爱好,但可以在游戏期间的任何时候更换爱好。那么Bob应该使用哪个设计模式()(A)观察者模式(B)适配器模式(C)命令模式(D)策略模式
11.Heave学院的成绩提交子系统能够执行老师提交的上传成绩请求,当多个请求同时到达时,系统能够根据请求的优先级进行调度,而且当发生系统故障时,每个已经执行但还未提交的交易请求,还可回滚。设计时应该使用哪个设计模式()(A)命令模式(B)观察者模式(C)适配器模式(D)外观模式
12.Heave学院原有课程目录的数据结构是基于数组实现的,但新课程目录的数据结构将基于扩展性更好的ArrayList实现,但还不想废弃原来的系统。这将面临一个问题:对课程信息进行遍历的时候将跨越两种不同的数据结构。为了降低遍历操作的复杂性,应该采用哪种设计模式()(A)装饰者模式(B)迭代器模式(C)适配器模式(D)外观模式
13.Heave学院课程信息包括两部分:单元信息和知识点信息,其中单元中还可以嵌入单元,比如篇中有章,章中有节,节中有段。那么在设计课程信息的数据结构时,应该采用哪种设计模式()(A)
组合模式(B)单例模式(C)策略模式(D)外观模式
14.Heave学院课程系统的设计类图中有两个类,类A依赖(depend)类B,那么可以断定,类A与类B 之间的关系是()(A)类B是类A中局部变量的类型(B)类B是类A中属性的类型
(C)类A是类B中局部变量的类型(D)类A是类B中属性的类型
15.关于面向对象的基本原则(OOP),下面说法正确的是()(A)对象应当做它们的名字所指示的事情;
(B)每个对象应当承载更多的信息;
(C)对象有很强的包容能力,可以组合互不相关的属性;
(D)设计好的对象应当向外部敞开内部的变化;
二、判断对错题:共10小题,每小题1分,满分10分。请将答案写在答题纸上。
1. 设计模式不是类库,你不能象使用类库一样直接将模式用于你的代码中。()
2. 封装对于面向对象程序设计非常重要,应当将属性和访问属性的方法放到一个类中。()
3. 要针对接口编程,不要基于实现,这样可以在运行时动态改变不同的实现策略。()
4. 重构(Refactor)的作用在于给软件增加更多的功能,并让软件运行得更快。()
5. 优先考虑组合,而不是继承,这会带来运行时的灵活性。()
6. 软件体系结构设计的一个原则是,将应用程序中经常变化的部分和相对稳定的部分封装在一起。()
7. 设计好的对象应当将内部的数据隐藏起来,并提供开放的访问接口。()
8. 在Java语言中,接口与抽象类完全相同,任何情况下都能互相替换使用。()
9. 命令模式可以使一个对象状态改变时能自动通知到它的观察者。()
10. 外观模式的用意是为两个不兼容的接口提供兼容性。()
三、应用题:
1. Heave学院邮件服务器系统的内核(MailServerCore对象)的启动要用20秒左右的时间,并要占用1.5G 左右的内存空间。请问:为了避免内核对象不会重复或频繁创建,那么应该使用哪个设计模式(
2分),结合上面的陈述和选用的设计模式,给出该系统的设计类图(4分),及面向对象语言(C++、Java、C#)实现代码(4分)。
单例模式
public class MailServerCore{
private static MailServerCore uinqueInstance = null;
private MailServerCore(){
}
public static MailServerCore getInstance(){
if (uniqueInstance == null){
uniqueInstance = new MailServerCore();
}
return uniqueInstance;
}decoder
}
2.Heave学院准备开发一个开心校园游戏系统,具体需求是:“一个学生(Student)可以利用业余时间在餐厅做收银员(Cashier)以积攒零花钱,可以在教室做助教(Assistant)以获得更好的学术发展空间,可以在操场打球(Player)以增强体能。也就是说,一个学生可以有3种角(Role):收银员、助教、运动员,但在同一时刻只能有一种角。”请问:在设计这个系统时,应该采用哪个设计模式(2分),结合上面的陈述,给出该系统的设计类图(8分)。
策略模式(2分)
3.Heave 学院原有的课程目录系统是用SmallTalk 语言开发的,并向外部发不了一套访问接口ST_API 。学院为了节约成本,不准备重新开发该目录系统,为此Decoder 需要设计一套与之兼容的Java 接口JA_API 对其进行封装。这样可以更方便地将旧课程目录系统集成到新的系统中,同时为将来的升级留有余地。请问系统设计师在设计时应该采用哪个设计模式?(2分),结合上面的陈述,给出该系统的设计类图(8分)。 适配器模式(2分)
四、案例分析与设计题:
1.题目要求:请根据以下需求描述,在用例图中任选一个用例,给出该用例的场景描述(5分),给出系统的体系结构设计(5
分),以及用例的顺序图设计(10分)。
案例背景:Rick 有个吉他店,他想为该店提供一个吉他电子记账系统,用来记录和搜索本店的吉他信息,同时也可以让顾客通过Internet 来搜索本店的吉他信息。请你根据Rick 的需求,采用面向对象的分析与设计方法为Rick 设计这个吉他电子记账系统。
add guitar
Rick
(1)用例场景文档 (5分) 用例名称
search guitar 参与者 Rick 基本流程
参与者的动作
系统动作 1、Rick 填写搜索条件后,提交 2、系统显示所有满足条件的Guitar 信息
用例名称
add guitar 参与者 Rick
基本流程 参与者的动作
系统动作 1、Rick 填写吉他信息后,提交 2、系统保存吉他信息后,重新返回Guitar 添加页面。
(2)体系结构设务层次基本职责说明 计(5分)
序号 服命名 1
视图层 输入信息、发布命令、显示响应信息 2
控制层
层取数据、调用模型层中的方法、准备响定向到新页面 从视图应数据、重3
模型层
接受控制层传来的数据、据 执行业务逻辑操作、访问数据库、返回控制层需要的数
(3)用例的顺序图设计(10分)
: boss : guitar_find : guitar_list
: SearchCtrl : GuitarBl : Guitar : DB
1: 输入查询条件
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论