正确答案:
题目:(1)的选择是开发一个软件系统时的基本设计决策;(2)是最底层的模式,关注软件系统的设计与实现,描述了如何实现构件及构件之间的关系。引用计数是C++管理动态资源时常用的一种(3)。
解析:模式是给定上下文中普遍问题的普遍解决方案,在架构方面,分高层的模式与低层的模式。架构模式是软件设计中的高层决策,如C/S结构就属于架构模式,架构模式反映了开发软件系统过程中所作的基本设计决策;设计模式主要关注软件系统的设计,与具体的实现语言无关:惯用法则是实现时通过某种特定的程序设计语言来描述构件与构件之间的关系,如引用一计数就是C++语言中的一种惯用法。
查看原题 查看所有试题
学习资料的答案和解析:
[单选题]某软件开发公司负责开发一个Web服务器服务端处理软件,其核心部分是对客户端请求消息的解析与处理,包括HTTP报头分离、SOAP报文解析等功能。该公司的架构师决定采用成熟的架构风格指导整个软件的设计,以下()架构风格,最适合该服务端处理软件。
管道.过滤器
解析:根据题干描述,Web服务器服务端的核心功能是数据处理,由于Web服务在数据传输方面具有协议分层的特征,即底层协议会包装上层协议(HTTP协议体中包含整个SOAP消息内容),因此需要数据内容的逐步分解与分阶段处理。比较选项中的架构风格,由于管道,过滤器的架构风格支持分阶段数据处理,因此特别适合该服务端处理软件的要求。
[单选题]软件架构是降低成本、改进质量、按时和按需交付产品的关键因素。以下关于软件架构的描述,错误的是()
根据用户需求,能够确定一个最佳的软件架构,指导整个软件的开发过程
解析:软件架构是降低成本、改进质量、按时和按需交付产品的关键因素,软件架构设计需要满足系统的质量属性,如性能、安全性和可修改性等,软件架构设计需要确定组件之间的依赖关系,支持项目计划和管理活动,软件架构能够指导设计人员和实现人员的工作。一般在设计软件架构之初,会根据用户需求,确定多个候选架构,并从中选择一个较优的架构,并随着软件的开发,对这个架构进行微调,以达到最佳效果。
[单选题]某软件公司欲设计一款图像处理软件,帮助用户对拍摄的照片进行后期处理。在软件需求分析阶段,公司的系统分析师识别出了如下3个关键需求:图像处理软件需要记录用户在处理照片时所有动作,并能够支持用户动作的撤销与重做等行为。图像处理软件需要根据当前正在处理的照片的不同特征选择合适的处理操作,处理操作与照片特征之间具有较为复杂的逻辑关系。图像处理软件需要封装各种图像处理算法,用户能够根据需要灵活选择合适的处理算法;软件还要支持高级用户根据一定的规则添加自定义处理算法。在系统设计阶段,公司的架构师决定采用设计模式满足上述关键需求中对系统灵活性与扩展性的要求。具体来说,为了支持灵活的撤销与重做等行为,采用(1)最为合适:为了封装图像操作与照片特征之间的复杂逻辑关系,采用(2)最为合适;为了实现图像处理算法的灵活选择与替换,采用(3)最为合适。
解析:本题主要考查设计模式知识。题干描述了某软件公司一款图像处理软件的需求分析与设计过程,并明确指出采用设计模式实现关键需求对系统灵活性与扩展性的要求。针对需求1,为了支持灵活的撤销与重做等行为,采用命令模式最为合适,因为命令模式可以将一个请求封装为一个对象.从而使你可用不同的请求对客户进行参数化,还可以对请求排队,或记录请求日志,以及支持可撤销的操作。针对需求2,为了封装图像操作与照片特征之间的复杂逻辑关系,采用状态模式最为合适,因为状态模式将每一个条件分支放入一个独立的类中,这样就可以根据对象自身的情况将对象的状态作为一个对象,这一对象可以不依赖于其他对象而独立变化;针对需求3,为了实现图像处理算法的灵活选择与替换,采用策略模式最为合适,因为策略模式定义一系列的算法,把它们封装起来,并且使它们可相互替换,使得算法可独立于使用它的客户而变化。
[单选题]当不适合采用生成子类的方法对已有的类进行扩充时,可以采用(1)设计模式动态地给一个对象添加一些额外的职责;当应用程序由于使用大量的对象,造成很大的存储开销时,可以采用(2)设计模式运用共享技术来有效地支持大量细粒度的对象;当想使用一个已经存在的类,但其接口不符合需求时,可以采用(3)设计模式将该类的接口转换成我们希望的接口。
解析:本题考查面向对象设计。装饰模式主要的目的是在无法生成子类的情况下给一个对象动态地增加新的职责;享元设计模式是共享大量细粒度的对象;适配器设计模式则是将已有的接口转换为系统希望的接口形式。
[单选题]某服务器软件系统对可用性(Availability)、性能(Performance)和可修改性(Modification)的要求较高,(1)设计策略能提高该系统的可用性,(2)设计策略能够提高该系统的性能,(3)设计策略能够提高该系统的可修改性。
解析:本题主要考查质量属性以及实现质量属性的一般策略,不同策略主要针对一个或多个软件质量属性,其中Ping/Echo主要提高系统的可用性;限制访问主要提高系统的安全性;运行时注册主要提高系统的可修改性;接口.实现分离主要提高系统的可修改性;主动冗余提高系统的可靠性;队列调度主要提高系统的性能;信息隐藏主要提高系统的可修改性;记录,回放主要提高系统的可测试性,等等。