软件工程试题库

软件工程

一、选择题

1.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做 [ C ]

A.软件工程 B.软件周期

C.软件危机 D.软件产生

2.研究开发所需要的成本和资源是属于可行性研究中的研究的一方面。 [ B ]

A.技术可行性 B.经济可行性

C.社会可行性 D.法律可行性

3.IDEF0图不反映出系统 [ B ]

A.系统做什么 B.系统功能如何实现

C.系统由谁来做 D.系统实现的约束条件

4.模块的内聚性最高的是 [ D ]

A.逻辑内聚 B.时间内聚

C.偶然内聚 D.功能内聚

5.在SD方法中全面指导模块划分的最重要的原则是 [ D ]

A.程序模块化 B.模块高内聚

C.模块低耦合 D.模块独立性

6.软件详细设计主要采用的方法是 [ D ]

A.模块设计 B.结构化设计

C.PDL语言 D.结构化程序设计

7.下列关于JSP方法不正确的说法是 [ D ]

A.JSP方法主要用于规模不大的数据处理系统

B.JSP方法不明确的划分软件概要设计和详细设计的两个阶段

C.JSP方法适用于输入数据和输出数据之间有对应关系的问题求解

D.JSP方法根据输入、输出的数据结构,按一定的规则映射成软件的体系结构。因此它只适用于详细设计阶段

8.不适合作为科学工程计算的语言是 [ D ]

A. Pascal B.c

C. Fortran D.Prolog

9.黑盒测试在设计测试用例时,主要需要研究 [ A ]

A.需求规格说明与概要设计说明 B.详细设计说明

C.项目开发计划 D.概要设计说明与详细设计说明

10.若有一个计算类型的程序,它的输入量只有一个,其范围是现从输入的角度考虑一组测试用例: 设计这组测试用例的方法是 [ C ]

A.条件覆盖法 B.等价分类法

C.边界值分析法 D.错误推测法

11.下列属于维护阶段的文档是 [ C ]

A.软件规格说明 B.用户操作手册

C.软件问题报告 D.软件测试分析报告12.快速原型模型的主要特点之一是 [ D ]

A.开发完毕才见到产品 B.及早提供全部完整的软件产品

C.开发完毕后才见到工作软件 D.及早提供工作软件

13.因计算机硬件和软件环境的变化而作出的修改软件的过程称为 [ B ]

A.教正性维护 B.适应性维护

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

14.类库这种机制是级别的信息共享。 [ D ]

A.同一类 B.不同类

C.同一应用 D.不同应用

15.只有单重继承的类层次结构是层次结构。 [ C ]

A.网状型 B.星型

C.树型 D.环型

16.在屏蔽硬件错误的冗错技术中,冗余附加技术有 [D]

A.三模冗余 B.信息冗余

C.冗余备份程序的存储及调用 D.关键程序和数据的冗余存储和调用

17.软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为 [.B]

A.可用性 B.可靠性

C.正确性 D.完整性

18.下列文档与维护人员有关的有 [C]

A.软件需求说明书 B.项目开发计划

C.概要设计说明书 D.操作手册

19.采用图表示软件项目进度安排,下列说法中正确的是 [D]

A.能够反映多个任务之间的复杂关系

B.能够直观表示任务之间相互依赖制约关系

C.能够表示哪些任务是关键任务

D.能够表示子任务之间的并行和串行关系

20.下列模型属于成本估算方法的有 [A]

A.COCOMO模型 B.McCall模型

C.McCabe度量法 D.时间估算法

21.详细设计与概要设计衔接的图形工具是(B )。

A、DFD图 B、SC图 C、PAD图 D、程序流程图

22.下列几种类型中,耦合性最弱的是(D )。

A、内容型 B、控制型 C、公共型 D、数据型

23.确认测试中,作为测试依据的文档是(A )。

A、需求规格说明书 B、设计说明书

C、源程序 D、开发计划

24.用于描述对象模型的工具是(D )。

A、数据流图 B、结构图 C、状态图 D、对象图

25、一些通用菜单模块属于(

A、偶然内聚 B )内聚形式。 C、时间内聚 D、过程内聚 B、逻辑内聚

26.需求分析中,开发人员要从用户那里解决的最重要的问题是(A )。

A、要让软件做什么 B、要给该软件提供哪些信息

C、要求软件工作效率怎样 D、要让该软件具有何种结构

27.DFD中的每个加工至少有(B )。

A、一个输入流或一个输出流 B、一个输入流和一个输出流

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

28、模块A是数据查询模块,其模块内部包括输入查询条件、连接数据源、打开查询记录集、显示查询结果。该模块属于( A

A、功能内聚 B、过程内聚 )内聚形式。 D、时间内聚 C、通信内聚

29、上级模块A在调用下级B时需要返回一个标记X,用于模块A中循环语句的判断条件,这时的模块A与模块B之间是( B

A、非直接耦合

C、数据耦合

)耦合关系。 B、控制耦合 D、内容耦合

20.基线可作为软件生存期中各开发阶段的一个检查点。当采用的基线发生错误时,可以返回到最近和最恰当 的(C )上。

A.配置项 B.程序

C.基线 D.过程

31.为了适应软硬件环境变化而修改软件的过程是(C )。

A、校正性维护 B、完善性维护

C、适应性维护 D、预防性维护

32.瀑布模型是一种(A )。

A、整体开发模型 B、非整体开发模型

C、风险驱动模型 D、对象驱动模型

33.软件质量保证应在(A )阶段开始。

A.需求分析 B.设计 C.编码 D.投入使用

34、某学校将开发一个“学校管理系统”,包括人事管理、工资管理、教学管理和学生管理四个子系统,该学校希望按子系统的优先级别逐个实现,边应用边开发,则应该选择( A )过程模型。

A、增量模型

C、瀑布模型 B、原型模型 D、组件复用模型

)内聚形式。

35、一些通用菜单模块属于( D A、偶然内聚

C、时间内聚 B、过程内聚 D、逻辑内聚

36、软件生产的成败更多地依赖于( )

A.领导者的指挥才能

C.合理地组织与协调

答:C

37、下列哪一项不是软件危机的表现形式?( )

A.软件需求定义不明确,易偏离用户需求

B.软件生产高成本,价格昂贵

C.软件的可维护性差

D.系统软件与应用软件的联系越来越困难

答:B

38、软件需求分析是保证软件质量的重要步骤,它的实施应该是在( )。

A、编码阶段 B、软件开发全过程

B.程序员个人的编程能力 D.用户的配合

C、软件定义阶段 D、软件设计阶段

答:C

39、数据字典是软件需求分析阶段的最重要的工具之一,其最基本的功能是( )

A.数据库设计 B.数据通讯

C.数据定义

答:C

40.因计算机硬件和软件环境的变化而作出的修改软件的过程称为( )

A.教正性维护 B.适应性维护

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

答:B

41、瀑布模型把软件生存周期划分为软件定义、软件开发与( )三个阶段,而每个阶段又可分为若干更小的阶段。

A.详细设计阶段

C.运行及维护

答:C

42、在软件质量因素中,软件在异常条件下仍能运行的能力称为软件的( )

A.可用性

答:B

43、模块内聚度越高,说明模块彼此结合的程度越( )。

A、松散 B、紧密 C、无法判断 D、相等

答:A

44.瀑布模型的关键不足在于( )

(A)过于简单

(C)过于灵活

答:B

45.以下哪一项不是软件危机的表现形式( )

(A)成本高 (B)生产率低

(D)质量得不到保证 (B)不能适应需求的动态变更 (D)各个阶段需要进行评审 B.健壮性 C.可靠性 D.安全性 B.可行性研究阶段 D.问题定义 D.数据维护 (C)技术发展快

答:A

46.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作( )

A.软件工程 B.软件周期

C.软件危机 D.软件产生

答:C

47.软件可行性研究一般不考虑( )

(A)是否有足够的人员和相关的技术来支持系统开发

(B)是否有足够的工具和相关的技术来支持系统开发

(C)待开发软件是否有市场、经济上是否合算

(D)待开发的软件是否会有质量问题

答:D

48.软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为( )

A.可用性 B.可靠性

C.正确性 D.完整性

答:B

49、需求分析的主要任务是( )

A.确定软件系统的主要功能,即进行系统功能分析,提出软件系统的目标、范围与功能说明

B.分析用户要求,将软件功能和性能描述为具体的规格说明书

C.对问题定义阶段所确定的问题实现的可能性和必要性做出研究

D.建立软件系统的总体结构,子系统划分,并提出软件结构图

答:B

50.软件项目计划一般不包括以下哪项内容( )

(A)培训计划

(C)进度安排

答:D

51.研究开发所需要的成本和资源是属于可行性研究中的( )研究的一方面。

A.技术可行性 B.经济可行性

C.社会可行性 D.法律可行性

答:B

52.下列属于维护阶段的文档是( )

A.软件规格说明 B.用户操作手册

C.软件问题报告 D.软件测试分析报告

答:C

53、在瀑布模型中,将软件划分为若干个时期,软件项目的可行性研究一般归属于(B)人员安排 (D)软件开发标准的选择和制定

( )。

A、维护时期 B、计划时期

C、运行时期 D、开发时期

答:B

二、判断题

1、软件工程文化需要逐渐的积累,首先是价值观,其次是工程思想和工程行为。( )

答:对

2、为了使模块具有较强的独立性,要求模块是低内聚、高耦合的。(

答:错

3、在利用关系数据库规范原理时,一般认为,范式越高则数据库的规范化程度越高,那么数据查询的速度越快。

答:错

4、软件的维护过程,也就是修正软件错误,完善软件功能,由此使软件不断进化升级的过程,以使系统更加持久地满足用户的需要。(

答:对

5、建立模型就是为了理解问题做出的一种符号抽象。(

答:对

6、软件系统中模块数目越多,说明系统不断的得到简化,软件的成本就可以得到不断下降。(

答:错

7、螺旋模型经常使用于小型的软件项目。(

答:错

8、软件系统分析人员主要是在需求分析阶段使用户和开发者之间达成对系统的一致性认识。(

答:对

9、为了使模块具有较强的独立性,要求模块是低内聚、高耦合的。(

答:错

10、软件定义是软件工程的早期阶段,是由系统分析人员单独完成的系统分析、规划和规格描述,确定软件是什么。(

) ) ) ) ) ) ) )

11、可行性研究的目的是用最小的代价,在尽可能短的时间内,确定该项目是否能够开发。( )

答:对

12.软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开发实际上就是编写程序代码。( )

答:错

13、为了确保每个开发过程的质量,防止把软件差错传递到下一个过程,必须进行质量检验,( )

答:对

14.如果通过软件测试没有发现错误,则说明软件是正确的。( )

答:错

15.快速原型模型可以有效地适应用户需求的动态变化。( )

答:对

16、为了确保每个开发过程的质量,防止把软件差错传递到下一个过程,必须进行质量检验,( )

答:对

17、程序设计语言的简洁性是指人们必须记住的语言成分的数量。人们要掌握一种语言,需要记住的成分数量越多,简洁性越差。( )

答:对

18.集成测试主要由用户来完成。( )

答:错

19、软件工程是一门综合性交叉学科,计算机科学着重于原理和理论,软件工程着重于建造软件系统。( )

答:对

20.确认测试计划应该在可行性研究阶段制定( )

答:错

21、软件工程是一门综合性交叉学科,计算机科学着重于原理和理论,软件工程着重于建造软件系统。( )

答:对

22、为了确保每个开发过程的质量,防止把软件差错传递到下一个过程,必须进行质量检验,( )

23、为了确保每个开发过程的质量,防止把软件差错传递到下一个过程,必须进行质量检验,( )

答:对

24.集成测试主要由用户来完成。( )

答:错

25.软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开发实际上就是编写程序代码。( )

答:错

26.确认测试计划应该在可行性研究阶段制定( )

答:错

27.快速原型模型可以有效地适应用户需求的动态变化。( )

答:对

28、可行性研究的目的是用最小的代价,在尽可能短的时间内,确定该项目是否能够开发。( )

答:对

29、程序设计语言的简洁性是指人们必须记住的语言成分的数量。人们要掌握一种语言,需要记住的成分数量越多,简洁性越差。( )

答:对

30.如果通过软件测试没有发现错误,则说明软件是正确的。( )

答:错

三、填空题

1、软件工程过程一般包括( 软件定义 )(

2、软件工程具有三个方面的技术要素,包括(

)( 软件工具 )( 软件开发 )( 软件验证 软件工程方法 )。 软件工程过程

3、数据库技术经历了( 层次型 )、(网状型 )、(

4、软件测试的最基本方法包括(

种。 白盒测试 关系型 )三种模型。 )( 黑盒测试 )两

5、在软件需求有效性验证过程中,为了确保软件需求的正确性,需要对需求文档从有效性、一致性、( 完整性 )、(

现实性 )、( 可检验性 )等几个方面

进行验证。

6、根据我国国家标准《计算机软件开发规范》,软件生命周期包含(

定义 )( 软件开发

)( 软件运行维护 )和( 软件)三个时期。 系统需求 )两个7、软件需求分析主要涉及(

方面的工作内容。 用户需求

8.瀑布模型是以文档为驱动、适合于(软件需求明确)的软件项目的模型。

9.纯收入是指在整个生存周期之内的(累计经济效益 (折合成现在值)与投资之差。

10.数据项是指(不可再分解的)数据单元。

11.软件概要设计的主要任务就是(软件结构的设计)。

12.结构化程序设计方法是使用(三种基本控制结构)构造程序。

13.软件开发是一个自顶向下逐步细化和求精过程,而软件测试是一个(自底向上或相反顺序)集成的过程。

14.软件维护的内容包括校正性维持,适应性维护、(完善性维护)和预防性维护。

15.CASE工具的平台集成指工具运行在相同的(硬件 /操作系统)平台上。

16.在建立对象的功能模型时,使用的数据流图中包含有处理、数据流、动作对象和(数据存储对象)。

17.将开发项目与一个或多个已完成的类似项目进行比较,找出与某个相类似项目的若干不同之处,并估算每个不同之处对成本的影响,得出开发项目的总成本。这种成本估算方法称为(.差别估算法)。

四、简答题

1.简述软件工程目标和面临的主要问题。

答:软件工程是一门工程性的学科,其目标主要是成功地建造一个大型软件系统。包括:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。

面临的主要问题是:软件费用 软件可靠性 软件维护 软件生产率 软件重用。

2.简述结构化程序设计方法的基本要点。

(1)采用自顶向下,逐步求精的程序设计方法。

(2)使用三种基本控制结构构造程序,分别是顺序,选择和循环

(3)采用主程序员组的组织形式。

3.简述提高可维护性的方法。

答:.(1)建立明确的软件质量目标

(2)利用先进的软件开发技术和工具

(3)建立明确的质量保证工作

(4)选择可维护的程序设计语言

(5)改进程序文档

4、试说明螺旋模型的特点。一般认为,只有大型项目才有采用螺旋模型的必要,其原因是什么?

答:(1)特点:螺旋模型引入了风险分析与规避机制的过程模型,是瀑布模型、快速原型方法和风险分析方法的结合;在各个阶段创建原型对项目试验,以降低各个阶段的项目风险。(2)原因:在各个阶段创建原型对项目试验,进行风险分析,而风险分析也需要费用,如果风险分析的费用过高,超过了项目的开发费用,就不合算了,所以一般用于大型软件项目。

5、分析说明软件结构优化设计的原则。

答:(1)使模块功能完整,包括执行规定的功能部分,出错处理部分,调用处理部分;(2)使模块的大小适中;(3)使模块的功能可预测;(4)尽量降低模块接口的复杂程度,包括接口参数类型简单和限制参数的个数;(5)使模块作用范围限制在其控制范围之内;(6)深度、宽度、扇出和扇入应适当。

6、什么是软件危机?软件危机表现在哪几方面?软件危机产生的原因是什么?

答:(1)软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。例如:开发成本、进度、软件质量等。(2)典型的表现有:(a)软件开发成本、进度的估计很不准确;(b)软件产品常常与用户的要求不一致;(c)软件产品质量的可靠性差;(d)软件文档不完整,不一致;(e)软件产品可维护性差;(f)软件生产率低。(3)原因是:(a)软件的不可见性。(b)软件系统规模庞大。(c)软件生产工程化管理程度低。(d)对用户需求关心程度不够。(e)对软件维护重视程度不够。(f)软件开发工具自动化程度低。

7、什么是软件工程目标?如何解决多个目标之间出现的矛盾?

答:(1)软件工程目标主要体现在:(a)软件开发成本较低;(b)软件功能

能够满足用户的需求;(c)软件的性能较好;(d)软件可靠性高;(e)软件易于使用、维护和移植;(f)能按时完成开发任务,并及时的交付使用。(2)矛盾的解决:针对以上的几个目标进行符合实际应用需要的平衡选择,由于软件质量是首要问题,所有要把软件质量摆在最重要的位置考虑。

8、请评价瀑布模型的特点、作用及其它的局限性。

答:(1)特点:(a)线性模型结构;(b)各阶段具有里程碑特征;(c)基于文档的驱动;(d)严格的阶段评审制度。(2)作用:(a)基于里程碑的阶段过程模型,它所提供的里程碑式的工作流程,为软件项目按规程管理提供了便利;(b)每个阶段必须完成规定的文档,并且在阶段结束时要对文档评审,这有利于软件错误的尽早发现和解决,并且为以后的维护带来了便利;(c)为其它过程模型的推出提供了一个很好的发展平台。(3)局限性:(a)要求项目按规程推进,对一些急于交付的软件系统的开发,在开发上不便;(b)对一些分析初期需求模糊的项目,使用上不方便,即不利于项目的修改。

9、用户需求调查主要有哪些调查方法?

答:(1)访谈用户,面对面的单个用户对话;(2)开座谈会,需要对多个用户调查时采用开座谈会的方式,可以节约时间,使问题在各个部门协商处理;(3)问卷调查,适合于面向庞大的队象群体时;(4)跟班作业,亲身参加用户单位的业务工作,可以比较准确获得用户需求,但是浪费时间;(5)收集用户资料,主要收集用户以前的工作结果和方式。

10、可行性分析的意义主要体现在哪里?可行性分析的内容主要包括哪几方面? 答:(1)意义:(a)通过少量的费用,对项目能否实施尽早决断,避免人力、物力、财力的浪费;(b)根据项目受到的条件限制,对待开发的系统在体系构造、工作模式等方面作出高层抉择,利于项目的今后实现;(c)把可行性分析看作软件定义时期需要进行的前导性工作,其结果可以作为一个高层框架被用于需求分析的过程之中,方便今后的软件规格定义工作的开展。(2)内容:(a)技术可行性分析,包括技术限制和技术资源的限制;(b)经济可行性分析,包括项目资金的限制和项目的经济效益;(c)应用的可行性,涉及到法律法规,用户操作规程等问题。

11、说明需求分析过程中建立需求原型的作用。

答:(1)需求原型可以用来收集用户需求,对用户需求进行验证,由此可帮助用户克服模糊认识,使用户的需求更加完善。(2)原型需要根据用户的评价不断完善修正,这也有利于挖掘用户的一些潜在需求,使得用户更加完善的表达。(3)需求原型可以建立在用户所提出的框架基础上,需求原型的作用是能够方便系统模型的建立,也就是说需求模型可以方便的由用户需求过渡到系统需求。

12、著名软件工程专家B.W.Boehm总结的七条软件工程基本原则是什么?

答:(1)采用分阶段的生命周期计划,以实现对项目的严格管理。(2)坚持阶段评审制度,以确保软件产品质量。(3)实行严格的产品控制,以适应软件规格的变更。(4)采用先进的程序设计技术。(5)软件成果应该能够清楚的审查。(6)开发小组的成员应该少而精。(7)承认不断改进软件工程实践的必要性。

13、在选择编程语言时一般需要考虑哪几个方面的因素?

答:(1)软件项目的应用领域;(2)软件问题的算法复杂性;(3)软件的工作环境;(4)软件在性能上的需要;(5)软件中数据结构的复杂性;(6)软件开发人员的知识水平和心理因素。

14、用户的交互方式主要有哪几种?比较分析这几种方式的优缺点。

答:(1)直接操纵:优点:快速、直观、容易学习,缺点:较难实现,只适用于对象化操作;(2)菜单选择:优点:可避免用户出现操作错误,较少的键盘操作,缺点:对于有经验的对象来说操作速度太慢;(3)表格填写:优点:简单的数据入口,容易学习,缺点:占据了太多的屏幕空间;(4)命令语言:优点:功能强大、灵活,缺点:较难学习;(5)自然语言:优点:适合偶然用户、容易扩展,缺点:需要太多的键盘操作;

16.分析软件危机产生的主要原因有哪些?

答:导致软件危机的主要原因有:

(1)软件日益复杂和庞大

(2)软件开发管理困难和复杂

(3)软件开发技术落后

(4)生产方式落后

(5)开发工具落后

(6)软件开发费用不断增加

18.说明软件测试和调试的目的有何区别?

答:测试的目的是判断和发现软件是否有错误;调试的目的是定位软件错误并纠正错误。

19.需求 分析与软件设计二个阶段任务的主要区别是什么?

答:需求分析定义软件的用户需求,即定义待开发软件能做什么

软件设计定义软件的实现细节以满足用户需求,即研究如何实现软件。

20.分析软件危机产生的主要原因有哪些?

答:导致软件危机的主要原因有:

(1)软件日益复杂和庞大

(2)软件开发管理困难和复杂

(3)软件开发技术落后

(4)生产方式落后

(5)开发工具落后

(6)软件开发费用不断增加

21.简述文档在软件工程中的作用。

答:(1)提高软件开发过程的能见度

(2)提高开发效率

(3)作为开发人员阶段工作成果和结束标志

(4)记录开发过程的有关信息便于使用与维护;

(5)提供软件运行、维护和培训有关资料;

(6)便于用户了解软件功能、性能。

22.简述提高可维护性的方法。

答:(1)建立明确的软件质量目标

(2)利用先进的软件开发技术和工具

(3)建立明确的质量保证工作

(4)选择可维护的程序设计语言

(5)改进程序文档

五、应用题

1、某软件项目已将有待开发的软件分解为800个对象点数,其中有20%可以复用。假设该项目参与人员月平均工资为4000元人民币,每月按20个工作日计算,每人每天能够完成1个对象点数的工作量。试估算该软件项目的人力成本。

答:人力成本WC=(((NOP(1-R)))/PROP)*MPAP

=((∑(800*(1-20%)))/20)*4000=128000元

2、某“学校管理系统”的组成是:

(1)人事管理子系统,包括:档案管理,岗位设置等功能

(2)业绩管理子系统,包括:业绩标准设置,业绩录入等功能

(3)工资管理子系统,包括:工资标准设置,工资数据生成等功能

(4)学生管理子系统,包括:成绩标准,成绩录入等功能

请用功能层次图直观描述该“学校管理系统”的组织结构。

答:该“学校管理系统”的组织结构图为:

1、增量模型适合于(软件需求)不明确、设计方案有一定风险的软件项目。

2.结构化分析方法的分析策略是(自顶向下逐步求精)。

3.可行性研究实质上是要在较高层次上以较抽象的方式进行(需求分析和设计)的过程。

4.衡量模块独立性的两个定性标准是(耦合性与内聚性)。

5.Jackson方法是一种面向(数据结构)的设计方法。

6.软件集成测试的方法主要有两种,它们是(渐增式与非渐增式测试)。

7.维护阶段是软件生存周期中花费精力和费用(最多)的阶段。

8.继承性是子类自动共享其父类的(数据结构和方法)机制。

9.在面向对象方法中,人们常用状态图描述类中对象的(动态行为)。

10.规定功能的软件,在一定程度上能从错误状态自动恢复到正常状态,则称该软件为(容错)软件。


© 2024 实用范文网 | 联系我们: webmaster# 6400.net.cn