软件工程习题Word文档下载推荐.docx
- 文档编号:16710194
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:19
- 大小:398.20KB
软件工程习题Word文档下载推荐.docx
《软件工程习题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《软件工程习题Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。
21.下列(B)属于详细设计。
A.分析项目的成本和效益 B.为每个模块确定采用的算法 C.编写代码 D.确定模块结构,划分模块功能
22.某次程序调试没有出现预计的结果,下列(C)不可能是原因。
A.变量没有初始化 B.循环控制出错 C.变量没有明确的注释 D.代码输入有误
23.下列(B)属于不良的编程习惯。
A.尽量不使用GOTO语句B.从来不使用注释C.每行只写一条语句D.变量命名尽量直观
24.下列(D)不属于软件维护的副作用。
A.代码副作用B.数据副作用C.文档副作用D.恢复副作用
25.在可行性研究中难度最大的是(B)。
A.经济可行性B.技术可行性C.运行可行性D.法律可行性
26.软件调试技术包括(
B)
A.边界值分析
B.演绎法
C.循环覆盖
D.集成测试
27.瀑布模型的存在问题是(
B)
A.用户容易参与开发
B.缺乏灵活性
C.用户与开发者易沟通
D.适用可变需求
28.软件测试方法中的静态测试方法之一为(
A)
A.计算机辅助静态分析
B.黑盒法C.路径覆盖
D.边界值分析
29.程序的三种基本控制结构是(
B)
A过程、子程序和分程序B顺序、选择和重复C递归、堆栈和队列
D调用、返回和转移
30.在详细设计阶段,经常采用的工具有(A)
A.PAD
B.SA
C.SC
D.DFD
31.详细设计的结果基本决定了最终程序的(
C)
A.代码的规模
B.运行速度
c.质量
D.可维护性
32.需求分析中开发人员要从用户那里了解(
A)
A.软件做什么
B.用户使用界面
c.输入的信息
D.软件的规模
33.结构化程序设计主要强调的是(
D)
A.程序的规模
B.程序的效率
c.程序设计语言的先进性
D.程序易读性
34.经济可行性研究的范围包括(
C
)
A.资源有效性
B.管理制度
c.效益分析
D.开发风险
35.可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出(
B)的回答。
A.确定
B.行或不行
c.正确
D.无二义
36.需求分析阶段的任务是确定(
D
)
A.软件开发方法
B.软件开发工具c.软件开发费
D.软件系统的功能
37.模块内聚度越高,说明模块内各成分彼此结合的程度越( A )。
A、松散 B、紧密 C、无法判断 D、相等
38.软件需求分析是保证软件质量的重要步骤,它的实施应该是在( C )。
A、编码阶段 B、软件开发全过程 C、软件定义阶段 D、软件设计阶段
39.软件测试方法中,黑盒、白盒测试法是常用的方法,其中白盒测试主要用于测试( D )。
A、结构合理性 B、软件外部功能 C、程序正确性 D、程序内部逻辑
40.检查软件产品是否符合需求定义的过程称为( A )。
A、确认测试 、 B、集成测试 C、验收测试 D、验证测试
41.软件文档是软件工程实施中的重要万分它不仅是软件开发各阶段的重要依据,而且与影响软件的( B )。
A、可理解性 B、可维护性 C、可扩展性 D、可移植性
42.在瀑布模型中,将软件划分为若干个时期,软件项目的可行性研究一般归属于( B )。
A、维护时期 B、计划时期 C、运行时期 D、开发时期
43.在七种偶合中,最低偶合是(D)A、内容偶合 B、公共偶合 C、数据偶合 D、非直接偶合
44.JACKSON方法是在软件开发过程中常用的方法,使用JACKSON方法时可以实现( A )。
A、从数据结构导出程序结构 B、从数据流图导出初始结构图
C、从模块结构导出数据结构 D、从模块结构导出程序结构
二、填空题
1.软件生存周期是指一个软件从提出开发要求开始直到该软件报废不止的整个时期。
通常,软件生存周期包括问题定义,可行性研究,(需求分析),总体设计,详细设计,(编码和单元测试),(综合测试),维护活动,可以将这些活动以适当方式分配到不同阶段去完成。
2.(可行性研究)的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。
3.一个计算机系统的总体设计方案包括四方面内容:
硬件工程、(软件工程)、(人机工程)和数据库工程。
4.总体设计过程通常由两个阶段组成:
(系统设计阶段)和(结构设计阶段)。
5.(数据流图)是需求分析活动的焦点,通常用(数据流图)、(数据字典)和(主要的处理算法)描述这个逻辑模型。
6.数据流图仅反映系统必须完成的逻辑功能,所以它是一种(功能)模型。
7.效益分有形效益和无形效益两种。
有形效益可用纯收入、(货币的时间价值)、(投资回收期)等指标进行度量;
无形效益主要从性质上、心理上进行衡量,很难直接进行量的比较。
8.从应用特点的角度来看,我们可以把高级语言分为基础语言、(结构化语言)和(专用语言)三类。
9.一个模块拥有的直属下级模块的个数称为(模块的扇出),一个模块的直接上级模块的个数称为(模块的扇人)。
10.目前预防性软件维护采用的主要技术是(逆向工程)和(再生工程)。
11.软件生存周期是指软件从(软件定义)、(软件开发)、(软件维护)直到最终被废弃的全过程。
12.瀑布模型的核心思想是(按工序将问题简化)。
13.在可行性研究中,(技术可行性)是最关键的因素。
14.假设使用代码行技术进行费用估计,某软件中共5000行程序,每行平均成本20元,则该软件的成本为(100000元)。
15.结构化分析方法常用的两种工具是(数据流图DFD)和(数据字典DD)。
16.模块的分解和合并应力求(降低耦合提高内聚)。
17.程序的效率包括两个方面的内容(时间复杂度)和(空间复杂度)。
18.大型软件测试包括(单元测试)、集成测试、(确认测试)和(系统测试)四个步骤。
19.提高软件质量和可靠性的技术主要有两类(避开错误技术)和(容错技术)。
21.软件的维护一般经过(分析和理解程序)、(修改程序)、(重新验证程序)三个步骤。
22.软件开发需要的资源包括(软件工具)、(硬件工具)和(人),其中(人)是最基本的资源。
23.基于软件的工作方式,可以将软件划分为(实时处理软件)、分时处理软件、(交互式软件)和(批处理软件)。
24.数据字典中有四类条目:
(数据流)、数据项、(数据存储)、处理。
25.系统流程图是描绘(物理系统)的传统工具。
26.可行性研究需要从以下三个方面分析研究每种解决方法的可行性:
(技术可行性)、(经济可行性)、(操作可行性)。
27.软件需求的正确性可以从一致性、(完整性)、现实性和(有效性)四个方面验证。
28.在Jackson系统开发方法中,使用(顺序)、(选择)和(重复)三种基本的结构就可以组合出各种复杂的结构体系。
29.软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、(可移植性)、可使性和效率。
30.若年利率为i,不计复利,n年后可得钱数为F,则现在的价值P=(F/(1+i)n)
31.为了便于对照检查,测试用例应由输入数据和预期的(输出结果)两部分组成。
32.软件结构是以(模块)为基础而组成的一种控制层次结构。
33.在结构化分析中,用于描述加工逻辑的主要工具有三种,即:
结构化语言、判定表、(判定树)。
34.结构化语言是介于自然语言和(形式语言)之间的一种半形式语言。
35.详细描述处理过程常用三种描述工具:
(图形)、(表格)和(语言)。
36.结构化设计以(数据流)为基础映射成软件结构。
37.一个模块把数值作为参数传送给另一个模块,这种耦合方式称为(数据耦合)。
38.一个模块内部各程序段都在同一张表上操作,这个模块的内聚性称为(通信内聚)。
39.成本效益分析的目的是从(经济)角度评价开发一个软件项目是否可行。
三、问答题
1.简述什么是软件,什么是软件工程?
它的目标和内容是什么?
软件:
程序以及开发、使用和维护程序所需要的所有文档。
计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必需的数据。
(软件=程序+文档+数据)软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前呢能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
目标:
付出较低的开发成本;
达到要求的软件功能;
取得较好的软件性能;
开发的软件易于移植;
需要较低的维护费用;
能按时完成开发任务,及时完成开发任务,及时交付费用;
开发的软件可靠性高。
内容:
软件开发技术和软件工程管理。
2.简述什么是软件的逆向工程?
软件的逆向工程就算是分析已有的程序,寻求比源代码更高级的抽象表现形式,一般认为,凡是在软件生命周期内的,将软件的某种形式的描述转换为更抽象形式的活动都可称为逆向工程。
3.简述模块独立性的重要性?
主要有两条理由:
1.有效的模块化(即具有独立的模块)的软件比较容易开发出来。
2.独立的模块比较容易测试和维护。
4.为什么软件测试不应该由程序的编写人员来做?
软件测试的目的是为了发现程序中的错误而执行程序的过程。
正确认识测试的目标是十分重要的,测试目标决定了测试方案的设计。
如果为了表明程序是正确的而进行测试,就会设计一些不易暴露错误的测试方案;
相反,如果测试是为了发现程序中的错误,就会力求设计出最能暴露错误的测试方案。
由于测试的目标是暴露程序中的错误,从心理学角度看,由程序的编写者自己进行测试是不恰当的。
5.简述什么是软件危机以及软件危机主要包含哪两个方面的问题?
软件危机指的是软件开发和维护过程中遇到的一系列严重问题。
危机包含下述两方面的问题:
如何开发软件,怎样满足对软件的日益增长的需求;
如何维护数量不断膨胀的已有软件。
6.什么是数据字典?
简述数据字典与数据流图的关系?
数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与说明,是数据流程图的补充工具。
数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用。
数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明。
7.简述编码风格的重要性?
阅读程序是软件开发和维护过程中的一个重要组成部分,程序实际上也是一种供人阅读的文章。
应当在编写程序时讲求程序的风格,这将大量地减少人们读程序的时间。
良好的编码风格有助于编写出可靠而又容易维护的程序,编码的风格在很大程度上决定着程序的质量。
8.两个模块之间出现哪些情况称为内容耦合?
如果出现下列情况之一,两个模块之间就发生了内容耦合:
一个模块访问另一个模块的内部数据;
一个模块不通过正常入口而转到另一个模块的内部;
两个模块有一部分程序代码重叠;
一个模块有多个入口。
9.耦合的强弱取决于哪些因素?
耦合的强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。
10.分析软件危机产生的主要原因有哪些?
1.软件本身的特点:
1)软件是逻辑部件而不是物理部件,缺乏“可见性”,管理和控制软件开发过程相当困难2)软件维护较难3)软件规模庞大2.软件开发与维护的方法不正确:
1)忽视需求分析;
2)轻视软件维护
11.说明软件测试和调试的目的有何区别?
软件测试是为了发现软件中的缺陷而执行待测软件的过程,其目的是发现软件中的缺陷。
软件调试是首先对于已发现的软件中的缺陷进行定位,接下来对定位到的缺陷进行修改。
简而言之,测试的主要工作是找缺陷,而调试的目的是为了解决缺陷。
12.可行性研究的任务是什么?
可行性研究的任务目的是用最小的代价在尽可能短的时间内确定问题是否能够解决,他的目的不是解决问题,而是确定问题是否值得去解决。
可行性研究最根本的任务是对以后的行动方针提出建议。
13.什么是模块的影响范围?
什么是模块的控制范围?
他们之间应该建立什么关系?
一个模块的影响范围指受该模块内一个判定影响的饿所有模块的集合。
一个模块的控制范围指模块本身以及其所有下属模块(直接或间接从属于它的模块)的集合。
一个模块的影响范围应在其控制范围之内,且判定所在模块应在其影响的模块在层次上尽量靠近,如果在设计过程中,发现模块作用范围不在其控制范围之内,可以用“上移判点”或“下移受判断影响的模块,将它下移到判断所在模块的控制范围内”的方法加以改进。
14.如何做好软件质量保证工作?
1、质量保证工作,重流程,轻实施是我们的一个问题2、质量保证工作,重知识,轻经验3、质量保证人员不要抢功劳4、质量保证工作,不能一开始就全面开花,而要由点到线,由线到面5、做质量保证工作,最重要的是做人的工作,这里分两个问题来说明,一个是你要有自己可信赖的人员6、质量保证工作,遇到问题,先解决问题,找出原因,进行改进,而不要一味地追查责任。
15.什么是数据流图?
其作用是什么?
数据流图(DFD)是一种图形化技术,它描述信息流和数据从输入移动到输出的过程中所经历的变换,数据流图描绘系统的逻辑模型,图中没有任何具体的物理元素,只是描述信息在系统中流动和处理的情况.作用:
1)作为交流信息的工具;
2)作为分析和设计的工具
16.采用黑盒技术设计测试用例有哪几种方法?
这些方法各有什么特点?
一等价类划分—是将输入数据域按无效的或有效的划分成若干个等价类,测试每个等价类的代表值就等于对该类其它值的测试;
二边界值分析—将测试边界情况作为重点目标,选取正好等于、刚刚大于或刚刚小于边界值的情况,根据这些情况选择测试用例;
三错误推测—没有确定的步骤,凭检验进行,基本思想是列出程序中可能发生错误的情况,根据这些情况选择测试用例;
四因果图—能有效的检测输入条件的各种组合可能会引起的错误,因果图的基本原理是通过画因果图,把用自然语言描述的功能说明转换为判定表,最后为判定表的每一列设计一个测试用例。
17.概要设计阶段的基本任务是什么?
1)设计软件系统结构2)数据结构及数据库设计,汉数据结构的设计及数据库的设计3)编写概要设计文档主要有:
概要设计说明书;
数据库设计说明书;
用户手册;
修订测试计划4)评审
18.请说明软件文档的作用?
提高软件开发过程的能见度;
提高开发效率;
作为开发人员阶段工作成果和结束标志;
记录开发过程的有关信息便于使用和维护;
提供软件运行、维护和培训有关资料;
便于用户了解软件功能、性能。
19.什么是确认测试?
该阶段有哪些工作?
确认测试又称有效性测试它的任务是检查软件的功能和性能与否与需求规格说明书中确定的指标相符合。
确认测试阶段有两项工作,进行确认测试与软件配置审查。
确认测试一般是在模拟环境中运用黑盒测试方法,有专门测试人员和用户参加的测试;
软件配置审查的任务是检查软件的所有文档资料的完整性、正确性。
如发现遗漏和错误,应补充和改正,同时要编排好目录,为以后的软件维护工作奠定基础。
22.软件维护的特点是什么?
1、结构化维护与非结构化维护差别巨大——非结构化维护;
结构化维护2、维护的代价高昂3、维护的问题很多——理解别人写的程序通常非常困难,而且困难程度随着软件配置成分的减少而迅速增加;
需要维护的软件往往没有合格的文档,或者文档资料显著不足;
当要求对软件进行维护时,不能指望由开发人员给我们仔细说明软件;
绝大多数软件在设计时没有考虑将来的修改;
软件维护不是一项吸引人的工作。
四、论述题
1.某校制定了教师的讲课课时津贴标准。
对于各种性质的讲座,无论教师是什么职称,每课时津贴一律是50元;
而对于一般的授课,则根据教师的职称来决定每课时津贴费:
教授30元,副教授25元,讲师20元,助教15元。
请用判定表描述上述问题。
2.某厂对部分职工重新分配工作的政策是:
年龄在二十岁以下者,初中文化程度脱产学习、高中文化程度当电工;
年龄在20岁到40岁之间者,初高中文化程度男性当钳工,女性当车工、大学文化程度都当技术员;
年龄在40岁以上者,初高中文化程度当材料员、大学文化程序当技术员。
判定表或判定树描述上述问题的加工逻辑。
1
2
3
4
5
6
7
8
9
10
11
年龄
C
D
E
文化
G
H
I
性别
--
M
F
脱产学习
√
电工
钳工
车工
技术员
材料员
条件名
取值
符号
取值数
<
=20
M1=3
>
20,<
40
=40
文化程度
中学
M2=3
高中
大学
男
M3=2
女
3.对下列子程序进行调试:
procedureexample(y,z:
real;
varx:
real)
beginif(y>
1)and(z=0)thenx:
=x/y;
if(y=2)or(x=l)thenx:
=x+l;
end.该子程序接受x,y,z的值,并将计算结果x的值返回给调用程序。
答题要求:
画出流程图。
(2)用白盒法中的逻辑覆盖法设计测试用例,并写出它所满足的是何种覆盖标准、预期结果以及路径。
解:
答:
(1)流程图
(2)用白盒法中条件组合覆盖设计测试用例:
①y=2,z=0,x=4;
②y=2,z=1,x=1;
③y=1,z=0,x=2;
④y=1,z=1,x=1.
4.已知有如下的伪代码程序:
START
I:
=1;
WHILEi:
=n-1DO
min:
=A[i];
j:
=i+1;
WHILEj<
=nDO
IFmin>
A[j]
THEN
BLOCK
temp:
=min;
=A[j];
A[j]:
=temp;
ENDBLOCK
ENDIF;
=j+1;
ENDDO
i:
STOP要求:
(1)请用盒图描述。
(2)请用流程图描述。
5.下图为一个被测程序流程图,试用条件覆盖方法为它设计足够的测试用例
X=1.5(通过路径:
abh)X=2.5(通过路径:
acdh)X=3.5(通过路径:
acefg)X=4.5(通过路径:
acegh)
6.说明下列程序段的缺点,并在不改变程序段功能的前提下将其修改为没有GOTO指
令的程序。
MAXVAL=A
(1)答,程序段存在的主要问题:
(1)滥用GOTO语句
DO40I=2,10
(2)不注意语句的缩进
IF(A(I).GT.MAXVAL)GOTO30程序段可修改如下c
GOTO40MAXVAL二A
(1)
30MAXVAL=A(I)DO40I=2,10
40
CONTINUE1F(A
(1).GT.MAXVAL)MAXVAL=A
(1)40
CONTINUE
7.已知被测试模块流程图如下,按照“条件覆盖”法,在表格中填入满足测试要求的数据。
假设几种可能的条件是:
T1:
A>
2F1:
A<
=2T2:
B=1F2:
B≠1T3:
A=1F3:
A≠1T4:
Y>
1F4:
Y<
=1填写下表
8.根据伪码程序画出程序流程图、N-S图。
START
A
DOWHILEP
B
ENDWHILE
C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 习题
![提示](https://static.bdocx.com/images/bang_tan.gif)