软件设计师考试18年上半年上午考试真题及解析(三)
11.能力成熟模型集成(CMMI)是若干过程模型的综合和改进。连续式模型和阶段式模型是CMMI提供的两种表示方法。连续式模型包括6个过程域能力等级(Capability Level,CL)其中(30)的共性目标是过程将可标识的输入工作产品转换成可标识的输出工作产品,以实现支持过程域的特定目标。
选项:
A.CL1(已执行的 B.CL2(已管理的)C.CL3(已定义的)D.CL4(定量管理的)
答案:A
解析:
CL0(未完成的):过程域未执行或未得到CL1中定义的所有目标。
CL1(已执行的):其共性目标是过程将可标识的输入工作产品转换成可标识的输出工作产品,以实现支持过程域的特定目标。
CL2(已管理的):其共性目标集中于已管理的过程的制度化。
CL3(已定义级的):其共性目标集中于已定义的过程制度化。
CL4(定量管理的):其共性目标集中于可定量管理的过程的制度化。
CL5(优化的);使用量化(统计学)手段改变和优化过程域,以满足客户要求的改变和持续改进计划中的过程域的功效。
12.软件维护工具不包括(31)工具。
选项:
A.版本控制 B.配置管理 C.文档分析 D.逆向工程
答案:B
解析:
辅助软件维护过程中的活动的软件称为“软件维护工具”,它辅助维护人员对软件代码及其文档进行各种维护活动。
软件维护工具主要有:1、版本控制工具;2、文档分析工具;3、开发信息库工具;4、逆向工程工具;5、再生工程工具;6、配置管理支持工具。
13.对下图所示的程序流程图进行判断覆盖测试,则至少需要(34)个测试用例。采用McCabe度量法计算器环路复杂度为(35)。
选项:
(34)A.2 B.3 C.4 D.5
(35)A.2 B.3 C.4 D.5
答案:A,B
解析:
覆盖测试就是要使测试用例可以走完所有的之路,也就是所有的语句都要执行一遍。在本题中,至少需要两个测试用例;计算环形复杂度:
(1)流图中的区域数等于环形复杂度。
(2)流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。
(3)流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。
一般采用方法(2)。边的条数指流程线,结点数为各种框的总和。
14.对象的(37)标识了该对象的所有属性(通常是静态的)以及每个属性的当前值(通常是动态的)。
选项:
A.状态 B.唯一ID C.行为 D.语义
答案:A
解析:
对象的状态一般都是指属性,对象的行为一般是指操作方法。
15.假设现在要创建一个Web应用框架,基于此框架能创建不同的具体Web应用,比如博客,新闻网站和网上商店等;并可以为每个Web应用创建不同的主题样式,比如浅色或深色等。这一业务需求的类图设计适合采用(44)模式(如下图所示)。其中(45)是客户程序使用的主要接口,维护队主题类型的应用。此模式为(46),体现的最主要的意图是(47)。
选项:
(44)A.观察者(Observer) B.访问者(Visitor) C.策略(Strategy) D.桥接(Bridge)
(45)A.WebApplication B.Blog C.Theme D.Light
(46)A.创建型对象模式 B.结构型对象模式 C.行为型类模式 D.行为型对象模式
(47)
A.将抽象部分与其实现部分分离,使它们都可以独立地变化
B.动态地给一个对象添加一些额外的职责
C.为其他对象提供一种代理以控制对这个对象的访问
D.将一个类的接口转换成客户希望的另一个接口
答案:D,A,B,A
解析:
观察者:类对外扩展开放,修改关闭。不同的Web应用,修改是肯定有的,故不可以;
访问者:它和观察者一样都是行为设计模式,它主要表示一个作用于某对象结构中的各个元素的操作。
策略:多种不同的方案切换,来解决问题。
桥接:继承树的拆分。抽象与实现相分离,各自独立变化。