文档库 最新最全的文档下载
当前位置:文档库 › 软件工程期末复习题

软件工程期末复习题

一、单选题(本大题共10小题,每小题2分,共20分)

1.软件是一种( C ) A.物质产品 B.物理产品 C.逻辑产品 D.文档产品

2.下列4个选项中,不属于软件危机表现的是( D ) A.开发的软件可靠性差 B.经费

预算不断突破,完成时间一再拖延 C.开发的软件可维护性差 D.开发的软件规模庞大,结构复杂

3.下列4个选项中,不属于软件危机原因的是:软件( D ) A.规模越来越大 B.结构越

来越复杂 C.开发技术落后 D.用户素质不高

4.软件产品的生产主要是( D ) A.生产 B.再生产 C.开发 D.研制

5.软件工程是一门( C ) A.理论性学科 B.原理性学科 C.工程性学科 D.心理性学科

6.软件重用的单位是( A ) A.软件模块 B.性能 C.系统 D.功能

7.软件工程着重于( C ) A.理论研究 B.原理探讨 C.建造软件系统 D.原理的理论

8.软件工程中的“软件”是指( D ) A.程序 B.数据 C.文档 D.程序、数据及文档

9.软件开发费用只占整个软件系统费用的( B ) A.1/2 B.1/3 C.1/4 D.2/3

10.下列4种模型中,属于文档驱动的是(C ) A.喷泉模型 B.增量模型 C.瀑布模型 D.

螺旋模型

11.下列4种模型中,较为适合用于面向对象的开发方法的是( A ) A.喷泉模型 B.增

量模型品 C.瀑布模型 D.螺旋模型

12.下列4中方法中,属于面向数据结构的设计方法的是(C ) A. Booch方法 B. Coad

方法 C. Jackson方法 D. SA方法

13.下列4中方法中,属于面向数据流的分析方法的是( D ) A. Booch方法 B. Coad

方法 C. Jackson方法 D. SA方法

14.软件生存周期中时间最长的阶段是( B ) A.需求分析 B.概要设计 C.测试 D.维

15.一般而言,软件开发各阶段中,时间长、费用高、困难大的阶段是( D ) A.需求分

析 B.详细设计 C.编码 D.测试

16.解决“软件必须做什么”问题的阶段是( B ) A.可行性研究 B.需求分析 C.详细

设计 D.编码

17.下列工作中,不在需求分析阶段进行的是( B ) A.编写需求规格说明书 B.编写集

成测试计划 C.编写用户手册初稿 D.修改完善软件开发计划

18.下列工作中,不在需求分析阶段进行的是( B ) A.确定软件的功能需求 B.建立软

件物理模型 C.导出软件逻辑模型 D.编写需求规格说明书

19.需求分析的主要结果是( C ) A.项目开发计划 B.可行性分析报告 C.需求规格说

明书 D.设计说明书

20.需求分析要解决的最重要的问题是( A ) A.要让软件做什么 B.要给软件提供哪

些信息

C.要求软件工作效率怎样

D.要让该软件具有何种结构

21.需求规格说明书的内容不应包括软件的( B ) A.主要功能与性能 B.算法详细过

程 C.用户界面 D.运行环境

22.系统流程图用于描述待开发软件的(B ) A.结构系统 B.物理系统 C.程序系统 D.

逻辑系统

23.数据流图用于描述待开发软件的( B ) A.物理模型 B.逻辑模型 C.控制结构 D.

数据结构

24.DFD中的每个加工至少有( A ) A.一个输入流和一个输出流 B.一个输入流或一个

输出流 C.一个输入流 D.一个输出流

25.分层DFD的顶层图描述了系统的( B ) A.细节 B.输入与输出 C.作者 D.绘制时

26.在DFD中,下列数据流中可以不命名的是( A ) A.处理与处理之间的数据流 B.处

理与局部数据存储之间的数据流 C.处理与数据源点之间的数据流 D.处理与数据终点之间的数据流

27.DFD中一般不画( A ) A.控制流 B.数据流 C.局部数据存储 D.外部实体

28.在DFD中,箭头表示( A ) A.数据流 B.数据存储 C.数据处理 D.数据源点

29.在DFD中,双杠表示( D ) A.数据处理 B.数据源点 C.数据流 D.数据存储

30.父图与子图平衡指子图的输入、输出流同父图相应加工的输入、输出流( A ) A.

必须一致 B.数目必须相等 C.名字必须相同 D.数目必须不等

31.数据字典中一般不包括( D ) A.数据流条目 B.数据存储条目 C.加工条目 D.源

点与终点条目

32.关于DD的4类条目,不可再分解的最小元素是( B ) A.数据流条目 B.数据项条

目 C.数据存储条目 D.加工条目

33.表示“X由a或b组成”的DD定义式是(B ) A. X=a+b B. X=[a|b] C.

X=a…b D. X=|a b|

34.软件结构图上,一层中最大模块数称为该图的( C ) A.扇出 B.扇入 C.宽度 D.深

35.当一幅DFD中既有变换流又有事务流时,这就是一个( C ) A.变换型DFD B.事务

型DFD C.综合型DFD D.分层DFD

35.软件结构图上,一层中最大模块数称为该图的( C ) A.扇出 B.扇入 C.宽度 D.深

36.软件开发中结构化设计方法用于( B ) A.测试用例设计 B.概要设计 C.程序设计

D.详细设计

37.软件结构使用的图形工具,一般采用( C ) A.DFD图 B.PAD图 C.SC图 D.ER图

38.软件结构图中,模块框之间若有直线接,表示它们之间存在着(A ) A.调用关系 B.

组成关系 C.连接关系 D.顺序执行关系

39.下列工作中,不在概要设计进行的是( D ) A.划分模块 B.确定模块功能 C.确定

模块的接口 D.确定模块的算法

40.为提高模块独立性,模块之间最好是(D ) A.公共耦合 B.控制耦合 C.内容耦合 D.

数据耦合

41.为提高模块独立性,模块内部最好是(C ) A.逻辑内聚 B.时间内聚 C.功能内聚 D.

通信内聚

42.在软件概要设计中,不使用的图形工具是( D ) A.SC图 B.IPO图 C.IDEF图 D.

PAD图

43.概要设计与详细设计衔接的图形工具是( B ) A.数据流图 B.结构图 C.程序流程

图 D.PAD图

44.软件概要设计结束后得到( B ) A.数据流图 B.结构图 C.程序流程图 D.PAD图

45.划分模块时,一个模块的( A ) A.作用范围应在其控制范围内 B.控制范围应在其

作用范围内

C.作用范围与控制范围互不包含

D.作用范围与控制范围不受任何限制

46.结构化程序设计主要强调程序的( C ) A.效率 B.执行速度 C.易读性 D.规模

47.详细设计的任务是确定每个模块的( B ) A.外部特性 B.内部特性 C.功能 D.输

入输出数据

48.程序的三种基本控制结构是( B ) A.过程、子程序和分程序 B.顺序、选择和重

C.递归、堆栈和队列

D.调用、返回和转移

49.程序的三种基本控制结构的共同特点是( D ) A.不能嵌套使用 B.只能用来写简

单程序

C.已经用硬件实现

D.单入口和单出口

50.下列工作中不属于详细设计基本任务的是( D ) A.为模块内的数据结构进行设计

B.对数据库进行物理设计

C.为每个模块进行详细的算法设计

D.为模块进行功能设计

51.不属于详细描述处理过程常用的工具是( D ) A.图形 B.表格 C.语言 D.程序

52.下列4图中不属于详细设计中描述处理过程的主要工具的是(D ) A.PAD图 B.IPO

图 C.程序流程图 D.程序图

53.结构化程序设计主要强调的是( A ) A.程序易读性 B.程序效率 C.程序规模 D.

程序代码

54.下列4图中支持结构化程序设计原理并可自动生成程序的是( D ) A.程序流程图

B.工程网络图

C.程序图

D. PAD图

55.下列结构中不属于Jackson结构图描述的基本结构的是( D ) A.顺序结构 B.选

择结构 C.重复结构 D.组装结构

56.结构化程序思想提出前程序设计中曾强调程序的效率,现在更重视程序的( D )

A.效率

B.安全性

C.一致性

D.可理解性

57.源程序文档化要求在每个模块之前加序言性注释。该注释内容不应有( B ) A.

模块的功能 B.语句的功能 C.模块的接口 D.开发历史

58.程序设计语言的心理特性在语言中表现不应包括(C )A.歧义性 B.简洁性 C.保密

性 D.传统性

59.程序设计语言的工程特性其中之一表现在( A ) A.软件的可重用性 B.数据结构

的描述性

C.抽象类型的描述性

D.数据库的易操作性

60.程序设计语言的技术特性不应包括( D ) A.数据结构的描述性 B.抽象类型的描

述性

C.数据库的易操作性

D.软件的可移植性

61.下列语言中,存取管理数据库最方便的是(C ) A.汇编语言 B. C语言 C. SQL D.

Prolog

62.下列语言中,主要用于实时、并发和嵌入系统,属于面向对象的语言是( C ) A.

Pascal语言 B. C语言 C. Ada语言 D. SQL语言

63.对于开发专家系统等人工智能领域的系统,下列语言中最合适的是( D ) A.汇编

语言 B. C语言 C. SQL语言 D. Prolog语言

64.下列语言中,第一个体现结构化编程思想的语言是( B ) A. FORTRAN 语言 B.

Pascal 语言 C. C语言 D. 4GL语言

65.下列语言中,产生的目标代码运行效率最高的是( A ) A.汇编语言 B. Cobol语言

C. SQL语言

D. Prolog语言

66.软件测试的目的是(B ) A.试验性运行软件 B.发现软件错误 C.证明软件正确 D.

找出软件全部错误

67.软件测试用例主要包括输入数据和(C) A.测试计划 B.测试规则 C.预期输出结果

D.测试报告

68.为了提高测试效率,应该( D ) A.随机地选取测试数据 B.取一切可能的输入数据

作测试数据 C.完成编码以后制定测试计划 D.选择发现错误可能性大的数据作测试用例

69.成功的测试是指运行测试用例后( B ) A.未发现程序错误 B.发现了程序错误 C.

证明程序正确 D.改正了程序错误

70.与设计测试用例无关的文档是( A ) A.项目开发计划 B.需求规格说明 C.设计说

明 D.源程序

71.白盒法设计测试用例的根据是程序的( B ) A.应用范围 B.内部逻辑 C.功能 D.

输入数据

72.黑盒法设计测试用例的根据是程序的( C ) A.应用范围 B.内部逻辑 C.功能 D.

输入数据

73.黑盒测试中,着重检查输入条件的组合是( D ) A.等价类划分法 B.边界值分析法

C.错误推测法

D.因果图法

74.集成测试主要是为了发现( B ) A.需求分析的错误 B.概要设计的错误 C.详细设

计的错误 D.编码的错误

75.下列技术中不属于白盒测试的是(D )A.语句覆盖 B.判定覆盖 C.条件覆盖 D.边

界值分析

76.集成测试时,能较早发现高层模块接口错误的测试方法为( A ) A.自顶向下渐增

测试 B.自底向上渐增测试

C.非渐增式测试

D.系统测试

77.确认测试的依据是( A ) A.需求规格说明书 B.设计说明书 C.源程序 D.开发计

78.关于白盒技术的逻辑覆盖,下列描述中错误的是( B ) A.判定覆盖可能使一些条

件得不到测试 B.语句覆盖查错能力最强 C.条件组合覆盖查错能力较强 D.路径覆盖查错能力强

79.下列覆盖中发现错误能力最强的是(B )A.条件覆盖 B.路径覆盖 C.判定覆盖 D.

条件组合覆盖

80.白盒技术中,未归属于逻辑覆盖的是(B ) A.判定覆盖 B.循环覆盖 C.路径覆盖 D.

条件覆盖

81.黑盒技术中不包括( A ) A.基本路径测试 B.边界值分析 C.错误推测 D.等价类

划分

82.下列描述中,不属于基本路径测试步骤的是( A ) A.进行边界值分析 B.据详细设

计或源程序导出程序图 C.计算程序图的环路复杂性 D.确定只含独立路径的基本路径集

83.下列描述中,不属于单元测试内容的是( A ) A.软件的性能 B.模块接口 C.重要

执行路径 D.局部数据结构

84.下列测试中,最早进行的是确( A ) A.单元测试 B.集成测试 C.确认测试 D.系统

测试

85.关于集成测试,下列描述中错误的是( A ) A.可采用演绎法 B.可采用自顶向下结

合法 C.可采用自底向上结合法 D.可采用非渐增式方法

86.软件维护困难的主要原因是( C ) A.费用低 B.人员少 C.开发方法的缺陷 D.维

护难度大

87.软件维护费用高的主要原因是( B ) A.生产率高 B.生产率低 C.人员多 D.人员

88.下列文档中,产生于维护阶段的是( C ) A.软件需求说明 B.操作手册 C.软件问

题报告 D.测试分析报告

89.为识别和纠正错误,弥补软件性能缺陷而修改软件的过程称为( A ) A.校正性维

护 B.适应性维护 C.完善性维护 D.预防性维护

90.为使软件适应其运行环境变化而修改软件的过程称为( B ) A.校正性维护 B.适

应性维护 C.完善性维护 D.预防性维护

91.为使软件增加功能、增强性能、提高效率而修改软件的过程称为( C ) A.校正性

维护 B.适应性维护 C.完善性维护 D.预防性维护

92.为提高软件的可维护性和可靠性而对软件进行修改称为( D ) A.校正性维护 B.

适应性维护 C.完善性维护 D.预防性维护

93.维护活动数量较大,约占整个维护活动的50%的维护类型是(C ) A.校正性维护 B.

适应性维护 C.完善性维护 D.预防性维护

94.软件维护的副作用是指( C ) A.开发时的错误 B.隐含的错误 C.修改软件造成的

错误 D.运行时误操作

95.下列软件特性中相互促进的是( A ) A.可理解性和可测试性 B.效率和可移植性

C.效率和可修改性

D.效率和结构好

96.下列软件特性中相互矛盾的是( C ) A.可修改性和可理解性 B.可测试性和可理

解性 C.效率和可修改性 D.可理解性和可读性

97.下列措施中,不利于提高软件可维护性的是( B ) A.建立明确的软件质量目标 B.

使用瀑布模型 C.使用面向对象的开发方法 D.使用历史文档

98.采用快速原型模型开发时,首先应( C ) A.构造原型 B.运行原型 C.快速分析 D.

评价原型

99.演化提交模型是在瀑布模型基础上,于开发过程的( C ) A.需求分析阶段进行增

量开发 B.设计阶段进行增量开发

C.所有阶段都进行增量开发

D.编码阶段进行增量开发

100.面向对象程序设计语言不同于其他语言的最主要的特点是( A ) A.继承性 B.多态性 C.封装性 D.内聚性

101.面向对象方法的基本特性不包括( D ) A.继承性 B.多态性 C.封装性 D.正确性102.面向对象方法中建立动态模型的图形工具是( D )A.程序图 B.数据流图 C.对象图 D.状态图

103.面向对象的方法中组成功能模型的图形工具是( D ) A.程序图 B.对象图 C.状态图 D.DFD

104.面向对象的方法中组成对象模型的图形工具是( B ) A.程序图 B.对象图 C.状态图 D.DFD

105.汽车装有一个发动机,汽车和发动机之间的关系是( B ) A.一般──具体 B.整体──部分 C.分类关系 D.归纳关系

106.火车是一种陆上交通工具,火车和陆上交通工具之间的关系是( D ) A.组装关系

B.整体──部分

C.聚集关系

D.一般化关系

107.面向对象程序设计不同于其他设计的最主要特点是( C ) A.模块 B.抽象 C.继承 D.共享

108.软件部件的内部实现与外部可访问性分离,这是指软件的( C ) A.继承性 B.共

享性 C.封装性 D.抽象性

109.实现共享和提高重用的主要途径是(A ) A.使用继承 B.提高内聚 C.降低耦合 D.

使用封装

110.同一类中有相同的数据结构,这种共享的级别是( B ) A.不同类级共享 B.同一类级共享 C.不同应用级共享 D.同一应用级共享

111.类库机制的共享级别是( C ) A.不同类级共享 B.同一类级共享 C.不同应用级共享 D.同一应用级共享

112.面向对象分析阶段建立的三个模型中,核心模型(C ) A.功能模型 B.动态模型 C.

对象模型 D.分析模型

113.对象模型的描述工具是( C ) A.状态图 B.数据流图 C.对象图 D.结构图

114.动态模型的描述工具是( A ) A.状态图 B.数据流图 C.对象图 D.结构图

115.在只有单重继承的类层次结构中,类层次的结构是( A ) A.树型结构 B.网状结构 C.星型结构 D.环型结构

116.在含有多重继承的类层次结构中,类层次的结构是( B ) A.树型结构 B.网状结构 C.星型结构 D.环型结构

117.表示对象的相互行为的模型是( B ) A.对象模型 B.动态模型 C.功能模型 D.分析模型

118.描述类中某个对象的行为,反映了状态与事件关系的是( B ) A.对象图 B.状态图 C.流程图 D.结构图

119.有时间间隔的操作是( B ) A.动作 B.活动 C.加工 D.处理

120.与事件联系在一起的瞬时操作是( B ) A.处理 B.动作 C.活动 D. 加工

121.常用动词或动词词组来表示( C ) A.对象 B. 类 C.关联 D.属性

122.在确定类时,候选的类包括所有的( A ) A.名词 B.形容词 C.动词 D. 代词123.在确定属性时,候选的属性包括所有的( C ) A.动词 B.名词 C.修饰性名词词组

D.词组

124.面向对象方法中实现信息隐蔽是通过对象的( C ) A.分类性 B.继承性 C.封装性 D.共享性

125.作为软件开发工作的第一步和软件项目管理过程中一个关键的活动是( D ) A.

编写设计说明 B.制定测试计划 C.编写需求说明 D.制定项目计划

126.下列模型中,不属于质量度量模型的是( C ) A. Boehm模型 B. McCall模型 C.

喷泉模型 D. ISO软件质量评价模型

127. ISO软件质量评价模型分为( C ) A. 1层 B. 2层 C. 3层 D. 4层

128.为了定量评价软件质量,必须对软件特性进行( A ) A.评审 B.测试 C.分析 D.

维护

129.制定软件开发进度的主要方法不包括( B ) A.工程网络图 B.软件结构图 C.

Cantt图 D.任务资源表

130.一个项目是否开发,从经济上来说是否可行,归根结底取决于( A ) A.成本的估算 B.项目计算 C.工程管理 D.工程管理

131.成本估算方法不包括( B ) A.差别估算方法 B. Jackson方法 C.自顶向下估算方法 D.自底向上估算方法

132.自顶向下估算方法的主要特点是重视( B ) A.成本估算 B.系统级工作 C.低级别工作 D.工程管理

133.自顶向下估算方法的缺点是往往不清楚( C ) A.成本估算上的技术性困难 B.系统级上的技术性困难 C.低级别上的技术性困难 D.工程管理上的技术性困难134.自底向上估算的优点是对各部分的估算交给负责该部分的人做,估算( D ) A.往往偏低 B.不太准确 C.往往偏高 D.相对较准确

135.自底向上估算的缺点是往往缺少系统级工作量估算,所以估算( A ) A.往往偏低

B.不太准确

C.往往偏高

D.较为准确

136.版本管理是对系统不同的版本进行( A ) A.标识与跟踪 B.项目计划 C.工程管理 D.工程网络图

137.基线可作为检查点,采用的基线发生错误时,可返回到最近的最恰当( C ) A.配置项 B.程序 C.基线 D.过程

138.属于软件产品的重要组成部分,在软件开发过程起重要的作用的是( C ) A.需求规格说明 B.概要设计说明 C.软件文档 D.测试大纲

139.开发过程中作为开发人员前阶段成果体现和后阶段工作依据的是( C ) A.开发文档 B.管理文档 C.用户文档 D.维护文档

140.开发过程中由开发人员制定、提交管理人员的工作计划或报告属于( A ) A.开发文档 B.管理文档 C.用户文档 D.维护文档

141.开发人员为用户准备的有关该软件使用、操作、维护的资料属于( C ) A.开发文档 B.管理文档 C.用户文档 D.维护文档

142.软件开发环境是支持软件产品开发的( A ) A.工具 B.工具箱 C.工作台 D.软件系统

143.软件开发环境由软件开发工具和环境集成机制构成,前者用于支持( D ) A.需求分析的相关过程、活动和任务 B.软件设计的相关过程、活动和任务 C.软件编码的相关过程、活动和任务 D.软件开发的相关过程、活动和任务

144.早期的软件工具只完成一个特定任务,后来出现了工作台,它是一组( B ) A.工具 B.工具的集合 C.软件 D.软件的集合

145.分析和设计工作台支持软件过程的分析和设计阶段,有时称为( A ) A.上游CASE 工具 B.中游CASE工具 C.下游CASE工具 D.全程CASE工具

146.以语言为中心的程序设计环境支持软件生存期(D ) A.前期活动 B.初期活动 C.

中期活动 D.后期活动

147.以语言为中心的程序设计环境特别强调( B ) A.对可行性研究活动的支持 B.对编程、调试和测试活动的支持

C.对需求分析活动的支持

D.对设计活动的支持

148.软件开发环境中最主要的组成部分是( C ) A.软件工程 B.项目管理工具 C.软件工具 D.需求分析工具

149.软件工具是一个( C ) A.软件工程 B.项目管理工具 C.程序系统 D.需求分析工具

150.CASE(Computer-Aided Software Engineering)的含义是计算机辅助( D ) A.设计 B.教育 C.分析 D.软件工程

151. CASE是一组( D ) A.工具的集合 B.方法的集合 C.程序的集合 D.工具和方法的集合

152. CASE涉及的技术有两类:一类支持软件开发过程本身,另一类支持( D ) A.开发技术 B.开发方法 C.开发方法管理 D.开发过程管理

153.平台集成是指工具运行在相同的( D ) A.硬件平台上 B.软件平台上 C.硬件/软件平台上 D.硬件/操作系统平台上

154.表示集成是指工具提供相同的( B ) A.语言 B.用户界面 C.命令 D.操作系统155.数据集成指不同软件工程能相互( B ) A.合作 B.交换数据 C.交流 D.通讯156.控制集成指工具激活后能控制其他( A ) A.工具的操作 B.系统的操作 C.软件的操作 D.应用操作

157. CASE工作台支持设计、实现或测试等特定的软件开发阶段,是一组( A ) A.工具集 B.平台集 C.软件包 D.程序包

158.由支持程序设计的一组工具组成的工作台是( A ) A.程序设计工作台 B.分析和

设计工作台 C.测试工作台 D.文档工作台

159.支持工作台中一个工具对系统其他工具的访问的CASE集成属于( A ) A.控制集成 B.平台集成 C.数据集成 D.表示集成

160.三种不同级别的表示集成不包括( A ) A.数据集成 B.窗口集成 C.命令集成 D.

交互集成

二、填空题(本大题共10空,每空2分,共20分)

1.文档是有关计算机程序功能、设计、编制、使用的文字或图形资料。

2.划分软件生存周期阶段时,应遵循一条基本原则:各阶段的任务尽可能相对独立,

同一阶段各项任务的性质尽可能相同。

3.软件工程包含软件软件开发技术和软件工程管理两大部分内容。

4.瀑布模型是将生存周期各活动规定为依线性顺序联接的若干阶段的模型。

5.喷泉模型是一种以用户需求为动力,以对象为驱动的模型。

6.面向对象开发方法一般用喷泉模型,也可选用瀑布模型、增量模型。

7.结构化方法可选用瀑布模型、增量模型、螺旋模型。

8.可行性研究的主要内容有技术可行性、经济可行性和社会可行性研究。

9.效益分析有有形效益和无形效益两种。

10.需求分析的基本任务是准确定义新系统的目标,回答系统必须“做什么”。

11.结构化设计是面向数据流的,Jackson方法是面向数据结构的设计方法。

12.结构化方法由结构化分析、结构化设计、结构化程序设计构成。

13.SA方法利用图形等半形式化的描述方式表达需求,简明易懂,用它们形成需求

说明书中的主要部分。

14.一个DFD中,既有变换流,又有事务流时,这就是一个综合的数据流图。

15.DD中有四类条目:数据流条目、数据项条目、数据存储条目、加工条目。

16.需求分析阶段要确定对问题的综合需求,其中最主要的是功能需求,该阶段产生

的最重要的文档之一是需求规格说明书。

18.解决一个复杂问题,往往采取的策略是分解。

19.SA方法中主要描述工具是DFD(数据流图) 与 DD(数据字典) 。

20.数据流图中的箭头表示数据流,椭圆表示加工(处理) ,双杠表示数据存储,

矩型框表示外部实体(数据源点或终点)。

21.DFD中,每个加工至少有1个输入流和1个输出流。

22.当DFD中某加工的一组动作存在多个复杂组合判断时,宜用判定表或判定树。

23.软件设计的基本原理有模块化、抽象、信息隐蔽、模块独立性。

24.模块具有的基本属性有:接口、功能、逻辑和状态。

25.通过信息隐蔽,可定义和实施对模块的过程细节和局部数据结构的存取限制。

26.模块之间的联系越紧密,其耦合性就越强,模块的独立性就越差。

27.模块内各元素的联系越紧密,其内聚性就越高,模块的独立性就越好。

28.划分模块时,应尽量做到低耦合、高内聚。

29.耦合性最低的是无直接耦合。内聚性最高的是功能内聚。

30.概要设计阶段产生的重要的文档之一是概要设计说明书。

31.软件结构是以模块为基础而组成的一种控制层次结构。

32.反映软件结构的基本形态特征是深度、宽度、扇入、扇出。

33.一个模块把数值作为参数送给另一个模块,这种耦合方式属于数据耦合。

34.两个模块内部都使用同一张表,这种耦合属于公共耦合。

35.一个模块内部各程序段都在同一张表上操作,该模块的内聚性属于通信内聚。

36.结构化设计对数据有两种分析方法,它们是变换分析设计和事务分析设计。

37.概要设计阶段应为每个模块写一份处理说明和接口说明。

38.SP的设计要点是使用三种基本控制结构,自顶向下逐步求精构造算法。

39.PAD图清晰地反映了程序的层次结构,图中的竖线为程序的层次线。

40.程序的三种基本控制结构是顺序结构、选择结构、重复结构。

41.详细描述处理过程常用三种工具是过程设计语言、判定表、判定树。

42.描述加工逻辑一般用以下三种工具:结构化语言(伪码) 、判定表、判定树。

43.PAD图是一种算法描述工具,它是一种由左往右展开的二维树型结构。

44.数据库的概念设计、逻辑设计、物理设计分别对应于系统开发中的需求分析、

概要设计、详细设计。

45.程序设计语言的特性主要有心理特性、工程特性和技术特性。

46.通常考虑选用语言的因素有:项目的应用领域、软件开发的方法、软件执行的

环境、算法和数据结构的复杂性、软件开发人员的知识,其中选择语言的关键因素是项目的应用领域。

47.项目的应用领域一般有科学工程计算、数据处理与数据库应用、实时处理、系

统软件和人工智能几种类型。

48.与编码风格有关的因素有:源程序文档化、数据说明、语句构造、输入和输

出、程序效率。

49.软件测试是为了发现错误而执行程序的过程。

50.软件测试方法一般分两大类:静态测试法和动态测试法,动态测试包括黑盒

法和白盒法。

51.被测试程序不在机器上运行而采用人工分析检测或计算机辅助分析检测称为静

态测试,使被测试程序在机器上运行的测试方法称为动态测试。

52.动态测试包括白盒法和黑盒法,检查程序是否满足功能要求应采用黑盒法。

53.动态测试中,主要测试软件功能的方法称为黑盒法,测试软件内部结构及处理

过程的方法称为白盒法。

54.要覆盖含有循环结构的所有路径是不可能的,一般通过限制循环次数来测试。

55.白盒技术中的逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、

条件组合覆盖和路径覆盖。其中查错能力最弱的是语句覆盖。

56.黑盒技术设计方法主要有等价类划分、边界值分析、错误推测、因果图等。

57.用等价类划分法设计一个测试用例时,应使其覆盖尽可能多的尚未被覆盖的合

理等价类或 1 个不合理等价类。

58.如果规格说明书中含有输入条件的组合情况,则使用因果图。

59.集成测试方法有渐增式和非渐增式,渐增式测试组合模块的方法有自顶向

下结合和自底向上结合,自顶向下结合可采用深度优先或宽度优先策略。

60.单元测试时,需要设计驱动模块和桩模块。

61.单元测试大量使用白盒技术;集成测试最常用的是黑盒技术,为保证覆盖主

要控制路径,也可能使用一定数量的白盒技术;确认测试仅使用黑盒技术。62.软件维护分为校正性维护、适应性维护、完善性维护、预防性维护。其中维护

活动数量较大(约占整个维护活动的50%) 的是完善性维护。

63.度量一个可维护性软件的7种特性时采用的方法有质量检查表、质量测试、质量

标准。其中质量测试和质量标准用于定量分析和评价程序的质量。

64.维护阶段是软件生存周期中时间最长的阶段,花费精力和费用最多的阶段。

65.软件交付使用后,由于软件开发过程中产生的错误没有完全彻底在测试阶段

发现,必然有一部分隐含错误带到维护阶段。

66.未按软件工程方法开发的软件,只有程序而无文档,其维护很困难,属于非结构

化维护。

67.维护费用增加的主要原因是维护的生产率非常低。

68.所有软件维护申请报告要按规定方式提出,该报告也称软件问题报告。

69.快速原型开发步骤是:①快速分析;②构造原型;③运行原型;④评价原型;⑤修

改。其中修改过程代替了初始的快速分析,形成原型开发循环过程。

70.结构化方法的本质是功能分解,其稳定性、可修改和可重用性都比较差。

71.对象具有状态,对象用数据值来描述它的状态。

72.对象具有行为,用于改变对象的状态。对象实现了数据和操作的结合。

73.对象的抽象是类,类的具体化就是对象。

74.类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。

75.类具有操作,它是对象的行为的抽象。

76.类之间有两种结构关系,它们是一般----具体关系和整体---部分关系。

77.聚集关系是“整体──部分”关系,关系中有整体类和部分类之分。

78.一般化关系是“一般──具体”的关系,关系中有一般化类和具体类之分。

79.一般化关系和继承是同时存在的。

80.面向对象程序设计语言的最主要特点是继承性,这是其他语言没有的。

81.继承性是子类自动共享父类属性和操作的机制。

82.类的层次结构中,上层类称父类或超类,下层类称子类。

83.关联表示类之间的联系。两个类之间的关联称二元关联,其在对象图上的表示

是在两个类之间画一条直线;三个类之间的关联称三元关联,其在对象图上的表示是在三个类之间的连线上画一个菱形。

84.面向对象分析模型中,对象模型描述系统的静态结构,使用对象图工具;动

态模型描述系统的控制结构,使用状态图工具;功能模型描述系统的所有计算,表明如何从输入值得到输出值,使用数据流图工具。

85.软件工程规范可分为三级:国际标准和国家标准、行业标准、企业标准和开

发小组标准。

86.软件开发人员一般分为:项目负责人、系统分析员、高级程序员、程序员、资

料员和其他辅助人员。

87.主程序员组织机构的制度突出了主程序员的管理,责任集中在少数人身上,

有利于提高软件质量。

88.软件项目管理过程中一个关键活动是制定项目开发计划,这是软件开发工作的

第一步。

89.成本估算是在软件项目开发前,估算项目开发所需的经费、资源及开发进度。

90.差别估算的优点是可以提高估算的准确度,缺点是不易明确“差别”的界限。

91.冗余技术中的结构冗余包括:静态冗余、动态冗余和混合冗余。

92.奇偶码、循环码等冗余码制式属于信息冗余;采用指令复执或程序复算来消除

瞬时错误带来的影响属于时间冗余

93.CASE集成主要有平台集成、数据集成、表示集成、控制集成、过程集成。

94.软件开发环境是与软件生存期、软件开发方法和软件处理模型紧密相关的。

95.软件工具通常由工具、工具接口和工具用户接口三部分构成。

96.软件开发环境是相关的一组软件工具的集合,它支持一定的软件开发方法或按

照一定的软件开发模型组织而成。

97.产品管理包括版本管理和配置管理。开发过程管理包括项目计划与控制和

任务管理等。

98.软件开发环境的主要目标是提高软件开发的生产力、提高软件质量和降低软

件成本。

99.计算机辅助软件工程这一术语的英文为: CASE。

100.CASE是多年来在软件开发管理、软件开发方法、软件开发环境和软件工程等方面研究和发展的产物。

三、名词解释(本大题共4小题,每小题5分, 共20分)

1.软件:软件是计算机程序及其说明程序的各种文档的集合。程序是计算任务的处

理对象和处理规则的描述;文档是有关计算机程序功能、设计、编制、使用的文字或图形资料。软件与硬件一起构成完整的计算机系统。

2.软件生存周期模型:描述软件开发过程中各种活动如何执行的模型。

3.增量模型:一种非整体开发的模型。软件在该模型中是“逐渐”开发出来的,开发

出一部分,向用户展示一部分,可让用户及早看到部分软件,及早发现问题。或者先开发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善。该模型适合于软件需求不明确、设计方案有一定风险的软件项目。

4.需求分析:开发人员准确理解用户要求,进行调查分析,将用户非形式的需求陈述

转化为完整的需求定义,再转换到相应的形式功能规约(需求规格说明)的过程。

5. SA:结构化分析,是以“自顶向下逐层分解”(把一个复杂问题分成若干小问题,

然后再分别解决)为基本思想的面向数据流的需求分析方法。

6. DFD:数据流图。以图形方式描绘数据在系统中流动和处理过程,用于表示系统逻

辑模型(功能模型)的一种工具。

7.软件结构图:描述软件的模块层次结构(即程序的控制层次体系)的图形工具。

8.HIPO图:表示软件系统结构的工具。它既可描述软件总的模块层次结构──H图(层

次图) ,又可描述每个模块输入/输出数据、处理功能及模块调用的详细情况──IPO图。

9.事务型数据流图:加工将它的输人流分成许多发散的数据流,形成许多加工路径并

据输入值选择其中一个路径执行。这种特征的DFD称为事务型数据流图。

10.模块化:自顶向下逐层把软件系统划分成若干模块的过程。

11.抽象:只考虑事物共有的本质特性而暂不考虑其细节的思维方式。

12.信息隐蔽:使模块内的信息(过程或数据)不被不需要这些信息的其他模块访问。

13.模块独立性:每个模块只完成要求的独立的子功能,且与其他模块联系最少且接

口简单。

14.耦合性:软件系统结构中各模块间相互联系的紧密程度。

15.内聚性:模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度。

16.模块的控制范围:受该模块内一个判定影响的所有模块的集合。

17.模块的作用范围:模块本身及其所有下属模块(直接或间接下属模块)的集合。

18.程序设计风格:指一个人编制程序时所表现出来的特点、习惯、逻辑思路等。

19.序言性注释:位于模块起始部分,用以说明模块的用途、功能、接口,描述数据、

开发历史等。

20.功能性注释:嵌在源程序内部,用以描述语句或程序段是做什么或执行后的结果。

21.软件测试:为了发现错误而执行程序的过程。

22.单元测试:对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规

定的功能,从而发现模块在编码中或算法中的错误。(测试①模块接口、②局部数据结构、③重要的执行路径、④错误处理、⑤边界条件) 。

22.集成测试:在单元测试基础上,将所有模块按设计要求组装成一个完整的系统进

行的测试,也称组装测试或联合测试。用于发现模块组装中可能出现的问题。23.确认测试(有效性测试):按照需求规格说明书的要求检测软件,验证软件的功能

和性能及其他特性是否与用户的要求一致。

24.系统测试:将通过了确认测试的应用软件作为整个计算机系统中的一个元素,和

其他系统元素(如硬件,人员,数据库等)结合进行测试,以验证所有系统元素都能否正常配合,从而完成整个系统的功能,达到预期性能。

25.回归测试:在软件修改或调试或增殖了新模块后,使用先前的测试用例对软件重

复曾进行过的测试,以验证软件的修改/调试/增殖后有无引出新的错误,是否仍然满足需求规格说明。

26.渐增式测试:首先对一个模块进行模块测试,然后将这些模块逐步组装成较大的

系统,在组装过程中边连接边测试,以发现连接过程中产生的问题。

27.非渐增式测试(整体拼装):首先对每个模块分别进行模块测试,然后把所有模块

组装在一起,再进行测试。

28.黑盒法:把被测试对象看成一个黑盒子,不考虑程序内部结构和处理过程,只在软

件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求。因此,黑盒测试又称为功能测试或数据驱动测试。

29.白盒法:把测试对象看作一个打开的盒子,测试人员必须了解程序的内部结构和

处理过程,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。

30.合理等价类:正确的输入数据。

31.不合理等价类:错误的输入数据。

32.驱动模块:软件测试时,用于代替所测模块的上层模块的一种辅助模块,它接收测

试数据,把这些数据传送给所测模块,最后输出测试结果。

33.桩模块(存根模块):软件测试时,用于代替所测模块调用的下层子模块的一种辅

助模块。它接受所测模块传送给它的数据并向所测模块返回必要的返回数据。

34.调试:根据测试结果,确定错误的原因和位置并改正错误的过程,也称为纠错。

35.校正性维护:为纠正错误,弥补缺陷而修改软件的过程。21%

36.适应性维护:为使软件适应其运行环境变化而修改软件的过程。25%

37.完善性维护:为使软件增加功能、增强性能而修改软件的过程。50%

38.预防性维护:为提高软件的可维护性和可靠性而修改软件的过程。4%

39.软件可维护性:软件能够被理解、修改的容易程度。

40.维护副作用:因修改软件而造成的错误或其他不希望出现的情况。

41.对象:封装了数据结构及可施加在这些数据结构上的操作的封装体,这个封装体

有可唯一地标识它的名字,而且向外界提供一组服务。

42.类:具有相同属性和相同操作的一组相似对象的抽象

43.状态:对象的静态性质和特征,用数据值(属性值)描述。

44.属性:类的静态性质和特征(状态的抽象),用数据结构描述。不同对象的同一属

性可有相同或不同的属性值。

45.行为:对象的动态性质,用操作描述。

46.操作:类的动态性质(类中对象所使用的一种功能或变换),用操作名和方法描述。

类中各对象可共享操作,每个操作都有一个目标对象作为其隐含参数。

47.方法:类控制操作的实现步骤。

48.消息:对象之间进行通信的构造,是对象要执行的操作的一个说明。

49.消息传递:一个对象发送消息给另一个对象,接收消息的对象经过解释后给予响

应,这种通信机制称为消息传递。

50.链:对象之间的物理或逻辑联系,即关联的实例。

51.关联:类之间的联系,即链的抽象

52.角色:类在关联中的作用,位于关联的端点。

53.关系:类之间的静态结构关系。①聚集关系(组装关系,整体─部分关系);②一般

化关系(分类关系,归纳关系,一般─具体关系):一般化关系和继承同时存在。

54.继承:子类自动共享父类数据结构和方法(属性和操作) 的机制。

55.单重继承:子类只继承一个父类的数据结构和方法。

56.多重继承:子类继承了多个父类的数据结构和方法。

57.多态性:相同的操作可作用于多种类型的对象上并获得不同结果。即不同的对象,

收到同一消息可以产生不同的姑果,这种现象称为多态性。

58.封装性:指所有软件部件内部都有明确的范围以及清楚的外部边界,软件部件的

内部实现与外部可访问性分离。

59.事件:指定时刻发生的某件事情。是某事情发生的信号,没有持续时间。

60.重用性:同一事物不经修改或稍加修改就可多次重复使用的性质。

61.对象模型(数据模型):描述系统的静态结构(静态的、结构化的系统数据性质),

从客观实体的对象关系角度表现对象的相互关系。主要关心系统中对象的结构、属性和操作,使用对象图作描述工具,是分析阶段三个模型的核心,其他两个模型的框架。

62.动态模型(操作模型):描述系统的控制结构(与时间和变化有关的系统性质),关

心系统的控制,操作的执行顺序,从对象的事件和状态角度表现对象的相互行为。

使用状态图作描述工具。

63.功能模型:描述系统的所有计算,表明一个功能如何从输入值得到输出值,不考虑

计算次序。使用数据流图/用例图作描述工具。功能模型也包括对象模型中值的

结束条件,说明对象模型中操作的含义、动态模型中动作的意义及对象模型中约束的意义。

64.时间冗余:以重复执行指令(指令复执)或程序(程序复算)来消除瞬时错误的影

响。复执不成功时,通常发出中断,转入错误处理程序,或对程序进行复算,或重新组合系统,或放弃处理。

65.人力资源:工作要求的人员的数量、级别及其工作时段。

66.硬件资源:工作所需的硬件支持和测试设备。

67.软件资源:工作所需的支持软件和应用软件。

68.专家估算:依靠专家对项目做出估算。

69.类推估算:自顶向下法中,它是将估算项目的总体参数与类似项目直接比较得到

结果。自底向上方法中,类推是在两个具有相似条件的工作单元之间进行。

70.工程网络图:常用来描述项目进度的一种图形工具,是有向图,用圆表示事件,箭

头表示子任务的进行;箭头上的数字表示此子任务的持续时间;箭头下面括号中的数字表示任务的机动时间;圆左边部分的数字表示事件号,右上部的数字表示前一子任务结束或后一子任务开始的最早时刻,右下部的数字表示前一子任务结束或后一子任务开始的最迟时刻。

71.软件配置管理:一组管理整个软件生存期各阶段中变更的活动。其主要目标是:

标识变更;控制变更;确保变更正确地实现;报告有关变更。

72.基线:软件生存期中各开发阶段的一些特定点,作用是把开发各阶段工作的划分

更加明确化,使本来连续的工作在这些点上断开,以便于检查与肯定阶段成果。73.软件开发环境:①软件开发环境是一组相关工具的集合;②这些相关工具是按一

定的开发方法或一定开发处理模型组织起来的;③这些相关工具支持整个软件生存期的各阶段或部分阶段。

74.软件工具:为支持计算机软件的开发、维护、模拟、移植或管理而研制的程序系

统。

75.程序设计环境:解决如何将规范说明转换成可工作的程序问题,包括方法与工具。

76.系统合成环境:主要考虑把很多子系统集成为一个大系统的问题。用于辅助控制

子系统及其向大系统的集成。

77.项目管理环境:是解决由于软件产品的规模大、生存期长、人们的交往多而造成

的问题。

78.CASE:用于辅助软件开发各阶段进行软件开发的一组工具和方法的集合。

79.平台集成:工具运行在相同的硬件/操作系统平台上。

80.数据集成:工具使用共享数据模型来操作。

81.表示集成:工具提供相同的用户界面。

82.控制集成:工具激活后能控制其他工具的操作。

83.过程集成:工具在一个过程模型和“过程机”的指导下使用。

84.CASE工作台:CASE工作台是一组工具集,支持像设计、实现或测试等特定的软件

开发阶段。

85.CASE生存期:CASE系统从初始需求到完全废弃。6阶段:需求;剪裁;引入;操作;

演化;废弃。

四、简答题(本大题共4小题,每小题5分,共20分)

1.软件产品的特点有哪些?

答:①逻辑产品;②使用无磨损;③生产主要是研制;④生产主要靠脑力劳动;⑤生产成本高。

2.软件危机的主要表现有哪些?

答:⑴经费预算一再突破。软件开发的经验和数据积累的缺乏使开发计划很难制定。

主观盲目制定计划,执行起来与实际情况有很大差距,使开发经费一再突破。

⑵完成时间一再拖延。工作量与开发难度估计的不足使进度计划无法按时完成。

⑶开发的软件不能满足用户要求。开发初期对用户要求了解不够明确,开发工作

开始后,软件人员和用户又未及时交换意见,一些问题不能及时解决,导致开发的软件不能满足用户要求。

⑷开发的软件可维护性差。开发过程没有统一规范,开发人员各行其是;无完整、

规范的文档;发现问题后进行杂乱无章的修改;程序结构不好,发现错误也很难修改,导致维护性差。

⑸开发的软件可靠性差。开发过程中没有确保软件质量的体系和措施,软件测试

时又没有严格、充分、完全的测试,提交的软件质量差,在运行中暴露出大量问题。

3.软件危机主要原因有哪些?

答:①软件规模越来越大,结构越来越复杂;②开发技术落后;③生产方式落后;④开发工具落后,生产率低;⑤开发管理复杂且困难;⑥开发费用不断增加。

4.消除软件危机的主要途径有哪些?

答:①技术措施:研究和使用更好的开发方法和工具;②管理措施:良好组织,严密管

相关文档
相关文档 最新文档