南京信息工程大学滨江学院李振宏《软件工程》期末复习 个考点完整版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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%左右。
预防性维护的定义:采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编制和测试的过程。