1、软件工程形成性考核答案第一、二章一、填空题 1. 软件工程学的内容可包括(理论)、结构、(方法)、(工具)、环境、管理、规范等。2. 软件生存周期一般可分为问题定义、(可行性研究)、(需求分析)、设计、(编码)、测试、运行与维护阶段。3. 可行性研究的目的是(用最小的代价在尽可能短的时间内确定问题是否能够解决)。4. 系统流程图是(描绘物理系统)的传统工具。5. 在可行性研究中,(技术可行性)是系统开发过程中难度最大,最重要的一个环节。 二、判断题1. 软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这个复杂问题进行分解,将软件生存的时期分为若干阶段。( )2. 螺旋模型是利用笛卡尔
2、坐标的四个象限上分别代表四个方面的活动来表示。( )3. 原型模型适用于嵌入式软件。( )4. 面向对象技术是构件组装模型的基础。( )5. 在可行性研究中最难决断和最关键的问题是经济可行性。( )6. 系统流程图表达的是部件的信息流程,还表示对信息进行加工处理的控制过程。( )7. 自底向上成本估计不是从整体开始,而是从任务单元开始。( )三、单项选择题1. 下列哪个阶段不是软件生存期三个阶段中的内容( C )。A 计划阶段B 开发阶段C 编码阶段D 维护阶段2. 下列关于瀑布模型的描述正确的是( C )。A. 瀑布模型的核心是按照软件开发的时间顺序将问题简化。B. 瀑布模型具有良好的灵活性
3、。C. 瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开。D. 利用瀑布模型,如果发现问题修改的代价很低。四、简答题1. 软件的定义与特点。参考答案:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据结构及其相关文档的完整集合。它包括三个方面的内容:程序:在运行时,能提供所希望的功能和性能的指令集。数据结构:使程序能够正确运行的数据结构。文档:描述程序研制过程、方法及使用的图文材料。软件产品具有以下一些特性:软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。 软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在研制、开发中被创造出来的。在软件的运行
4、和使用期间,没有硬件那样的机械磨损、老化问题。软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。软件的开发至今尚未完全摆脱手工的开发方式。软件的开发费用越来越高,成本相当昂贵。也可概括为:抽象性:逻辑实体,可记录,但看不到。可复制性:与开发成本相比,复制成本很低。无折旧。受硬件制约。未完全摆脱手工工艺。开发费用高。2. 什么是软件工程。参考答案:软件工程是指导计算机软件开发和维护的工程学科。它采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来开发和维护软件。软件工程是从管理和技术两个方面研究如何运
5、用工程学的基本原理和方法来更好地开发和维护计算机软件的一门学科。3. 什么是软件生存周期。参考答案:一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。软件生存周期一般可分为以下阶段: 问题定义 需求分析与可行性研究 设计 编码 测试 运行与维护 软件生存期也可以分为三个大的阶段:计划阶段。开发阶段和维护阶段。4. 什么是软件危机,软件危机有哪几种表现?参考答案:答:软件开发和维护的过程中所遇到的一系列严重的问题。具体表现在:(1)产品不能符合用户的实际需求;(2)软件开发的效率较低;(3)软件产品的质量差;(4)软件开发成本和进
6、度的估算不准确;(5)软件可维护性差;(6)软件开发文档资料不完整;(7)软件的价格昂贵;5. 简述可行性研究的任务。参考答案:可行性研究的目的:就是用最小的代价在尽可能短的时间内确定问题是否能够解决,是否有必要去解决。可行性研究的目的不是解决问题,而是确定问题是否值得去解决。研究在当前的具体条件下,开发新系统是否具备必要的资源和其它条件。可行性研究是要进行一次压缩简化了的系统分析和设计的过程,也就是说在较高层次上以较抽象的方式进行设计的过程。6. 简述可行性研究的步骤。参考答案:1 复查系统规模和目标2 研究目前正在使用的系统3 导出新系统的高层逻辑模型4 重新定义问题5 导出和评价供选择的
7、方案6 推荐一个方案并说明理由7 推荐行动方针8 书写计划任务书9 提交审查7. 简述系统流程图的作用。参考答案:1制作系统流程图的过程是系统分析员全面了解系统业务处理概况的过程,它是系统分析员作进一步分析的依据。 2系统流程图是系统分析员、管理人员、业务操作人员相互交流的工具。 3系统分析员可直接在系统流程图上拟出可以实现计算机处理的部分。 4可利用系统流程图来分析业务流程的合理性。软件工程形成性考核答案第三、四章 一、填空题1. 需求分析的基本任务是准确的回答(系统必须做什么)。2. 需求分析阶段研究的对象是软件项目的(用户要求)。3. 结构化分析方法就是(面向数据流)自顶向下逐步求精进行
8、需求分析的方法。需求分析的目的之一就是把数据流和数据存储定义到(元素级)。4. 数据流图的基本符号包括(数据输入的源点和数据输出的汇点)、(加工)、(数据流)、(数据存储文件)。5. 数据流图和(数据字典)共同构成系统的逻辑模型。6. 数据字典的内容包括六项:(数据流)、(数据项)、(数据结构)、数据存储、处理逻辑、外部实体。7. 在需求分析阶段常用的图形工具有(层次方框图)、(Warnier图)、(IPO图)。8. 需求分析应交付的主要文档是(需求规格说明书)。9. 概要设计过程中要先进行系统设计、(复审系统计划)与( 需求分析 ),确定系统具体的实施方案;然后进行( 结构设计 ),确定软件
9、结构。10. 层次结构的上一层是下一层的(抽象),下一层是上一层的(求精)。11. 模块独立的概念是(模块化)、(抽象)、(信息隐蔽)和局部化概念的直接结果。12. 模块耦合的强弱取决于(模块间接口的复杂程度)、(调用模块的方式)和通过接口的信息。13. 设计出软件的初步结构以后,应该进一步分解或合并模块,力求降低(耦合)提高(内聚)。14. 在一段程序中,将多次出现的一组语句设计为一个子程序,供多个部分调用,这种情况出现的内聚称为(偶然内聚)。15. 一个模块直接调用的模块数目称为模块的(扇出),一个模块被多少上级模块直接调用称为模块的(扇入)。16. JSD是一种典型的( 面向数据结构 )
10、的分析设计方法。17. Jackson图除了可以表达( 程序结构外 )外,还可以表达数据结构。18. 对于下列伪码,画出改进的Jackson图( )A seqBC DA endADCB二、判断题1. 在软件开发中,采用原型系统策略的主要困难是时间问题。( )2. 数据流图从数据传递和加工的角度,以图形的方式描述数据流从输入到输出的传输变换过程。( )3. 模块越多,开发成本越小。( )4. 耦合是指一个模块内各个元素彼此结合的紧密程度。( )5. 内聚是指一个软件结构内各个模块之间互连程度的度量。( )6. 在软件设计中应该尽量设计紧密耦合的系统。( )7. 控制耦合往往可以通过分解由数据耦合
11、来代替。( )8. 内容耦合又称为病态耦合,在很多高级程序设计语言中不允许出现任何形式的内容耦合。( )9. 对于DFD图的划分,主要依赖设计人员的经验,一切都应根据设计人员的经验确定。( )10. 一笔交易、一个动作、甚至操作人员按一个按钮都可以看做是一次事物。( )11. 如果一个模块内的处理元素是彼此相关的,并且以一个特定的次序执行,则这种内聚称为时间内聚。( )12. 概要设计阶段完成的主要文档是概要设计说明书。( )三、多项选择题1. 需求分析阶段结束后,应交出的文档中应该包括( ABC )。A. 数据流图B. 数据字典C. 简明的算法描述D. 项目的经费预算2. 关于数据流图正确的
12、描述是( ACD )。A 数据流图是结构化系统分析的主要工具。B 在数据流图中,*号标识相邻的数据流只取其一。C 加工是以数据结构或数据内容作为加工对象的。D 数据流图的主图中必须包括全部四种基本元素。3. 关于数据字典正确的描述是( ABCD )。A 数据字典最重要的用途是作为分析阶段的工具。B 实现数据字典三种常见的方法有全人工过程、全自动过程、混合过程。C 数据字典应该容易更新和修改。D 可以采用卡片形式书写数据字典。4. ( ABCD )可以作为模块。A 过程B 子程序C 函数D 宏5. 下列关于模块的描述,正确的是( ABCD )。A 具有独立的模块软件比较容易开发出来。B 独立的模
13、块比较容易测试和维护。C 模块的独立程度可以通过内聚和耦合标定。D 独立的模块可以完成一个相对独立的特定子功能。6. 耦合的强弱取决于( ABC )。A 模块间接口的复杂程度。B 调用模块的方式。C 通过接口的信息。D 模块内部各个元素彼此之间的紧密结合程度。7. 在公共环境耦合中,公共环境可以是( ABCD )。A 全程变量。B 共享的通信区。C 内存的公共覆盖区。D 存储介质上的文件。8. 下列( AD )属于内容耦合。A 一个模块有多个入口。B 两个模块彼此之间只通过传递参数交换信息。C 两个模块之间存在全程变量,并通过全程变量传递信息。D 两个模块有部分代码重叠。9. 在软件设计中,(
14、CD)耦合应尽量避免。A 控制B 数据C 内容D 标记四、简答题1. 需求分析的任务是什么?参考答案:见书31页2. 怎样建立目标系统的逻辑模型?参考答案:在理解当前系统“怎样做”的基础上,抽取其“做什么”的本质。在物理模型中有许多物理因素,但随着分析工作的深入,有些非本质因素就显得不必要了,因而需要对物理模型进行分析,区分本质和非本质因素,去掉那些非本质因素就可获得反应系统本质的逻辑模型。做法是:确定目标系统与当前系统的逻辑差别;将变化部分看作是新的处理步骤,对功能图及对象图进行调整;由外及里对变化的部分进行分析,推断其结构,获得目标系统的逻辑模型。3. 什么是结构化分析?“结构化”体现在哪
15、里?参考答案:结构化分析方法是面向数据流进行需求分析的方法。结构化分析方法使用数据流图DFD与数据字典DD来描述,面向数据流问题的需求分析适合于数据处理类型软件的需求描述。其核心思想是分解化简问题,将物理与逻辑表示分开,对系统进行数据与逻辑的抽象。结构化分析方法体现在用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。4. 需求说明书由哪些部分组成?各部分之间的关系是什么?参考答案:软件需求说明书一般包括如下内容:1引言部分编写目的;项目背景 (应包括:a.项目的委托单位、开发单位和主管部门;b该软件系统与其他系统的关系。) ; 定
16、义;(列出文档中所用到的专门术语的定义和缩写词的原文。)参考资料。2任务概述目标;运行环境;条件与限制。3数据描述静态数据;动态数据 (包括输入数据和输出数据) ;数据库描述 (给出使用数据库的名称和类型) ;数据词典;数据采集。4功能要求功能划分;功能描述。5性能需求数据精确度;时间特性(如响应时间、更新处理时间、数据转换与传输时间、运行时间等);适应性(在操作方式、运行环境、与其他软件的接口以及开发计划等发生变化时,应具有的适应能力。)6运行需求用户界面(如屏幕格式、报表格式、菜单格式、输入输出时间等);硬件接口;软件接口;故障处理。7其他要求如可使用性、安全保密、可维护性、可移植性等。8
17、附录5. 为什么数据流图要分层?参考答案:为了表达数据处理过程的数据加工情况,用一个数据流图是不够的。为表达稍为复杂的实际问题,需要按照问题的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系。6. 什么是加工逻辑?参考答案:加工逻辑就是处理逻辑,加工逻辑是对加工过程的抽象描述。加工逻辑的具体实现就是加工过程。加工逻辑是指用户对这个加工的逻辑要求,即加工的输入数据流与输出数据流之间的逻辑关系。加工逻辑主要是说明加工做什么,而不是描述具体的加工过程,如采用哪些加工单元、如何控制执行等实现细节。7. 根据下列描述,画出教材征订系统的第一层数据流图。学生入学后到教材科订书,教材科根据教材库存情
18、况分析是否需要买书,如需购买,则向书店购买。各种资金往来通过学校的会计科办理。参考答案:8. 结构化设计方法的基本思想是什么?它如何与SA方法相衔接?参考答案:结构化设计方法的基本思想是SA是结构化分析方法的简称。结构化分析方法是面向数据流进行需求分析的方法。其核心思想是分解化简问题,将物理与逻辑表示分开,对系统进行数据与逻辑的抽象。结构化分析方法体现在用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。结构化设计是在结构化分析的基础上完成的。结构化设计属于面向数据流的设计方法。在需求分析阶段,通过SA方法,解决了一个关键问题:信息
19、流。数据流是软件开发人员考虑问题的出发点和基础。数据流从系统的输入端向输出端流动,要经历一系列的变换或处理。用来表现这个过程的数据流图(DFD):实际上就是软件系统的逻辑模型。结构化设计要解决的任务,就是在上述需求分析的基础上,将DFD图映射为软件系统的结构。换句话说,这类设计方法允许把用DFD图表示的系统逻辑模型方便地转换成对于软件结构的初始设计描述。结构化设计方法的基本思想是将系统划分成一些独立的功能模块,这些模块按照一定的组织层次构造起来形成软件结构,通过自顶向下逐步细化的方法将用数据流图表示的信息转换成程序结构的设计描述。从结构化分析到结构化设计工具的转变: 结构化分析结果 结构化设计
20、结果 数据流图 初始结构图生存周期字典的数据部分 设计数据字典伪码+实现方面 伪码实体关系图+数据库性 数据库设计事务框图 分层/细化事务模型9. 什么是模块、模块化?参考答案:模块是数据说明、可执行语句等程序对象的集合,模块可以单独被命名的而且可通过名字来访问,例如,过程、函数、子程序、宏等等都可作为模块。模块化就是把程序划分成若干个模块,每个模块具有一个子功能,把这些模块集总起来组成一个整体,可以完成指定的功能,实现问题的要求。模块化设计这一概念取消。10. 说明并比较概要设计说明书与需求分析说明书的内容。参考答案:P54P98(1)两个说明书都包括引言,内容基本相同;(2)任务概述部分概
21、要设计说明比需求说明增加了需求概述;(3)需求说明主要通过静态、动态数据,数据库描述,数据字典和数据采集等内容进行数据描述;(4)需求说明中的主要部分是功能要求、性能要求、运行需求以及其他要求,它的目的是全面地、精确地描述了系统要“做什么”。需求说明书中还可能包括数据流图、数据字典、IPO图等描述的系统逻辑模型。(5)概要设计说明则对系统的总体结构、各个接口、数据结构、运行、出错、安全、维护进行具体设计,它的目的是描述系统“怎样做”,往往包含了各模块的处理说明和接口说明以及系统结构图。(6)概要设计说明是建立在需求说明的基础上的。11. 用Jackson图表示下图所示的二维表格:学生名册表头姓
22、名性别年龄学号表体该学生名册由表头和表体两部分组成。其中表头又顺序包括表名和字段名。表体可由任意行组成,每行包括学生的姓名、性别、年龄和学号。参考答案:学生名册行*学号年龄性别姓名字段名表名表体表头12. 指出下列数据流图中存在的问题。OF32FB2PB31QD33D134CE3E父图 子图参考答案:1、父图没有输入数据流;2、子图的输入数据流应该是C,而不是B;3、子图的输出数据流应该只有D和E,而不应有F。软件工程形成性考核答案第五、六章 一、填空题1. 详细设计的工具有(图形工具)、表格工具和语言工具。2. 为使用流程图描述结构华程序,限制流程图有五种基本的控制结构(顺序型)、(选择型)
23、、(while型循环)、until循环、多情况型选择。3. HIPO图是由一组(IPO)图和一张(HC)图组成。4. IPO图由(输入)、处理和(输出)三个框组成。这个图的特点是能够直观的显示三者之间的关系。5. 面向对象技术是一整套关于如何看待(软件系统)和(现实世界)的关系,以什么观点来研究问题并进行分析求解,以及如何进行系统构造的软件方法学。面向对象方法是一种运用(对象)、(类)、(封装)、(聚合)、消息传送、多态性等概念来构造系统的软件开发方法。6. 面向对象的软件工程方法是面向对象方法在(软件工程)领域的全面应用。7. UML的定义包括(UML语义)和(UML表示法)两个部分。二、判
24、断题1. 详细设计是在概要设计之后进行的。它利用概要设计的结果,对系统中的每个模块给出足够的过程性描述。( )2. 程序设计语言中应绝对禁止使用GOTO语句。( )3. PAD图在设置了五种基本的控制结构后,还允许递归调用。( )4. UML设定的目标之一是运用面向对象概念来构造系统模型。( )5. 类是关于对象性质的描述,由方法和数据集成。( )三、简答题1. 详细设计的任务是什么?参考答案:1为每个模块确定采用的算法,选择某种适当的工具表达算法的过程,写出模块的详细过程性描述;2确定每一模块使用的数据结构;3确定模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其它模块的接口,以及
25、模块输入数据、输出数据及局部数据的全部细节。4要为每一个模块设计出一组测试用例,以便在编码阶段对模块代码(即程序)进行预定的测试,模块的测试用例是软件测试计划的重要组成部分,通常应包括输入数据,期望输出等内容。2. 根据伪码画出NS图。STARTIF A THENBLOCKBCEND BLOCKEND IFSTOP3. 根据伪码画出NS图。STARTIF A THENX1DO UNTIL BELSEX2YEND IFZSTOP参考答案:AT FX2X1UNTIL BYZ4. 根据伪码画出PAD图。STARTSWITCH PCASE 1: A; break;CASE 2: B; break;CA
26、SE 3: C; break;Default;STOP参考答案:1AP2B3C5. 简述什么是“对象”,什么是“类”。参考答案:人们要进行研究的任何事物均可看作对象,例如具体的事物、抽象的规则、计划和事件。类的定义是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。(类是具有相同属性、操作、关系的对象集合的总称。)6. UML的内容包括哪些部分?参考答案:标准建模语言UML的重要内容可以由下列五类图来定义. 用例图。是静态图。行为图。交互图。实现图。软件工程形成性考核答案第七、八、九章一、填空题 1. 软件(程序)(文档)。 2.
27、 程序的效率是指程序的执行速度和(程序占用的存储空间)。 3. 软件测试的方法有(分析方法)和(非分析方法)又称黑盒法。 4. 实现容错的主要手段是(冗余)和(防错程序设计)。 5. 软件测试的配置主要包括(测试计划)、(测试用例)和测试程序等。 6. 软件测试的步骤主要包括(单元测试)、集成测试、确认测试和(系统测试)。 二、判断题1. 独立编译是指将一个大程序的不同程序单元分别编译,然后重新连接整个程序段。( )2. 为保证程序的安全,必须做到程序中没有任何错误存在,即容错。( )3. 如果把软件开发所需的资源画成一个金字塔,人是最基本的资源。( )4. 软件测试只对软件的编码进行查错和纠
28、错工作,不需对软件计划和软件设计进行查错。( )5. 软件测试的目的是为了证明一个软件的设计没有错误,只有没有任何错误的软件才能使用。( )6. 在进行软件测试之前,首先应该假设软件是没有错误的。( )7. 软件测试中,应该尽量穷尽所有的数据,以便保证测试的质量。( )8. 判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖,判定/条件覆盖是同时满足这两种覆盖标准的逻辑覆盖。( )三、多项选择题1. 程序设计语言的特点包括( ABCD )。A. 名字说明B. 类型说明C. 初始化D. 循环和分支控制结构2. 编码风格包括( ABCD )。A. 源程序文档化B. 数据说明方法C. 语句结构
29、D. 输入/输出方法3. 被动式防错的检查项目包括(BD)。A. 周期性的进行标志检查B. 表达式中是否有分母为0的情况C. 周期性的进行链表连接情况的检查D. 栈的深度是否正确4. 软件测试主要包括( ABC )方面的差错和纠错。A. 软件计划B. 软件设计C. 软件编码D. 软件价格5. 软件维护的步骤主要包括(ABC)。A. 分析和理解程序B. 修改程序C. 重新验证程序D. 维护组织四、简答题1. 什么是编码风格?为什么要强调编码风格?参考答案:编码风格又称程序设计风格或编程风格。编码的目标从强调效率转变为强调清晰。良好的编码风格能在一定程度上弥补语言存在的缺陷,而如果不注意风格就很难
30、写出高质量的程序。尤其当多个程序员合作编写一个很大的程序时,需要强调良好而一致的编码风格,以便相互通讯,减少因不协调而引起的问题。总之,良好的编码风格有助于编写出可靠而又容易维护的程序,编码的风格在很大程度上决定着程序的质量。2. 编码风格有哪几个方面的问题?分别需要注意什么?参考答案:编码风格包括四个方面,即源程序文档化,数据说明的方法,语句结构和输入输出方法。源程序文档化主要包括选择标识符(变量和标号)的名字、安排注释以及程序的视觉组织等。在编写程序时,要注意数据说明的风格。为了数据说明便于理解和维护,必须注意下述几点。数据说明的次序应规范。进而有利于测试,排错和维护。说明的先后次序固定。
31、例如,按常量说明、简单变量类型说明、数组说明、公用数据块说明、所有的文件说明的顺序说明。在类型说明中还可进一步要求。例如,可按如下顺序排列:整型量说明、实型量说明、字符量说明、逻辑量说明。当用一个语句说明多个变量名时,应当对这些变量按字母的顺序排列。对于复杂数据结构,应利用注释说明实现这个数据结构的特点。在设计阶段确定软件的逻辑结构,但编码阶段的任务是构造单个语句。构造的语句要简单、直接,不要为了提高效率而使语句更为复杂。1使用标准的控制结构2尽可能使用库函数3首先应当考虑可读性4注意GOTO语句的使用5其他须注意的问题(1)避免使用ELSE GOTO和ELSE RETURN结构。(2)避免过
32、多的循环嵌套和条件嵌套;(3)数据结构要有利于程序的简化。(4)要模块化,使模块功能尽可能单一化,模块间的耦合能够清晰可见。(5)对递归定义的数据结构尽量使用递归过程。(6)不要修补不好的程序,要重新编写,也不要一味地追求代码的复用,要重新组织。(7)利用信息隐蔽,确保每一个模块的独立性。(8)对太大的程序,要分块编写、测试,然后再集成。(9)注意计算机浮点数运算的特点。尾数位数一定,则浮点数的精度受到限制。(10)避免不恰当地追求程序效率,在改进效率前,要作出有关效率的定量估计。(11)确保所有变量在使用前都进行初始化。(12)遵循国家标准。输入输出信息是与用户的使用直接相关的。输入输出的方
33、式和格式应当尽量作到对用户友好,尽可能方便用户的使用。一定要避免因设计不当给用户带来的麻烦。这就要求,源程序的输入输出风格必须满足人体工程学的需要和系统能否为用户接受。因此,在软件需求分析阶段和设计阶段,就应基本确定输入输出的风格。3. 比较下列两段语句,从编码风格的角度分析其优、劣。程序段一:if abthenif xythen b=yelsea=xend ifelsea=bend if程序段二:/ position_x is the position x of object; position_y is the position y of object; /if ab thena=bels
34、eif position_xposition_y thenb=position_yelsea=position_xend ifend if参考答案:第二段程序优于第一段。注释起到提示的作用,利于程序阅读者对程序段全貌的理解缩进格式清晰的显示程序中逻辑判断的结构。变量命名方式表明变量的含义。4. 软件的质量反应在哪些方面?参考答案:软件质量反映了以下三方面的问题。1软件需求是度量软件质量的基础,不符合需求的软件就不具备质量。2在各种标准中定义了一些开发准则,用来指导软件人员用工程化的方法来开发软件。如果不遵守这些开发准则,软件质量就得不到保证。3往往会有一些隐含的需求没有明确地提出来。例如,软件
35、应具备良好的可维护性。如果软件只满足那些精确定义了的需求而没有满足这些隐含的需求,软件质量也不能保证。5. 什么是黑盒测试法?什么是白盒测试法?参考答案:黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息的完整性。黑盒测试又称为功能测试。白盒测试法的前提是可以把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。6. 什么是逆向工程
36、?参考答案:逆向工程就是分析已有的程序,寻求比源代码更高级的抽象表现形式。一般认为,凡是在软件生命周期内的,将软件某种形式的描述转换为更抽象形式的活动都可称为逆向工程。7. 什么是软件配置管理?参考答案:软件配置管理(SCM)是贯穿于整个软件过程中的保护性活动。因为变化可能发生在任意时间,SCM活动被设计来(1)标记变化,(2)控制变化,(3)保证变化被适当地实现,以及(4)向其他可能有兴趣的人员报告变化。8. 简述软件测试的原则。参考答案:测试的原则如下:(1)测试前要认定被测试软件有错,不要认为软件设有错。(2)要预先确定被测试软件的测试结果。(3)要尽量避免测试自己编写的程序。(4)测试
37、要兼顾合理输入与不合理输入数据。(5)测试要以软件需求规格说明书为标准。(6)要明确找到的新错与已找到的旧错成正比。(7)测试是相对的,不能穷尽所有的测试,要据人力物力安排测试,并选择好测试用例与测试方法。(8)测试用例留作测试报告与以后的反复测试用,重新验证纠错的程序是否有错。9. 解释概念:测试用例。测试用例就是测试用的输入数据。10. 简述测试方案的基本目标以及包括的主要内容。参考答案:测试方案的基本目标是确定一组最可能发现某个错误或某类错误的测试数据。测试方案包括预定要测试的功能、应该输入的测试数据和预期的结果。11. 简述判定覆盖、条件覆盖、判定/条件覆盖三种方法的原则以及它们之间的
38、相互关系。参考答案:判定覆盖是只被测试程序段中不仅每个语句必须至少执行一次,而且每个判定的每种可能的结果都应该至少执行一次,也就是每个判定的每个分支都至少执行一次(真假分支均被满足一次)。条件覆盖的含义是,不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果。判定/条件覆盖是指选取足够多的测试数据,使得判定表达式中的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果,条件覆盖比判定覆盖功能强,因为它使判定表达式中每个条件都取到了两个不同的结果,判定覆盖却只关心整个判定表达式的值。判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖,判定/条件覆盖同时满足这两种覆盖标准的逻辑覆盖。12. 根据下图,给出按照路径覆盖原则生成的覆盖路径集。参考答案:1,2,31,2,6,71,4,5,31,4,5,6,7