每日打卡题16-20答案
16、【2014年真题】 难度:简单
在结构化分析方法中,用 (1) 表示功能模型,用 (2) 表示行为模型。
(1)A.ER图 B.用例图 C.DFD D.对象图
(2)A.通信图 B.顺序图 C.活动图 D.状态转换图
答案:(1)C(2)D
解析:
结构化分析方法的基本思想是自顶向下,逐层分解,把一个大问题分解成若干个小问题,每个小问题再分解成若干个更小的问题。经过逐层分解,每个最低层的问题都是足够简单、容易解决的。结构化方法分析模型的核心是数据字典,围绕这个核心,有三个层次的模型,分别是数据模型、功能模型和行为模型(也称为状态模型)。在实际工作中,一般使用E-R图表示数据模型,用DFD表示功能模型,用状态转换图表示行为模型。这三个模型有着密切的关系,它们的建立不具有严格的时序性,而是一个迭代的过程。
17、【2014年真题】 难度:简单
下列关于敏捷方法的叙述中,错误的是( )。
A.与传统方法相比,敏捷方法比较适合需求变化大或者开发前期对需求不是很清晰的项目
B.敏捷方法尤其适合于开发团队比较庞大的项目
C.敏捷方法的思想是适应性,而不是预设性
D.敏捷方法以原型开发思想为基础,采用迭代式增量开发
答案:B
解析:
本题考查敏捷方法的相关概念。
敏捷方法是从20世纪90年代开始逐渐引起广泛关注的一些新型软件开发方法,以应对快速变化的需求。敏捷方法的核心思想主要有以下三点。
①敏捷方法是“适应性”而非“预设性”的。传统方法试图对一个软件开发项目在很长的时间跨度内做出详细的计划,然后依计划进行开发。这类方法在计划制定完成后拒绝变化。而敏捷方法则欢迎变化,其实它的目的就是成为适应变化的过程,甚至能允许改变自身来适应变化。
②敏捷方法是以人为本,而不是以过程为本。传统方法以过程为本,强调充分发挥人的特性,不去限制它,并且软件开发在无过程控制和过于严格繁琐的过程控制中取得一种平衡,以保证软件的质量。
③迭代增量式的开发过程。敏捷方法以原型开发思想为基础,采用迭代增量式开发,发行版本小型化。RUP相比,敏捷方法的周期可能更短。敏捷方法在几周或者几个月的时间内完成相对较小的功能,强调的是能尽早将尽量小的可用的功能交付使用,并在整个项目周期中持续改善和增强,并且更加强调团队中的高度写作。相对而言,敏捷方法主要适合于以下场合:
①项目团队的人数不能太多,适合于规模较小的项目。
②项目经常发生变更。敏捷方法适用于需求萌动并且快速改变的情况,如果系统有比较高的关键性、可靠性、安全性方面的要求,则可能不完全适合。
③高风险项目的实施。
④从组织结构的角度看,组织结构的文化、人员、沟通性决定了敏捷方法是否使用。
18、【2014年真题】 难度:简单
在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件。在这种情况下进行的维护活动称为 。
A.改正性维护 B.适应性维护C.完善性维护 D.预防性维护
答案:C
解析:
在系统运行过程中,软件需要维护的原因是多样的。根据维护的原因不同,可以将软件维护分为以下4种:
①改正性维护。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程称为改正性维护。
②适应性维护。在使用过程中,外部环境(新的硬、软件配置)、数据环境(数据库、数据格式、数据输入/输出方法、数据存储介质)可能发生变化。为使软件适应这种变化而修改软件的过程称为适用性维护。
③完善性维护。在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动成为完善性维护。
④预防性维护。指预先提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编码和测试。
19、【2014年真题】 难度:一般
一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解。采用( ) 模式,用一个特定对象来封装一系列的对象交互,从而使各对象不需要显式地相互引用,使其耦合松散,而且可以独立地改变它们之间的交互。
A.解释器(Interpreter) B.策略(Strategy)
C.中介者(Mediator) D.迭代器(Iterator)
答案:C
解析:
解释器模式属于类的行为模式,描述了如何为语言定义一个文法,如何在该语言中表示一个句子,以及如何解释这些句子,这里的“语言”是使用规定格式和语法的代码。
策略模式是一种对象的行为型模式,定义一系列算法,并将每个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化,其目的是将行为和环境分隔,当出现新的行为时,只需要实现新的策略类。
中介者模式是一种对象的行为行模式,通过一个中介对象来封装一系列的对象交互。中介者使得各对象不需要现实地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者对象的存在保证了对象结构上的稳定,也就说说系统的结构不会因为新对象的引入带来大量的修改工作。
迭代器模式是一种对象的行为型模式,提供了一种方法来访问聚合对象,而不用暴露这个对象的内部表示。迭代器模式支持以不同的方式遍历一个聚合对象。
20、【2014年真题】 难度:一般
某广告公司的宣传产品有宣传册、文章、传单等多种形式,宣传产品的出版方式包括纸质方式、CD、DVD、在线发布等。现要求为该广告公司设计一个管理这些宣传产品的应用,采用 (1) 设计模式较为合适,该模式 (2) 。
(1)、A.Decorator B.Adapter C.Bridge D.Facade
(2)A.将一系列复杂的类包装成一个简单的封闭接口
B.将抽象部分与它的实现部分分离,使它们都可以独立地变化
C.可在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责
D.将一个接口转换为客户希望的另一个接口
答案:(1)C (2)B
解析:
题目所给出的应用中,不希望在不同的宣传产品与具体所采用的出版方式之间建立一个固定的绑定关系,以避免这两者之间的紧耦合关系。这种情形适合于采用Bridge(桥接)模式。桥接模式属于结构型设计模式的一种。结构型模式描述如何将类或对象合在一起形成更大的结构。桥接模式将抽象部分与它的实现部分分离,使它们都可以独立地变化。
在以下情况可以使用Bridge模式: ①不希望在抽象以及抽象的实现部分之间有一个固定的绑定关系。例如这种情况可能是因为,在程序运行时刻可以选择或切换实现部分;②类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充,使用Bridge模式可以对不同的抽象接口和实现部分进行组合,并分别对它们进行扩充。③对一个抽象的实现部分的修改应该对用户不产生影响,即客户的代码不必重新编译。