第三次作业答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六章详细设计习题
一、名词解释
详细设计:确定每个模块的具体执行过程,也称过程设计。
详细设计的结果基本决定了最终的程序代码的质量。
结构化程序设计:是按照一组能提高程序的可读性和易维护性的规则而进行的程序设计方法,目的是为了使程序具有一种合理的结构,以使程序易理解和维护,便于保证和验证程序的正确性。
PDA:问题分析图,是一种算法描述工具。
它是一种从左向右展开的二维树形结构,其控制流程为自上而下,从左到右地执行。
二、填空
1、详细设计阶段的主要任务是确定每个模块的具体执行过程。
2、软件的详细设计可以用图形、表格、过程设计语言三种形式的描述工具表示模块的处理过程。
3、处理过程设计中最典型的方法是结构化程序设计方法,其基本要点是自顶向下、逐步求精。
4、任何程序都可由顺序、选择和循环3种基本控制结构构造,这3中基本结构的基本点是单入口、单出口。
5、PAD图是一种从左到右展开的二维树形结构,PAD图的控制流程是自上而下、从左到右地执行。
6、详细设计是软件设计的第二个阶段,主要确定每个模块的具体执行过程,
故也成为过程设计。
7、详细设计的目标不仅是逻辑上正确地实现每个模块的功能,还应使设计出的处理过程清晰易懂。
结构化程序设计是实现该目标的关键技术之一,它指导人们用良好的思想方法开发易于阅读、易于理解的程序。
三、单项选择
1、在详细设计阶段,经常采用的工具包括( C )
A.SA
B.SD
C.PAD
D.DFD
2、详细设计阶段的任务是( A )。
A.算法设计
B.功能设计
C.调用达观系设计
D.输入/输出设计
3、结构化程序设计的一种基本方法是( D )。
A.筛选法
B.递归法
C.迭代法
D.逐步求精法
4、下面说法不正确的是( C )。
A.流程图不易表示数据结构
B.流程图容易造成非结构化的程序结构
C.流程图支持逐步求精
D.流程图描述的是程序的逻辑结构
5、下面说法不正确的是( B )。
A. PAD图支持逐步求精
B.PAD图容易造成非结构化的程序结构
C. PAD图描述的是算法
D.PAD图容易表达程序的层次结构
四、简答题
1、什么是详细设计,?该阶段的基本任务是什么?
详细设计是软件设计的第二个阶段,确定每个模块的具体执行过程,也称过程设计。
根本任务:
(1)为软件结构中的每个模块选择算法,并用选定的某种表达工具给出清晰
的描述。
(2)块内数据结构设计
(3)数据库物理设计
详细设计的目标不仅仅是逻辑上正确地实现每个模块的功能,更重要的是设计出的处理过程应该尽可能简明易懂。
2、什么是结构化程序设计?,简述结构化程序设计的基本要点。
结构化程序设计是按照一组能提高程序的可读性和易维护性的规则而进行的程序设计方法,目的是为了使程序具有一种合理的结构,以使程序易理解和维护,便于保证和验证程序的正确性。
基本要点:
自顶向下、逐步求精的设计方法
使用顺序、选择、循环三种基本控制结构
在三种基本控制结构中保持单入口、单出口
第七章实现作业
一、名词解释
编码:编程就为是用编程(程序)语言把软件表达翻译为计算机可以理解的形式—用某种程序设计语言书写的程序。
软件测试:是软件投入运行之前,对软件需求分析、设计规格说明和编码的最终复查,是软件质量保证的关键步骤。
黑盒测试:不考虑程序内部结构和处理过程,只依据软件的需求规格说明书,检查程序的功能是否符合它的功能说明。
因此,黑盒测试又称功能测试或数据驱动测试。
白盒测试:按照程序内部逻辑测试程序。
检查程序中的每条通路是否都能按照预定要求正常工作。
这种测试完全了解程序的结构和处理过程。
因此,白盒测试又称为结构测试或逻辑驱动测试。
单元测试:是检查程序模块是否正确实现了规定的功能,目的是保证每个模块作为一个单元能正确运行,所以模块测试通常又称为单元测试。
集成测试:把模块按设计要求组装成子系统或系统的过程中的测试。
确认测试:以需求规格说明为基准,验证软件的有效性的测试。
渐增式测试:在集成测试中,的模块一个一个地加入进行测试。
当一个模块加入测试完以后再把下一个应该测试的模块结合进来测试。
这种每次增加一个模块的方法称为渐增式测试。
非渐增式测试:是先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序。
这种方法称为非渐增式测试方法。
回归测试:指重新执行已经做过的测试。
每当改正软件错误的时候,可能导致软件配置的某些成分的改变,这些改变可能引进新的错误。
回归测试就是保证由于调试或其它原因引起的变化,不会导致非预期的软件行为或额外错误的测试活动。
调试:根据测试所暴露的错误,诊断和改正其错误的过程。
二、填空
1、为了使程序代码易于阅读和理解,通常需要加注释,注释分为序言性注释和功能性注释两种类型
2、软件测试的目的是尽可能多地发现软件中存在的错误。
3、软件测试方法一般分为两大类:白盒测试方法和黑盒测试方法。
4、集成测试可以采用的具体方法是渐增式测试和非渐增式测试。
5、测试用例由测试输入数据和预期的的结果两部分组成。
三、单项选择题
1、为了使程序能在不同的机器上运行,程序应具有较好的【 A 】。
A.可移植性
B.可重用性
C.可维护性
D.可实用性
2、下列属于功能性注释的是【 C 】
A.说明模块的用处和功能的注释
B.说明数据的名称和用处的注释
C.说明程序段的注释
D.说明程序开发背景的注释
3、序言性注释主要内容不包括【 D 】
A.模块的接口
B.数据的描述
C.模块的功能
D.数据的状态
4、功能性注释主要内容不包括【 C 】
A.程序段的功能
B.语句的功能
C.模块的功能
D.数据的状态
5、符合数据说明顺序规范是【 D 】
A.全程量说明、局部量说明、类型说明、常量说明
B.全程量说明、局部两说明、常量说明、类型说明
C.类型说明、常量说明、全程两说明、局部量说明
D.常量说明、类型说明、全程量说明、局部量说明
6、下面说法正确的是【 C 】
A.经过测试没有发现错误说明程序正确
B.测试的目标是为了证明程序没有错误
C.成功的测试是发现了迄今尚未发现的错误的测试
D.成功的测试是没有发现错误的测试
7、覆盖准则最强的【 C 】
A.语句覆盖
B.判定覆盖
C.条件覆盖
D.路径覆盖
8、发现错误能力最弱的是【 A 】
A.语句覆盖
B.判定覆盖
C.条件覆盖
D.路径覆盖
9、与确认测试有关的文档是【 A 】
A.需求规格说明书
B.概要设计说明书
C.详细设计说明书
D.源程序
10、超出软件工程范围的测试是【 D 】
A.单元测试
B.集成测试
C.确认测试
D.平行测试
11、【 B 】方法需要考察模块间的接口和各模块之间的联系
A.单元测试
B.集成测试
C.确认测试
D.验收测试
12、调试应该由【 B 】完成。
A.与源程序无关的程序员
B.编制该源程序的程序员
C.不了解软件设计的机构
D.设计该软件的机构
四、简答题
1、选择高级程序设计语言的标准是什么?
选择的标准是:
理想的模块化机制良好的编译程序良好的独立编译机制
2、为了使程序具有良好的设计风格,应注意那些方面的问题?
代码文档化
数据说明顺序应该规范
语句构造简单直接,不能为追求效率而是使代码复杂化
输入输出格式简单一致,具有合法性验证、与结束标志
追求效率应建立在不损害程序可读性和可靠性基础上
3、为什么说软件测试是软件开发中不可缺少的重要一环,但不是软件质量保证的安全
阀?
●软件测试是软件开发中不可缺少的重要一环,原因:
软件最终要由人工编程来实现,出现错误是不可避免的。
测试的工作量占整个项目开发工作量40%左右。
如果是关系到人的生命安全的软件,测试的工作量还要成倍增加。
软件测试代表了需求分析、设计、编码的最终复审。
●软件测试不是软件质量保证的安全阀:软件测试只能发现错误,不能保证没有错
误。
4、软件测试应当遵循什么原则?为什么要遵循这些原则?
●所有测试应以用户需求为基准,测试的根本目标是保证软件能满足最终用户对软件的需求。
●制定系统的测试计划,并严格执行测试计划,排除测试的随意性。
●充分注意关键模块的测试和测试中的群集现象。
实践表明,测试发现的错误中80%可能集中在20%的模块中,对这些模块应重点测试。
●测试过程中必须随时注意测试所覆盖的程序逻辑的程度,确保程序设计中使用的所有条件都能被测试到。
●避免自己测试自己的程序,应由第三方独立进行测试。
●测试用例应包括合理的输入和不合理的输入。
不合理的输入往往更能发现程序中错误。
●测试用例应由测试输入数据和对应的预期输出结果组成。
缺少预期输出结果实际是缺少检验正误的基础。
5、单元测试、集成测试和确认测试各自主要目标是什么?它们之间有什么不同?相互
有什么关系?
模块测试是检查程序模块是否正确实现了规定的功能,发现模块在编码或算法中的错误,目的是保证每个模块作为一个单元能正确运行。
集成测试的主要目标是检查与设计相关的模块间与接口有关的问题确认测试的主要目标是验证软件的有效性,确保软件有效实现了软件需求规格说明书的要求,需求规格说明书是确认测试的依据。
它们之间的不同有:
测试内容不同
测试方法不同:单元测试用白盒法,集成测试使用渐增式或非渐增式测试;确认测试使用黑盒法。
发现的错误不同:单元测试发现的错误是编码阶段产生的错误;集成测试发现的是设计阶段引入的错误;确认测试发现的错误主要上需求分析阶段产生的错误。
涉及的文档不同:单元测试涉及详细设计和编码文档;集成测试涉及概要设计和详细设计文档;确认测试涉及需求分析阶段产生的文档。
相互间的关系:单元测试、集成测试、确认测试是顺序进行的。
6、什么是黑盒测试和白盒测试?它们都适应哪些测试?
黑盒测试:不考虑程序内部结构和处理过程,只依据软件的需求规格说明书,检查程序的功能是否符合它的功能说明。
白盒测试:按照程序内部逻辑测试程序。
检查程序中的每条通路是否都能按照预定要求正常工作。
这种测试完全了解程序的结构和处理过程白盒测试适应单元测试,包括逻辑测试和基本路径测试。
测试数据对程序的逻辑覆盖的程度决定了测试完全性的程度。
黑盒测试适合确认测试。
测试的方法包括等价类划分、边界值分析、错误推断等。
7、简述软件测试和软件调试有什么区别?
目的不同:测试是为了发现错误,调试是定位和改正测试发现的错误。
因而各自使用的技术也不同。
进行的方式不同:测试是有计划的,而调试不受时间约束的。