分值
选择: 10 * 2
判断: 10 * 1
填空: 20 * 1
名词解释: 5 * 2
简答: 4 * 5
综合: 2 * 10选择
1
程序的三种基本控制结构的共同特点是( )
A.不能嵌套使用
B.只能用来写简单的程序
C.已经用硬件实现
D.只有一个入口和一个出口答案:D
2
结构化分析SA方法以数据流图、( )和加工说明等描述工具,即用直观的图和简洁的语言来描述软系统模型。
A.DFD图
B.PAD图
C.IPO图
D.数据字典答案:D
3
瀑布模型把软件生存周期划分为软件定义、软件开发和( )三个阶段,而每一个阶段又可划分为若干个更小的阶段。
A.详细设计
B.可行性分析
C.运行和维护
D.测试和排错答案:C
4
软件按照设计的要求,在规定时问和条件下达到不出故障,持续运行的要求的质量特性称( )
A.可用性
B.可靠性
C.正确性
D.完整性答案:B
5
从事物的组成部件及每个部件的属性、功能来认识事物。这种方法被称为( ) 的方法。
A.面向对象
B.面向数据
C.面向过程
D.面向属性答案:A
6
技术可行性是可行性研究的关键,其主要内容一般不包括()
A.风险分析
B.资源分析
C.人员分析
D.技术分析答案:C
7
在需求分析之前有必要进行( )工作
A.程序设计
B.可行性分析
C.E-R分析
D.数据分析答案:B
8
为改正软件系统中潜藏的错误而进行的维护活动称为( )
A.纠错性维护
B.适应性维护
C.改善性维护
D.预防性维护答案:A
9
( )定义为调用(或控制)一个给定模块的调用模块的数目。
A.扇出
B.扇入
C.深度
D.宽度答案:B
10
以下不属于白盒测试技术的是( )
A.逻辑覆盖
B.基本路径测试
C.循环覆盖测试
D.等价类划分答案:D
11
软件工程这一术语首次出现在( )年的NATO会议上
A.1968
B.1970
C.1956
D.2001答案:A
12
在软件结构化设计中,好的软件结构设计应该力求做到( )
A.顶层扇出较少, 中间层扇出较高,底层模块低扇入
B.顶层扇出较高,中间层扇出较少,底层模块高扇入
C.顶层扇入较少,中间层扇出较高,底层模块高扇入
D.顶层扇入较少,中间层扇入较高,底层模块低扇入答案:B
13
软件的可行性研究中不包括()
A.法律可行性
B.技术可行性
C.经济可行性
D.政治可行性答案:D
14
数据流图中,当数据流向或流自文件时()
A.数据流要命名,文件不必命名
B.数据流不必命名,有文件名就足够了
C.数据流和文件均要命名,因为流出和流进的数据流是不同的
D.数据流和文件均不要命名,通过加工可自然反映出答案:B
15
瀑布模型的存在问题是()
A.广容易参与开发
B.缺乏活性
C.用广川发品易沟通
D.使用可心尚水答案:B
16
快速原型模型的主要特点之一是()
A.开发完华才见到产品
B.及早提供个部完整的软件品
C.开发华质才见到工作软件
D.及早提供工作软件答案:D
17
需求分析的任务不包括()
A.问题分析
B.系统设计
C.需求描述
D.需求评审答案:B
18
软件测试方法中,黑盒测试和白盒测试是常用的方法,其中黑盒测试主要用于测试()
A.结构合理性
B.软件外部功能
C.程序正确性
D.程序内部逻辑答案:B
19
软件结构图的形态特征能反映程序复用率的是()
A.深度
B.宽度
C.扇入
D.扇出答案:C
20
一个成功的测试可以()
A.表明程序没有错误
B.发现所有的错误
C.提高软件可靠性
D.发现尚未发现的错误答案:D
21
程序的三种基本控制结构是()
A.过程、子程序和分程序
B.顺序、选择和重复
C.递归、堆栈和队列
D.调用、返回和转移答案:B
22
以下哪一项不是软件危机的表现形式()
A.开发的软件不满足用户需要
B.开发的软件可维护性差
C.开发的软件价格便宜
D.开发的软件可靠性差答案:C
23
盒图也称为( )或Chapin图。这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。
A.流程图
B.框图
C.判定表
D.N-S图答案:D
24
在面向对象的设计中,我们应遵循的设计准则除了模块化、抽象、低耦合、高内聚以外,还有()
A.隐藏复杂性
B.信息隐蔽
C.经常类的复用
D.类的开发答案:B
25
环境图也成为()
A.0层数据流图
B.1层数据流图
C.2层数据流图
D.3层数据流图答案:A
26
模块独立性比较强的模块应是( )的模块。
A.低内聚高耦合
B.高内聚高耦合
C.高内聚低耦合
D.低内聚低耦合答案:C
27
需求分析最终结果是产生()
A.项目开发计划
B.需求规格说明书
C.设计说明书
D.可行性分析报告答案:B
28
以下不属于逻辑覆盖的是()
A.语句覆盖
B.判定覆盖
C.条件覆盖
D.基本路径答案:D
29
()表示一个模块直接调用(或控制)的下属模块的数目。
A.扇出
B.扇入
C.深度
D.宽度答案:A
30
为了提高测试的效率,应该()
A.随机地选取测试数据
B.取一切可能的输入数据作为测试数据
C.在完成编码以后制定软件的测试计划
D.选择发现错误可能性大的数据作为测试数据答案:D
判断(部分)
1
软件就是程序,软件开发就是编程序。()答案:×
2
算法对于效率的影响体现在程序的执行时占用的内存。()答案:×
3
螺旋模型可以有效识别分析风险。()答案:√
4
实体关系图描述数据对象以及数据对象之间的关系。()答案:√
判断知识点
1
一个设计得很好的软件模块化结构,通常上层扇出比较高,中层扇出比较少,底层公用模块的扇入较高2
逻辑覆盖 属于白盒测试
等价类划分、边界值分析、因果图等 属于黑盒测试3
1)满足判定覆盖 一定 满足语句覆盖
2)满足条件覆盖 不一定 满足分支覆盖(判定覆盖)
3)判定-条件覆盖 满足 判定覆盖 又满足 条件覆盖简答
1.瀑布模型的优缺点
优: 1)可强迫开发人员采用规范化的方法
2)严格地规定了每个阶段必须提交的文档
3)要求每个阶段交出的所有产品都必须是经过验证(评审)的
缺: 1)由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要
2)只适用于项目开始时需求已确认的情况2.敏捷开发宣言
1)个体和交互 胜过 过程和工具
2)可工作软件 胜过 宽泛的文档
3)客户合作 胜过 合同谈判
4)响应变更 胜过 遵循计划3.需求的来源可以来自以下几种典型的途径。(或 需求来源的几种典型途径)
1)与用户进行交流
2)现有产品或竞争产品的描述文档
3)系统需求规格说明
4)当前系统的问题报告和改进要求
5)市场调查和用户问卷调查
6)观察用户如何工作4.软件设计的5项原则
1)分而治之
2)模块独立性
3)提高抽象层次
4)复用性设计
5)灵活性设计5.启发式规则
1)模块功能的完善
2)消除重复功能,改善软件结构
3)模块的作用范围应在控制范围之内
4)尽可能减少高扇出结构,随着深度增大扇入
5)避免或减少使用病态连接
6)模块的大小要适中6.模式的4个基本要素
1)模式名称
2)问题
3)解决方案
4)效果7.常用的设计模式(七选五满分)
1)抽象工厂
2)单件
3)外观
4)适配器
5)职责链
6)中介者
7)观察者8.计算环路复杂性
1)控制流程图中的区域数
2)设E为控制流图的边数,N为图中的结点数,则: V(G)=E-N+2
3)设P为控制流图中的判定结点数,则: V(G)=P+1填空
1.软件的分类
1)系统软件
2)支撑软件
3)应用软件
4)可复用软件2.结构化分析模型
P46
3.数据流图四个基本符号
1)加工
2)外部实体
3)数据存储
4)数据流4.数据流图基本步骤
1)自外向内
2)自顶向下
3)逐层细化
4)完善求精5.状态图三种状态
1)初态
2)终态
3)中间态6.SRS、DRD
SRS: 软件需求规格说明
DRD: 数据需求说明7.软件设计的两个阶段
1)概要设计阶段
2)详细设计阶段8.典型的数据流类型
1)变换型数据流
2)事务性数据流9.用户类型
1)外行型
2)初学型
3)熟练型
4)专家型10.典型体系结构风格
1)数据流风格
2)调用-返回风格
3)仓库风格11.注释分为
1)序言性注释
2)功能性注释12.程序编写原则
1)清晰第一
2)效率第二13.等价类划分
1)有效等价类
2)无效等价类14.软件测试过程4个步骤
1)单元测试
2)组装测试
3)确认测试
4)系统测试15.模块组装为系统方式
1)一次性组装
2)增殖式组装16.人工测试的主要方法
1)桌面检查
2)代码评审
3)走查17.软件维护4种类型
1)改正性维护
2)适应性维护
3)完善性维护
4)预防性维护名词解释
1.软件
计算机系统中与硬件相互依存的另一部分,包括程序、数据、相关文档的完整集合
(软件=程序+数据+文档)2.软件危机
软件的发展速度远远滞后于硬件的发展速度,不能满足社会日益增长的软件需求
(特点:软件开发周期长、成本高、质量差、维护困难)3.软件工程
采用工程化的思想进行软件的开发和维护提高软件开发的质量和效率4.软件生存期(软件生命周期)
软件的一个孕育、诞生、成长、成熟、衰亡的生存过程5.CASE工具
计算机辅助软件工程工具6.V模型
描述测试阶段的活动与开发阶段相关活动之间的关系7.增量模型(渐增模型)
把产品作为一系列的增量构件来设计、编码、集成、测试,每个构件由多个相互作用的模块构成并且能够完成特定的功能8.螺旋模型与其他软件过程模型之间的区别
在于 明确地考虑了开发中的风险9.数据字典
以词条方式定义在数据模型、功能模型和行为模型中出现的数据对象及控制信息的特性,给出它们的准确定义,包括数据流、加工、数据文件、数据元素,以及数据源点和数据汇点等10.模块化
将整体软件划分成独立命名且可独立访问的模块,不同的模块通常具有不同的功能或职责11.模块的独立性
软件系统中每个模块只涉及软件要求的具体的子功能,而与软件系统中其他模块的接口是简单的 独立性较强的是 高内聚、低耦合
12.度量模块独立性
即 模块间的耦合 和 模块的内聚13.扇出和扇入
P76 需会计算扇入扇出
扇出: 一个模块直接调用(或控制)的下属模块的数目
扇入: 调用一个给定模块的调用模块的数目14.黑盒测试
意味着测试要根据软件的外部特征进行,也就是说,这种方法是把测试对象看作一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明15.白盒测试
是对软件的过程性细节做细致的检查,这一方法是把测试对象看作一个打开的盒子或透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期状态一致。因此,白盒测试又称作结构测试或逻辑驱动测试16.等价类
某个输入域的子集合,在该子集合中,各个输入数据对于揭露程序中的错误都是等效的17.α测试
是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试18.β测试
是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试综合
1.银行储蓄系统用例图
P133
2.逻辑覆盖
P239
四条路径表示
L1(a→c→e)
L2(a→b→d)
L3(a→b→e)
L4(a→c→d) 图10-7
3.语句覆盖
P240
设计若干个测试用例,运行被测程序,使得每一个可执行语句执行一次【输入的(A,B,x),输出的(A,B,x)】
为图10-7所示例子设计满足覆盖的测试用例是:
【(2,0,4),(2,0,3)】覆盖ace【L1】4.判定覆盖
P240
设计若干个测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次选择L1、L2路径
【(2,0,4),(2,0,3)】覆盖ace【L1】
【(1,1,1),(1,1,1)】覆盖abd【L2】
选择L3、L4路径
【(2,1,1),(2,1,2)】覆盖abe【L3】
【(3,0,3),(3,1,1)】覆盖acd【L4】5.条件覆盖
P240
设计若干个测试用例,运行被测程序,使得程序中每个判断的每个条件可能取值至少执行一次对于第一个判断:条件 A>1 取真值为 T1 ,取假值为 ¬T1;
条件 B=0 取真值为 T2 ,取假值为 ¬T2。
对于第二个判断:条件 A=2 取真值为 T3 ,取假值为 ¬T3;
条件 x>1 取真值为 T4 ,取假值为 ¬T4。| 测试用例 | 通过路径 | 条件取值 | 覆盖分支 |
|---|---|---|---|
| 【(2,0,4),(2,0,3)】 | ace【L1】 | T1 T2 T3 T4 | c,e |
| 【(1,0,1),(1,0,1)】 | abd【L2】 | ¬T1 T2 ¬T3 ¬T4 | b,d |
| 【(2,1,1),(2,1,2)】 | abe【L3】 | T1 ¬T2 T3 ¬T4 | b,e |
或
| 测试用例 | 通过路径 | 条件取值 | 覆盖分支 |
|---|---|---|---|
| 【(1,0,3),(1,0,4)】 | abe【L3】 | ¬T1 T2 ¬T3 T4 | b,e |
| 【(2,1,1),(2,1,2)】 | abe【L3】 | T1 ¬T2 T3 ¬T4 | b,d |
6.判定-条件覆盖
P241
设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判断本身的所有可能判断结果至少执行一次| 测试用例 | 通过路径 | 条件取值 | 覆盖分支 |
|---|---|---|---|
| 【(2,0,4),(2,0,3)】 | ace【L1】 | T1 T2 T3 T4 | c,e |
| 【(1,1,1),(1,1,1)】 | abd【L2】 | ¬T1 ¬T2 ¬T3 ¬T4 | b,d |
7.条件组合覆盖
P242
设计足够的测试用例,运行被测程序,使得每个判断的所有可能的条件取值组合至少执行一次1) A>1,B=0 记作 T1 T2,属第一个判断的取真分支;
2) A>1,B≠0 记作 T1 ¬T2,属第一个判断的取假分支;
3) A≤1,B=0 记作 ¬T1 T2,属第一个判断的取假分支;
4) A≤1,B≠0 记作 ¬T1 ¬T2,属第一个判断的取假分支;
5) A=2,X>1 记作 T3 T4,属第二个判断的取真分支;
6) A=2,X≤1 记作 T3 ¬T4,属第二个判断的取真分支;
7) A≠2,X>1 记作 ¬T3 T4,属第二个判断的取真分支;
8) A≠2,X≤1 记作 ¬T3 ¬T4,属第二个判断的取假分支。| 测试用例 | 通过路径 | 条件取值 | 覆盖分支 |
|---|---|---|---|
| 【(2,0,4),(2,0,3)】 | ace【L1】 | T1 T2 T3 T4 | 1),5) |
| 【(2,1,1),(2,1,2)】 | abe【L3】 | T1 ¬T2 T3 ¬T4 | 2),6) |
| 【(1,0,3),(1,0,4)】 | abe【L3】 | ¬T1 T2 ¬T3 T4 | 3),7) |
| 【(1,1,1),(1,1,1)】 | abd【L2】 | ¬T1 ¬T2 ¬T3 ¬T4 | 4),8) |
8.路径覆盖
P242
设计足够的测试用例,覆盖程序中所有可能的路径| 测试用例 | 通过路径 | 条件取值 |
|---|---|---|
| 【(2,0,4),(2,0,3)】 | ace【L1】 | T1 T2 T3 T4 |
| 【(1,1,1),(1,1,2)】 | abd【L2】 | ¬T1 ¬T2 ¬T3 ¬T4 |
| 【(1,1,2),(1,1,3)】 | abe【L3】 | ¬T1 ¬T2 ¬T3 T4 |
| 【(3,0,3),(3,0,1)】 | acd【L4】 | T1 T2 ¬T3 ¬T4 |
其他知识点(未标注分类)
1.详细设计阶段
决定各个模块的实现算法,并使用过程描述工具精确地描述这些算法2.面向对象和对象
面向对象 = 对象 + 类 + 继承 + 消息通信
对象 = 数据 + 作用于这些数据上地操作3.类
具有相同操作功能和相同数据格式(属性)的对象的集合与抽象4.封装
一种信息隐蔽技术,就是利用抽象数据类型将数据和基于数据的操作封装在一起5.继承
一种联结类的层次模型,为类的重用提供了方便,它提供了明确表述不同类之间共性的方法
新类从现有类中派生的过程,称为类继承6.多态
一个程序中同名的不同方法共存的情况7.消息
是一个对象向另一个对象传递的信息8.面向对象3中模型
1)用例模型:用例和场景表示的 功能模型
2)对象模型:类和对象表示的 静态模型
3)交互模型:状态图、顺序图等表示的 动态模型9.软件体系结构
是具有一定形式的结构化元素,即构件的集合
包括
1)处理构件
2)数据构件
3)连接构件10.软件测试
是为了发现错误而执行程序的过程11.基本路径测试
是在程序控制流图的基础上,通过分析控制构造的环路复发性,导出基本可执行的路径集合,从而设计测试用例12.“救火”式的紧急维护
如果发生的错误非常严重,不马上解决可能导致重大事故,这样就必须紧急修改,暂不顾及正常的维护控制,不必考虑评价可能发生的副作用13.副作用
指因修改软件而造成的错误或其他不希望发生的情况14.3种副作用
1)修改代码的副作用
2)修改数据的副作用
3)文档的副作用15.软件维护性
评价软件产品质量的一项重要指标,指当对软件实施各种类型的维护而进行修改时,软件产品可被修改的能力16. 软件维护的工作流程
P273
