
软件工程试题
课程代码:02333
一、单项选择题(本大题共20小题,每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.在软件生存周期中,时间最长的阶段是( D )
A.需求分析 B.详细设计
C.编码 D.维护
2.以下最适合于面向对象的软件开发的软件生存周期模型是( D )
A.瀑布模型 B.增量模型
C.螺旋模型 D.喷泉模型
3.以下不适用于需求分析的工具是( C )
A.数据流图 B.判定表
C.PAD图 D.数据字典
4.以下几种模块内聚类型中,内聚性最低的是( B )
A.时间内聚 B.逻辑内聚
C.顺序内聚 D.功能内聚
5.系统流程图中 符号的名称是( A )
A.联机存储 B.处理
C.磁盘 D.文档
6.数据流图中的每个加工至少有( D )
A.一个输入流或一个输出流 B.一个输出流
C.一个输入流 D.一个输入流和一个输出流
7.HIPO图是软件工程中的一种描述工具,采用HIPO图进行描述的阶段是( C )
A.可行性分析 B.需求分析
C.概要设计 D.详细设计
8.Jackson方法是软件开发过程中常用的方法,使用Jackson方法可以实现( A )
A.从数据结构导出程序结构 B.从数据流图导出初始结构图
C.从模块结构导出数据结构 D.从模块结构导出程序结构
9.过程设计语言(PDL),又称为( A )
A.伪码 B.高级程序设计语言
C.中级程序语言 D.低级程序设计语言
10.单元测试阶段主要涉及的文档为( B )
A.需求设计 B.编码和详细设计
C.详细设计 D.概要设计
11.软件维护会产生副作用,下面选项中不属于维护副作用的是( B )
A.编码副作用 B.测试副作用
C.文档副作用 D.数据副作用
l2.以下不适合作为科学工程计算的语言是( D )
A.Pascal B.C
C.Fortran D.Prolog
l3.PAD图为下列哪个方面提供了有力的工具( C )
A.系统分析 B.软件的自动化生成
C.自动分析数据 D.测试软件
14.结构化软件设计是( A )
A.面向数据结构的 B.面向数据库的
C.面向数据流的 D.面向对象设计的
15.在McCall软件质量度量模型中,面向软件产品修改的质量因素为( C )
A.可用性 B.完整性
C.适应性 D.互操作性
16.汽车是一种交通工具,汽车类和交通工具类之间的关系是( A )
A.一般具体 B.has a
C.整体部分 D.组成
l7.Westinghouse公司于1992年公布了l3类软件工具分类标准和该类的范例工具以及例子,下面说法错误的是( A )
A.代码生成程序属于编码和单元测试工具
B.桌面出版系统属于文档工具
C.数据库管理系统属于需求追踪工具
D.计划和进度属于项目管理工具
18.对McCabe度量法,叙述错误的是( C )
A.McCabe度量法是一种基于程序控制流的复杂性度量法
B.McCabe度量法以图论为工具,用图的环路作为程序复杂性的度量值
C.McCabe度量法将简单IF语句和赋值语句的复杂性同等看待
D.McCabe复杂性度量也称为环路度量
19.瀑布模型本质是一种( B )
A.顺序迭代模型 B.线性顺序模型
C.线性迭代模型 D.非线性模型
20.对于使用原型的建议,下面说法错误的是( C )
A.开发周期很长的项目,可通过原型开发来缩短开发周期
B.系统的使用可能变化较大,不能相对稳定,而原型模型具有适应变化的机制
C.缺乏开发工具,或对原型的可用工具不了解的时候宜使用原型
D.用户对系统的需求较为模糊,对某种要求缺乏信心时宜使用原型
二、填空题(本大题共10小题,每空2分,共20分)
请在每小题的空格中填上正确答案。错填、不填均无分。
21.为了支持软件人员开发和维护活动而使用的软件一般是指___软件工具__________。
22.在IDEF0方法中,一个活动可以无输入,但必须至少有一个___控制箭头______。
23.在软件结构的设计中,各个模块之间要力求降低耦合性,提高___内聚性__________。
24.在类的层次结构中,通常上层类称为父类或超类,下层类称为____子类_______。
25.数据流图(DFD)一般可分为变换型和_____事务型______两类。
26.软件维护的内容包括校正性维护、适应性维护、___完善性维护_______和预防性维护。
27.软件的生产经历了三个阶段,分别是程序设计时代、程序系统时代和___软件工程时代_____。
28.渐增模型是瀑布模型的变种,分为两类:增量构造模型和___演化提交模型_________。
29.状态图反映了__事件与状态_____________的关系。
30.软件项目管理过程一个关键的活动是___制定项目计划_______,它是软件开发工作的第一步。
三、名词解释题(本大题共5小题,每小题3分,共15分)
31.软件开发方法
软件开发方法是一种使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。
32.耦合性 用于衡量不同模块彼此间互相依赖(连接)的紧密程度。
33.多态性 指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果。不同的对象,收到同一消息可以产生不同的结果。
34.软件质量保证 是指在软件开发过程中,为了保证产品满足指定标准而进行的各种活动。
35.确认测试 确认组装完毕的程序是否满足软件需求规格说明书(SRS)的要求。
四、简答题(本大题共4小题,每小题5分,共20分)
36.简述可行性研究的目的和任务。
答:(1)软件可行性研究的目的:就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。注意,可行性研究的目的不是去开发一个软件项目,而是研究这个软件项目是否值得去开发,其中的问提能否解决。可行性研究实质上是要进行一次简化、压缩了的需求分析、设计过程,要在较高层次上以较抽象的方式进行需求分析和设计过程。
(2)可行性研究的任务 :
技术可行性:对要开发项目的功能、性能、条件进行分析,确定在现有的资源条件下,技术风险有多大,项目是否能实现。包括:开发的风险;资源的有效性;技术;开发人员在评估技术可行性时,一旦估计错误,将会出现灾难性后果。
经济可行性:包括成本――效果分析、公司经营长期策略、开发所需的成本和资源、潜在的市场前景。
社会可行性包括:合同、责任、侵权、用户组织的管理模式及规范,其他一些技术人员常常不了解的陷阱等。
37.什么是模块化?软件结构设计的优化准则是什么?
答:模块化是按规定的原则将一个大型软件划分为一个个较小的、相对但又相关的模块。
模块设计的准则:
(1) 改进软件结构, 提高模块性。在对初步模块进行合并、分解和移动的分析、精化过程中力求提高模块的内聚,降低藕合。
(2) 模块大小要适中。大约50行语句的代码,过大的模块应分解以提高理解性和可维护性;过小的模块,合并到上级模块中。
(3) 软件结构图的深度、宽度、扇入和扇出要适当。一般模块的调用个数不要超过5个。
(4) 尽量降低模块接口的复杂程度。
(5) 设计单入口、单出口的模块。
(6) 模块的作用域应在控制域之内。
38.简述详细设计的基本任务。
答:(1)为每个模块确定采用的算法;(2)确定每一模块使用的数据结构;(3)确定模块接口的细节;(4)编写过程设计说明书;(5)设计每一模块的测试用例。
39.简述软件测试的任务、目的与类型。
答:(1)软件测试是一个为了寻找软件错误而运行程序的过程。
(2)目的就是为了发现软件中的错误。一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例。一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。
(3)软件测试主要分为白盒测试和黑盒测试两大类。
五、应用题(本大题共2小题,其中40小题l0分,4l小题15分,共25分)
40.某个程序的伪码如下(前面的标号只用于标明语句顺序,不参与程序运行):
1:START
2:IF L1 THEN
3:S1
4:DO WHILE L2
5:S2
6:IF L3 THEN
7:S3
ELSE
8: S4
9:END IF
10:END DO
EISE
11:S5
12:END IF
13:STOP
(1)试将其转换成PAD图(5分)
答:(1)
(2)计算程序的环路复杂性(5分)
(2)
该程序的环路复杂度为4
41.某服装贸易公司的销售子系统功能如下:
(1)公司提供多种类别服装,所有类别的服装通过各个地区的分公司进行销售;
(2)公司接收分公司的订单,检验订单,若有库存就供货,则修改库存,给仓库开备货单,并且将订单留底;若库存不足,则进行缺货登记。
(3)根据缺货记录将缺货通知单发给采购部,以便采购。
(4)根据采购部门的进货通知单处理进货,即修改库存,并从缺货记录中取出缺货订单
进行供货处理。
试采用SA方法画出该公司销售管理系统的分层DFD(画出顶层、0层、1层图)。
答:顶层结构图:
0层:
1层:
