2017年上半年
-
装饰器 (Decorator) 模式用于( );外观 (Facade) 模式用于( )。(2017年上半年)
装饰器 (Decorator) 模式用于( );外观 (Facade) 模式用于( )。(2017年上半年)①将一个对象加以包装以给客户提供其希望的另外一个接口②将一个对象加以包装以提供一些额外的行为③将一个对象加以包装以控制对这个对象的访问④将一系列对象加以包装以简化其接口A.①B.②C.③D.④A.①B.②C.③D.④答案B D解析装饰模式是一种对象结构型模式,可动态地给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类实现更为灵活。通过装饰模式,可以在不影响其他对象的情况下,以动态、透明的方式...
-
下图所示为观察者(Obserrver)模式的抽象示意图,其中( )知道其观察者,可以有任何多个观察者观察同一个目标;提供住处和删除观察者对象的接口。此模式体现的最主要的特征是( )。(2017年上半年
下图所示为观察者(Obserrver)模式的抽象示意图,其中( )知道其观察者,可以有任何多个观察者观察同一个目标;提供住处和删除观察者对象的接口。此模式体现的最主要的特征是( )。(2017年上半年)A.SubjectB.ObserverC.ConcreteSubjectD.ConcreteObserverA.类应该对扩展开放,对修改关闭B. 使所要交互的对象尽量松耦合C. 组合优先于继承使用D. 仅与直接关联类交互答案 C A解析观察者将自己注册到事件,那么具体的事件就知道了自己的观察者。观察者和事件都有自己的...
-
在进行软件开发时,采用无主程序员的开发小组,成员之间相互平等;而主程序员负责制的开发小组,由一个主程序员和若干成员组成,成员之间没有沟通。在一个由8名开发人员构成的小组中,无主程序员组和主程序员组的沟
在进行软件开发时,采用无主程序员的开发小组,成员之间相互平等;而主程序员负责制的开发小组,由一个主程序员和若干成员组成,成员之间没有沟通。在一个由8名开发人员构成的小组中,无主程序员组和主程序员组的沟通路径分别是( )。(2017年上半年)A.32和8B.32和7C.28和8D.28和7答案 D解析无主程序员组进行沟通时,需要两两沟通,所以沟通路径数为:7*8÷2=28。有主程序员组,有问题可以与主程序员沟通,由主程序负责协调,所以除主程序员自己,其他7人,每人与主程序员建立一条沟通路径,一共7条沟通路...
-
某软件项目的活动图如下图所示,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的数字表示活动的持续时间(天),则完成该项目的最少时间为( )天。活动BD和HK最早可以从第( )天开始。(活动A
某软件项目的活动图如下图所示,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的数字表示活动的持续时间(天),则完成该项目的最少时间为( )天。活动BD和HK最早可以从第( )天开始。(活动AB、AE和AC最早从第1天开始)(2017年上半年)A.17B.18C.19D.20A.3和10B.4和11C.3和9D.4和10答案 D B解析由于在一个项目中时间最长的活动序列,决定着项目最短工期。而时间最长的是AEGHKL,需要时间20,所以答案是D。BD活动在AB活动结束之后便可以开始,同时AB是第1天开始,而...
-
对下图所示的程序流程图进行语句覆盖测试和路径覆盖测试,至少需要( )个测试用例。采用McCabe 度量法计算其环路复杂度为( )。(2017年上半年)
对下图所示的程序流程图进行语句覆盖测试和路径覆盖测试,至少需要( )个测试用例。采用McCabe 度量法计算其环路复杂度为( )。(2017年上半年)A.2和3B.2和4C.2和5D.2和6A.1B.2C.3D.4答案 B D解析要满足语句覆盖的要求,只需要覆盖两条路径就能达到,所以语句覆盖2个用例即可。路径覆盖需要把程序中的4条路径均覆盖一遍,需要4个用例。整个程序流程图转化为结点图之后,一共11个结点,13条边,根据环路复杂度公式有:13-11+2=4。...
-
模块A、B和 C有相同的程序块,块内的语句之间没有任何联系,现把改程序块取出来,形成新的模块D,则模块D的内聚类型为( )内聚。以下关于该内聚类型的叙述中,不正确的是( )。(2017年上半年)
模块A、B和 C有相同的程序块,块内的语句之间没有任何联系,现把改程序块取出来,形成新的模块D,则模块D的内聚类型为( )内聚。以下关于该内聚类型的叙述中,不正确的是( )。(2017年上半年)A.巧合B.逻辑C.时间D.过程A.具有最低的内聚性B.不易修改和维护C.不易理解D.不影响模块间的耦合关系答案 A D解析功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。顺序内聚:处理元素相关,而且必须顺序执行。通信内聚:所有处理元素集中在一个数据结构的区域上。过程内聚:处理元素相关,而且必须按特定的次序执行。瞬时...
-
在设计软件的模块结构时,( )不能改进设计质量。(2017年上半年)
在设计软件的模块结构时,( )不能改进设计质量。(2017年上半年)A.尽量减少高扇出结构B.模块的大小适中C.将具有相似功能的模块合并D.完善模块的功能答案 D解析在结构化设计中,系统由多个逻辑上相对独立的模块组成,在模块划分时需要遵循如下原则:(1)模块的大小要适中。系统分解时需要考虑模块的规模,过大的模块可能导致系统分解不充分,其内部可能包括不同类型的功能,需要进一步划分,尽量使得各个模块的功能单一;过小的模块将导致系统的复杂度增加,模块之间的调用过于频繁,反而降低了模块的独立性。一般来说,一个模块的大小使其...
-
以下关于极限编程(XP) 中结对编程的叙述中,不正确的是( )。(2017年上半年)
以下关于极限编程(XP) 中结对编程的叙述中,不正确的是( )。(2017年上半年)A. 支持共同代码拥有和共同对系统负责B. 承担了非正式的代码审查过程C. 代码质量更高D. 编码速度更快答案 D解析极限编程是一个轻量级的、灵巧的软件开发方法;同时它也是一个非常严谨和周密的方法。它的基础和价值观是交流、朴素、反馈和勇气;即,任何一个软件项目都可以从四个方面入手进行改善:加强交流;从简单做起;寻求反馈;勇于实事求是。XP是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反...
-
以下关于螺旋模型的叙述中,不正确的是( )。(2017年上半年)
以下关于螺旋模型的叙述中,不正确的是( )。(2017年上半年)A.它是风险驱动的,要求开发人员必须具有丰富的风险评估知识和经验B.它可以降低过多测试或测试不足带来的风险C.它包含维护周期,因此维护和开发之间没有本质区别D.它不适用于大型软件开发答案 D解析螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋...
-
假定用户A、B 分别在I1和I2两个 CA 处取得了各自的证书,下面( )是 A、B 互信的必要条件。(2017年上半年)
假定用户A、B 分别在I1和I2两个 CA 处取得了各自的证书,下面( )是 A、B 互信的必要条件。(2017年上半年)A.A、B互换私钥B.A、B互换公钥C.I1、I2互换私钥D.I1、I2互换公钥答案 D解析本题考查的是信息安全中的CA认证。题目难度较高,但用排除法来分析不难得出结论。首先,在公钥体系中,交换私钥是无论什么情况下都绝对不允许发生的情况,所以A与C选项必然错误。余下的B与D,B选项的做法没意义,要AB互信,其信任基础是建立在CA之上的,如果仅交换AB的公钥并不能解决信任的问题。而I1与I2的公钥...
-
HTTPS 使用( )协议对报文进行封装(2017年上半年)
HTTPS 使用( )协议对报文进行封装(2017年上半年)A.SSHB.SSLC.SHA-1D.SET答案 B解析HTTPS以保密为目标研发,简单讲是HTTP的安全版。其安全基础是SSL协议,全称HypertextTransfer Protocol over Secure Socket Layer。 它是一个URI scheme,句法类同http:体系。它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个协议的最初研发由网景公司进行,提供了身份验证与加密...