南京信息工程大学滨江学院李振宏《软件工程》期末复习 个考点完整版

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

选择20题,每题1分;填空10题,每题1分;简答5题,每题8分;设计题3题,每题10分(流程图的设计、流图设计和环形复杂度的计算、语句覆盖和判定覆盖测试用例的设计)。

1.详细设计中,过程设计的工具,N-S图,PAD图及判定表和判定树各有何特点和适用情况?(第六章)

(1)盒图(N-S图):

一种不允许违背结构程序设计精神的图形工具,又称为N-S图。它有下述特点:

①功能域(作用域)明确,可以从盒图上一眼就看出来。

②盒图没有箭头,因此不允许随意转移控制。

③很容易确定局部和全程数据的作用域。

④很容易表现嵌套关系,也可以表示模块的层次结构。

适用:对大部分设计均有适用性,常用于软件工程详细设计中,提供一种结构化的方式,便于思考和解决问题。

(2)PAD图:

PAD是问题分析图(problem analysis diagram) ,它用二维树形结构的图来表示程序的控制流。PAD图的主要优点如下:

①使用PAD符号设计的程序必然是结构化程序。

② PAD图所描绘的程序结构十分清晰。最左面的竖线是程序的主线,即第一层结构。随着程序层次的增加,PAD图逐渐向右延伸。每增加一个层次,图形向右扩展一条竖线。图中竖线的总条数就是程序的层次数。

③PAD图表现的程序逻辑,易读、易懂、易记。程序从图中最左竖线上端的结点开始执行,自上而下,从左向右顺序执行,遍历所有结点。

④容易将PAD图转换成高级语言源程序,这种转换可用软件工具自动完成。

⑤既可表示程序逻辑,也可描绘数据结构。

⑥支持自顶向下、逐步求精方法的使用。

适用:为FORTTAN,COBOL,PASCAL等每种常用的高级程序设计语言提供了一套相应的图形符号。

开始时可以定义一个抽象的程序,随着设计的深入,使用def符号逐步增加细节,直至完成详细设计,如图6.6所示。

(3)判定表(P127有例子):

适于表示复杂的条件组合与应做的动作之间的对应关系。特点是:

①能够间接而又无歧义的描述处理故意则。

②并不适用于作为一种通用的设计工具。

③一张判定表由以下四部分组成:左上部列出所有条件,左下部是所有可能的动作,右

上部是表示各种条件组合的一个矩阵,右下部是和每种条件组合相对应的动作。

判定表右半部的每一列实际上就是一个规则,规定了与特定的条件组合相对应的动作。

适用:算法中包含多重嵌套的条件选择。数据元素多于2个的时候,能够比判定表更简洁的表达,便于理解。

盒图的基本符号(1)

盒图的基本符号(2)

PAD图的基本符号

图6.6 使用PAD图提供的定义功能来逐步求精的例子

PAD描述的示例

(4)判定树

判定树是判定表的变种,也能清晰地表示复杂的条件组合与应做的动作之间的对应关系。

判定树的优点:形式简单到不需任何说明,一眼就可以看出其含义,易于掌握和使用。

适用:数据元素多的时候,初次接触的人很容易就看懂

用判定树表示计算行李费的算法

2.白盒测试和黑盒测试技术的区别。(第七章)

白盒测试技术:用白盒方法测试软件时设计测试数据的典型技术。已知产品的内部工作过程,可以进行测试证明每种内部操作是否符合设计规格要求,所有内部成分是否经过检查。

黑盒测试技术:用黑盒方法测试软件时设计测试数据的典型技术。已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。

黑盒测试着重测试软件功能。黑盒测试并不能取代白盒测试,它是与白盒测试互补的测

试方法,它很可能发现白盒测试不易发现的其他类型错误。

3.白盒测试中的逻辑覆盖测试包含哪几种类型。(第七章)逻辑覆盖:是对一系列测试过程的总称。这组测试过程逐渐进行越来越完整的通路测试。

覆盖:测试数据执行源程序的过程。

①语句覆盖的含义:选择足够多的测试数据,使被测程序中每个语句至少执行一次。

②判定覆盖又叫分支覆盖。含义:不仅每个语句必须至少执行一次,而且每个判定的每个分支都至少执行一次。

③条件覆盖含义:不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果。

④判定/条件覆盖含义:选取足够多的测试数据,使得判定表达式中的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果。判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖。

⑤条件组合覆盖含义:使得每个判定表达式中条件的各种可能组合都至少出现一次。

⑥点覆盖含义:选取足够多测试数据,使得程序执行路径至少经过流图的每个结点一次。

⑦边覆盖含义:选取足够多测试数据,使得程序执行路径至少经过流图中每条边一次。

⑧路径覆盖含义:选取足够多测试数据,使程序的每条可能路径都至少执行一次(如果程序图中有环,则要求每个环至少经过一次)。

4.软件维护的类型有哪些,及各自所占比重。(第八章)

①改正性维护,占17%~21%:在软件交付使用后,因开发时测试的不彻底、不完全,必然会有部分隐藏的错误遗留到运行阶段。这些隐藏下来的错误在某些特定的使用环境下就会暴露出来。

改正性维护:为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程。

②适应性维护,占18%~25%:在使用过程中,外部环境(如:新的硬、软件配置)、数据环境(如:数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。

适应性维护:为使软件适应这种变化,而去修改软件的过程。

③完善性维护,占全部维护活动的50%~66%:在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足上述要求,需要修改或再开发软件而进行的完善性的维护活动。以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。

完善性维护不一定是救火式的紧急维修,可以是有计划、有预谋的一种再开发活动。

④预防性维护:为了提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础而修改软件的维护活动。其他维护活动只占4%左右。

预防性维护的定义:采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编制和测试的过程。

相关文档
最新文档