软件工程基础(汇总资料-本科课程) 联系客服

发布时间 : 星期一 文章软件工程基础(汇总资料-本科课程)更新完毕开始阅读b82a3922ccbff121dd368396

一、填空题

1.软件是一种产品,同时又是开发和运行产品的载体。

2.软件危机指的是软件开发和维护过程中遇到的一系列严重问题。

3.软件危机包括下面两方面的问题:如何开发软件,满足对软件的日益增长的需求和如何维护数量不断膨胀的已有软件。

4.软件工程学的内容可包括:理论、结构、方法、工具、环境、管理、规范等。(全部加下划线表示考查其中某1-2个空,下同)

5.软件生存周期一般可分为以下阶段:问题定义、可行性研究、需求分析、设计、编码、测试、运行与维护。

6.软件生存周期也可分为三个大阶段:计划阶段、开发阶段、维护阶段。

7.可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。 8.可行性研究的目的不是解决问题,而是确定问题是否值得去解决。

9.一般说来,应从经济可行性、技术可行性、运行可行性、法律可行性、开发可行性等方面研究可行性。

10.只有通过软件需求分析,才能把软件功能和性能的总体概念描述为具体的软件需求规格说明。

11.需求分析的基本任务是准确的回答系统必须做什么这个问题。 12.需求分析所要做的工作是深入描述软件的功能和性能。 13.需求分析阶段研究的对象是软件项目的用户要求。

14.需求分析结束时交出的文档中应该包括详细的数据流图DFD,数据字典DD,一组简明的算法描述。

15.对系统的综合需求主要有:系统功能需求、系统性能需求、运行需求、将来可能提出的需求。

16.任何信息处理系统的基本功能都是把输入数据变成需要的输出信息。 17.结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。 18.数据域具有三种属性:数据流、数据内容和数据结构。 19.数据流图是描述数据处理过程的工具。

20.数据流图从数据传递和加工的角度,以图形的方式描述数据流从输入到输出的传输变换过程。

21.数据流图的特性有:抽象性、概括性、层次性。

22.数据字典的作用是在软件分析和设计的过程中提供关于数据的描述信息。 23.数据流图和数据字典共同构成系统的逻辑模型。

24.必须从一致性、完整性、现实性、有效性等四个不同角度验证软件需求的正确性。 25.信息隐蔽原理是指每一个模块的实现细节对其它模块来说是隐蔽的。 26.耦合是对一个软件结构内各个模块之间互连程度的度量。

27.模块间耦合程度强弱的种类有:非直接耦合、数据耦合、控制耦合、公共环境耦合、内容耦合、标记耦合、外部耦合。

28.内聚标志着一个模块内各个元素彼此结合的紧密程度。

29. Jackson图有三种逻辑数据结构:顺序结构、选择结构、重复结构。 30. Warnier程序设计方法是一种面向数据结构的设计方法。 31.详细设计又称过程设计。

32.面向对象方法是一种运用对象、类、继承、封装、聚合、消息传送、多态性等概念来构造系统的软件开发方法。

33.面向对象方法的基本思想是从现实世界中客观存在的事物出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式。

34.面向对象的软件工程学方法是面向对象方法在软件工程领域的全面运用。

35.面向对象的软件工程学方法包括:面向对象的分析、面向对象的设计、面向对象的编程、面向对象的测试和面向对象的软件维护等主要内容。

36. OO方法中把组成客观世界的实体称为问题空间的对象。 37.所谓的方法,它们实际上是类对象上的各种操作。

38.类有方法和数据集成,它是关于对象性质的描述,包括外部特性和内部实现两个方面。

39. UML即:标准建模语言。

40. UML包括:UML语义和UML表示法两个部分。

41.标准UML的重要内容可以由五类图来定义:用例图、静态图、行为图、交互图、实现图。

42.所谓编码就是把软件设计的结果翻译成计算机可以理解的形式,即用某种程序设计语言书写的程序。

43.从应用特点看,高级语言可以分为基础语言、现代语言、专用语言三类。 44.程序的注释一般分为:序言性注释和功能性注释。 45.程序效率是指程序的执行速度及程序占用的存储空间。

46.源程序的效率与详细设计阶段确定的(算法)的效率直接有关。 47.冗余是改善系统(可靠性)的一种重要技术。 48.防错程序设计可以分为主动式和被动式两种

49.按照测试过程是否在实际应用环境中来分,有静态分析和动态测试。

50.大型软件系统的测试基本上由下述四个步骤组成:单元测试、集成测试、确认测试、系统测试。

51.在软件运行维护阶段对软件产品所进行的修改就是维护。 二、判断题

52.在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题,软件维护比硬件维护要复杂得多。(对)

53.软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。(对)

54.软件的开发至今尚未完全摆脱手工的开发方式。(对) 55.软件的开发费用越来越高,成本相当昂贵。(对) 56.软件的开发费用越来越低,但成本仍然相当昂贵。(错) 57.在需求分析阶段,所有的用户要求都是合理的,必须满足。(错)

58.在需求分析阶段,不是所有的用户要求都是合理的,没有必要全部满足。(对) 59.任何一个软件系统本质上都是信息处理系统。(对) 60.数据流图中可以带有控制流。(错) 61.数据流图中不可以带有控制流。(对)

62.模块是数据说明、可执行语句等程序对象的集合。(对)

63. Jackson系统开发方法是一种典型的面向数据结构的分析设计方法。(对) 64. Jackson系统开发方法是一种典型的面向对象的分析设计方法。(错) 65. Warnier程序设计方法是一种面向数据结构的设计方法。(对) 66. Warnier程序设计方法是一种面向对象的设计方法。(错) 67.详细设计是编码的前奏。(对)

68.详细设计的目的是为软件结构图中的每一个模块确定使用的算法和块内的数据结构。(对)

69.良好的编码风格有助于编写可靠而有容易维护的程序,编码风格在很大程度上决定程序的质量和机器执行的速度。(错)

70.良好的编码风格有助于编写可靠而有容易维护的程序,编码风格在很大程度上决定程序的质量,但不影响机器执行程序的速度。(对)

71.源程序的效率与详细设计阶段确定的算法的效率直接有关。(对) 72.冗余是改善系统可靠性的一种重要技术。(对) 73.冗余是改善系统速度的一种重要技术。(错) 74.判定覆盖比语句覆盖强有效。(对) 75.语句覆盖比判定覆盖强有效。(错)

76.软件开发所需的资源可以画成一个金字塔,塔的最基本的资源是人。(对) 三、简答分析题

77.软件的发展经过哪几个阶段?

程序设计阶段、程序系统阶段、软件工程阶段、第四阶段。

78.软件的定义是什么?

在运行中能够提供所希望的功能和性能的指令集(程序);使程序能够正确运行的数据结构;描述程序研制过程、方法所用的文档。

79.基于软件的功能,软件分为哪几种? 系统软件、支撑软件、应用软件。

80.基于软件的工作方式分,软件分为哪几种?

实时处理软件、分时软件、交互式软件、批处理软件。 81.基于软件的规模分,软件分为哪几种?

微型软件、小型软件、中型软件、大型软件、甚大型软件、极大型软件。 82.基于软件的服务对象的范围分,软件分为哪几种? 定制软件、产品软件。

83.软件危机包括哪两方面的问题?

(1)如何开发软件,满足对软件的日益增长的需求。(2)如何维护数量不断膨胀的已有软件。

84.产生软件危机的原因是什么?

(1)软件是计算机系统中的逻辑部件而不是物理部件。(2)软件本身独有的特点确实给开发和维护带来一些客观困难。(3)开发和管理人员只重视开发而轻视问题的定义,使软件产品无法满足用户的需求。(4)软件管理技术不能满足现代软件开发的需要,没有统一的软件质量规范。(5)在软件的开发与维护关系问题上存在错误的概念。

85.软件工程的原则是什么? (1)分解。(2)独立性。(3)一致性。(4)确定性。 86.软件开发模型有哪些? (1)瀑布模型。(2)螺旋模型。(3)第四代技术模型。(4)原型模型。

87.某图书馆闭架借书流程如下:读者须先被验明证件后才能进入查询室。读者在查询室内通过检书卡来查找自己所需的图书。找到所需图书并填好索书单到服务台借书。如果所借图书还有剩余,管理员将填好借书单,从库房中取出图书交于读者,否则读者借不了图书。下图是上述系统的系统流程图,请填写空缺。

1:验证 2:图书查询 3:检书卡 4:借书 5:取书 88.需求分析的原则是什么?

(1)必须能够表达和理解问题的数据域和功能域。(2)自顶向下、逐层分解问题。(3)要给出系统的逻辑视图和物理视图。

89.一家计算机公司的全部软件产品有系统软件和应用软件,其中系统软件有操作系统、编译程序和包括编辑程序、测试驱动程序、设计辅助工具等的软件工具三类。请画出系统的Warnier图和层次方框图。

操作系

系统软编译程 编译程

软件工软 件产

测试驱动

应用软

设计辅助工

90.在概要设计中两个主要任务是什么?

(1)将系统划分成物理元素,即程序、文件、数据库、文档等等。(2)设计软件结构,即将需求规格转换为体系结构,划分出程序的模块组成,模块间的相互关系。

91.概要设计的过程是怎样的? (1)设计系统方案。(2)选取一组合理的方案。(3)推荐最佳实施方案。(4)功能分解。(5)软件结构设计。(6)数据库设计、文件结构设计。(7)制定测试计划。(8)编写概要设计文档。(9)审查与复审概要设计文档。

92.为何要强调模块的独立性?

(1)由于能够分割功能而且接口可以简化,具有独立的模块软件比较容易开发出来。(2)修改设计和程序需要的工作量比较小,错误传播范围小,需要扩充功能时能够插入模块,使得独立的模块比较容易测试和维护。

93.如何改进软件设计、提高软件质量? (1)提高模块的独立性。(2)模块规模应该适中。(3)适当选择深度、宽度、扇出和扇入。(4)模块的作用域应该在控制域之内。(5)力争降低模块接口的复杂程度。(6)设计单入口单出口的模块。(7)模块功能应该可以预测。

94.用Jackson 图表示下面二维表格:

工人工资单

表头 工号 姓名 性别 工龄 月工资

. . 表体 .

95.详细设计的原则是什么?

(1)模块的逻辑描述要清晰易读、正确可靠。(2)采用结构化设计方法,改善控制结构,降低程序的复杂程度,从而提高程序的可读性、可测试性、可维护性。(3)选择恰当描