《软件工程》复习题及参考答案Word下载.docx
- 文档编号:21007432
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:19
- 大小:201.56KB
《软件工程》复习题及参考答案Word下载.docx
《《软件工程》复习题及参考答案Word下载.docx》由会员分享,可在线阅读,更多相关《《软件工程》复习题及参考答案Word下载.docx(19页珍藏版)》请在冰豆网上搜索。
16.以下关于数据流图的说法不正确的是(C)。
A.数据流图舍去了具体的物理元素,只剩下数据的流动、加工处理和存储
B.数据流图是用作结构化分析建模的一种工具
C.传统的数据流图主要由处理、数据源点/终点、数据流、控制流、数据存储组成
D.数据流图的编绘采用自上向下、逐层分解的方法
17.选择程序设计语言的关键因素是(D)。
A.软件应用领域 B.软件执行环境
C.软件开发方法 D.算法和数据结构
18.所谓软件过程的里程碑,通常是指(C)。
A.一定的时间间隔 B.每个项目活动
C.基线 D.开发进度月报
19.
程序的三种基本控制结构是(B)。
A.过程、子程序与分程序
B.顺序、选择和重复
C.递归、堆栈和队列
D.调用、返回和转移
20.
因计算机硬件和软件环境的变化而作出的修改软件的过程称为(B)。
A.改正性维护 B.适应性维护
C.完善性维护 D.预防性维护
二、
填空题(每小题2分,共16分)
1.软件不仅仅是程序,还应该有一整套_______文档_____________。
2.传统的软件生命期模型是______瀑布模型______________。
3.Jackson程序设计方法是一种______面向数据结构__________的设计方法。
4.黑盒测试也称为______功能测试_____,白盒测试也称为____结构测试_______。
5.与程序流程图相比,盒图没有__转移箭头_____,因此不允许随意转移控制。
6.在单元测试中,使用_驱动程序_模拟被测单元的调用和数据传递动作,_存根程序__模拟被测模块的子程序。
7.度量软件规模的常用技术主要有___代码行技术___和_____功能点技术____。
8.可行性研究包括__技术可行性___、_经济可行性__和__社会可行性__等三个方面的可行性研究。
三、
简答题(每题8分,共32分)
1.集成测试有哪两种测试策略?
试比较它们的优缺点。
答:
主要是自顶向下集成测试策略和自底向上集成测试策略两种。
自顶向下集成测试策略的优点是:
能尽早地对程序的主要控制和决策机制进行检验,因此能较早地发现错误。
缺点是:
在测试较高层模块时,低层处理采用桩模块替代,不能反映真实情况,重要数据不能及时回送到上层模块,因此测试并不充分。
自底向上集成测试策略的优点是:
不用桩模块,测试用例的设计亦相对简单,但缺点是程序最后一个模块加入时才具有整体形象。
2.简述结构化程序设计方法的基本要点。
(1)采用自顶向下,逐步求精的程序设计方法.
(2)使用三种基本控制结构构造程序,分别是顺序,选择和循环
(3)采用主程序员组的组织形式.
(4)采用单入口单出口的模块形式.
3.试解释软件、软件工程和软件工程方法学的基本含义。
软件:
软件是一种产品,同时又是开发和运行产品的载体。
作为一种产品,它表达了由计算机硬件体现的计算潜能。
作为开发运行产品的载体,软件是计算机工作的基础、信息通信的基础,也是创建和控制其他程序的基础。
具体包括以下三方面内容:
(1)在运行中能提供所希望的功能和性能的指令集(即程序);
(2)使程序能够正确运行的数据结构;
(3)描述程序研制过程、方法所用的文挡。
软件工程:
是指导计算机软件开发和维护的工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
软件工程方法学:
软件工程方法学是研究软件设计方法论及工程开发技术的一门新兴学科。
4.简述面向对象开发方法的三大模型及各自的作用。
面向对象开发方法中的三大模型是指对象模型、动态模型、功能模型。
各自的作用是:
❑对象模型:
描述现实世界中的“类与对象”以及之间的关系,表示目标系统的静态数据结构。
❑动态模型:
描述对象之间的互相作用。
❑功能模型:
该模型表明系统中数据之间的依赖关系,以及有关的数据处理功能。
四、
应用分析题 (共32分)
1.根据给出的程序流程图,画出它的N-S图和流图(也称为程序图),并计算它的McCabe复杂度。
(15分)
其中:
Pi代表操作语句,Ci代表判定条件
(1)N-S图为:
(2)流图为:
(3)McCabe复杂度根据公式:
V(G)=E–N+2=10–8+2=4
2.设计一个程序:
先读入三角形的三条边的值(分别为A、B、C),再根据这些值判断三角形是普通的、等腰的或等边的,要求打印出说明信息。
(10分)
1)写出该程序的有关约束条件;
2)结合黑盒测试中的等价分类法技术,设计有关测试用例。
1)我们可以设三角形的3条边分别为A,B,C。
如果它们能够构成三角形的3条边,必须满足的约束条件是:
A>
0,B>
0,C>
0,且A+B>
C,B+C>
A,A+C>
B。
如果是等腰的,还要判断A=B,或B=C,或A=C。
如果是等边的,则需判断是否A=B,且B=C,且A=C。
2)等价分类法有关部门等价类的划分:
输入条件
有效等价类
无效等价类
是否三角形的三条边
(A>
0),
(1)
(B>
0),
(2)
(C>
0),(3)
(A+B>
C),(4)
(B+C>
A),(5)
(A+C>
B),(6)
(A≤0),(7)
(B≤0),(8)
(C≤0),(9)
(A+B≤C),(10)
(B+C≤A),(11)
(A+C≤B),(12)
是否等腰三角形
(A=B),(13)
(B=C),(14)
(C=A),(15)
(A≠B)and(B≠C)and(C≠A)(16)
是否等边三角形
(A=B)and(B=C)and(C=A)
(17)
(A≠B),(18)
(B≠C),(19)
(C≠A),(20)
有关测试用例:
序号
【A,B,C】
覆盖等价类
输出
1
【3,4,5】
(1),
(2),(3),(4),(5),(6)
一般三角形
2
【0,1,2】
(7)
不能构成三角形
3
【1,0,2】
(8)
4
【1,2,0】
(9)
5
【1,2,3】
(10)
6
【1,3,2】
(11)
7
【3,1,2】
(12)
8
【3,3,4】
(1),
(2),(3),(4),(5),(6),(13)
等腰三角形
9
【3,4,4】
(1),
(2),(3),(4),(5),(6),(14)
10
【3,4,3】
(1),
(2),(3),(4),(5),(6),(15)
11
(1),
(2),(3),(4),(5),(6),(16)
非等腰三角形
12
【3,3,3】
(1),
(2),(3),(4),(5),(6),(17)
是等边三角形
13
(1),
(2),(3),(4),(5),(6),(14),(18)
非等边三角形
14
(1),
(2),(3),(4),(5),(6),(15),(19)
15
(1),
(2),(3),(4),(5),(6),(13),(20)
3.绘制取款过程的数据流程图:
(7分)
储户将填好的取款单及存折交储蓄所,经查对储户帐,将不合格的存折和取款单退还储户,合格的存折和取款单被送交取款处理。
处理时要修改储户帐和现金帐,并将存折利息单和现金交储户,同时将取款单存档。
试画出以上存取款处理过程的数据流程图。
数据流程图为:
1.什么是软件?
什么叫软件软件工程?
其目标是什么?
软件定义
(1)在运行中能提供所希望的功能和性能的指令集(即程序);
软件工程定义1:
应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。
定义2:
在软件设计、实现、检查、运行、维护各个过程中适用的立足于科学基础上的实用方法。
软件工程的目标:
a.降低开发和维护成本,提高软件质量,加快和控制开发进度,
b.降低开发的风险(包括你提到的人员流动的风险),
c.软件开发的实施使大型软件的开发成为可能
2.什么是软件危机?
它的表现是什么?
文档:
各种规格书、说明书、用户手册等等的总称。
软件:
程序与文档。
软件危机:
在计算机软件的开发和维护过程中,所遇到的一系列严重问题,这一系列问题使软件产生了危机。
软件危机的表现:
⑴对软件开发成本和进度的估计常常很不准确。
⑵用户易对“已完成的”软件系统产生不满。
⑶软件质量不可靠。
⑷软件常常是不可维护的。
⑸软件通常没有适当的文档资料。
⑹软件成本越来越高。
⑺软件开发生产率提高速度慢,跟不上发展。
3.可行性研究的目的是什么?
可行性研究的目的:
用最小的代价在尽可能短的时间内确定问题是否能够解决。
若值得解,则推荐一个较好的方案,并制定一个初步的计划;
若无可行解,则建议停止开发工程(以免浪费时间、人力、和金钱)。
4.数据流图的基本要求是什么?
描绘“做什么”,而不考虑“怎样做”。
数据流图中描绘的是数据流,而不是控制流。
5.软件生存期分几个阶段?
每个阶段的主要作用是什么?
(1)问题定义
关键:
要解决的问题是什么?
作用:
提出关于问题性质、工程目标和规模的书面报告。
(2)可行性研究
问题是否有行得通的解决办法?
进行一次大大压缩和简化了的系统分析和设计的过程(抽象的),导出系统的高层逻辑模型(通常用数据流图表示),估计系统的成本和效益作为是否进行此项工程的重要依据。
(3)需求分析
确定目标系统必须具备哪些功能。
得出经过用户确认的系统逻辑模型(一般用数据流图、数据字典和简要的算法描述表示)。
(4)总体设计
应如何解决这个问题。
根据系统分析的结果来考虑系统的结构,即考虑算法与数据的结构。
考虑如下问题:
a.如何将系统划分成一个个模块;
b.模块间传送什么数据;
c.模块间如何调用;
d.如何评价模块结构的质量。
(5)详细设计
如何具体实现这个系统?
根据总体设计的结果,考虑在具体硬件与操作系统上的程序模块结构与数据结构。
实际上是具体考虑每一模块内部采用什么算法。
设计出程序的详细规格说明。
(6)编码和单元测试
写出正确的、容易理解的、容易维护的程序模块,并测试编写出的每一个模块。
(7)综合测试
通过各种类型的测试使软件达到预定的要求。
集成测试:
根据设计的软件结构,把经过单元测试的模块按某种选定的策略装配起来,进行必要的测试。
验收测试:
按规格说明书的规定,由用户对目标系统进行验收。
(8)软件维护
通过各种必要的维护活动使系统持久地满足用户的需要。
通常有四类维护活动:
a.改正性维护b.适应性维护c.完善性维护d.预防性维护
6.系统分析的方法有哪几种?
系统分析即需求分析方法,大致可分为三种:
归纳法、推论法和比较、舍取法。
例1:
某企业计划用计算机实现工资管理,系统的分析由接受过信息处理训练的人员承担。
可采用“归纳法”。
例2:
某公司根据经理的指示要开发一个能适应若干年后的经营环境,并能开拓市场的综合信息处理系统。
可采用“推论法”。
例3:
某公司想用计算机进行接收订货处理,希望在询问时能正确地应答,快速给出票据,从而改善服务,降低营业成本,但因是小公司,费用大了有困难,且商品种类多,变动也快,订货集中在很短的时间内,操作人员未受训练等等。
采用比较、舍取法。
7.何为功能模块?
设计模块?
功能模块:
在分析阶段由系统分析员对该系统应完成的功能进行规定的模块。
设计模块:
在后面设计阶段对如何实现这些功能进行描述的模块。
8.我们学过的几个单词缩写:
SADT,HIPO,PSL,PSA,等,其意义是什么?
SADT:
结构分析设计方法HIPO图:
H图加IPO图,即层次图加输入/处理/输出图。
PSL:
问题陈述语言PSA:
问题陈述分析程序CADSAT:
计算机辅助设计和规格说明分析工具。
9.何为模块化?
评价好的模块化的标准是什么?
模块化是指把整个系统按照一定的规则分割成各个模块的过程。
评价好的模块的标准:
a.模块的大小:
既不能太大,也不能太小。
b.模块之间的联系程度:
模块的独立性越强越好,也就是模块间的接口越简单越好
c.模块内的联系程度:
块内联系越强,则模块独立性就越高,系统的结构也就越好。
d.模块的信息隐蔽程度:
各个模块间仅有极少量的信息连结,大量的详细的信息隐蔽在模块内部,这样的模块结构是好的结构。
10.模块间的调试调用方式有哪几种?
a.直接引用b.通过CALL语句调用(实际即为过程调用或子程序调用)
11.系统设计基础有哪几种?
a.以控制为中心的设计b.以数据为中心的设计
12.结构化程序设计方法采用哪几种基本的控制结构?
画出图形。
结构化程序设计方法采用三种基本控制结构:
顺序、选择和重复
图形如下:
13.程序设计工程有那些步骤?
⑴了解具体使用的计算机的性能和环境。
①计算机性能
②操作系统
③程序设计语言
⑵充分理解系统设计的详细规格书。
⑶考虑程序在机器上的管理方式。
⑷了解编译程序的特点与规
14.大,中,小规模系统的开发分析顺序是什么?
(1)问题的明确;
(2)确立系统方案;
(3)系统基本设计;
(4);
系统需求规格的明确化;
(5)系统方案评价;
(6)制订系统计划。
15.什么是测试?
测试的目的是什么?
测试的定义是:
为了发现错误而执行程序。
测试的目的是:
设法使软件发生故障,暴露软件错误。
16.软件测试由哪几个步骤组成?
各个步骤的工作是什么?
⑴模块测试(单体测试)
这一测试发现的问题往往是编码和详细设计的错误。
⑵子系统测试(组合测试)
主要测试模块间的接口,也就是模块间的协调和通信。
⑶系统测试
这一步发现的问题往往是软件设计中的错误,也可能发现需求说明中的错误。
⑷验收测试
使用实际数据进行测试,以验证系统能否满足用户需求。
⑸平行运行
平行运行是一种试运行
17.一个正确的软件能否说它是可靠的?
为什么?
一个正确的软件不能说是可靠的,因为正确性与可靠性是二个不同的概念。
正确性是从系统开发者的立场出发,指开发出的软件满足该规格的要求;
而可靠性是从用户立场出发,指系统完全满足用户的要求与各种性能指标。
18.选择测试用例一般有哪几种方法?
各自的含义是什么?
选择测试用例一般使用黑盒测试和白盒测试。
黑盒法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。
即不关心程序内部的逻辑,只根据程序的功能说明来设计测试用例。
白盒法把程序看成装在一个透明的白盒子里,即完全了解程序的结构和处理过程。
白盒法测试也叫逻辑驱动测试或逻辑覆盖法。
选择测试用例(分三步进行)
①为每个等价类编号;
②设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的合理等价类,重复进行,直至覆盖所有的合理等价类;
③设计一个新的测试用例,使其覆盖一个(仅仅是一个)尚未被覆盖的不合理等价类,重复进行,直至覆盖所有的不合理等价类。
说明:
若一次覆盖二个不合理等价类,则程序发现第一个不合理等价类后,可能不会再去检查第二个不合理等价类,因此这一部分程序实际上并没有测试到。
19.开发同期中各阶段潜伏的错误一般再什么时候被发现?
系统分析——运行维护系统设计——综合测试程序设计——单体测试越早潜伏的错误越晚发现
20.软件维护的内容包括哪几类?
维护内容分为修改、适应新环境的变更和改良三类。
⑴修正(改正性维护,也叫正确性维护)
改正在开发阶段产生,在测试阶段又没有发现的错误。
a.改正有关程序的异常结束或输出不恰当的信息等的处理方面的错误。
b.修正性能(如平均响应时间)方面的错误。
c.修正有关程序设计标准(编码规则)、功能规格与设计内容不一致等软件实现方面的错误。
⑵适应新环境的变更(适应性维护)
为适应软件外界环境改变,而对它们进行的修改。
a.由分类代码的变化、数据库的逻辑结构的变化等数据环境的变化引起的相应的变更。
b.由硬件、操作系统等处理环境的变化引起的相应的变更。
⑶更加完善的改良(完善性维护)
为扩充功能或改善性能而进行的修改。
a.为提高效率而进行的改良。
(如算法的改良、为高效使用硬件而进行的改进)
b.为了便于使用,输出形式的改善或添加新的输出信息等的功能的改善。
c.补充源程序说明,提高源程序的易读性等的便于维护的改良。
21.Jackson方法属于哪一种设计方法?
你能否用这方法设计一个打印表程序结构?
Jackson系统开发方法(JSD,JacksonSystemDevelopment)是一种典型的面向数据结构的分析设计方法,它是以信息驱动的,是将信息转换成软件的程序结构
设计一个打印表程序结构:
姓名
年龄
类别
状态
其中:
类别为教师学生两种;
状态为:
若教师,则为工龄;
若学生,则为年级。
其数据结构为:
然后把数据结构和程序结构找出对应关系
找出数据结构中与程序结构相对应的关系。
22.什么叫文档?
包括那些内容?
文档可分为两类:
用户文档和系统文档
(1)用户文档包括:
①功能描述②安装文档③使用手册④参考手册⑤操作员指南五方面内容
(2)系统文档:
主要指从问题定义、需求说明到验收测试计划等和系统实现有关的文档。
23.测试时软件的配置和测试配置各包含什么内容?
测试时的软件配置包含:
需求说明书、设计说明书、源程序清单。
测试配置包含:
测试计划、测试方案。
其中测试方案包括:
测试时使用的输入数据、每组输入数据预定要检验的功能、每组输入数据预期应得到的正确输出。
24.需求功能的集合和规格的功能集合,程序功能结合之间的关系
软件维护过程中三个集合的定义:
⑴需求功能集合(用R表示)
⑵规格功能集合(用S表示)
⑶程序功能集合(用P表示)
若规格功能集合S是需求功能集合R的必要且充分的描述内容时(即必充条件或充要条件),即当S=R时,此规格功能理想的。
若规格功能集合S包含了全部需求功能集合的内容,即S≥R,那么,规格功能集合S是正确的。
除去以上两种情况,则为错误的。
由于程序的实现是以规格功能集合S为目标进行的,所以在©
的情况下,不能进行程序设计。
若程序功能集合P必要且充分地实现了规格功能集合S,即P=S时,则程序功能集合P是理想的。
只要满足S集合中没有未实现的功能时,即满足P≥S时,则程序功能集合P是正确的。
除去以上两种情况,即为设计或编码阶段的错误。
一般只要满足关系式P≥S≥R就行了。
25.不用GOTO语句用类某种语言的方式写出一个结构程序来。
26.把到医院去看病从进去到出来写出一个系统分析图来。
27.把程序结构变成图解逻辑
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 复习题 参考答案