软件工程复习题1.doc
填空题
1. 在信息处理和计算机领域内,一般认为软件是 _程序__、_文档_ 和_数据__ 。
2. 数据流图的基本组成部分有 _数据的源点与终点____、 数据流___、 加工___、 数据文件___。
3. 数据流图和数据字典共同构成了系统的 _逻辑___模型,是需求规格说明书的主要组成部分。
4. 划分模块时尽量做到__高内聚、低耦合______,保持模块的独立性,尽量使用公共模块。
5. 类的实例化是_对象_______。
6. 将待开发的软件细化,分别估算每一个子任务所需要的开发工作量,然后将它们加起来,将得到软件的总开发量。这种成本估算方法称为_自底向上_______。
7. 如果一个模块被 n 个模块调用,其中直接的上级模块的个数是 m 个( m<=n )那么该模块的扇入数是 _____N___个。
8. 结构化设计以 __数据流图___ 为基础,按一定的步骤映射成软件结构。
9. 软件的风险分析可包括风险识别、风险预测 和风险驾驭(或风险管理)等3项活动。
10. 面向对象分析的目的是对客观世界的系统进行 ___建模____。
11. 一个进行学生成绩统计的模块其功能是先对学生的成绩进行累加,然后求平均值,则该模块的内聚性是 __顺序内聚_。
12. 软件生存周期是指一个软件从提出开发要求开始直到 __软件废弃____为止的整个时期。
13. 曾被誉为“程序设计方法的革命”的 结构化 程序设计,使程序设计从主要依赖于程序员个人的自由活动变成为有章可循的一门科学。
14. 在单元测试时,需要为被测模块设计_测试用例_。
一、判断题(每题2分,共30分)
1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。(对)
5.软件模块之间的耦合性越弱越好。(对)
6.数据库设计说明书是一个软件配置项(对)
10.快速原型模型可以有效地适应用户需求的动态变化。(对)
11.模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。(对)
12.集成测试主要由用户来完成。(错)
13.确认测试计划应该在可行性研究阶段制定(错)
14.白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。(错)
17.耦合是指一个模块内各个元素彼此结合的紧密程度。( ╳ )
18. 一笔交易、一个动作、甚至操作人员按一个按钮都可以看做是一次事物。( √ )
20.过大的模块可能是由于分解不充分造成的,即使降低模块独立性也必须继续分解。( ╳ )
26.如果把软件开发所需的资源画成一个金字塔,人是最基本的资源。( √ )
名词解释
1. 数据词典——是描述数据信息的集合,它对数据流图中的各个元素按规定格式进行详细的描述和确切的解释,是数据流图的补充工具。
2. 数据流图——他以图形的方式反映系统的数据流程。
3. 白盒测试——按照程序内部的结构测试程序,检验程序中的每条路径是否都能按预定要求正确工作。有两种测试法既逻辑覆盖测试法和路径测试。
4. 黑盒测试——按照程序的功能测试程序,检验与程序功能有关的输入、输出与程序执行是否正确。有四种方法既等价分类法、边界值分析法、错误猜测法和因果图法。
5. α测试——是在一个受控的环境下,由用户在开发者的“指导”下进行的的测试,由开发者负责记录错误和使用中出现的问题。
6. β测试——是由软件的最终用户(多个)在一个或多个用户场所来进行。由用户负责记下遇到的所有问题,包括主观认定的和真实的问题,定期向开发者报告,开发者在综合用户的报告之后进行修改,最后将软件产品交付给全体用户使用。
7. 内聚——一个模块内部各个元素彼此结合的紧密程度的度量。
8. 耦合——一一个软件结构内不同模块之间互连程度的度量。
简答题
1.软件工程的七条基本原理是什么?
答:软件工程的七条基本原理是:
(1) 用分阶段的是的生存周期计划严格管理;
(2) 坚持进行阶段评审;
(3) 严格实施的产品控制;
(4) 采用现代程序技术;
(5) 结果应能清楚地审查;
(6) 开发小组的成员应该少而精;
(7) 承认不断改进软件工程的必要性。
9. 什么是模块化?模块设计的准则?
模块化是按规定的原则将一个大型软件划分为一个个较小的、相对独立但又相关的模块。
模块设计的准则:
(1) 改进软件结构, 提高模块独立性:在对初步模块进行合并、分解和移动的分析、精化过程中力求提高模块的内聚,降低藕合。
(2) 模块大小要适中:大约50行语句的代码,过大的模块应分解以提高理解性和可维护性;过小的模块,合并到上级模块中。
(3) 软件结构图的深度、宽度、扇入和扇出要适当。一般模块的调用个数不要超过5个。
(4) 尽量降低模块接口的复杂程度;
(5) 设计单入口、单出口的模块。
(6) 模块的作用域应在控制域之内。
10.什么是模块独立性?用什么度量?
答:模块独立性概括了把软件划分为模块时要遵守的准则,也是判断模块构造是不是合理的标准。独立性可以从两个方面来度量:即模块本身的内聚和模块之间的耦合。
17.欲开发一个银行的活期存取款业务的处理系统:储户将填好的存/取款单和存折交给银行工作人员,然后由系统作以下处理;
(1)业务分类处理:系统首先根据储户所填的存/取款单,确定本次业务的性质,并将存/取款单和存折交下一步处理;
(2)存款处理:系统将存款单上的存款金额分别记录在存折和帐目文件中,并将现金存入现金库;最后将存折还给储户;
(3)取款处理:系统将取款单上的取款金额分别记录在存折和帐目文件中,并从现金库提取现金;最后将现金和存折还给储户。绘制该系统的数据流图和软件结构图。
18.什么是软件生存周期?把生存周期划分为阶段的目的是什么?
答:一个软件从开始计划起,到废弃不用止,成为软件的生存周期。把整个生存周期划分为较小的阶段,给每个阶段赋予确定而有限的任务,能够简化每一步的工作内容,使因为软件规模增长而大大增加了的软件复杂性变得较易控制和管理。
23.什么是黑盒测试?黑盒测试主要采用的技术有哪些?
黑盒测试也称为功能测试,它着眼于程序的外部特征,而不考虑程序的内部逻辑结构。测试者把被测程序看成一个黑盒,不用关心程序的内部结构。黑盒测试是在程序接口处进行测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。
黑盒测试主要采用的技术有:等价分类法、边界值分析法、错误推测法和因果图等技术。
24.什么是白盒测试?白盒测试主要采用的技术有哪些?
白盒测试是测试者了解被测程序的内部结构和处理过程,对程序的所有逻辑路径进行测试,在不同点检查程序状态,确定实际状态与预期状态是否一致。
白盒测试主要采用的技术有:路径测试技术和事务处理流程技术,对包含有大量逻辑判断或条件组合的程序采用基于逻辑的测试技术。
25.路径测试技术中几种主要覆盖的含义?举例说明?
语句覆盖:至少执行程序中所有语句一次。
判定覆盖:使被测程序中的每一个分支至少执行一次。故也称为分支覆盖。
条件覆盖:执行所有可能的穿过程序的控制路流程。
条件组合测试:设计足够的测试用例,使每个判定中的所有可能条件取值组合至少执行一次。
(例略)
26.等价分类法的测试技术采用的一般方法?举例说明?
(1) 为每个等价类编号;
(2) 设计一个新的测试方案,以尽可能多的覆盖尚未被覆盖的有效等价类,重复这一步骤,直到所有有效等价类被覆盖为止。
(3) 设计一个新的测试方案,使它覆盖一个尚未被覆盖的无效等价类, 重复这一步骤,直到所有无效等价类被覆盖为止。
(例略)
34、软件测试的基本任务是什么?测试与纠错有什么区别?
答:软件测试的基本任务是通过在计算机上执行程序,暴露程序中潜在的错误。测试和纠错目的和任务都不相同,测试是为了发现程序的错误,纠错是为了定位和纠正错误,从而消除软件故障,保证程序的可靠运行。
35.软件测试包括哪些步骤?同时说明这些步骤的测试目的是什么?
答:(1)单元测试,目的是代码达到模块说明书的要求(2)集成测试,目的是将经过单元测试的模块逐步组装成具有良好一致性的完整的程序(3)确认测试,目的是确认程序系统是否满足软件需求规格说明书的要求(4)系统测试,目的是检查能否与系统的其余部分协调运行,并且完成SRS对他的要求。
37.说明软件测试和调试的目的有何区别?
答:测试的目的是判断和发现软件是否有错误,调试的目的是定位软件错误并纠正。
39.工资计算系统中的一个子系统有如下功能:
( 1 )计算扣除部分—由基本工资计算出应扣除(比如水电费、缺勤)的部分;
( 2 )计算奖金部分—根据职工的出勤情况计算出奖励金;
( 3 )计算工资总额部分—根据输入的扣除额及奖金计算出总额;
( 4 )计算税金部分—由工资总额中计算出应扣除各种税金;
( 5 )生成工资表—根据计算总额部分和计算税金部分传递来的有关职工工资的详细信息生成工资表。
试根据要求画出该问题的数据流程图。
41.把事务型数据流图映射成软件结构图:
42.把变换型数据流图映射成软件结构图:
选择题
1. 软件工程的概念是哪年提出的( )。
A. 1988 B. 1968
C. 1948 D. 1928
13. 面说法正确的是( )。
A. 经过测试没有发现错误说明程序正确
B. 测试的目标是为了证明程序没有错误
C. 成功的测试是发现了迄今尚未发现的错误的测试
D. 成功的测试是没有发现错误的测试
14. ( )能够有效地检测输入条件的各种组合可能会引起的错误。
A. 等价类划分 B. 边界值分析
C. 错误推测 D. 因果图
17、使用程序设计的控制结构导出测试用例的测试方法是( )
A、黑盒测试 B、白盒测试
C、边界测试 D、系统测试
20、为了提高模块的独立性,模块内部最好是( )
A、逻辑内聚 B、时间内聚
C、功能内聚 D、通信内聚
21、软件是一种( )
A、程序 B、数据
C、逻辑产品 D、物理产品
25、若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是( )
A、条件覆盖法 B、等价分类法
C、边界值分析法 D、错误推测法
27、按软件生命周期方法设计软件的过程中,画数据流图属于下面哪个阶段的工作( )
A、需求分析 B、程序设计
C、详细设计 D、软件维护
29、等价划分测试方法属于( )
A、黑盒测试 B、白盒测试
C、边界测试 D、系统测试
31、确认软件的功能是否与需求规格说明书中所要求的功能相符的测试属于( )
A、集成测试 B、恢复测试
C、确认测试 D、单元测试
35、在用户界面层次上对软件进行测试属于哪种测试方法( )
A、黑盒测试 B、白盒测试
C、边界测试 D、系统测试
39、软件生存周期中时间最长的是( )阶段。
A、总体设计 B、需求分析
C、软件测试 D、软件维护
40、为了提高模块的独立性,模块之间的联系最好的是( )。
A、公共耦合 B、控制耦合
C、内容耦合 D、数据耦合
44、软件部件的内部实现与外部可访问性的分离,是指软件的( )。
A、继承性 B、共享性
C、封装性 D、抽象性
45、单元测试是发现编码错误,集成测试是发现模块的接口错误,确认测试是为了发现功能错误,那么系统测试是为了发现( )的错误。
A、接口错误 B、编码错误
C、性能、质量不合要求 D、功能错误
48、下列几种类型中,耦合性最弱的是( )。
A、内容型 B、控制型
C、公共型 D、数据型
50.瀑布模型的关键不足在于
A、过于简单 B、不能适应需求的动态变更C、过于灵活 D、各个阶段需要进行评审
52.以下哪一项不是软件危机的表现形式(3)
(1)成本高(2)生产率低(3)技术发展快(4)质量得不到保证
58.以下哪种测试方法不属于白盒测试技术(2)
(1)基本路径测试(2)边界值分析测试(3)循环覆盖测试(4)逻辑覆盖测试
59. “软件危机”是指( )
A. 计算机病毒的出现
B. 利用计算机进行经济犯罪活动
C. 软件开发和维护中出现的一系列问题
D. 人们过分迷恋计算机系统
67. 测试的关键问题是( )
A. 如何组织对软件的评审 B. 如何验证程序的正确性
C. 如何采用综合策略 D. 如何选择测试用例
73. 下列文档与维护人员有关的有( )
A. 软件需求说明书 B. 项目开发计划
C. 概要设计说明书 D. 操作手册
83. 用白盒技术设计测试用例的方法包括( )
A. 边界值分析 B. 条件组合覆盖
C. 因果图 D. 错误推测
84. 软件测试的目的是( )
A. 为了表明程序没有错误
B. 为了说明程序能正确地执行
C. 为了发现程序中的错误
D. 为了评价程序的质量
85. 针对软件需求分析所进行的软件测试是指( )
A. 集成测试 B. 确认测试
C. 黑盒子测试 D. 白盒子测试
89. 通信内聚、逻辑内聚、顺序内聚和时间内聚的内聚性从高到低顺序是( )
A. 通信、逻辑、顺序、时间
B. 通信、时间、顺序、逻辑
C. 顺序、通信、时间、逻辑
D. 顺序、通信、逻辑、时间
90. 在下列四种模块的耦合性中,信息隐蔽性能最好的是( )
A. 控制耦合 B. 内容耦合
C. 标记耦合 D. 数据耦合
99 .用白盒法技术设计测试用例的方法包括( )
A .错误推测 B .因果图
C .基本路径测试 D .边界值分析
100.软件测试中根据测试用例设计的方法的不同可分为黑盒测试和白盒测试两种,它们( )
A .前者属于静态测试,后者属于动态测试
B .前者属于动态测试,后者属于静态测试
C .都属于静态测试
D .都属于动态测试
103 .当一个模块直接使用另一个模块的内部数据,这种模块之间的耦合为( )
A .数据耦合 B .公共耦合
C .标记耦合 D .内容耦合
105.为高质量地开发软件项目,在软件结构设计时,必须遵循 _________ 原则。( )
A .信息隐蔽 B .质量控制
C .程序优化 D .数据共享
111 .在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致了( )
A .软件危机 B .软件工程
C .程序设计革命 D .结构化程序设计
119 .软件测试方法中的静态测试方法之一为( )
A .计算机辅助静态分析
B .黑盒法
C .路径覆盖
D .边界值分析
120 .软件生命周期中所花费用最多的阶段是( )
A .详细设计 B .软件编码 C .软件测试 D .软件维护
134. 信息隐蔽概念与( )这一概念直接的相关。
A. 模块的独立性 B. 模块类型的划分
C. 软件结构定义 D. 软件生命周期
138. 单元测试阶段主要涉及( )的文档。
A. 需求设计 B. 编码和详细设计
C. 详细设计 D. 概要设计
139. 在软件测试中,白盒测试方法是通过分析程序的( )来设计测试用例的方法。
A. 应用范围 B. 内部逻辑
C. 功能 D. 输入数据
141. 数据耦合和控制耦合相比,则( )成立。
A. 数据耦合的耦合性强 B. 控制耦合的耦合性强
C. 两者的耦合性相当 D. 两者的耦合性需要根据具体情况分析
{分页}
第一章 软件工程概念
一、名词解释
1、软件软件:是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合
程序是按事先设计的功能和性能要求执行的指令序列
数据是使程序能正常操纵信息的数据结构
文档是与程序开发,维护和使用有关的图文材料
2、软件工程:将系统化的,规范的,可度量的方法应用于软件的开发 , 运行和维护的过程,即将工程化应用于软件中
3、软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。概括来说,软件危机包含两方面问题:如何开发软件,以满足不断增长,日趋复杂的需求;如何维护数量不断膨胀的软件产品。
4、软件的生存期:软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。通常,把软件从开始研制(形成概念)到最终软件被废弃不用这整个阶段称为软件的生存期
二、选择题
1、软件是一种( B )产品
A.有形 B.逻辑 C.物质 D.消耗
4、软件工程学科出现的主要原因是( C )
A.计算机的发展 B.其他工程学科影响
C.软件危机的出现 D.程序设计方法学的影响
14、 在软件开发模型中,提出最早、应用最广泛的模型是( )。
A. 瀑布模型 B. 喷泉模型 C. 增量模型 D. 螺旋模型
15、在软件开发模型中,下列哪一个模型主要用于支持面向对象开发过程。( )
A.喷泉模型 B.瀑布模型 C.增量模型 D.螺旋模型
16、在软件开发模型中,下列哪一个模型这样开发组织的:在设计了软件系统整体结构之后,首先完整地开发系统的一个初始子集;根据这一子集,建造一个更加精细的版本。如此不断地进行增量开发。( )
A.喷泉模型 B.瀑布模型 C.增量模型 D.演化模型
17、在软件开发模型中,下列哪一个模型将软件生存周期的各项活动规定为依固定顺序连接的若干阶段的模型。( )
A.喷泉模型 B.瀑布模型 C.增量模型 D.演化模型
18、螺旋模型在笛卡儿坐标的四个象限上分别表达四个方面的活动。制定计划、风险分析、实施工程和( )。
A.客户培训 B.客户测试 C. 客户评估 D.客户理解
20、 软件危机出现于____,为了解决软件危机,人们提出了用____的原理来设计软件,这是软件工程诞生的基础。
A.50年代末 B.60年代初 C.60年代末 D.70年代初
A.运筹学 B.工程学 C.软件学 D.软件学 E.数字
21、开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作____。
A.软件投机 B.软件危机 C.软件工程 D.软件产生
22、产生软件危机的原因有如下几点,除了______。
A、 软件开发过程未经审查
B、 软件开发不分阶段,开发人员没有明确的分工
C、 所开发的软件,除了程序清单外,没有其他文档
D、 采用工程设计的方法开发软件,不符合软件本身的特点
25、 瀑布模型把软件生存周期划分为软件定义、软件开发和____三个阶段,而每一阶段又可细分为若干个更小的阶段。
A.详细设计 B.可行性分析 C.运行及维护 D.测试与排错
27、 瀑布模型与演化模型的主要区别是( )。
A. 活动不同 B. 项目的规模不同
C. 项目管理方法不同 D. 活动组织的方法不同
28、 软件生命周期一般包括三个时期:软件定义期、软件开发期和软件运行期。下述( )不是软件开发期所应包含的活动。
A. 可行性分析 B. 需求获取和需求建模
C. 软件体系结构设计和数据设计
D. 软件集成与系统测试
29、 软件开发方法学应给出的主要内容是( )。
A. 开发模型 B. 测试方法
C. 开发工具与环境 D. 概念与表示、过程与工具
三、简述题
3、常用的软件生存周期模型有瀑布模型,演化模型,螺旋模型,增量模型,喷泉模型,快速应用开发( RAD )模型。
4、谈谈你是如何理解软件危机的?
软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。概括来说,软件危机包含两方面问题:如何开发软件,以满足不断增长,日趋复杂的需求;如何维护数量不断膨胀的软件产品。
软件危机产生的原因
产生软件危机有两个方面的原因:
内部因素。与软件本身的特点有关。内在因素是客观的存在,只能因势利导加以解决。
外部因素。与软件开发和维护的技术方法有关。外部因素是可以完善、提高的。
软件特点的因素
软件是逻辑产品,是代码化了的人的思维活动。在总体构思时,别人无法管理和干预。在写出程序、并在机器上运行之前,进展情况难以掌握,开发质量也无法评估。这些都给管理和控制带来不便。
软件是特定问题在计算机上的运行描述。实际问题的复杂性决定了一个实用软件系统规模往往十分庞大。程序规模越大,控制、管理难度也就越大。
软件开发维护技术方法的因素
开发人员和用户之间的矛盾。许多软件系统开发失败的主要原因是开发人员在没有准确、完整地了解了用户的需求后就急于编程;用户对需求也往往不能准确、完整地提出。
软件产品有其生命周期。在周期的各个阶段有其具体的任务,如何完成任务,各个阶段有不同的技术方法和操作步骤。只有科学的按生命周期各阶段的任务去组织实施,才能保证质量,降低成本;急于求成,不按科学规律、方法实施,只能“事倍功半”,事与愿违。
解决软件危机的途径
首先应该树立对计算机软件的正确认识。软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合;程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发,维护和使用有关的图文材料。
软件开发应该是组织良好、管理严密、各类人员团结协作共同完成的工程项目。必须充分吸取和借鉴人类长期以来从事各种工程项目所积累的行之有效的原理、概念、技术和方法,并研究能更有效地开发软件的技术和方法。
积极开发和使用计算机辅助软件工程(CASE)工具。工具选用的好,它可以“放大”人的智力,大大加快软件开发速度,提高软件质量。
总之,为了解决软件危机就要从技术措施(方法和工具)和组织管理两个方面去研究。软件工程正是从技术和管理两方面研究如何更好地开发和维护软件的一门新兴的工程学科。
5、什么是软件工程过程?
软件工程过程是把输入转化为输出的一组彼此相关的资源和活动。
软件工程过程定义了: 方法使用的顺序、要求交付的文档资料、为保证质量和适应变化所需要的管理、软件开发各个阶段完成的里程碑。
从软件开发的观点看,它就是使用适当的资源(包括人员、硬软件工具、时间等),为开发软件进行的一组开发活动,在过程结束时将输入(用户要求)转化为输出(软件产品)。
5、什么软件生存周期?每个周期主要完成哪些任务?
通常,把软件从开始研制(形成概念)到最终软件被废弃不用这整个阶段称为软件的生存期。
软件生存周期:为了能对软件进行有条不紊、有步骤的开发和管理,将软件生存期划分为若干阶段,称为软件生存周期
软件生存周期可分为软件定义、软件开发及软件运行维护三个时期。
软件定义时期的任务是:确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并制定工程进度表。该时期通常进一步划分为三个阶段,即问题定义、可行性研究和需求分析。
软件开发时期具体设计和实现在前一个时期定义的软件,它通常由四个阶段组成:总体设计、详细设计、编码和测试(包括单元测试、综合测试)。确定程序由哪些模块组成以及模块间的关系; 详细的设计每个模块,确定实现模块功能所需要的算法和数据结构;写出正确的容易理解、容易维护的程序模块,并仔细测试每个编写出的模块; 通过各种类型的测试(及相应的调试)使软件达到预定的要求。
软件运行维护时期主要任务是使软件持久地满足用户需要。
{分页}
第二章 需求分析
四、应用题
1、请根据以下描述画出实例考务处理系统的DFD图
(1)对考生送来的报名单进行检查;
(2) 对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站;
(3) 对阅卷站送来的成绩单进行检查,并根据考试中心制定的合格标准审定合格者;
(4) 制作考生通知单 (含成绩及合格/不合格标志) 送给考生;
(5) 按地区进行成绩分类统计和试题难度分析,产生统计分析表。
2、请根据以下描述画出某简化的工资管理系统的数据流图。该子系统共有三个加工,其数据处理过程是:(1)首先是“填制工资档案”:根据人事变动单、考勤表两个输入单据,经过处理输出形成工资文件;(2)然后是“汇总工资”:从工资文件输入数据,按部门汇总后形成工资汇总表文件,(3)最后“发放工资”加工单元从工资卡片文件打印出工资条。
8、某网站发帖子系统有如下功能:
①记录发帖内容:访客在表单中输入文字,系统进行检查存入文件。
②显示帖子内容:读出文件,按一定格式显示在屏幕上。
9、请根据要求画出该系统的数据流程图。
某仓库管理系统按以下步骤进行信息处理,画数据流图
(1)保管员根据当日的出库单和入库单,通过入库处理修改库存台帐
(2)根据库存台帐,制作各种日报表
(3)根据库存台帐可查询所需结果
10、储户将填好的存(取)单及存折送交分类处理处。分类处理处按三种不同情况分别处理。如果存折不符或存(取)单不合格,则将存折及存(取)单直接退还储户重新填写;如果是存款,则将存折及存款单送交存款处处理。存款处理处取出底账登记后,将存折退还给储户;如果是取款,则将存折及取款单送交取款处理处,该服务台取出底账及现金,记账后将存折与现金退给储户。从而完成存(取)款处理过程。试按此画出数据流程图。
{分页}
第三章 软件设计
一、名词解释
4、内聚性:内聚是一个模块内部各个元素彼此结合的紧密程度的度量。
5、耦合性: 耦合是模块间互相连接的紧密程度的度量,它取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。
二、选择填空
4、下列哪一项说明模块的独立性越强。( )
A.耦合越强 B.扇入数越高
C.耦合越弱 D.扇入数越低
6、 程序内部的各个部分之间存在的联系,用结构图表达时,最关心的是模块的耦合性和( )。
A.一致性 B.作用域
C.嵌套限制 D.内聚性
7、程序内部的各个部分之间存在的联系,用结构图表达时, 下列哪一项是在模块之间的联系。( )
A.内聚性 B.耦合性
C.独立性 D.有效性
9、一个模块把一个数值量作为参数传送给另一模块。这两个模块之间的耦合是( )。
A.逻辑耦合 B.数据耦合
C.控制耦合 D.内容耦合
10、一个模块直接操作另一模块中的数据,这两个模块之间的耦合是( )。
A.公共耦合 B.数据耦合
C.控制耦合 D.内容耦合
11、一个模块在界面上传递一个信号控制另一个模块,接受信号的模块的动作根据信号值进行调整,这两个模块之间的耦合是( )
A.外部耦合 B.数据耦合
C.控制耦合 D.内容耦合
12 下列哪一项定义为受该模块内一个判断影响的所有模块集合。( )
A.控制域 B.作用域
C.宽度 D.接口
13、标记耦合指( )。
A.两个模块之间没有直接的关系,它们之间不传递任何信息
B.两个模块之间有调用关系,传递的是简单的数据值
C.两个模块之间传递的公共参数包含内部结构
D.一个模块调用另一个模块时,传递的是控制变量
14、通信内聚指()。
A.把需要同时执行的动作组合在一起形成的模块为通讯内聚模块
B.指模块的所有成分都操作同一数据集或生成同一数据集
C.指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行
D.这是最强的内聚,指模块内所有元素共同完成一个功能,缺一不可
15、耦合性最强是下面哪一项。( )
A.公共耦合 B.数据耦合
C.控制耦合 D.内容耦合
17、在软件结构设计完成后,对于下列说法,正确的是()。
A.非单一功能模块的扇入数大比较好,说明本模块重用率高
B.单一功能的模块扇入高时应重新分解,以消除控制耦合的情况
C.一个模块的扇出太多,说明该模块过分复杂,缺少中间层
D.一个模块的扇入太多,说明该模块过分复杂,缺少中间层
18、偶然内聚指()。
A.一个模块内的各成分之间没有任何联系
B.指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能
C.把需要同时执行的动作组合在一起形成的模块为时间内聚模块
D.指模块内所有处理元素都在同一个数据结构上操作
22、软件结构图中,模块框之间若有直线连接,表示它们之间存在着( )。
A.调用关系 B.组成关系 C.链接关系 D.顺序执行关系
35、定义软件系统各主要成份之间的关系。属于软件设计的( B.
A.数据设计B.体系结构设计C.接口设计D.过程设计
36、模块之间最差的块间耦合形式是( D )。
A.公共耦合 B.数据耦合 C.控制耦合 D.内容耦合
37、最好的内聚形式是(B )
A. 偶然内聚 B.功能内聚
C.时间内聚 D.逻辑内聚
38、模块间的调用关系不包括( C )。
A.直接调用 B.选择调用
C.交换调用 D.循环调用
39、最差的块内聚内形式是( A )。
A.偶然内聚 B.逻辑内聚
C.时间内聚 D.功能内聚
填空:
3、模块独立性比较强的模块应是高内聚低耦合的模块。
4、一个模块的作用范围应在其控制范围之内,且条件判定所在的模块应与受影响的模块在层次上尽量靠近。
6、在事务流型系统结构图中,事务中心模块按所接受的事务的类型,选择某一事务(活动流)处理模块执行。各事务处理模块并列。
7、在过程设计阶段,要决定各个模块的实现算法,并精确地表达这些算法。对每个模块规定的功能以及算法的设计,给出适当的算法描述:
三、简述题
4、把一个系统的数据流图,将其转换为软件结构图的基本步骤。
答:(1)复查基本系统模型。
(2)复查并精化数据流图。
(3)变换型数据流图:确定输入、变换、输出这三部分之间的边界。
事务型数据流图:确定事务处理中心。
(4)系统模块结构图顶层和第一层的设计。
(5)自顶向下,逐步求精
(6)初始模块图的精化
6、按从强到弱的顺序写出常见的模块间耦合的类型
答:内容耦合、公共耦合、控制耦合、标记耦合、数据耦合
7、从低到高写出常见的内聚类型
偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚
8、什么是模块的独立性?简述在系统设计中重视模块独立性的原因
模块独立性, 是指软件系统中每个模块只涉及软件要求的具体的子功能, 而和软件系统中其它的模块的接口是简单的。例如, 若一个模块只具有单一的功能且与其它模块没有太多的联系, 则称此模块具有模块独立性
重视模块独立性的原因是:
①具有独立性的系统比较容易开发。
②模块独立性越好,模块间的影响就越少。
③独立模块比较容易测试和维护。
四、应用题
1、根据下列数据流图画出系统结构图
2、按图所示数据流图导出模块结构图。说明:其中C为变换中心。
3、按图所示数据流图导出模块结构图。说明:其中C为变换中心。
4、按图所示数据流图导出模块结构图。
{分页}
第七章 软件测试
一、名词解释
1、黑盒测试法
该方法把被测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的界面上进行测试,用来证实软件功能的可操作性,检查程序是否满足功能要求,是否能很好地接收数据,并产生正确的输出。因此,黑盒测试又称为功能测试或数据驱动测试。
2、白盒测试法
该方法把测试对象看作一个透明的盒子,测试人员能了解程序的内容结构和处理过程,以检查处理过程为目的,对程序中尽可能多的逻辑路径进行测试,在所有的点检验内部控制结构和数据结构是否和预期相同。
3、软件测试:用人工或自动的手段来执行和评价系统或系统部件的过程,以检验它是否满足规定的需求,或识别期望的结果和实际的结果之间有无差别。
二、选择填空
1、用黑盒技术设计测试用例的方法之一为( a )
A.因果图 B.逻辑覆盖 C.循环覆盖 D.基本路径测试
2、软件测试的目的是( B.
A.避免软件开发中出现的错误
B.发现软件开发中出现的错误
C.尽可能发现并排除软件中潜藏的错误,提高软件的可靠性
D.修改软件中出现的错误
3、下列软件属性中,软件产品首要满足的应该是( a )
A.功能需求 B.性能需求 C.可扩展性和灵活性 D.容错纠错能力
4、坚持在软件的各个阶段实施下列哪种质量保障措施,才能在开发过程中尽早发现和预防错误,把出现的错误克服在早期( A.。
A.技术评审 B.程序测试 C.改正程序错误 D.管理评审
5、以程序的内部结构为基础的测试用例技术属于( d )。
A.灰盒测试 B.数据测试 C.黑盒测试 D.白盒测试
6、为了提高测试的效率,正确的做法是( a )。
A.选择发现错误可能性大的数据作为测试用例
B.在完成程序的编码之后再制定软件的测试计划
C.随机选取测试用例
D.使用测试用例测试是为了检查程序是否做了应该做的事
7、对程序的测试最好由谁来做,对程序的调试最好由谁来做( b )。
A.程序员 B.第三方测试机构 C.程序开发组 D.系统分析员
8、在进行单元测试时,常用的方法是(c )
A.采用白盒测试,辅之以黑盒测试 B.采用黑盒测试,辅之以白盒测试
C.只使用白盒测试 D.只使用黑盒测试
9、以下那一种选项不属于软件缺陷( d )。
A.软件没有实现产品规格说明所要求的功能
B.软件中出现了产品规格说明不应该出现的功能
C.软件实现了产品规格没有提到的功能
D.软件实现了产品规格说明所要求的功能但因受性能限制而未考虑可移植性问题
10、软件生存周期过程中,修改错误最大的阶段是( d )。
A.需求阶段 B.设计阶段 C.编程阶段 D.发布运行阶段
11、在边界值分析中,下列数据通常不用来做数据测试的是(b )。
A.正好等于边界的值 B.等价类中的等价值
C.刚刚大于边界的值 D.刚刚小于边界的值
D.在程序完成的编码之后再制定软件的测试用例
12、单元测试中设计测试用例的依据是( d )。
A.概要设计规格说明书 B.用户需求规格说明书
C.项目计划说明书 D.详细设计规格说明书
13、通常可分为白盒测试和黑盒测试。白盒测试是根据程序的( c )来设计测试用例,
黑盒测试是根据软件的规格说明来设计测试用例。
A.功能 B.性能 C.内部逻辑 D.内部数据
14、如果一个判定中的复合条件表达式为(A > 1)or(B <= 3),则为了达到100%的条件覆盖率,至少需要设计多少个测试用例( b )。
A.1 B.2 C.3 D.4
15、经验表明,在程序测试中,某模块与其他模块相比,若该模块已发现并改正的错误较多,则该模块中残存的错误数目与其他模块相比,通常应该( b )。
A.较少 B.较多 C.相似 D.不确定
16、下面有关软件缺陷的说法中错误的是( C.。
A.缺陷就是软件产品在开发中存在的错误
B.缺陷就是软件维护过程中存在的错误、毛病等各种问题
C.缺陷就是导致系统程序崩溃的错误
D.缺陷就是系统所需要实现某种功能的实效和违背
17、在某大学学籍管理信息系统中,假设学生年龄的输入范围为16—40,则根据黑盒测试中的等价类划分技术,下面划分正确的是( b )。
A.可划分为2个有效等价类,2个无效等价类
B.可划分为1个有效等价类,2个无效等价类
C.可划分为2个有效等价类,1个无效等价类
D.可划分为1个有效等价类,1个无效等价类
18、根据软件需求规格说明书,在开发环境下对已经集成的软件系统进行的测试是( a )。
A.系统测试 B. 单元测试 C. 集成测试 D. 验收测试
19、下面有关测试原则的说法正确的是( a )。
A.测试用例应由测试的输入数据和预期的输出结果组成
B.测试用例只需选取合理的输入数据
C.程序最好由编写该程序的程序员自己来测试
D.使用测试用例进行测试是为了检查程序是否做了它该做的事
20、集成测试对系统内部的交互以及集成后系统功能检验了何种质量特性a
A.正确性 B.可靠性 C.可使用性 D.可维护性
21、软件设计阶段的测试主要采取的方式是( A.。
A.评审 B.白盒测试 C.黑盒测试 D.动态测试
22、下列关于测试方法的叙述中不正确的是( C.
A.从某种角度上讲,白盒测试与黑盒测试都属于动态测试
B.功能测试属于黑盒测试
C.对功能的测试通常是要考虑程序的内部结构
D.结构测试属于白盒测试
23、在覆准则中,最常用的是( d )
A.语句覆盖 B.条件覆盖 C.分支覆盖 D.以上全部
24、大多数实际情况下,性能测试的实现方法是( a )。
A.黑盒测试 B.白盒测试 C.静态分析 D.可靠性测试
25、下列方法中,不属于黑盒测试的是( a )。
A.基本路径测试法 B.等价类测试法
C.边界值分析法 D.基于场景的测试方法
26、测试程序时,不可能遍历所有可能的输入数据,而只能是选择一个子集进行测试,那么最好的选择方法是( B.)。
A.随机选择 B.划分等价类
C.根据接口进行选择 D.根据数据大小进行选择
27、下列可以作为软件测试对象的是( D.。
A.需求规格说明书 B.软件设计规格说明
C.源程序 D.以上全部
28、数据流覆盖关注的是程序中某个变量从其声明、赋值到引用的变化情况,它是下列哪一种覆盖的变种( d )。
A.语句覆盖 B.控制覆盖 C.分支覆盖 D.路径覆盖
29、在Web应用软件的分层测试策略中,下列哪个不是测试关注的层次( c )。
A.数据层 B.业务层 C.服务层 D.表示层
30、软件测试规范规定,软件测试的类别可分为:单元测试、集成测试以及( d )。
A.系统测试 B.验收测试
C.系统测试和验收测试 D.配置项测试、系统测试和验收测试
31、根据划分等价类等价类的原则,如果输入条件规定了取值范围,或值的个数,则可确立一个有效等价类和( )无效等价类。
A.一个 B.三个 C.若干个 D.两个
32、( )是集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。
A.单元测试 B。集成测试 C。确认测试 D。系统测试
1、测试用例应由测试输入数据和对应的预期输出结果这两部分组成。
2、V & V(验证和确认)技术分为两种:
软件检查:对系统的各种表示进行静态分析,以发现问题。这些检查可以借助工具进行文档和代码分析。
软件测试:通过执行测试数据观察系统的操作特征(行为)是否符合要求。
3、验证(Verification),检查软件生存期各个阶段过程活动的结果是否满足规格说明的描述,证实各阶段和阶段之间的逻辑协调性、完备性和正确性。
确认(Validation),是比验证更广泛的过程活动。目的是想证实在一个给定的外部环境中软件的逻辑正确性,即是否满足用户的要求。
4、白盒测试技术主要有逻辑覆盖、判定结构分析、循环结构分析、基本路径覆盖
5、逻辑覆盖主要有语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖、路径覆盖
6、黑盒测试技术主要有等价类划分、边界值分析、错误推测法、因果图、功能图、接口测试
7、测试过程按4个步骤进行,即单元测试、集成测试、确认测试和系统测试。
8、确认测试应交付的文档有: 确认测试分析报告、 最终的用户手册和操作手册、 项目开发总结报告
9、α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。
10、β测试是由软件的多个用户在实际使用环境下进行的测试。这些用户返回有关错误信息给开发者。
11、主要的调试方法有强行排错、回溯法调试、归纳法调试、演绎法调试
12、归纳法调试:归纳法是一种从特殊推断一般的系统化思考方法。归纳法调试的基本思想是:从一些线索(错误征兆)着手,通过分析它们之间的关系来找出错误。
收集有关的数据 、组织数据、提出假设、证明假设
13、演绎法调试:演绎法是一种从一般原理或前提出发,经过排除和精化的过程来推导出结论的思考方法。
主要步骤有列举所有可能出错原因的假设、利用已有的测试数据,排除不正确的假设、改进余下的假设、证明余下的假设
14、从下列关于软件测试的叙述中,选出5条正确的叙述。
(1)用黑盒法测试时,测试用例是根据程序内部逻辑设计的。
(2)尽量用公共过程或子程序去代替重复的代码段。
(3)测试是为了验证该软件己正确地实现了用户的要求。
(4)对于连锁型分支结构,若有n个判定语句,则有2n条路
(5)尽量采用复合的条件测试,以避免嵌套的分支结构
(6)GOT0语句概念简单,使用方便,在某些情况下,保留GOT0语句反能使写出的程序更加简洁。
(7)发现错误多的程序模块,残留在模块中的错误也多
(8)黑盒测试方法中最有效的是因果图法。
(9)在做程序的单元测试时,桩(存根)模块比驱动模块容易编写。
(10)程序效率的提高主要应通过选择高效的算法来实现。
答案:(4) (5) (6) (7) (10)
三、简答题
1、单元测试任务主要有:
模块接口测试;
模块局部数据结构测试;
模块边界条件测试;
模块中所有独立执行通路测试;
模块的各条错误处理通路测试。
2、黑盒测试旨在测试软件是否满足功能要求,它主要诊断的错误为:
不正确或遗漏的功能;
界面错误;
数据结构或外部数据库访问错误;
性能错误;
初始化和终止条件错误。
推荐您阅读更多有关于“”的文章