您的当前位置:首页正文

历年软件工程复习题与答案

2020-09-13 来源:步旅网
一、单项选择题

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.在软件生存周期中,时间最长的阶段是( D ) A.需求分析 C.编码 A.瀑布模型 C.螺旋模型

3.以下不适用于需求分析的工具是( C ) .A.数据流图 C.PAD图 A.时间内聚 C.顺序内聚

5.系统流程图中 符号的名称是( A ) A.联机存储 C.磁盘

6.数据流图中的每个加工至少有( D ) A.一个输入流或一个输出流 C.一个输入流 A.可行性分析 C.概要设计

A.从数据结构导出程序结构 C.从模块结构导出数据结构

9.过程设计语言(PDL),又称为( A ) A.伪码 C.中级程序语言

10.单元测试阶段主要涉及的文档为( B ) A.需求设计 C.详细设计 A.编码副作用 C.文档副作用 A.Pascal C.Fortran A.系统分析 C.自动分析数据

14.结构化软件设计是( C ) A.面向数据结构的 C.面向数据流的 A.可用性 C.适应性 A.一般具体

B.面向数据库的 D.面向对象设计的 B.完整性 D.互操作性 B.has a

B.编码和详细设计 D.概要设计 B.测试副作用 D.数据副作用 B.C D.Prolog

B.软件的自动化生成 D.测试软件 B.高级程序设计语言 D.低级程序设计语言 B.一个输出流

D.一个输入流和一个输出流 B.需求分析 D.详细设计

B.从数据流图导出初始结构图 D.从模块结构导出程序结构 B.处理 D.文档 B.判定表 D.数据字典 B.逻辑内聚 D.功能内聚 B.详细设计 D.维护 B.增量模型 D.喷泉模型

2.以下最适合于面向对象的软件开发的软件生存周期模型是( D )

4.以下几种模块内聚类型中,内聚性最低的是( B )

7.HIPO图是软件工程中的一种描述工具,采用HIPO图进行描述的阶段是( C )

8.Jackson方法是软件开发过程中常用的方法,使用Jackson方法可以实现( A )

11.软件维护会产生副作用,下面选项中不属于维护副作用的是( B ) ...

l2.以下不适合作为科学工程计算的语言是( B ) .

l3.PAD图为下列哪个方面提供了有力的工具( A )

15.在McCall软件质量度量模型中,面向软件产品修改的质量因素为( B )

16.汽车是一种交通工具,汽车类和交通工具类之间的关系是( 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.顺序迭代模型 C.线性迭代模型

B.线性顺序模型 D.非线性模型

20.对于使用原型的建议,下面说法错误的是( C ) ..A.开发周期很长的项目,可通过原型开发来缩短开发周期

B.系统的使用可能变化较大,不能相对稳定,而原型模型具有适应变化的机制 C.缺乏开发工具,或对原型的可用工具不了解的时候宜使用原型 D.用户对系统的需求较为模糊,对某种要求缺乏信心时宜使用原型 21.以下哪一项不是软件危机的表现( B ) ..A.开发的软件可维护性差 C.经费预算经常被突破 A.瀑布模型 C.螺旋模型

23.各种需求分析方法都有共同适用的( D ) A.分析方法 C.表示方法

24.结构化分析建立功能模型的工具是( A ) A.DFD C.DD A.功能内聚 C.通信内聚

A.技术可行性、经济可行性、社会可行性 B.经济可行性、安全可行性、操作可行性 C.经济可行性、社会可行性、系统可行性 D.经济可行性、实用性、社会可行性

27.以下哪一项对模块耦合性没有影响( D ) ..A.模块间接口的复杂程度 B.调用模块的方式 C.通过接口的信息

D.模块内部各个元素彼此之间的紧密结合程度

28.检查软件产品是否符合需求定义的过程称为( A ) A.确认测试 C.系统测试

A.程序流程图可以描述结构化程序

B.集成测试 D.单元测试

B.程序流程图不能描述结构化程序 B.判定树/判定表 D.结构化语言 B.顺序内聚 D.逻辑内聚

B.说明方法 D.基本原则 B.软件极易被盗版

D.开发的软件不能满足用户需求 B.增量模型 D.喷泉模型

22.以下哪个软件生存周期模型是一种风险驱动的模型( C )

25.模块中所有成分结合起来完成一项任务,该模块的内聚性是( A )

26.系统定义明确之后,应对系统的可行性进行研究,可行性研究应包括( A )

29.下面关于详细设计的叙述中,错误的是( B ) ..

C.NS图描述的程序一定是结构化的 D.PAD图描述的程序一定是结构化的 30.在整个软件维护阶段所花费的全部工作中,所占比例最大的是( C )

A.校正性维护 B.适应性维护 C.完善性维护

D.预防性维护 31.以下不属于...序言性注释的有( C ) A.模块设计者 B.修改日期 C.程序的整体说明

D.语句功能 32.集成测试是为了发现( A ) A.接口错误

B.编码错误 C.性能、质量不合要求 D.功能错误 33.一个只有顺序结构的程序,其环形复杂度是( B )

A.0 B.1 C.3

D.5

34.结构化程序设计,主要强调的是( C ) A.程序的执行效率 B.模块的内聚 C.程序的可理解性

D.模块的耦合

35.下面关于文档的叙述,错误..

的是( A ) A.文档是仅用于说明使用软件的操作命令,不包括软件设计和实现细节 B.文档是软件产品的一部分,没有文档的软件就不成为软件 C.高质量文档对于转让、变更、修改、扩充和使用有重要的意义

D.软件文档的编制在软件开发工作中占有突出的地位和相当大的工作量 36.在McCall软件质量度量模型中,面向软件产品操作的质量因素是( A ) A.正确性 B.可维护性 C.适应性

D.互操作性

37.对度量法,叙述错误..

的是( C ) A.度量法是一种基于程序控制流的复杂性度量法

B.度量法以图论为工具,用图的环路数作为程序复杂性的度量值 C.度量法不能区分简单IF语句和循环语句的复杂性 D.度量法对模块间的接口和简单IF语句区分对待

38.在快速原型模型的开发过程中,仅用于代替设计阶段的原型是( C ) A.探索型模型 B.演化型模型 C.实验型模型

D.提交型模型

39.对于构造原型的建议,下面说法错误..

的是( D ) A.暂不考虑错误恢复和处理,但应考虑速度、空间等性能效率方面的要求

B.可降低可靠性和软件质量标准

C.原型界面部分的设计,最好能与最终系统的界面相容

D.根据不同的软件类型和应用领域,可使用不同风格的高级语言来构造原型

40.面向对象开发方法中,将在面向对象技术领域内占主导地位的标准建模语言是(A.Booch方法 B.Coad方法 C.UML语言

D.OMT方法

4l.以下哪一项不.是软件产品所具有的特性( C ) A.软件是逻辑产品

B.软件产品不会用坏,不存在磨损、消耗问题 C.随着技术的提高,软件开发的费用不断降低 D.软件产品的成本主要体现在软件的开发与研制上

42.“确定软件系统必须做什么”是哪个阶段的任务( B ) A.可行性分析和项目开发计划

B.需求分析 C ) C.概要设计 D.详细设计

43.以下哪一项不.是软件测试时需要的信息( B ) A.软件配置 B.软件结构 C.测试工具

D.测试配置

44.结构化分析方法的分析策略是( B ) A.自底向上的抽象 B.自顶向下的分解 C.用DFD建模

D.用DD描述数据需求 45.一组语句在程序中多处出现,为了节省存储,将这些语句组成一个新的模块,该模块的内聚性为( C ) A.功能内聚 B.顺序内聚 C.偶然内聚

D.逻辑内聚

46.系统流程图是描绘以下哪一项的工具( C ) A.软件结构 B.逻辑系统 C.物理系统

D.软件功能 47.数据库的设计一般要进行三个方面的设计:概念设计、逻辑设计和物理设计,其中逻辑设计对应于系统开发的什么部分(A.可行性分析 B.需求分析 C.概要设计

D.详细设计

48.以下哪种语言可用于描述模块算法设计和处理细节( B ) A.UML语言 B.过程设计语言 C.FORTRAN语言

D.Pascal语言

49.软件维护是软件生命周期中的固有阶段,一般认为,以下哪种软件维护在整个维护活动中所占的比例最小( C ) A.校正性维护 B.适应性维护 C.预防性维护

D.完善性维护

50.软件测试方法中,黑盒、白盒测试法是常用的方法,其中白盒测试主要用于测试( D ) A.结构合理性 B.软件外部功能 C.程序正确性

D.程序内部逻辑

51.使用Jackson方法可以得到( D ) A.程序流程图

B.具体的语言程序 C.模块结构图及模块的功能说明书

D.分层数据流图 52.以下哪种测试的任务是检查软件的功能与性能是否与需求规格说明书中确定的指标相 符合( B ) A.集成测试 B.确认测试 C.单元测试

D.系统测试

53.与编程风格有关的因素不.包括( B ) A.源程序文档化 B.语句构造 C.输入输出

D.模块间耦合性 54.对于构造原型的建议,下面说法错误..的是( D ) A. 暂不考虑速度、空间等性能效率方面的要求。 B.暂不考虑错误恢复和处理。

C ) C.可降低可靠性和软件质量标准。

D.原型界面部分的设计,暂不考虑与最终系统的界面相容。 55.有关软件项目进度安排的叙述,错误..

的是( C ) A.Gantt图常用水平线段来描述把任务分解成子任务,以及每个子任务的进度安排。 B.Gantt图中线段的长度表示完成子任务所需要的时间。

C.工程网络图是一种有向图,用圆表示事件,用有向弧或箭头表示任务,有向弧或箭头 的长度表示子任务持续的时间。

D.工程网络图只有一个开始点和一个终止点,开始点没有流入箭头,终止点没有流出箭 头。

56.以下哪一项是软件开发环境中的主要组成部分( C ) A.软件模型 B.软件工程 C.软件工具

D.硬件环境

57.对于一个大型系统,若对设计方案没有把握,可以通过以下哪种原型来证实设计方案的正确性。( B ) A.探索型 B.实验型 C.演化型

D.增量型

58.对UML的叙述不正确...

的是( D ) A.UML统一了Booch方法、OMT方法、OOSE方法的表示方法。 B.UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。 C.UML融入了软件工程领域的新思想、新方法和新技术。

D.UML仅限于支持面向对象的分析与设计,不支持其它的软件开发过程。

59.在McCall软件质量度量模型中,以下哪一项是面向软件产品适应的质量因素( D ) A.可用性 B.可维护性 C.适应性

D.可重用性 60.下面说法错误..的是( D ) A.软件可靠性能够定量计算。

B.MTBF是指两次相继失效之间的平均时间。

C.MTTF是一个描述失效模型或一组失效特性的指标量。 D.MTTF与失效率λ成正比

61.软件开发环境按解决的问题分类包含( A ) A.程序设计环境 B.工具箱环境

C.基于方法的环境

D.以语言为中心的环境 62.为了提高软件产品的质量和可靠性,对某些无法避开的差错,使其影响减至最小程度所采用的技术是( A A.容错技术 B.避开错误技术 C.检测技术

D.排错技术

63.软件复杂性的常用度量方法包括( D ) A.BOEHM度量法 B.可扩充度量法 C.线性度量法

D.代码行度量法 64.面向对象的要素包含( B )

) A.对象的唯一性 C.继承性

65.构造原型时,主要考虑( B ) A.全部功能 C.全部细节

B.抽象 D.分类性

B.原型要体现的特征 D.全部要求

66.维护中,因修改文件的打开或关闭而引起的错误是( C ) A.文档副作用 C.编码副作用

B.数据副作用 D.设计副作用

67.诊断和消除程序在使用过程中发生错误的过程称为( A ) A.校正性维护 C.完善性维护

B.适应性维护 D.预防性维护

68.在白盒技术测试用例的设计中,以下覆盖标准中发现错误能力最强的是( C ) A.语句覆盖 C.条件组合覆盖

69.软件调试技术包括( A ) A.回溯法调试 C.边界值分析调试

B.循环覆盖调试 D.集成测试调试 B.判定/条件覆盖 D.判定覆盖

70.在软件测试中,首先对每个模块分别进行单元测试,然后再把所有的模块按设计要求组装在一起测试,称为( D ) A.确认测试 C.渐增式测试

B.系统测试 D.非渐增式测试

71.源代码的可维护性表现了程序设计语言的( B ) A.心理特性 C.技术特性

B.工程特性 D.传统特性

72.至今已有好几百种不同的高级语言,它们有的是用于数值计算,有的是用于商业管理,有的是用于编写系统软件。以下语言中较

适用于数值计算的语言是( D ) A.BASIC C.LISP

B.SQL D.FORTRAN

73.在JSP方法中解决结构冲突的具体办法是( A ) A.引入中间数据结构或中间文件 C.删除某个输出数据结构

B.删除某个输入数据结构 D.增加某个输入或输出数据结构

74.模块的内聚性可以按照内聚程度的高低进行排序,以下排列中属于从低到高的正确次序是( C ) ....A.偶然内聚,时间内聚,逻辑内聚 B.通信内聚,时间内聚,逻辑内聚 C.逻辑内聚,通信内聚,顺序内聚 D.功能内聚,通信内聚,时间内聚

75.以下软件生存周期的活动中,要进行软件结构设计的是( B ) A.测试用例设计 C.程序设计

B.概要设计 D.详细设计

76.能够清楚地表示复杂的条件组合与应做的动作之间的对应关系的工具是( C ) A.结构化语言 C.判定表

B.PAD图 D.程序流程图

77.需求分析方法必须能够表达和理解问题的数据域和( C ) A.数据流 C.功能域

B.用户类型 D.应用领域

78.以用户需求为动力,以对象作为驱动的模型是( C ) A.瀑布模型 C.喷泉模型

B.基于知识的模型 D.增量模型

79.把软件生产的全过程人为地划分为若干阶段使得软件人员能根据每一阶段的不同特点更好地组织和管理软件项目的开发,这种概

念就是( D ) A.软件项目管理 C.软件项目计划

B.软件工程 D.软件生存期

80.在软件生存期的各个阶段中跨越时间最长的阶段是( D ) A.需求分析阶段 C.测试阶段

B.设计阶段 D.维护阶段

81.Wasserman提出的软件工程环境的五级模型中,支持工作台或环境中一个工具对系统中其它工具的访问称为( C ) A.平台集成 C.控制集成

B.表示集成 D.过程集成

82.以下被详细设计阶段用来描述处理过程的工具是( C ) A.软件结构图 C.数据流图

B.程序流程图 D.对象图

83.在McCall软件质量度量模型中,属于面向软件产品适应的是( C ) A.可用性 C.适应性

B.可维护性 D.可互操作性

84.在实现系统功能时,为了增加系统的可靠性,在规定功能之外,多加入了一些资源,这种技术称为( A ) A.冗余技术 C.可重用技术

B.可靠性技术 D.检测技术

85.快速原型思想是在研究以下哪个阶段的方法和技术中产生的?( D ) A.软件开发 C.编码

B.设计 D.需求分析

86.软件维护中,因修改交互输入的顺序,没有正确的记录而引起的错误是以下哪一项产生的副作用?( A ) A.文档 C.编码

87.以下属于软件维护阶段文档的是( C ) A.软件需求说明 C.软件问题报告

B.操作手册 D.测试分析报告 B.数据 D.设计

88.以下哪一项属于白盒技术设计测试用例的方法?( A )

A.循环覆盖 B.等价类划分 C.边界值分析

D.因果图

89.效率是一个性能要求,因此应当在以下哪个阶段规定?( B ) A.可行性分析 B.需求分析 C.概要设计

D.详细设计

90.PAD图的优点之一是支持逐步求精的设计方法,其逐步细化的方式为( B ) A.由右到左 B.由上到下 C.由下到上

D.由左到右

91.在模块的四种基本属性中,反映模块内部特性的是( C ) A.接口 B.功能 C.逻辑

D.状态

92.模块的耦合性可以按照耦合程度的高低进行排序,以下哪一项符合从低到高的正确次序?( D A.标记耦合,公共耦合,控制耦合,内容耦合 B.数据耦合,控制耦合,标记耦合,公共耦合 C.无直接耦合,标记耦合,内容耦合,控制耦合 D.无直接耦合,数据耦合,控制耦合,内容耦合

93.在建立软件系统的模块结构时,评价系统模块划分质量的根据为( C ) A.数据独立性 B.程序独立性 C.模块独立性

D.设备独立性

94.PDL是描述处理过程( C ) A.做什么 B.为什么做 C.怎么做

D.对谁做 95.结构化语言是介于自然语言和形式语言之间的一种( D ) A.半形式语言 B.半自然语言 C.过程描述语言

D.高级语言

96.软件需求分析产生的重要文档一个是软件需求分析规格说明书,另一个可能产生的文档是( C A.软件维护说明书 B.概要设计说明书 C.可行性分析报告

D.初步的用户手册

97.结构化分析(SA),是面向下面哪一项进行需求分析的方法?( D ) A.过程 B.对象 C.用户

D.数据流

98.系统流程图用于可行性分析中描述以下哪一方面?( D ) A.目标系统 B.当前运行系统 C.新系统

D.当前逻辑模型

99.为了克服软件危机,人们首先想到要用以下哪种方法来开发软件?( D ) A.模块化 B.结构化 C.工程化

D.形式化

100.以下哪一项是面向数据结构的软件开发方法?( D )

)) A.IDEF方法 C.VDM方法

二、填空题

B.结构化方法 D.JACKSON方法

请在每小题的空格中填上正确答案。错填、不填均无分。

1.为了支持软件人员开发和维护活动而使用的软件一般是指_____软件工具______。 2.在IDEF0方法中,一个活动可以无输入,但必须至少有一个__控制箭头___。 3.在软件结构的设计中,各个模块之间要力求降低耦合性,提高___内聚性_____。 4.在类的层次结构中,通常上层类称为父类或超类,下层类称为___子类___。 5.数据流图(DFD)一般可分为变换型和___事务型____两类。

6.软件维护的内容包括校正性维护、适应性维护、___完善性维护___和预防性维护。。 7.软件的生产经历了三个阶段,分别是程序设计时代、程序系统时代和___软件工程时代____。 8.渐增模型是瀑布模型的变种,分为两类:增量构造模型和___演化提交模型___。 9.状态图反映了___事件与状态___的关系。

10.软件项目管理过程一个关键的活动是__制定项目计划__,它是软件开发工作的第一步。 11.组成软件的两个部分是:___程序和文档____。

12.项目开发计划的主要内容包括项目概述、___实施计划___、人员组织及分工、交付期限。 13.为了克服软件危机,1968年北大西洋公约组织的工作会议上首先提出了__软件工程__的概念。 14.变换型数据流图是由输入、___变换(或处理)____和输出三部分组成的。 15.Jackson方法是一种面向_____数据结构的______的开发方法。 16.结构化语言是介于__自然语言__和形式语言之间的一种半形式语言。

17.软件产品在交付使用之前一般要经过___单元测试____、集成测试、确认测试和系统测试。

18.不采用软件工程的方法开发软件,软件只有程序而无文档,从而导致维护工作困难,这是一种_结构化___的维护。 19.子类自动共享父类数据结构和方法的机制是____继承性____,这是类之间的一种关系。 20.软件版本控制是属于__软件控制__的活动内容。

21.软件生产的发展经历了三个阶段,分别是程序设计时代、程序系统时代和__软件工程时代__时代。 22.可行性研究从以下三个方面研究每种解决方法的可行性:经济可行性、社会可行性和_技术可行性_。

23.HIPO图的H图用于描述软件的层次关系,矩形框表示一个模块,矩形框之间的直线表示模块之间的___调用_____关系。 24.数据流图描绘数据在系统中___流动和处理___的过程。

25.为了便于对照检查,测试用例应由输入数据和预期的___输出数据___两部分组成。 26.软件详细设计阶段常采用的工具有图、表和__语言__。

27.由于运用原型的目的和方式不同,在使用原型中可以采取___抛弃___策略和附加策略。 28.实现容错技术的主要手段是____冗余____。

29.软件开发环境的目标是提高软件开发的生产率和___降低软件的费用___。 30.面向对象分析的目的是对____目标系统_____进行建模。

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

32.软件工程管理中的控制包括进度控制、人员控制、经费控制和____质量控制______。 33.软件开发的原型模型可以分为三类,它们是:探索型原型、实验型原型和__演化型原型__。 34.软件复杂性主要表现在程序的复杂性。程序的复杂性主要指_____模块内______程序的复杂性。 35.白盒法中__基本路径测试__首先以详细设计或源程序为基础,导出控制流程图的拓扑结构(程序图)。 36.在软件的详细设计中,根据控制流程从上到下,从左到右展开的设计工具是___PAD图__。

37.一个模块通过传递开关、标志对某一模块的多种功能进行选择,则这两个模块之间的耦合方式是____控制耦合_____。

38.结构化分析是面向____数据流____进行需求分析的方法。

39.有效的模块化是通过定义一组____相互独立____的模块来实现信息隐蔽的,这些模块彼此之间仅交换那些为了完成系统功能所必

须的信息。

40.在软件生产中,____软件工程过程_____的作用是规定了获取、供应、开发、操作和维护软件时,要实施的过程、活动和任务。 41.开发软件工具的主要目的是为了提高软件生产率和__改善软件的质量___。

42.确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动称为__软件质量保证活动_。 43.面向对象分析阶段所使用的三种模型是___对象模型___、动态模型和功能模型。 44.在软件测试的所有覆盖方法中发现错误能力最弱的覆盖是___软件测试语句覆盖____。 45.黑盒测试又被称为数据驱动测试或__功能测试___。

46.PDL具有严格的关键字外层语法,用于定义_____控制结构_____、数据结构和模块接口。

47.如果一个模块可调用n个模块,其中直接的下属模块的个数是m个(m<=n),那么该模块的扇出数是___m__个。 48.在概要设计阶段,形成软件结构并经过优化改进后,还应为每个模块写一份处理说明和提供一份___接口说明____。 49.描述加工逻辑的三种工具是结构化语言、判定表、___判定树___。

50.计算机辅助软件工具简单地定义为软件开发自动化,通常简称为___CASE____。

三、名词解释题 1.软件开发方法

软件开发方法是一种使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。 2.耦合性

用于衡量不同模块彼此间互相依赖(连接)的紧密程度。 3.多态性

指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果。不同的对象,收到同一消息可以产生不同的结果。 4.软件质量保证

是指在软件开发过程中,为了保证产品满足指定标准而进行的各种活动。 5.确认测试

确认组装完毕的程序是否满足软件需求规格说明书(SRS)的要求。 6.软件生存周期

一个软件从提出开发要求直到该软件报废为止的整个时期。 7.需求分析

需求分析是指开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求成熟转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程。 8.程序设计风格

程序设计风格指一个人编制程序时所表现出来的特点,习惯逻辑思路等。 9.白盒测试

该方法把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。 10.基线

基线(Baseline),基线是软件文档或源码(或其它产出物)的一个稳定版本,它是进一步开发的基础.所以,当基线形成后,项目负责SCM的人需要通知相关人员基线已经形成,并且哪儿可以找到这基线了的版本.这个过程可被认为内部的发布.至于对外的正式发布,更是应当从基线了的版本中发布. 11.软件开发方法 12.软件项目的纯收入

在整个生存周期之内的累计经济效益与投资之差。 13.完善性维护

增加软件功能、增强软件性能、提高软件运行效率而进行的维护活动。 14.类的继承性

继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。 15.软件工具

软件工具一般是指为了支持软件人员开发和维护活动而使用的软件。 16.软件开发环境

指在计算机的基本软件的基础上,为了支持软件的开发而提供的一组工具软件系统。 17.错误推测法

在测试程序时,人们可能根据经验或知觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。 18.黑盒测试法

把被测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求。 19.软件质量保证 20.瀑布模型

将软件生存周期各个活动规定为依线性顺序连接的若干阶段的一种软件开发模型。它包括可行性分析,项目开发计划,需求分析,概要设计,详细设计,编码,测试和维护。 21.软件可靠性

(1)在规定的条件下,在规定的时间内,软件不引起系统失效的概率; (2)在规定的时间周期内,在所述条件下程序执行所要求的功能的能力; 22.类的继承性 23.白盒测试法 24.信息隐蔽

信息隐蔽指在设计和确定模块时,使得一个模块内包含信息(过程或数据),对于不需要这些信息的其他模块来说,是不能访问的。 25.模块化

模块化是指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程。每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。

四、简答题

1.简述可行性研究的目的和任务。

答:(1)软件可行性研究的目的:就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。注意,可行性研究的目的不是去开发一个软件项目,而是研究这个软件项目是否值得去开发,其中的问提能否解决。可行性研究实质上是要进行一次简化、压缩了的需求分析、设计过程,要在较高层次上以较抽象的方式进行需求分析和设计过程。

(2)可行性研究的任务 :

技术可行性:对要开发项目的功能、性能、限制条件进行分析,确定在现有的资源条件下,技术风险有多大,项目是否能实现。包括:开发的风险;资源的有效性;技术;开发人员在评估技术可行性时,一旦估计错误,将会出现灾难性后果。 经济可行性:包括成本――效果分析、公司经营长期策略、开发所需的成本和资源、潜在的市场前景。 社会可行性包括:合同、责任、侵权、用户组织的管理模式及规范,其他一些技术人员常常不了解的陷阱等。 2.什么是模块化?软件结构设计的优化准则是什么?

答:模块化是按规定的原则将一个大型软件划分为一个个较小的、相对独立但又相关的模块。 模块设计的准则:

(1) 改进软件结构, 提高模块独立性。在对初步模块进行合并、分解和移动的分析、精化过程中力求提高模块的内聚,降低藕合。 (2) 模块大小要适中。大约50行语句的代码,过大的模块应分解以提高理解性和可维护性;过小的模块,合并到上级模块中。 (3) 软件结构图的深度、宽度、扇入和扇出要适当。一般模块的调用个数不要超过5个。 (4) 尽量降低模块接口的复杂程度。 (5) 设计单入口、单出口的模块。 (6) 模块的作用域应在控制域之内。 3.简述详细设计的基本任务。

答:(1)为每个模块确定采用的算法;(2)确定每一模块使用的数据结构;(3)确定模块接口的细节;(4)编写过程设计说明书;(5)设计每一模块的测试用例。

4.简述软件测试的任务、目的与类型。

答:(1)软件测试是一个为了寻找软件错误而运行程序的过程。

(2)目的就是为了发现软件中的错误。一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例。一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。

(3)软件测试主要分为白盒测试和黑盒测试两大类。 5.简述软件工程过程的含义、目的以及包含的子过程。

答:软件工程过程含义:规定了获取、供应、开发、操作和维护软件时,要实施的过程、活动和任务

目的:为各种人员提供一个公共的框架,以便用相同的语言进行交流

子过程:获取过程、供应过程、开发过程、操作过程、维护过程、管理过程、支持过程 6.数据字典的作用是什么,它有哪些条目?

答:数据字典,主要用来描述数据流程图中的数据流、数据存储、处理过程和和数据源点/终点。

作用:数据流程图描述了系统的逻辑结构,其中的四个基本图形元素的含义无法在数据流程图中详细说明,因此数据流程图需要与其他工具配合使用,数据字典就是这样的工具之一。

包括的条目:数据流词条,数据元素词条,数据存储词条,数据加工处理词条,数据源点及终点词条 7.简述结构化程序设计方法的基本要点。

答:(1)采用自顶向下,逐步求精的程序设计方法 (2)使用三种基本控制结构构造程序,分别是顺序,选择和循环 (3)采用主程序员组的组织形式 (4)采用单入口单出口的模块形式。 8.简述原型的开发步骤。

答:快速原型开发步骤可划分下列阶段:

(1)快速分析:迅速确定基本需求、集中力量确定需求说明。

(2)快速构造原型:在快速分析基础上,在强有力的软件工具支持下,快速构造所需原型。

(3)运行原型:在开发者指导下,用户参与原型的运行,各类人员在共同运行原型中进一步加深对系统的了解及相互间的理解,以发

现各种问题。

(4)评价原型;在运行基础上,根据原型目标,考核原型的特性,分析原型效果是否满足用户需求,提出修改意见。

(5)修改原型:在评价基础上进行修改。若不满足需求说明,则根据明确的需求修改原型。若不满足用户需求,则先修改并明确用户

需求,再重新构造原型。

9.简述软件工程研究的内容和它所面临的主要问题。 答:内容:①软件开发技术②软件开发管理

面临的主要问题:①软件费用②软件可靠性③软件维护④软件生产率⑤软件重用 10.说明需求分析的定义,并简述需求分析的基本任务。

答:(1)定义:需求分析是指开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求成熟转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程。

(2)基本任务:要准确地定义新系统的目标,为了满足用户需要,回答系统必须“做什么”的问题。 11.就程序设计语言的工程特性而言,对程序编码有哪些要求?

答:(1)可移植性;(2)开发工具的可利用性;(3)软件的可重用性;(4)可维护性。 12.简述提高软件可维护性的方法。

答:(1)建立明确的软件质量目标。(2)利用先进的软件开发技术和工具。(3)建立明确的质量保证工作。

(4)选择可维护的程序设计语言。(5)改进程序文档。 13.说明面向对象的要素以及这些要素的具体含义。

答:(1)抽象:抽象是指强调实体的本质。内在的属性,忽略一些无关紧要的属性。

(2)封装性(信息隐蔽):封装性是指所有软件部件内部都有明确的范围以及清楚的外部边界。 (3)共享性:面向对象技术在不同级别上促进了共享。 14.增量构造模型有什么特点?

答:增量构造模型是部分阶段进行增量开发,即在该模型中,需求分析阶段和设计阶段与瀑布模型一样,按瀑布模型方式进行开发,

而编码和测试阶段不采用瀑布模型方式,而采用增量方式开发,即针对部分功能进行编码,进行测试,将这分功能提交用户,然后再对另一部分功能编码,测试提交用户,直至把全部功能按这种方式开发完毕,在这种模型中,用户可以及早看到部分软件功能,及早发现问题,以便在其他软件功能开发时及时解决。 15.软件测试要经过哪些步骤?简述这些测试的基本任务。 答:(1)单元测试,集成测试,确认测试,系统测试。

(2)单元测试:对源程序中的每个程序单元进行测试,检查各模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。

集成测试:检查与设计相关的软件结构的有关问题。

确认测试:主要检查已实现的软件是否满足需求规格说明书中确定了的各种需求。 系统测试:把已确认的软件与其他系统元素结合在一起进行测试。

16.简述需求分析方法应遵循的基本原则。

答:(1)必须能够表达和理解问题的数据域和功能域。 (2)可以把一个负责问题按功能进行分解并可逐层细化。 (3)建模。 17.模块间的耦合性包括哪些类型?

答: (1)无直接耦合 (2)数据耦合 (3)标记耦合 (4)控制耦合 (5)公共耦合 (6)内容耦合。 18.软件维护的困难性表现在哪几个方面?

答:(1) 一般来讲,维护人员对开发人员写的程序及文档,理解都比较困难,对维护工作不会喜欢; (2) 维护持续时间都很长,在开发人员不在现场的轻快下,维护软件通常是很困难的;

(3) 绝大多数软件在设计时对将来的软件修改都没有考虑或考虑不多,尤其未能在设计中强调并认真 解决好模块的独立性,使软件的修改既困难又易发生差错。 19.增量模型和瀑布模型的本质区别是什么?

答:瀑布模型:开发模型呈线性,所以当开发成果未经过测试时,用户无法看到软件的效果。

增量模型:增量模型是一种非整体开发的模型。

增量模型和瀑布模型之间的本质区别是:瀑布模型属于整体开发模型,它规定在开始下一个阶段的工作之前,必须完成前一阶段的所有细节。而增量模型属于非整体开发模型,它推迟某些阶段或所有阶段中的细节,从而较早地产生工作软件。 20.画数据流图应注意哪些事项?

答:(1)命名:不能使用缺乏具体含义的名字,加工名应能反映出处理的功能。 (2)画数据流而不是控制流。 数据流名称只能是名词或名词短语,整个图中不反映加工的执行顺序。 (3)一般不画物质流。 (4)每个加工至少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工的结果 。 (5)编号: 某个加工分解成加一张数据流图时,上层图为父图下层图为子图。子图应编号子图上的所有加工也应编号,子图的编号应与父图的编号相对应。 (6)父图与子图的平衡:子图的输入输出数据流同父图相应加工的输入输出数据流必须一致 (7)局部数据存储:当某数据流图中的数据存储不是父图中相应加工的外部接口,而只是本图中某些加工之间的数据接口,则称这些数据存储为局部数据存储。 (8)注意数据流图的易理解性。 21.软件生存周期有哪几个活动?其中需求分析阶段的主要任务是什么?

答:(1) 软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。 包括:可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护。

(2)需求分析阶段的基本任务是要准确的定义新系统的目标,为了满足用户需要,回答系统必须“做什么”的问题。本阶段要进行以下几方面的工作:

A:问题识别。双方确定对问题的综合需求,这些需求包括:功能需求、性能需求、环境需求、用户界面需求,另外还有可靠性、安全性、保密性、可移植性、可维护性等方面的需求。

B:分析与综合,导出软件的逻辑模型。分析人员对获取的需求,进行一致性的分析检查,在分析、综合中逐步细化软件功能,划分成各个子功能。这里也包括对数据域进行分解,并分配到各个子功能上,以确定系统的构成及主要成份,并用图文结合的形式,建立起新系统的逻辑模型。

C:编写文档。编写“需求规格说明书”、编写初步用户使用手册、编写确认测试计划、修改完善软件开发计划。

五、应用题

1.某个程序的伪码如下(前面的标号只用于标明语句顺序,不参与程序运行): 1:START 2:IF L1 THEN

3:S1

4:DO WHILE L2

5:S2

6:IF L3 THEN

7:S3

ELSE 8: 9:END IF

10:END DO

EISE

11:S5 12:END IF 13:STOP

(1)试将其转换成PAD图(5分) (2)计算程序的环路复杂性(5分) 答:(1)

S4

(2)

该程序的环路复杂度为4

2.某服装贸易公司的销售子系统功能如下:

(1)公司提供多种类别服装,所有类别的服装通过各个地区的分公司进行销售;

(2)公司接收分公司的订单,检验订单,若有库存就供货,则修改库存,给仓库开备货单,并且将订单留底;若库存不足,则进行缺货登记。

(3)根据缺货记录将缺货通知单发给采购部,以便采购。

(4)根据采购部门的进货通知单处理进货,即修改库存,并从缺货记录中取出缺货订单 进行供货处理。

试采用SA方法画出该公司销售管理系统的分层DFD(画出顶层、0层、1层图)。 答:顶层结构图:

0层: 1层:

3.根据下列对某种人寿保险问题的描述画出决策表。

某保险公司的一种人寿保险的参保类型划分原则如下:

(1)如果年龄不满25岁,男性适用保险类型A,女性适用保险类型B。

(2)如果年龄满25岁但不满50岁,已婚男性适用保险类型A,未婚男性适用保险类型B,已婚女性适用保险类型B,未婚女性

适用保险类型C。

(3)年龄在50岁以上者,已婚女性适用保险类型B,其余适用保险类型C。 答:

4.测试题:

函数Find(array,L,R,value)的功能是在一个整数数组array中搜索第一个值为value的整数,搜索的范围在数组下标L到R

范围内。如搜索到有这个数,则函数值为第1个等于该数的下标,否则函数值等于-1。假设数组非空,数组长度可由一内置函数

得知,数组第一个元素的下标为1。

请根据题意采用等价分类法设计测试用例。 答:

(1)依题意可以将数据划分以下等价类:(4分)

输入数据 合理等价类 不合理等价类 ②L<1 L ①L>1且L<=R且L<=array长度 ③L>4 ④L>array长度 ⑥R<1 R ⑤R>=1且L<=R且R<= array长度 ⑦R array长度 ⑨数值,值可被搜索到 value ⑩数值,值搜索不到 11○非数值 (1) 用例:(参考)

先设计一个数组:a1={10,6,6,9,5,8}

① 为合理等价类设计测试用例:对于表中编号为①⑤⑨⑩对应的等价类,用以下两个测试用例覆盖:

输入array•=a1,L=1.R=7,value=6 (2分) 2预期的输出:输入array•=a1,L=1.R=7,value=7 (2分) -1预期的输出:②为每一个不合理等价类设计一个测试用例:(4分)

测试数据 期望结果 -1 -1 -1 -1 覆盖范围 ③、⑦ ②、⑥ ④、⑧ 11○ array•=a1,L=6,R=4,value=9(1分) array•=a1,L=0,R=0,value=9(1分) array•=a1,L=8,R=9,value=6(1分) array•=a1,L=1,R=4,value=“8dfs4f\"(1分)

5.某个银行的存取款业务处理系统有以下功能:

储户将填好的存/取款单和存折交给银行工作人员,银行工作人员将存/取款单输 入系统,系统要求进行以下处理:

(1)业务分类处理:系统审查存/取款单,不合格则退回;合格则确定本次业务的性质(存款或取款); (2)存款处理:系统将存款单上的存款金额分别记录在存折和账目文件中;记录现金账; 打印存款通知单给储户;最后将存折还给储户;

(3)取款处理:系统将取款单上的取款金额分别记录在账目文件和存折中;修改现金账; 打印取款通知单给储户;最后将现金和存折交给储户。

试根据要求画出该系统的分层数据流图,并将其转换为软件结构图。 答:(1)分层数据流图

(2)软件结构图

6.下列是某程序的NS图 (1)请将其转换成PAD图 答:

(2)请将其转换成程序流程图。(略)

7.设有如下程序流程图

测试数据组1 测试数据组2 测试数据组3 测试数据组4 测试数据组5

根据表中的测试数据回答如下问题: (1)满足语句覆盖的最少测试组合是什么? (2)满足判定覆盖的最少测试组合是什么? (3)满足条件组合覆盖的最少测试组合是什么?

(2)1,2,3,4或2,3,4,5测试组。 (3)1,2,3,4,5测试组。

x 0 0 3 4 4 y 0 3 -1 -2 1 答: (1)2,3,4测试组。

8.有一个处理单价为5角钱的饮料的自动售货机软件,其规格说明如下:

(1)若投入5角钱或1元钱的硬币,按下饮料的按钮,则相应的饮料就送出来。

(2)若售货机没有零钱找,则一个显示零钱找完的红灯亮,这时投入1元硬币并按下按钮后,饮料不送出来并且1元硬币也退出

来;

(3)若有零钱找,则显示零钱找完的红灯灭,在送出饮料的同时退还5角硬币。 试用判定表描述加工逻辑。(要求用单条件,不允许用复合条件)

答:

有零钱找 投入1元硬币 投入5角硬币 按下饮料按钮 零钱找完灯亮 退回1元硬币 退还5角硬币 送出饮料

9.一实时监护系统的中央处理机的功能如下:

(1)由定时检测系统取得各个监护病员的生理数据(脉搏,体温,血压)经合法性检查后,与预先保存的每一病号生理临界数据

1 1 1 0 1 N N Y Y 2 1 0 1 1 N N N Y 3 0 0 1 1 Y N N Y 4 0 1 0 1 Y Y N N 5 1 0 0 1 N N N N 6 0 0 0 1 Y N N N 进行比较;

(2)如发现超越临界则启动自动报警装置发出警报信号; (3)定时检测的数据将被格式化并被记入日志文件;

试根据要求画出该问题的数据流图,并将其转换为软件结构图。 答: (1)数据流图

(2)软件结构图

数字标注含义:

1.合法生理数据;2.临界生理数据;3.合法生理数据,临界生理数据;4.正常生理数据或超临界数据;5.超临界数据;6.正常生理数据;7.病员生理数据;8.病员生理数据;9.合法生理数据;10.病员临界信息;11.病员报警信息;12.报警;13.正常生理数据;14.格式化数据;15.格式化更新数据。

10.画出下面用PDL写出的程序的PAD图 (略)

WHILE C DO IF A>0

A1; ELSE A2; ENDIF IF B>0 B1; IF C>0 C1; ELSE C2; ENDIF ELSE B2; ENDIF B3; ENDWHILE

12.问题描述:

1)顾客将订票单交给预订系统

(1)如是不合法订票单,则输出无效订票信息;

(2)对合法的订票以及预交款要登录到一个记账文件中;

(3)系统有航班目录文件,根据填写的施行时间和目的地为顾客安排航班;

(4)在获得正确航班信息和确认已交了部分预付款时发出取票单,并记录到取票单文件中; 2)在指定日期内顾客用取票单换取机票

(1)系统根据票单文件对取票单进行有效性检查,无效的输出无效取票信息; (2)持有有效取票单的顾客在补交了剩余款后将获得机票; (3)记账文件将被更新,机票以及顾客信息将被登录到机票文件。 试根据要求画出分层的数据流图。 答:

订单中有订票日期、旅行日期、时间要求(上午、下午、晚上)、出发地、目的地、顾客姓名、身份证号、联系电话。

DS002航班目录文件顾客IPO01DS003取票单文件机票预订系统DS001记帐文件DS004机票文件

0层流程图

IPO1顾客提交订票单IPO7有效性检查DS003取票单文件IPO3发取票单IPO8安排航班IPO2交预付款DS001记帐文件DS002航班目录文件 预定流程图

IPO4顾客提交取票单IPO7有效性检查IPO6DS004机票文件发放机票IPO5补交剩余款DS003取票单文件DS001记帐文件取机票流程图

因篇幅问题不能全部显示,请点此查看更多更全内容