最新《软件工程导论》期末复习资料.docx
《最新《软件工程导论》期末复习资料.docx》由会员分享,可在线阅读,更多相关《最新《软件工程导论》期末复习资料.docx(13页珍藏版)》请在冰豆网上搜索。
![最新《软件工程导论》期末复习资料.docx](https://file1.bdocx.com/fileroot1/2023-3/30/fb4752eb-6061-407e-8f57-8723dd8b7652/fb4752eb-6061-407e-8f57-8723dd8b76521.gif)
最新《软件工程导论》期末复习资料
一、填空题
1.软件生存周期一般可分为问题定义、可行性研究、需求分析、总体设计、详细设计、编码和单元测试、综合测试、软件维护。
2.按软件的功能进行划分,软件可以划分为系统软件、支撑软件和应用软件。
3.可行性研究主要集中在以下四个方面经济可行性、技术可行性、法律可行性和操作可行性。
4.用户界面的可使用性是用户界面设计最重要的也是最基本的目标。
5.常见的软件概要设计方法有3大类:
以数据流图为基础构造模块结构的结构化设计方法,以数据结构为基础构造模块的jackson方法,以对象、类、继承和通信为基础的面向对象设计方法。
6.数据流图和数据字典共同构成系统的逻辑模型。
7.软件测试的方法有分析方法和非分析方法。
8.单元测试一般以白盒测试为主,黑盒测试为辅。
9.成本估计方法主要有自底向上、自顶向下和算法模型估计三种类型。
10.系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素之间的()情况。
解:
信息流动
[解析]系统流程图是描述物理系统的传统工具,用图形符号表示系统中的各个元素,如人工处理、数据处理、数据库、文件、设备等,表达了元素之间的信息流动的情况。
11.成本效益分析的目的是从()角度评价开发一个项目是否可行。
解:
经济
[解析]成本效益分析首先是估算将要开发的系统的开发成本,然后与可能取得的效益进行比较和权衡,其目的是从经济角度评价开发一个新的软件项目是否可行。
12.自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:
深度优先策略和()。
解:
宽度优先策略
[解析]渐增式测试法有自顶向下结合和自底向上结合两种组装模块的方法,其中自顶向下集成是构造程序结构的一种增量式方式,不需要编写驱动模块,只需要编写桩模块。
它从主控模块开始,按照软件的控制层次结构,以深度优先或宽度优先的策略,逐步把各个模块集成在一起。
13.独立路径是指包括一组以前没有处理的语句或条件的一条路径。
从程序图来看,一条独立路径是至少包含有一条()的边的路径。
解:
在其他独立路径中未有过
[解析]在基本路径测试中,以详细设计或源程序为基础,导出控制流程图的拓扑结构——程序图,在计算了程序图的环路复杂性之后,确定只包含独立路径的基本路径图,其中独立路径是包括一组以前没有处理的语句或条件的一条路径。
从程序图来看,一条独立路径是至少包含有一条在其他独立路径中未有过的边的路径。
14.详细设计的任务是确定每个模块的内部特性,即模块的算法、()。
解:
使用的数据
[解析]详细设计的基本任务是为每个模块进行详细的算法设计,为模块内的数据结构进行设计,确定每个模块的内部特性,包括模块的算法和使用的数据。
对数据库进行物理设计等。
15.所有软件维护申请报告要按规定方式提出,该报告也称( )报告。
解:
软件问题
[解析]在软件维护的流程中,第一步就是制定维护申请报告,也称为软件问题报告,它是维护阶段的一种文档,由申请维护的用户填写。
二、单项选择题
1.下列哪个阶段不属于软件生存周期的三大阶段(C)。
A、计划阶段B、开发阶段
C、编码阶段D、维护阶段
2.需求分析是(A)。
A、软件开发工作的基础 B、软件生存周期的开始
C、由系统分析员单独完成的 D、由用户自己单独完成的
3.原型化方法是软件开发中一类常用的方法,它与结构化方法相比较,更需要(B)。
A、明确的需求定义 B、完整的生命周期
C、较长的开发时间 D、熟练的开发人员
4.软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错,直至修改的回归测试过程称为(A)。
A、改正性维护 B、适应性维护
C、完善性维护 D、预防性维护
5.一般说来,投入运行的软件系统中有错误(A)。
A、不是不可以理解的
B、是不能容忍的
C、是要求退货的理由
D、是必然的
6.软件危机具有下列表现(D)。
I.对软件开发成本估计不准确II.软件产品的质量往往靠不住
III.软件常常不可维护IV.软件成本逐年上升
A.I、II和III
B.I、III和IV
C.II、III和IV
D.以上都正确
7.软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是(A)。
A.运行和维护阶段
B.设计阶段
C.代码实现阶段
D.测试阶段
8.下列属于软件的特点的是(D)。
A.软件是一种逻辑实体,具有抽象性
B.软件在使用过程中没有磨损、老化的问题
C.软件不同于一般程序,它的一个显著特点是规模庞大,复杂程度高
D.以上都正确
9.软件工程的出现是由于(D)。
A.软件危机的出现
B.计算机硬件技术的发展
C.软件社会化的需要
D.计算机软件技术的发展
10.软件开发技术不包含(D)。
A.软件开发方法学
B.软件工程环境
C.软件工具
D.软件质量度度量
11.下列属于应用软件的是(B)。
I.计算机辅助教学软件II.软件测试工具III.办公自动化软件IV.工程与科学计算软件
A.I、II和III
B.I、III和IV
C.II、III和IV
D.以上都正确
12.需求分析阶段最重要的技术文档是(B)。
A.设计说明书B.需求规格说明书C.可行性分析报告D.用户手册
13.以下关于数据流图的说法错误的是(C)。
A.数据流图舍去了具体的物质,只剩下数据的流动、加工处理和存储
B.数据流图是用作结构化分析的一种工具
C.传统的数据流图中主要由加工、数据源点/终点、数据流、控制流、数据存储组成
D.数据流图的绘制采用自上向下、逐层分解的方法
14.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是(C)。
A.数据库设计B.数据通信C.数据定义D.数据维护
15.需求分析阶段的研究对象是(B)。
A.系统分析员要求B.用户要求C.软硬件要求D.系统要求
16.结构化方法的基本原则是(B)。
A.模块化B.抽象与分解C.信息隐蔽D.逐步求精
17.耦合度最高的是(B)耦合。
A.环境
B.内容
C.控制
D.数据
18.内聚程度较低的是(A)内聚。
A.偶然
B.通讯
C.顺序
D.时间
19.对一个程序来说,组成系统的模块数目(C),则开发成本越小。
A.越多B.越少C.顺序D.时间
20.画软件结构图时应注意调用关系只能是(B)。
A.从下到上B.从上到下C.从左到右D.从右到左
21.程序流程图中的“→”代表(B)。
A.数据流B.控制流C.顺序流D.调用
22.数据流图(DFD)中的“→”代表(A)。
A.数据流B.文件C.处理D.控制流
23.DFD中的“○”代表(C)。
A.数据流B.文件C.处理D.控制流
24.DFD中的“_”代表(B)。
A.数据流B.文件C.处理D.控制流
25.可行性研究要进行一次(C)需求分析。
A.详细的
B.全面的
C.简化的、压缩的
D.彻底的
[解析]软件的可行性研究的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。
其实质是要进行一次简化、压缩了的需求分析、设计过程,要在较高层次上以较抽象的方式进行需求分析和设计过程。
因此答案为C。
26.系统流程图用于可行性分析中的_____的描述。
参考答案为:
A
A.当前运行系统
B.当前逻辑模型
C.目标系统
D.新系统
[解析]可行性研究首先要确定项目的规模和目标,然后就需要对当前运行的系统进行研究了,在考察系统的基础上,通过描绘现有系统的高层系统流程图,与有关人员一起审查该系统流程图是否正确。
描述的对象是当前正在运行的系统,因此选择A。
27.系统流程图是描述_____的工具。
参考答案为:
D
A.逻辑系统
B.程序系统
C.体系结构
D.物理系统
[解析]系统流程图是用图形符号来表示系统中的各个元素,例如人工处理、数据库、设备等,流程图表达了系统中各个元素之间的信息流动情况。
是描绘物理系统的传统工具。
28.程序的三种基本控制结构是_____参考答案为:
B
A.过程、子程序和分程序
B.顺序、选择和重复
C.递归、堆栈和队列
D.调用、返回和转移
[解析]程序的三种基本控制结构是顺序、选择和循环(重复)。
子程序只是程序设计一种方法,递归则是一种算法,都算不上是控制结构。
29.程序的三种基本控制结构的共同特点是_____参考答案为:
D
A.不能嵌套使用
B.只能用来写简单程序
C.已经用硬件实现
D.只有一个入口和一个出口
[解析]程序的特点就是从一个入口开始,最终以一个出口结束,其间可以用顺序,选择和循环方式对程序的流向进行控制。
三种结构可以写出非常复杂的程序,而且选择和循环都可以嵌套设计。
30.可维护性的特性中相互促进的是_____参考答案为:
A
A.可理解性和可测试性
B.效率和可移植性
C.效率和可修改性
D.效率和结构好
[解析]软件的可维护性可用七个质量特性来衡量,分别是:
可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。
对于不同类型的维护,这些特性的侧重点也不相同,有一些可维护特性是可以相互促进的,比如可理解性和可测试性,可理解性和可修改性,另外一些则是相互矛盾的,如答案中的B效率和可移植性、C中的效率和可修改性。
至于D中的结构好则不属于可维护性的特征。
31.汽车有一个发动机。
汽车和发动机之间的关系是_____关系。
参考答案为:
B
A.一般具体
B.整体部分
C.分类关系
D.主从关系
[解析]类有两种主要的结构关系,即一般——具体结构关系和整体——部分结构关系。
前者称为分类结构,用来描述现实世界中的一般化的抽象关系。
后者称为组装结构,用来描述现实世界中的类的组成的抽象关系。
汽车和发动机的关系很明显,应该属于整体——部分关系。
32._____是以提高软件质量为目的的技术活动。
参考答案为:
D
A.技术创新
B.测试
C.技术创造
D.技术评审
[解析]技术评审是以提高软件质量为目的的技术活动,是对软件本身的结构、与运行环境的接口、变更带来的影响等方面进行的评审活动。
33.面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,分析、设计和实现一个软件系统的方法和过程,尽可能接近于人类认识世界解决问题的方法和过程。
因此面向对象方法有许多特征,如软件系统是由对象组成的;________;对象彼此之间仅能通过传递消息互相联系;层次结构的继承。
参考答案为:
C
A.开发过程基于功能分析和功能分解
B.强调需求分析重要性
C.把对象划分成类,每个对象类都定义一组数据和方法
D.对既存类进行调整
[解析]面向对象方法有四个特征,分别是对象唯一性、分类性、继承性和多态性。
其中分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类,每个类是具有相同性质的个体集合,而每个对象相关类的实例,对象彼此之间通过传递消息互相联系。
34.软件开发过程中,抽取和整理用户需求并建立问题域精确模型的过程叫 参考答案为:
D
A.生存期
B.面向对象设计
C.面向对象程序设计
D.面向对象分析
[解析]面向对象的分析的过程就是认识客观世界的过程,其目的就是建立对客观世界的精确、简洁、可理解的正确模型,也就是所谓的建模。
因此本题答案为D。
35.为了提高测试的效率,应该 参考答案为:
D
A.随机地选取测试数据
B.取一切可能的输入数据作为测试数据
C.在完成编码以后制定软件的测试计划
D.选择发现错误可能性大的数据作为测试数据
[解析]软件测试是为了尽可能多的发现程序中的错误,尤其是发现至今尚未发现的错误。
在选取测试用例时,不可能进行穷举测试,在每一个细节进行测试,也不能无目的地随机选取测试数据,为了提高测试的效率,测试用例应该选择发现错误可能性大的部分,这样的测试结果才符合软件测试的目的。
36.使用白盒测试方法时,确定测试数据应根据_______和指定的覆盖标准。
参考答案为:
A
A.程序的内部逻辑
B.程序的复杂结构
C.使用说明书
D.程序的功能
[解析]白盒测试是把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,由于白盒测试是一种结构测试,所以被测对象基本上是源程序,以程序的内部逻辑和指定的覆盖标准确定测试数据。
三、判断题
1.在进行总体设计时应加强模块间的联系。
(N)
2.系统结构图是精确表达程序结构的图形表示法。
因此,有时也可以将系统结构图当作系统流程图使用。
(N)
3.用黑盒法测试时,测试用例是根据程序内部逻辑设计的。
(N)
4.在程序调试时,找出错误的位置和性质比改正该错误更难。
(Y)
5.以对象、类、继承和通信为基础的面向对象设计方法(OOD)也是常见的软件概要设计方法之一。
(Y)
6.如果通过软件测试没有发现错误,则说明软件是正确的。
(N)
7.快速原型模型可以有效地适应用户需求的动态变化。
(Y)
8.模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。
(Y)
9.集成测试主要由用户来完成。
(N)
10.软件危机完全是由于硬件问题引起的。
(N)
四、简答题
1.什么是软件危机?
为什么会产生软件危机?
答:
软件危机是指软件在开发和维护过程中遇到的一系统严重问题。
产生软件危机的原因,一方面与软件本身的特点有关,另一方面和软件开发与维护的方法不正确有关。
2.耦合性有哪几种类型?
其耦合度的顺序如何
答:
低:
非直接耦合→数据耦合→标记耦合→控制耦合→外部耦合→公共耦合→内容耦合:
高
3.简述需求分析工作可以分成哪四个方面?
软件需求分析的有哪三个基本原则?
答:
需求分析阶段分成四个方面:
对问题的识别、分析与综合、制定规格说明和评审。
三个基本原则:
必须能够表达和理解问题的数据域和功能域;必须按自顶向下、逐步分解的方式对问题进行分解和不断细化;要给出系统的逻辑视图和物理视图。
4.什么是黑盒测试法?
答:
黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据,产生正确地输出信息。
5.简述软件测试的任务、目的与类型。
答:
软件测试是一个为了寻找软件错误而运行程序的过程。
目的就是为了发现软件中的错误。
一个好的测试用例是指很可能找到迄今为止尚未发现
的错误的用例。
一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。
软件测试主要分为白盒测试和黑盒测试两大类。
五、分析设计题
某“调整工资”处理模块接受一个“职称”的变量,根据职称的不同(助教,讲师,副教授,教授)作不同的处理,其中若是助教还必须输入工龄,只有工龄超过两年才能调整工资。
请用等价类划分法设计测试用例。
输入条件
合理等价类
不合理等价类
职称
①教授
②副教授
③讲师
⑤四种职称之外任意一种
职称兼工龄
④助教兼工龄大于2年
⑥助教兼工龄等于两年
⑦助教兼工龄小于两年
设计测试用例:
四、影响的宏观环境分析输入数据
6、你购买DIY手工艺制品的目的有那些?
预期结果
1、DIY手工艺市场状况分析覆盖范围
教授
营销环境信息收集索引输入有效,进行调整工资处理
4、如果学校开设一家DIY手工艺制品店,你是否会经常去光顾?
①
副教授
输入有效,进行调整工资处理
关于DIY手工艺制品的消费调查②
他们的成功秘诀在于“连锁”二字。
凭借“连锁”,他们在女孩们所喜欢的小玩意上玩出了大名堂。
小店连锁,优势明显,主要有:
讲师
自制饰品一反传统的饰品消费模式,引导的是一种全新的饰品文化,所以非常容易被我们年轻的女生接受。
输入有效,进行调整工资处理
在上海,随着轨道交通的发展,地铁商铺应运而生,并且在重要商圈已经形成一定的气候,投资经营地铁商铺逐渐为一大热门。
在人民广场地下的迪美购物中心,有一家DIY自制饰品店--“碧芝自制饰品店”③
服饰□学习用品□食品□休闲娱乐□小饰品□助教 3
输入有效,进行调整工资处理
④
助教 2
输入有效,不调整工资处理
⑥
助教 1
输入有效,不调整工资处理
⑦
工程师
输入无效
⑤
1.假定某航空公司规定,乘客可以免费托运重量不超过30公斤的行李。
当行李重量超过30公斤时,对头等舱的国内乘客超重部分每公斤收费4元,对其它舱的国内乘客超重部分每公斤收费6元,对国外乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。
用判定树表示计算行李费的算法。
2.某厂对部分职工重新分配工作的政策是:
年龄有20岁以下者,初中文化程度脱产学习,高中文化程度当电工;年龄有20岁至40岁之间者,中学文化程度男性当钳工,女性当车工,大学文化程度者当技术员;年龄有40岁以上者,中学文化程度当材料员,大学文化程度当技术员。
请用结构化语言、以及判定树描述上述问题的加工逻辑。
答:
(1)结构化语言。
IF年龄<20
THENIF文化程度=初中
THEN脱产学习
ELSE工作为电工
ENDIF
ELSEIF年龄≤40
THENIF(文化程度=大学)
THEN工作为技术员
ELSEIF性别=男性
THEN工作为钳工
ELSE工作为车工
ENDIF
ENDIF
ELSEIF(文化程度=大学)
THEN工作为技术员
ELSE工作为材料员
ENDIF
ENDIF
ENDIF
(2)判定树如下: