软件工程2018考试试卷_第1页
软件工程2018考试试卷_第2页
软件工程2018考试试卷_第3页
软件工程2018考试试卷_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程2018考试试卷软件工程2018考试试卷软件工程2018考试试卷资料仅供参考文件编号:2022年4月软件工程2018考试试卷版本号:A修改号:1页次:1.0审核:批准:发布日期:一、选择题(每题2分,共20分)若类A中包含了类B的实例,且当类A的实例消失时,类B的实例仍然存在并能够继续工作,那么类A和类B之间存在(C)关系。A.继承B.依赖C.聚合D.组合在面向对象软件开发过程中,采用设计模式(C)。A.可以减少在设计和实现过程中需要创建的实例对象的数量B.可以保证程序的运行速度达到最优值C.可以复用相似问题的相同解决方案D.允许在非面向对象程序设计语言中使用面向对象的概念对Alexander的模式哲学,以下叙述正确的是(B)。A学习设计模式,可以完全解决软件开发中的变化情况.B.每个模式,可以无数次使用模式提供的解决方案,而不必再次重复同样的工作方式.C.设计模式总是可以为需求的变化提供更好的解决方案.D.设计模式描述一个在开发的软件环境中不断产生新的问题时,能提供很好的解决方案.当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用(A)模式。A.创建型 B.结构型 C.行为型 D.以上都可以(B)不是实现单例模式的要点。A.构造函数为私有B.单例类不能被继承C.由单例类自行创建单个实例D.必须自行向整个系统提供唯一实例6.设计模式的两大主题是(D)A.系统的维护与开发B.对象组合与类的继承C.系统架构与系统开发D.系统复用与系统扩展关于继承表述错误的是(D)A.继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法。B.泛化类(超类)可以显式地捕获那些公共的属性和方法。特殊类(子类)则通过附加属性和方法来进行实现的扩展。C.破坏了封装性,因为这会将父类的实现细节暴露给子类。D.继承本质上是“白盒复用”,对父类的修改,不会影响到子类。代理模式包括(D)角色。A.接收者、命令接口、具体命令、请求者B.环境、抽象状态、具体状态C.抽象组件、具体组件、装饰、具体装饰D.抽象主题、实际主题、代理以下关于命令模式的叙述错误的是(D)。A.命令模式将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化B.命令模式实现请求发送者和请求接收者解耦C.使用命令模式会导致某些系统有过多的具体命令类D.命令模式是对命令的封装,命令模式把发出命令的责任和执行命令的责任集中在同一个类中某系统中的文本显示类(TextView)和图片显示类(PictureView)都继承了组件类(Component),分别显示文本和图片内容,现需要构造带有滚动条、或者带有黑色边框、或者既有滚动条又有黑色边框的文本显示控件和图片显示控件,为了减少类的个数可使用以下哪种设计模式(C)A.工厂模式B.组合模式C.装饰模式D.策略模式某系统中用户可自行动态选择某种排序算法之一(如选择排序、冒泡排序、插入排序)来实现某功能,该系统的设计可以使用以下哪种设计模式(D)A.状态模式B.策略模式C.模板方法模式D.工厂方法模式二、判断题(每题2分,共10分)(1班作单数题,2班作双数题)一个类承担的职责越多,越容易复用,被复用的可能性越大。(X)工厂方法模式是所有形式的工厂模式中最为抽象和最具一般性的一种形态,工厂方法模式退化后可以演变成简单工厂模式。(X)工厂方法模式对应唯一一个产品等级结构,而抽象工厂模式则需要面对多个产品等级结构。(√)命令模式将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化。(√)Windows操作系统中的应用程序桌面快捷方式体现了代理模式。(√)一个软件实体应当尽可能少的与其他软件实体发生相互作用,这样,当一个模块修改时,就会尽量少的影响其他模块,扩展会相对容易。(√)电视机遥控器的设计中蕴含了命令模式的思想。(√)一个软件实体应当尽可能少的与其它软件实体发生相互作用,这样,当一个模块修改时,就会尽量少的影响其他模块,扩展会相对容易。(√)适配器模式使原本由于接口不兼容而不能一起工作的那些类可以一起工作。(√)Java中支持克隆的类必须实现Cloneable接口,clone()方法对于任何对象x,都有()==x,并且().getClass==().getClass()。(X)填空题(每题2分,共16分)在面向对象设计原则中,___原则是指子类应该可以替换父类并出现在父类能够出现的任何地方。最基本的UML图是。它不仅描述了类,而且说明了类之间的关系。模式可以根据参数的不同返回不同类的实例。模式中,父类负责定义创建对象的公共接口,子类则负责生成具体的对象。模式将对象组合成树形结构以表示“部分-整体”的层次结构。使得用户对单个对象和组合对象的使用具有一致性。我(Me)和妹妹(Sister)跟妈妈(Mother)说:“妈妈,我和妹妹在院子里玩。饭做好了叫我们一声。”该场景蕴含了模式。模式使原本接口不兼容而不能一起工作的类可以一起工作。在对象适配器模式中适配器类与适配者类是关系。程序填写题(每空分,共10分)某软件公司承接了某信息咨询公司的收费商务信息查询系统的开发任务,该系统的基本需求如下:(1)在进行商务信息查询之前用户需要通过身份验证,只有合法用户才能够使用该查询系统;(2)在进行商务信息查询时系统需要记录查询日志,以便根据查询次数收取查询费用。该软件公司开发人员已完成了商务信息查询模块的开发任务,现希望能够以一种松耦合的方式向原有系统增加身份验证和日志记录功能,客户端代码可以无区别地对待原始的商务信息查询模块和增加新功能之后的商务信息查询模块,而且可能在将来还要在该信息查询模块中增加一些新的功能。现使用代理模式设计并实现该收费商务信息查询系统。interfaceSearcher{ (1)}classRealSearcherimplementsSearcher{ publicStringdoSearch(StringuserId,Stringkeyword){ "用户'"+userId+"'使用关键词'"+keyword+"'查询商务信息!"); return"返回具体内容"; }}classAccessValidator{ publicbooleanvalidate(StringuserId){ "验证用户'"+userId+"'是否是合法用户"); if("设计模式")){ "'"+userId+"'登录成功!"); returntrue; } else{ "'"+userId+"'登录失败!"); returnfalse; } }}classLogger{ publicvoidlog(StringuserId){ "更新数据库,用户'"+userId+"'查询次数加1!"); }}classProxySearcherimplementsSearcher{ privateRealSearchersearcher=newRealSearcher(); (2) privateLoggerlogger; publicStringdoSearch(StringuserId,Stringkeyword){ if(userId)){ Stringresult=(userId,keyword); (userId); returnresult; } else{ returnnull; } } publicbooleanvalidate(StringuserId){ validator=newAccessValidator(); return(userId); } publicvoidlog(StringuserId){ (3) (userId); }}publicclassClient{ publicstaticvoidmain(Stringargs[]){ (4) Stringresult=("设计模式","计算机"); }}问答题(共34分)已知三个类和C.其中类A由类B的一个实类和类C的1个或多个实类构成.请画出能够正确表示类A,B和C之间关系的UML类图。(4分)什么是设计模式按照设计模式用途可以分为哪三类,简要说明这三类设计模式的作用(10分)什么是开闭原则?画出工厂模式中的简单工厂模式、工厂方法模式的类图,并说明是否支持开闭原则。(10分)某工业控制系统的“主控界面(MainFrame)”说明如下:(1)该主控界面所占内存较多,需采用一种合适的解决方案控制主控界面实例数量只有1个,进而节约系统资源,提高系统性能。(2)该主控界面需提供“一键启动”和“一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论