软件工程2018考试试卷

上传人:飞****9 文档编号:132442804 上传时间:2020-05-16 格式:DOC 页数:4 大小:39KB
返回 下载 相关 举报
软件工程2018考试试卷_第1页
第1页 / 共4页
软件工程2018考试试卷_第2页
第2页 / 共4页
软件工程2018考试试卷_第3页
第3页 / 共4页
软件工程2018考试试卷_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《软件工程2018考试试卷》由会员分享,可在线阅读,更多相关《软件工程2018考试试卷(4页珍藏版)》请在金锄头文库上搜索。

1、一、选择题(每题 2 分,共 20 分) 1. 若类A 中包含了类B 的实例,且当类A 的实例消失时,类B 的实例仍然存在并能够继续工作,那么类A 和类B 之间存在( C )关系。A. 继承 B. 依赖C. 聚合 D. 组合2. 在面向对象软件开发过程中,采用设计模式( C )。A. 可以减少在设计和实现过程中需要创建的实例对象的数量B. 可以保证程序的运行速度达到最优值C. 可以复用相似问题的相同解决方案D. 允许在非面向对象程序设计语言中使用面向对象的概念3. 对Alexander的模式哲学,以下叙述正确的是( B )。A 学习设计模式,可以完全解决软件开发中的变化情况.B. 每个模式,可

2、以无数次使用模式提供的解决方案,而不必再次重复同样的工作方式.C. 设计模式总是可以为需求的变化提供更好的解决方案.D. 设计模式描述一个在开发的软件环境中不断产生新的问题时,能提供很好的解决方案.4. 当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用( A )模式。 A创建型 B结构型 C行为型 D以上都可以5. ( B )不是实现单例模式的要点。A. 构造函数为私有 B. 单例类不能被继承C. 由单例类自行创建单个实例 D. 必须自行向整个系统提供唯一实例6设计模式的两大主题是( D )A系统的维护与开发 B对象组合与类的继承C系统架构与系统开发 D系统复用与系统扩展6. 关于

3、继承表述错误的是( D )A继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法。B泛化类(超类)可以显式地捕获那些公共的属性和方法。特殊类(子类)则通过附加属性和方法来进行实现的扩展。C破坏了封装性,因为这会将父类的实现细节暴露给子类。D继承本质上是“白盒复用”,对父类的修改,不会影响到子类。7. 代理模式包括( D )角色。A接收者、命令接口、具体命令、请求者B环境、抽象状态、具体状态C抽象组件、具体组件、装饰、具体装饰D抽象主题、实际主题、代理8. 以下关于命令模式的叙述错误的是( D )。A. 命令模式将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化B. 命

4、令模式实现请求发送者和请求接收者解耦C. 使用命令模式会导致某些系统有过多的具体命令类D. 命令模式是对命令的封装,命令模式把发出命令的责任和执行命令的责任集中在同一个类中9. 某系统中的文本显示类(TextView)和图片显示类(PictureView)都继承了组件类(Component),分别显示文本和图片内容,现需要构造带有滚动条、或者带有黑色边框、或者既有滚动条又有黑色边框的文本显示控件和图片显示控件,为了减少类的个数可使用以下哪种设计模式?( C ) A. 工厂模式B. 组合模式C. 装饰模式D. 策略模式10. 某系统中用户可自行动态选择某种排序算法之一(如选择排序、冒泡排序、插入

5、排序)来实现某功能,该系统的设计可以使用以下哪种设计模式?( D )A. 状态模式B. 策略模式C. 模板方法模式D. 工厂方法模式二、判断题(每题 2 分,共10分) (1班作单数题,2班作双数题)1. 一个类承担的职责越多,越容易复用,被复用的可能性越大。( X )2. 工厂方法模式是所有形式的工厂模式中最为抽象和最具一般性的一种形态,工厂方法模式退化后可以演变成简单工厂模式。( X ) 3. 工厂方法模式对应唯一一个产品等级结构,而抽象工厂模式则需要面对多个产品等级结构。( )4. 命令模式将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化。( )5. Windows操作

6、系统中的应用程序桌面快捷方式体现了代理模式。( )6. 一个软件实体应当尽可能少的与其他软件实体发生相互作用,这样,当一个模块修改时,就会尽量少的影响其他模块,扩展会相对容易。( )7. 电视机遥控器的设计中蕴含了命令模式的思想。( )8. 一个软件实体应当尽可能少的与其它软件实体发生相互作用,这样,当一个模块修改时,就会尽量少的影响其他模块,扩展会相对容易。( )9. 适配器模式使原本由于接口不兼容而不能一起工作的那些类可以一起工作。( )10. Java中支持克隆的类必须实现Cloneable接口,clone()方法对于任何对象x,都有x.clone()=x,并且x.clone().get

7、Class=x.clone().getClass()。( X )2、 填空题(每题 2 分,共 16 分) 1. 在面向对象设计原则中,_ _原则是指子类应该可以替换父类并出现在父类能够出现的任何地方。2. 最基本的UML图是 。它不仅描述了类,而且说明了类之间的关系。3. 模式可以根据参数的不同返回不同类的实例。4. 模式中,父类负责定义创建对象的公共接口,子类则负责生成具体的对象。5. 模式将对象组合成树形结构以表示“部分-整体”的层次结构。使得用户对单个对象和组合对象的使用具有一致性。6. 我(Me)和妹妹(Sister)跟妈妈(Mother)说:“妈妈,我和妹妹在院子里玩。饭做好了叫我

8、们一声。”该场景蕴含了 模式。7. 模式使原本接口不兼容而不能一起工作的类可以一起工作。8. 在对象适配器模式中适配器类与适配者类是 关系。3、 程序填写题(每空 2.5 分,共10 分)某软件公司承接了某信息咨询公司的收费商务信息查询系统的开发任务,该系统的基本需求如下:(1)在进行商务信息查询之前用户需要通过身份验证,只有合法用户才能够使用该查询系统;(2) 在进行商务信息查询时系统需要记录查询日志,以便根据查询次数收取查询费用。该软件公司开发人员已完成了商务信息查询模块的开发任务,现希望能够以一种松耦合的方式向原有系统增加身份验证和日志记录功能,客户端代码可以无区别地对待原始的商务信息查

9、询模块和增加新功能之后的商务信息查询模块,而且可能在将来还要在该信息查询模块中增加一些新的功能。现使用代理模式设计并实现该收费商务信息查询系统。interface Searcher (1) class RealSearcher implements Searcher public String doSearch(String userId, String keyword) System.out.println(用户 + userId + 使用关键词 + keyword + 查询商务信息!);return 返回具体内容;class AccessValidator public boolean v

10、alidate(String userId) System.out.println(验证用户 + userId + 是否是合法用户?);if (userId.equalsIgnoreCase(设计模式) System.out.println( + userId + 登录成功!);return true;else System.out.println( + userId + 登录失败!);return false;class Logger public void log(String userId) System.out.println(更新数据库,用户 + userId + 查询次数加1!);

11、class ProxySearcher implements Searcher private RealSearcher searcher = new RealSearcher(); (2) private Logger logger;public String doSearch(String userId,String keyword) if (this.validate(userId) String result = searcher.doSearch(userId,keyword); this.log(userId); return result; else return null;pu

12、blic boolean validate(String userId) validator = new AccessValidator();return validator.validate(userId);public void log(String userId) (3) logger.log(userId);public class Client public static void main(String args) (4) String result = searcher.doSearch(设计模式,计算机);4、 问答题(共34分)1. 已知三个类A.B和C.其中类A由类B的一个

13、实类和类C的1个或多个实类构成.请画出能够正确表示类A,B和C之间关系的UML类图。(4分)2. 什么是设计模式?按照设计模式用途可以分为哪三类,简要说明这三类设计模式的作用?(10分)3. 什么是开闭原则?画出工厂模式中的简单工厂模式、工厂方法模式的类图,并说明是否支持开闭原则。(10分)4. 某工业控制系统的“主控界面(MainFrame)”说明如下:(1) 该主控界面所占内存较多,需采用一种合适的解决方案控制主控界面实例数量只有1个,进而节约系统资源,提高系统性能。(2) 该主控界面需提供“一键启动”和“一键停止”功能,通过该功能可以一次性控制多台设备(Device)的启动和关闭。根据以上说明,选择两种合适的设计模式设计该“主控界面”,请给出设计模式的名称和定义。(10分)5、 编程题(共10分)某在线购书系统中,计算机类图书(ComputerBook)每本有10%的折扣,语言类图书(LanguageBook) 每本有2元的折扣,小说类图书(NovelBook)每100元有10元的折扣。选择一种合适的设计模式来设计该系统并编程实现。第 4 页 共 4 页 背面有试题

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号