1、软件水平考试(中级)软件设计师上午(基础知识)试题模拟试卷 80及答案与解析 1 以下描述中,错误的是 (1)。 ( A)从一个计算机系统转移到另一个计算机系统的容易程度是软件的可移植性 ( B)软件在需要它投入使用时能实现其指定功能的概率是可靠性 ( C)软件能够被软件维护人员阅读并理解的方便程度是软件的可理解性 ( D)在规定条件下和规定期间内,实现所指定的功能的概率是软件的可靠性 2 下述任务中,不属于软件工程需求 ( A)确定软件系统的可靠性要求 ( B)确定软件系统的性能需求 ( C)确定软件 系统将采用什么开发语言开发 ( D)确定软件系统的数据要求 3 (3)是软件生命周期中时间
2、最长的阶段。 ( A)需求分析阶段 ( B)软件维护阶段 ( C)软件设计阶段 ( D)软件系统实施阶段 4 软件需求说明书是软件需求分析阶段的重要文件,下述 (4)是其应包含的内容。 数据描述 功能描述 模块描述 性能描述 ( A) ( B) ( C) ( D) 5 以下关于数据流图的说法,错误的是 (5)。 ( A)数据流图是用来作 为结构化分析建模的一种工具 ( B)传统的数据流图中主要包含加工、外部实体、数据流、数据存储、控制流 5种基本构件 ( C)数据流图可只有一个也可以有多个 ( D)数据流图属于需求分析阶段的产物 6 下列关于内聚和耦合的描述中,错误的是 (6)。 ( A)内聚
3、体现的是代码功能的集中程度 ( B)耦合体现的是模块间联系的紧密程度 ( C)通信内聚比逻辑内聚的内聚度更高 ( D)数据耦合比公共耦合的耦合度更高 7 下列选项中,不属于可用性子特性的是 (7)。 ( A)可理解性 ( B)易学性 ( C)依从性 ( D)可操作性 8 以下关于开发模型的描述中,不正确的是 (8)。 ( A)软件开发模型是指软件开发全部过程、活动和任务的结构框架 ( B)喷泉模型主要用于描述面向对象的开发过程 ( C)瀑布模型严格规定了各阶段必须提交的文档 ( D)螺旋模型结合了瀑布模型和快速原型模型的优点 9 希赛公司的财务系统功能基本完善,但由于系统比较老旧,需要二次开发
4、,这时应该采用 (9)。 ( A)原型法 ( B)瀑布模型 ( C) V-模型 ( D)螺旋模型 10 UP的基本特征是 “用例驱动、以架构为中心的和受控的迭 代式增量开发 ”。 UP将一个周期的开发过程划分为 4个阶段,其中 (10)开发剩余的构件。 ( A)初始阶段 ( B)精化阶段 ( C)构建阶段 ( D)提交阶段 11 某服务器软件系统能够正确运行并得出计算结果,但存在 “系统出错后不能在要求的时间内恢复到正常状态 ”和 “对系统进行二次开发时总要超过半年的时间 ”两个问题,上述问题依次与质量属性中的 (11)相关。 ( A)可用性和性能 ( B)性能和可修改性 ( C)性能和可测试
5、性 ( D)可用性和可修改性 12 在新旧系统转换的过程中,在新系统全部正式运行前 ,一部分一部分地代替旧系统的策略称为 (12)。 ( A)位置转换 ( B)直接转换 ( C)并行转换 ( D)分段转换 13 CMM将软件过程的成熟度分为 5个等级。以下关于 CMM各级别特征的描述中,不正确的是 (13)。 ( A)处于初始级的软件过程可能是混乱的,项目成功往往依赖于个人 ( B)管理级的最大特征是软件过程和产品质量有详细的度量标准 ( C)定义级的最大特征是软件过程文档化,并能持续地进行过程改进 ( D)可重复级能实现对成本、进度和功能特性的跟踪 14 下面有关测试的说法中,正确的是 (1
6、4)。 ( A)软件测试的目的是发现程序中所有错误 ( B)测试人员应该在软件开发结束后立即开始测试 ( C)要根据软件详细设计中设计的各种合理数据设计测试用例 ( D)对发现错误较多的程序段,应进行更深入的测试 15 如果要验证程序某模块能否与其他模块按照规定方式正确工作,需要进行(15)。 ( A)单元测试 ( B)集成测试 ( C)确认测试 ( D)系统测试 16 下面关于软件测试的描述中,不正确的是 (16)。 ( A) 测试不需要用户参与,而 测试需要用户参与 ( B)白盒测试能测试到程序 的内部结构和处理算法 ( C)软件发生变更后,都需要进行回归测试 ( D)黑盒测试包括边界值分
7、析、错误推测等测试方法 17 下列关于极限编程 (XP)的叙述中,不正确的是 (17)。 ( A)极限编程注重用户反馈 ( B)极限编程提倡减少文档 ( C)极限编程的 4大价值观是沟通、变更、反馈、勇气 ( D)简单设计是极限编程的十二个最佳实践之一 18 软件文档按照其产生和使用的范围可分为开发文档、管理文档和用户文档。其中用户文档不包括 (18)。 ( A)编译手册 ( B)使用手册 ( C)维护手册 ( D)用户报告 19 如果两个小组独立地测试同一个程序,第一组发现 60个错误,第二组发现 50个错误,在两个小组发现的错误中有 30个是共同的,那么可以估计程序中的错误总数是 (19)
8、个。 ( A) 50 ( B) 60 ( C) 100 ( D) 120 20 某企业根据业务需要,希望软件系统能提供柱状图的报表,这时对该软件系统进行的维护属于 (20)维护。 ( A)正确性 ( B)完善性 ( C)适应性 ( D)预防性 21 在某教师管理系统中,教师的级别有教授、副教授、讲师,且教师年龄在 2560岁。若用等价 类划分来进行相关测试,则 (21)不是好的测试用例。 ( A) (博士, 30) ( B) (教授, 40) ( C) (副教授, 70) ( D) (博士, 62) 22 采用 McCabe度量法计算如图 4-1所示程序图的环路复杂性为 (22)。( A) 3
9、 ( B) 4 ( C) 5 ( D) 6 23 关于白盒测试的测试用例设计方法叙述,正确的是 (23)。 ( A)完成 SC(语句覆盖 )所需的测试用例数目一定多于完成 DC(判定覆盖 )所需的测试用例数目 ( B)达到 100 CC(条件覆盖 )要求就一定能够满足 100 SC的要求 ( C)达到 100 CDC(条件判定覆盖 )要求就一定能够满足 100 CC的要求 ( D)任何情况下,都可以达到 100路径覆盖的要求 24 对于如图 4-2所示的程序流程,当采用判定覆盖法设计测试案例时,至少需要设计 (24)个测试案例。 ( A) 2 ( B) 3 ( C) 4 ( D) 5 25 定
10、义风险参照水准是 (25)活动常用的技术。 ( A)风险识别 ( B)风险预测 ( C)风险评估 ( D)风险控制 26 在进行软件工程风险分析时,项目管理人员要进行 4种风险评估活动,这 4种风险活动是 (26)以及确定风险估计的正确性。 ( A)建立表示风险概率的尺度,描述风险引起的后果,估计风险影响的大小 ( B)建立表示风险概率的尺度,描述风险引起的后果,确定产生风险的原因 ( C)确定产生风险的原因,描述风险引起的后果,估计风险影响的大小 ( D)建立表示风险概率的尺度,确定产生风险的原因,估计风险影响的大小 27 在下列说法中, (27)是造成软件危机的主要原因。 用户使用不当 软
11、件本身特点 硬件不可靠 对软件的错误认识 缺 乏好的开发方法和手段 开发效率低 ( A) ( B) ( C) ( D) 28 在软件设计阶段,划分模块的原则是:一个模块的 (28)。 ( A)作用范围应该在其控制范围之内 ( B)控制范围应该在其作用范围之内 ( C)作用范围与控制范围互不包含 ( D)作用范围与控制范围不受任何限制 28 某软件项目的活动图如图 4-3所示。图中顶点表示项目里程碑,连接顶点的边表示包含的活动,则该活动图的关键路径是 (29),活动 FG的松弛时间为 (30)。29 (29) ( A) A-D-F-G-J ( B) A-C-F-H-J ( C) A-D-F-H-
12、J ( D) A-D-F-I-H-J 30 (30) ( A) 19 ( B) 20 ( C) 32 ( D) 24 软件水平考试(中级)软件设计师上午(基础知识)试题模拟试卷 80答案与解析 1 【正确答案】 B 【试题解析】 软件可测试性:用来表示测试及验证软件的难易度。 软件可理解性:软件能够被软件维护人员阅读并理解的方便程度。 软件可靠性:软件按规定的条件,在规定的时间内运行而不发生故障的能力。 软件可移植性:指软件从一个计算机系统或环境转移到另一个计算机系统或环境的容易程度。由于计算机的硬件体系结构不同,因而导致在某一类型机器上开发的软件不能在另一类计算机上运行,所以某一种语言开发环
13、境中开发出来的程序,如不用修改或只需极少量的修改便能在其他种类的计算机上运行,就是可移植性好。 软件可用性: ISO 924111国际标准对可用性做了如下定义:产品在特定使用环境下为特定用户用于特定用途时所具有的有效性 (effectiveness)、效率 (efficiency)和用户主观满意度 (satisfaction)。其中: 有效性 用户完成特定任务和达到特定目标时所具有的正确和完整程度。 效率 用户完成任务的正确和完整程度与所使用资源 (如时间 )之间的比率。 满意度 用户在使用产品过程中所感受到的主观满意和接受程度。 通俗来讲,可用性指的是产品对用户来说有效、易学、高效、好记、少
14、错和令人满意的程度,即用户能否用产品完成任务、效率如何、主观感受怎样,实际上是从用户角度所看到的产品质量,是产品竞争力的核心,是以用户为中心。 软件兼容性:指与软件可从某一环境 转移到另一环境的能力有关的一组属性。它包括以下几个属性: (1)与软件无须采用为该软件准备的活动或手段就可能适应不同的规定环境有关的软件属性; (2)使软件遵循与可移植性有关的标准或约定的软件属性; (3)与软件在该软件环境中用来替代指定的其他软件的机会和努力有关的软件属性。 软件可修改性:软件能够被软件维护人员修改的方便程度。 软件的一致性:软件服从与可移植性有关的标准或约定的程度。 【知识模块】 软件工程 2 【正
15、确答案】 C 【试题解析】 需求分 析阶段的任务主要有: (1)确定软件的综合要求:系统界面、系统功能、系统性能、安全性、保密性和可靠性方面的要求,系统的运行要求、异常处理、将来的扩充和修改等。 (2)分析软件系统的数据要求:基本数据元素、数据元素之间的逻辑关系、数据量、峰值等。 (3)导出系统的逻辑模型。 (4)修正项目开发计划。 【知识模块】 软件工程 3 【正确答案】 B 【试题解析】 本题考查的是软件寿命周期及其各寿命周期阶段的主要特点。 软件生命周期是软件开发的全过程,这个过程 由诸多阶段构成,包括需求分析、软件设计、编码及单元测试、集成及系统测试、安装、实施与维护等阶段,在由这些阶
16、段所构成的软件生命周期全过程中软件维护阶段是软件生命周期中时间最长的阶段。因为在软件开发完投入使用后,由于多方面的原因,软件不能继续适应用户的要求,要延续软件的使用寿命,就必须对软件进行维护,所以从软件开发投入使用到软件被淘汰的整个过程都属于软件维护阶段,因此不难想象这个阶段的时长最长。 【知识模块】 软件工程 4 【正确答案】 D 【试题解析】 已经确定下来的需求应当得到清晰准确的描述 。通常把描述需求的文档叫做软件需求说明书。 软件需求说明书的主要内容是系统的数据描述、数据流图、数据字典描述、系统接口描述、内部接口说明、系统的功能描述、处理说明、系统设计的限制系统的性能描述、性能参数、对系
17、统进行测试的种类等。 【知识模块】 软件工程 5 【正确答案】 B 【试题解析】 本题主要考查数据流图的基本内容。数据流图是结构化开发方法中需求分析阶段的重要工具。 结构化分析方法是一种面向数据流的软件分析方法。适合于开发数据处理类型软件的需求分析。数据流图是需求分析阶段使用的一种主 要工具,它以图形的方式表达数据处理系统中信息的变换和传递过程。与数据流图配合使用的是数据词典,它对数据流图中出现的所有数据元素给出逻辑定义。有了数据词典,使得数据流图上的数据流、加工和文件得到确切的解释。 通常在数据流图中,可能出现 4种基本符号,数据流、加工、数据存储、外部实体 (数据源及数据终点 )。数据流是
18、具有名字和流向的数据,在数据流图中用标有名字的箭头表示。加工是对数据流的变换,一般用圆圈表示。数据存储是可访问的存储信息,一般用直线段表示。外部实体位于被建模的系统之外的信息生产者或消费者,是不能由计算 机处理的成分,它们分别表明数据处理过程的数据来源及数据去向,用标有名字的方框表示。图 4-4所示是一个典型的数据流图示例。从理论上来说,数据流图可只有一个也可以有多个。但是,一般情况下,为了表达数据处理过程的数据加工情况,用一个数据流图是不够的。稍为复杂的实际问题,在数据流图上常常出现十几个甚至几十个加工。这样的数据流图看起来很不清楚。层次结构的数据流图能很好地解决这一问题。按照系统的层次结构
19、进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。 图 4-5所示为分层数据流图的示 例。数据处理 S包括三个子系统 1、 2、 3。顶层下面的第一层数据流图为 DFD L1。第二层数据流图 DFD L2 1、 DFD L2 2及 DFD L2 3分别是子系统 1、 2和 3的细化。对任何一层数据流图来说,我们称它的上层图为父图,在它下一层的图则称为子图。 画数据流图的基本步骤概括地说,就是 “自顶向下逐层分解 ”。检查和修改的原则为: (1)数据流图上所有图形符号只限于前述 4种基本图形元素。 (2)顶层数据流图必须包括前述 4种基本元素,缺一不可。 (3)顶
20、层数据流图上的数据流必须封闭在外部实体之间。 (4)每个加工 至少有一个输入数据流和一个输出数据流。 (5)在数据流图中,需按层给框加编号。编号表明该加工处在哪一层,以及上下层的父图与子图的对应关系。(6)规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。此即父图与子图的平衡。 (7)可以在数据流图中加入物质流,帮助用户理解数据流图。 (8)图上每个元素都必须有名字。 (9)数据流图中不可夹带控制流。 【知识模块】 软件工程 6 【正确答案】 D 【试题解析】 本题主要考查内聚与耦合的概念。高内聚、低耦合是软件设 计的一个原则,其中内聚是指模块内部各元素
21、之间联系的紧密程度,也就是代码功能的集中程度。耦合是指模块之间相互联系的紧密程度。 模块的内聚类型通常可以分为 7种,根据内聚度从高到低排序如表 4-1所示。模块的耦合性类型通常分为 7种,根据耦合度从低到高排序如表 4-2所示。综上所述,可知本题的答案应该选 D。 【知识模块】 软件工程 7 【正确答案】 C 【试题解析】 本题主要考查 ISO IEC9 126的软件质量模型。其 6个质量特性和 21个质量子特性是我们要理解的内容。 (1)功能性。 功能性是指与软件所具有的各项功能及其规定性质有关的一组属性,包括: 适合性:与规定任务能否提供一组功能以及这组功能的适合程度有关的软件属性。适合
22、程度的例子是面向任务系统中由子功能构成的功能是否合适、表容量是否合适等。 准确性:与能否得到正确或相符的结果或效果有关的软件属性。此属性包括计算值所需的准确程度。 互操作性 (互用性 ):与同其他指定系统进行交互的能力有关的软件属性。为避免可能与易替换性的含义相混淆,此处用互操作性 (互用性 )而不用兼容性。 依从性:使软件遵 循有关的标准、约定、法规及类似规定的软件属性。 安全性:与防止对程序及数据的非授权的故意或意外访问的能力有关的软件属性。 (2)可靠性。 可靠性是指在规定运行条件下和规定时间周期内,与软件维护其性能级别的能力有关的一组属性。可靠性反映的是软件中存在的需求错误、设计错误和
23、实现错误而造成的失效情况,包括: 成熟性:与由软件故障引起失效的频度有关的软件属性。 容错性:与在软件故障或违反指定接口的情况下,维持规定的性能水平的能力有关的软件属性。指定的性能水平包括失效防护能力。 可恢复性:与在失效发生后,重建其性能水平并恢复直接受影响数据的能力以及为达此目的所需的时间和努力有关的软件属性。 (3)可用性。 可用性是指根据规定用户或隐含用户的评估所作出的与使用软件所需要的努力程度有关的一组属性,包括: 可理解性:与用户为认识逻辑概念及其应用范围所花的努力有关的软件属性。 易学性:与用户为学习软件应用 (如运行控制、输入、输出 )的努力有关的软件属性。 可操作性:与用户为
24、操作和运行控制的努力有关的软件属性。 (4)效率。 效率是指在规定条件下,与软件性能级别和所用资源总量之间的关系有关的一组属性。包括: 时间特性:与软件执行其功能时响应和处理时间以及吞吐量有关的软件属性。 资源特性:与在软件执行其功能时所使用的资源数量及其使用时间有关的软件属性。 (5)可维护性。 可维护性是指与对软件进行修改的难易程度有关的一组属性,包括: 可分析性:与为诊断缺陷或失效原因及为判定待修改的部分所需努力有关的软件属性。 可改变性:与进行修改、排除错误或适应环境变化所需努力有关的软件属性。 稳定性:与修改所造成的未预料结果的风险有关的软件属性。 可测试性:与确认已修改软件所需的努
25、力有关的软件属性。此子特性的含义可能会被研究中的修改加以改变。 (6)可移植性。 可移植性是指与一个软件从一个环境转移到另一个环境运行的能力有关的一组属性。包括: 适应性:与软件无须采用为该软件准备的活动或手段就可能适应不同的规定环境有关的软件属性。 可安装性:与在指定环境下安装软件所需努力有关的软件属性。 遵循性 (一致性 ):使软件遵循与可移植性有 关的标准或约定的软件属性。 可替换性:与软件在该软件环境中用来替代指定的其他软件的机会和努力有关的软件属性。为避免可能与互操作性 (互用性 )的含义相混淆,此处用可替换性而不用兼容性。特定软件的可替换性并不隐含此软件可由所考虑的软件所替代。可替
26、换性可能包含可安装性和适应性这两个属性。由于此概念的重要性,它已被采用作为一个独立的子特性。 【知识模块】 软件工程 8 【正确答案】 D 【试题解析】 瀑布模型严格遵循软件生命周期各阶段的固定顺序:计划、分析、设计、编程、测试和维护,上一阶段完 成后才能进入到下一阶段,整个模型就像一个飞流直下的瀑布。瀑布模型有许多优点:可强迫开发人员采用规范的方法;严格规定了各阶段必须提交的文档;要求每个阶段结束后,都要进行严格的评审。但瀑布模型过于理想化,而且缺乏灵活性,无法在开发过程中逐渐明确用户难以确切表达或一时难以想到的需求,直到软件开发完成之后才发现与用户需求有很大距离,此时必须付出高额的代价才能
27、纠正这一偏差,这一开发模型主要适用于需求非常明确的应用。 喷泉模型主要用于描述面向对象的开发过程,喷泉一词体现了面向对象开发过程的迭代和无间隙特征。迭代 意味着模型中的开发活动常常需要多次重复,每次重复都会增加或明确一些目标系统的性质,但却不是对先前工作结果的本质性改动。无间隙是指在开发活动 (如分析、设计、编程 )之间不存在明显的边界,而是允许各开发活动交叉、迭代地进行。 快速原型模型对于许多需求不够明确的项目,比较适合采用该模型。它采用了一种动态定义需求的方法,通过快速地建立一个能够反映用户主要需求的软件原型,让用户在计算机上使用它,了解其概要,再根据反馈的结果进行修改,因此能够充分体现用
28、户的参与和决策。原型化人员对原型的实施很重要,衡量他们的重要标 准是能否从用户的模糊描述中快速地获取实际的需求。 演化模型也是一种原型化开发方法,但与快速原型模型略有不同。在快速原型模型中,原型的用途是获知用户的真正需求,一旦需求确定了,原型即被抛弃。而演化模型的开发过程,则是从初始模型逐步演化为最终软件产品的渐进过程。也就是说,快速原型模型是一种 “抛弃式 ”的原型化方法,而演化模型则是一种 “渐进式 ”的原型化方法。 螺旋模型结合了瀑布模型和演化模型的优点,最主要的特点在于加入了风险分析。它是由制订计划、风险分析、实施工程、客户评估这循环组成的,它最初从概 念项目开始第一个螺旋,这种开发模
29、型将风险分析作为一个单独的阶段来做,比较适合风险较大的大中型的软件开发项目。 【知识模块】 软件工程 9 【正确答案】 B 【试题解析】 结合试题 8的分析,可以知道,原型法适用于需求不明确的开发,瀑布模型适用于需求明确的开发,而螺旋模型适用于风险较大的大中型开发项目。在本题中,财务系统是已经存在的,而且功能完善,因此如果做二次开发的话,其基本需求应该是明确的,这个时候应该采用瀑布模型开发。 【知识模块】 软件工程 10 【正确答案】 C 【试题 解析】 统一过程 (UP)的基本特征是 “用例驱动、以架构为中心的和受控的迭代式增量开发 ”。一个 UP可分为若干个周期,每个周期的开发过程被分为
30、4个阶段,每个阶段可进行若干次迭代。 UP将一个周期的开发过程划分为如下的 4个阶段。 (1)初始阶段:该阶段的主要任务包括确定项目范围和边界,识别系统的关键用例,展示系统的侯选架构,估计项目费用和时间,评估项目风险。其意图是建立项目的范围和版本,确定业务实现的可能性和项目目标的稳定性。提交结果包括原始的项目需求和业务用例。 (2)精化阶段:该阶段的 主要任务包括分析系统问题领域,建立软件架构基础,淘汰最高风险元素。其意图是对问题域进行分析,建立系统的需求和架构,确定技术实现的可行性和系统架构的稳定性。提交结果包括系统架构及其相关文档、领域模型、修改后的业务用例和整个项目的开发计划。 (3)构
31、建阶段:该阶段相对简单一些,其主要任务包括资源管理、控制和流程优化,开发剩余的构件,然后进行构件组装和测试等。其主要意图是增量式地开发一个可以交付用户的软件产品。 (4)提交阶段:该阶段的主要任务包括进行 测试,制作发布版本,用户文档定稿,确认新系统,获取用户反馈,培训、调整产品使最终用户可以使用产品。其主要意图是将软件产品提交用户。 从以上描述中可以看出,在构建阶段才开发剩余的构件,所以正确答案为 C。 【知识模块】 软件工程 11 【正确答案】 D 【试题解析】 本题主要考查软件质量属性的判断与应用。 “系统出错后不能在要求的时间内恢复到正常状态 ”,这是对系统错误恢复能力的描述,属于系统
32、可用性的范畴。 “对系统进行二次开发时总要 超过半年的时间 ”,这是对系统进行调整和维护方面能力的描述,属于系统可修改性的范畴。 【知识模块】 软件工程 12 【正确答案】 D 【试题解析】 本题主要考查系统转换的概念。 新老系统之间的转换有三种方式:直接转换、并行转换和分段转换。下面详细介绍这三种转换各自的特点。 直接转换就是在确定新系统运行无误时,立刻启用新系统,终止老系统运行。这种方式对人员、设备费用很节省,一般适用于处理过程不太复杂、数据不很重要的场合。 并行转换是让新老系统并行一段时间,经过一段时间的考 验以后,新系统正式替代老系统。对于较复杂的大型系统,它提供了一个与老系统运行结果
33、进行比较的机会,可以对新老两个系统并行工作,消除了尚未认识新系统时的紧张和不安。在银行、财务和一些企业的核心系统中,这是一种经常使用的转换方式。它的主要特点是安全、可靠,但费用和工作量都很大,因为在相当的长时间内系统要两套班子并行工作。 分段转换又称逐步转换、向导转换、试点过渡法等。这种转换方式实际上是以上两种转换方式的结合。在新系统全部正式运行前,一部分一部分地代替老系统。那些在转换过程中还没有正式运行的部分,可以在一 个模拟环境中继续试运行。这种方式既保证了可靠性,又不至于费用太大。但是这种分段转换要求子系统之间有一定的独立性,对系统的设计和实现都有一定的要求,否则就无法实现分段转换的设想
34、。 由此可以看出题目所说的 “在新系统全部正式运行前,一部分一部分地代替旧系统的策略 ”是分段转换。 【知识模块】 软件工程 13 【正确答案】 C 【试题解析】 CMM模型将软件过程的成熟度分为 5个等级。 (1)初始级:软件过程的特点是无秩序的,有时甚至是混乱的。软件过程定义几乎处于无章法和步骤可循的状态, 软件产品所取得的成功往往依赖极个别人的努力和机遇。初始级的软件过程是未加定义的随意过程,项目的执行是随意甚至是混乱的。也许,有些企业制订了一些软件工程规范,但若这些规范未能覆盖基本的关键过程要求,且执行没有政策、资源等方面的保证,那么仍然被视为初始级。 (2)可重复级:已经建立了基本的
35、项目管理过程,可用于对成本、进度和功能特性进行跟踪。对类似的应用项目,有章可循并能重复以往所取得的成功。焦点集中在软件管理过程上。一个可管理的过程则是一个可重复的过程,一个可重复的过程则能逐渐演化和成熟。从管理角度可以 看到一个按计划执行的、阶段可控的软件开发过程。 (3)定义级:用于管理和工程的软件过程均已文档化、标准化,并形成整个软件组织的标准软件过程。全部项目均采用与实际情况相吻合的、适当修改后的标准软件过程来进行操作。要求制定企业范围的工程化标准,而且无论是管理还是工程开发都需要一套文档化的标准,并将这些标准集成到企业软件开发标准过程中去。所有开发的项目需根据这个标准过程,剪裁出与项目
36、适宜的过程,并执行这些过程。过程的剪裁不是随意 的,在使用前需经过企业有关人员的批准。 (4)管理级:软件过程和产品 质量有详细的度量标准。软件过程和产品质量得到了 定量的认识和控制。 (5)优化级:通过对来自过程、新概念和新技术等方面的各种有用信息的定量分析,能够不断地、持续地进行过程改进。 【知识模块】 软件工程 14 【正确答案】 D 【试题解析】 本题主要考查软件测试的一些基础知识。 软件测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件产品 (主要是指程序 )中的错误和缺陷。而根据理论推测,是不可能发现软件中所以错误的。而一个高效的测试是指用少量的测试用例,发现被测软件尽可能
37、多 的错误。软件测试所追求的目标是以尽可能少的时间和人力发现软件产品中尽可能多的错误。 另外,在做软件测试时,要注意以下准则: (1)应该尽早地、不断地进行软件测试,把软件测试贯穿于开发过程的始终。 (2)所有测试都应该能追溯到用户需求。从用户的角度看,最严重的错误是导致软件不能满足用户需求的那些错误。 (3)应该从 “小规模 ”测试开始,并逐步进行 “大规模 ”测试。 (4)应该远在测试之前就制定出测试计划。 (5)根据 Pareto原理, 80的错误可能出现在 20的程 序模块中,测试成功的关键是怎样找出这 20的模块,因此,对发现错误较多的程序段,应进行更深入的测试。 (6)应该由独立的
38、第三方从事测试工作。 (7)对非法和非预期的输入数据也要像合法的和预期的输入数据一样编写测试 用例。 (8)检查软件是否做了应该做的事仅是成功的一半,另一半是看软件是否做了不该做的事。 (9)在规划测试时不要设想程序中不会查出错误。 (10)测试只能证明软件中有错误,不能证明软件中没有错误。 【知识模块】 软件工程 15 【正确答案】 B 【试题解析】 单元测试也称模块测试,通常可放在编程阶段,由程序员对自己编写的模块自行测试,检查模块是否实现了详细设计说明书中规定的功能和算法。单元测试主要发现编程和详细设计中产生的错误,单元测试计划应该在详细设计阶段制订。单元测试期间着重从以下几个方面对模块
39、进行测试:模块接口、局部数据结构、重要的执行通路、出错处理通路、边界条件等。 集成测试也称组装测试,它是对由各模块组装而成的程序进行测试,主要目标是发现模块间的接口和通信问题,验证模块间是否按照规定的方式正确工作。例如,数据穿过接口可能丢失 ;一个模块对另一个模块可能由于疏忽而造成有害影响;把子功能组合起来可能不产生预期的主功能;个别看来是可以接受的误差可能积累到不能接受的程度;全程数据结构可能有问题等。集成测试主要发现设计阶段产生的错误,集成测试计划应该在概要设计阶段制定。 确认测试主要依据软件需求说明书检查软件的功能、性能及其他特征是否与用户的需求一致。确认测试计划应该在需求分析阶段制定。
40、一般情况下,通过确认测试后的软件就可以交付使用了。 系统测试的对象是完整的、集成的计算机系统,系统测试的目的是在真实系统工作环境下,验证完 整的软件配置项能否和系统正确连接,并满足系统子系统设计文档和软件开发合同规定的要求。系统测试的技术依据是用户需求或开发合同,除应满足一般测试的准入条件外,在进行系统测试前,还应确认被测系统的所有配置项已通过测试,对需要固化运行的软件还应提供固件。 【知识模块】 软件工程 16 【正确答案】 A 【试题解析】 本题主要考查软件测试的基本知识。 白盒测试又称结构测试,主要用于单元测试阶段。它把程序看成装在一个透明的白盒子里,测试者完全知道程序的结构和处理算法。
41、 黑盒测试又称功能 测试,主要用于集成测试和确认测试阶段。它把软件看作一个不透明的黑盒子,完全不了解软件的内部结构和处理算法,它只检查软件功能是否能按照软件需求说明书的要求正常使用,软件是否能适当地接收输入数据并产生正确的输出信息,软件运行过程中能否保持外部信息的完整性等,常见的黑盒测试方法包括等价类划分、边值分析、错误推测和因果图等。 测试是用户在开发者的场所由开发者指导完成的测试。开发者负责记录发现的错误和使用中遇到的问题,换句话说, 测试是在 “受控的 ”环境中进行的。 测试是在一个或多个用户的现场由该软 件的最终用户实施的,开发者通常不在现场,用户负责记录发现的错误和使用中遇到的问题并
42、把这些问题报告给开发者。也就是说, 测试是在 “非受控的 “环境中进行的。 回归测试是测试软件变更之后,变更部分的正确性和对变更需求的符合性,以及软件原有的、正确的功能、性能和其他规定的要求的不损害性,因此,只要软件发生了变更,都应该进行相应的回归测试。 【知识模块】 软件工程 17 【正确答案】 C 【试题解析】 极限编程是一种敏捷开发方法。其他敏捷方法还有自适应开发、水晶方法、特性驱动开发等,它们都有一个共同的 特点,那就是都将矛头指向了 “文档 ”,它们认为传统的软件工程方法文档量太 “重 ”了,称为 “重量级 ”方法,而相应的敏捷方法则是 “轻量级 ”方法。 在极限编程方法中,提出了四
43、大价值观:沟通、简单、反馈、勇气。五大原则:快速反馈、简单性假设、逐步修改、提倡更改、优质工作。还有十二个最佳实践:计划游戏、小型发布、隐喻、简单设计、测试先行、重构、集体代码所有制、结对编程、每周工作 40小时、持续集成、编码标准和现场客户。 【知识模块】 软件工程 18 【正确答案】 A 【试题解析】 本题考查软件工程的 文档知识,是常考的知识点。 软件文档也称文件,通常指的是一些记录的数据和数据媒体,它具有固定不变的形式,可被人和计算机阅读。它和计算机程序共同构成了能完成特定功能的计算机软件 (有人把源程序也当作文档的一部分 )。我们知道,硬件产品和产品资料在整个生产过程中都是有形可见的
44、,软件生产则有很大不同,文档本身就是软件产品。没有文档的软件,不成其为软件,更谈不到软件产品。软件文档的编制在软件开发工作中占有突出的地位和相当的工作量。高效率、高质量地开发、分发、管理和维护文档对于转让、变更、修正、扩充和使用文档,对 于充分发挥软件产品的效益有着重要意义。 软件文档可以分开发文档、管理文档和用户文档三大类。 开发文档包括功能要求、投标方案、需求分析、技术分析、系统分析、数据库文档、功能函数文档、界面文档、编译手册、 QA文档、项目总结等。 管理文档包括产品简介、产品演示、疑问解答、功能介绍、技术白皮书、评测报告等。 用户文档包括安装手册、使用手册、维护手册、用户报告、销售培
45、训等。 综上所述,可知本 题的答案选 A。 【知识模块】 软件工程 19 【正确答案】 C 【试题解析】 本题考查我们对软件测试策略的理解。对于这类题的求解,我们首先要求解出每组发现错误的效率,然后用其发现的错误数除以效率,就可以估算出总的错误数。 对于第一小组,发现了 60个错误,这其中有 30个是与第二组共同的,而第二组发现的 50个错误中,第一组还有 20个没有发现,所以其发现错误的效率为 30 50=60,因此可以估算出程序中错误总数为 60 60 =100。 同样的道理,通过计算第二小组的效率也可以估算 出程序中总的错误数为 100。 另外,由于两个小组是独立进行测试的,所以可以估计
46、:程序中的错误总数为100个。 【知识模块】 软件工程 20 【正确答案】 B 【试题解析】 本题主要考查软件维护的分类,是考试中一个常考知识点。 根据引起软件维护的原因不同,软件维护通常可分为以下四种类型: 改正性维护:在软件交付使用后,必然会有一部分隐藏的错误被带到运行阶段来。这些隐藏下来的错误在某些特定的使用环境下就会暴露出来。为了纠正这些错误而对软件进行的维护工作就是改正性维护。该类 维护一般占总维护工作量的25。 适应性维护:随着计算机的飞速发展,外部环境 (新的硬、软件配置 )或数据环境(数据库、数据格式、数据输入输出方式、数据存储介质 )或应用环境可能发生变化,为了使软件适应这种
47、变化,而去修改软件的过程就叫做适应性维护。该类维护一般占总维护工作量的 20。 完善性维护:在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动叫做完善性维护 。该类维护一般占总维护工作量的 50。 预防性维护:为了提高软件的可维护性、可靠性等而提出的一种维护类型,它为以后进一步改进软件打下良好基础。通常,预防性维护定义为: “把今天的方法学用于昨天的系统以满足明天的需要 ”。也就是说,采用先进的软件工程方法对需要维护的软件或软件中的某一部分 (重新 )进行设
48、计、编制和测试。该类维护一般占总维护工作量的 50。 在本题中,是要添加新的报表功能,因此这类维护属于完善性维护,因此本题的正确答案应选 B。 【知识模块】 软件工程 21 【正确答案】 D 【试题解析】 本题主要考查等价类划分。 所谓等价类就是某个输入域的集合,对于一个等价类中的输入值来说,它们揭示程序中错误的作用是等效的。也就是说,如果等价类中的一个输入数据能检测出一个错误,那么等价类中的其他输入数据也能检测出同一个错误。 等价类可以分为有效等价类和无效等价类,其中如果一个等价类内的数据是符合 (软件需求说明书 )要求的、合理的数据,则称这个等价类为有效等价类;否则,则称这个等价类为无效等
49、价类,无效等价类主要用来检验软件的容错性。 采用等价类划分方法来设计测试用例的 步骤如下: (1)根据软件的功能说明,对每一个输入条件确定若干个有效等价类和若干个无效等价类,并为每个有效等价类和无效等价类编号。 (2)设计一个测试用例,使其覆盖尽可能多的尚未被覆盖的有效等价类。重复这一步,直至所有的有效等价类均被覆盖。 (3)设计一个测试用例,使其覆盖一个尚未被覆盖的无效等价类。重复这一步,直至所有的无效等价类均被覆盖。 在本题中,不难看出,有两个条件,一个是教师级别;另一个是年龄。从答案给出的 4个选项来看, D选项中的两个输入都不是有效数据 (不符合第三条 ),如果用这个用例检测出了一个错误,那么也不能确定是由哪个输入条件引起的,因此其不是一个好的测试用例。 【知识模块】 软件工程 22 【正确答案】 B 【试题解析】 本题主要考场环路复杂度计算,这也是软件设计师考试中一个重要的考点。 M