软件工程导论期末复习试题集

Posted ZSYL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件工程导论期末复习试题集相关的知识,希望对你有一定的参考价值。

名词解释

  1. 软件工程:软件工程是指导计算机软件开发和维护的工程学科
  2. 软件工程的开发模型:软件开发模型是软件开发全部过程、活动和任务的结构框架。常有瀑布模型、快速模型、增量模型、螺旋模型,它规定了把软件生命周期划分成的阶段及各个阶段的顺序。
  3. 软件的评价准则:低耦合高内聚
  4. 结构图 :描绘软件结构的图形工具。
  5. 模块内聚:衡量一个模块内部的紧密程度。
  6. 模块耦合: 衡量模块之间的联系紧密程度。
  7. 软件的设计方法:数据流、数据结构、面向对象。
  8. 程序的三种基本控制结构的共同特点是: 只有一个入口和一个出口。
  9. 常用的软件开发模型有:瀑布模型、快速原型、螺旋模型、增量模型
  10. 软件的生存周期:从形成开发软件概念起,所开发的软件使用之后,直到失去使用价值,到消失的整个过程。
  11. 等价类:类中每一个值在测试中的作用与这一类的所有其它值的作用相同。
  12. 原型化方法适用于 部分清楚、要求模糊 的系统。
  13. 模块的独立性:模块内部各部分及模块间的关系的一种衡量标准,由内聚和耦合来度量。
  14. 判定:表示复杂条件的组合与应做的动作之间的对应关系。
  15. 黑盒测试:通过测试来检测是否每个功能都正常使用,也称功能测试。典型:黑匣子,它依据外部功能。
  16. 白盒测试: 通过分析程序的内部逻辑来设计测试用例的方法。 依据程序的内部逻辑。
  17. 从系统设计的角度出发,软件设计方法分为 数据流 数据结构 面向对象
  18. 总体设计阶段所使用的表示工具有 层次图、HIPO图、结构图
  19. 详细设计的根本目的是: 是确定应该怎样具体地实现所要求的系统
  20. 详细设计的工具有 图形工具、表格工具、语言工具
  21. 系统流程图:系统流程图是描绘物理系统的传统工具,用图形符号来表示系统中的各个元素,表达了系统中各个元素之间的信息流动的情况。
  22. 数据字典:数据字典(Data Dictionary简称DD)就是对数据流图中包含的所有元素的定义的集合。它和数据流图共同构成了系统的逻辑模型。
  23. 数据流图(DFD):数据流图 简称DFD 是SA方法中用于表示系统逻辑模型的一种工具 它以图形的方式描绘数据在系统中流动和处理的过程 由于它只反映系统必须完成的逻辑功能 所以它是一种功能模型。
  24. 模块:在程序中是数据说明、可执行语句等程序对象的集合 或者是单独命名和编址的元素 在软件的体系结构中 模块是可组合、分解和更换的单元。
  25. 控制耦合:控制耦合指一个模块调用另一个模块时传递的是控制变量(如开关、标志等) 被调模块通过该控制变量的值有选择地执行块内某一功能。
  26. 标记耦合:是指一个模块调用另一个模块时,不是传送数据本身,而是传送存放数据的变量名或文件名,这些是数据的标记,故称标记耦合。
  27. 内聚性:内聚性指模块的功能强度的度量即一个模块内部各个元素彼此结合的紧密程度的度量。
  28. 单元测试:单元测试指对源程序中每一个程序单元进行测试检查各个模块是否正确实现规定的功能从而发现模块在编码中或算法中的错误。
  29. 判定/条件覆盖:指设计足够的测试用例使得判定表达式中的每个条件的所有可能取值至少出现一次并使每个判定表达式所有可能的结果也至少出现一次。
  30. 完善性维护:在软件运行时期中用户往往会对软件提出新的功能要求与性能要求。这种增加软件功能、增强软件性能、提高软件运行效率而进行的维护活动称为完善性维护。
  31. 项目风险:指项目在预算、进度、人力、资源、顾客和需求等方面的原因对软件项目产生的不良影响。

简答题

1. 什么是软件工程?包括哪些内容?

软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。

用科学的原理和理论定义开发

  • 内容:软件开发技术,软件开发管理
  • 目标:及时交付,满足用户的功能需求,成本较低,移植性好,可靠性高

2. 需求分析的任务是什么?

一。 确定对系统的综合要求

1.功能需求;2. 性能需求;3. 可靠性和可用性需求;4. 出错处理需求;5. 接口需求;6. 约束;7. 逆向需求;8. 将来可能提出的要求。

二 。分析系统的数据要求

任何一个软件系统本质上都是信息处理系统,系统必须处理的信息和系统应该产生的信息在很大程度上决定了系统的面貌,对软件设计有深远影响,因此,必须分析系统的数据要求,这是软件需求分析的一个重要任务。

三。 导出系统的逻辑模型

综合上述两项分析的结果可以导出系统的详细的逻辑模型,通常用数据流图、实体-联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型。

四。 修正系统开发计划

根据在分析过程中获得的对系统的更深入更具体的了解,可以比较准确地估计系统的成本和进度,修正以前制定的开发计划。

开发人员准备的理解用户的需求,并进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的需求规格说明过程。

基本任务

  1. 问题识别,双发确定对问题的综合需求这些包括功能需求,性能需求,环境需求,用户界面需求。
  2. 分析与综合,导出软件的逻辑模型
  3. 编写文档,包括需求规格说明书,初步用户使用手册,确信测试计划。

3. 数据流图有哪几种基本符号?并具体画出

箭头表示数据流,圆圈表示加工,双模横线表示存储,方框表示数据的原点和终点。

4. 软件测试和调试的区别是什么?

  • 软件测试是测试人员和程序员都参与的一项工作,是贯穿整个生命周期的用于发现错误
  • 软件调试主要是程序员自己参与,对程序(设计、编码)进行修改、排除错误,主要在开发阶段。
(1) 测试从一个侧面证明程序员的失败;调试证明程序员的正确;
(2) 测试从已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序是否通过测试;调试从不可知内部条件开始,除统计性调试外,结果是不可预见的;
(3) 测试有计划并且要进行测试设计;调试不受时间约束;
(4) 测试是发现错误、改正错误、重新测试的过程;调试是一个推理的过程;
(5) 测试执行是有规程的;调试执行要求程序员进行必要的推理;
(6) 测试由独立的测试组在不了解软件设计的件下完成;调试由了解详细设计的程序员完成;
(7) 大多数测试的执行和设计可由工具支持;调试用的工具主要是调试器。

5. 说明软件维护的过程

1、维护组织;2、维护报告;3、维护的事件流;4、保存维护记录;5、评价维护活动。

软件维护的含义是什么,什么是软件的可维护性?决定软件可维护性的因素是什么?

所谓软件维护是指在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。软件维护是软件生命周期的最后一个阶段,也是持续时间最长代价最大的一个阶段。

软件的可维护性可以定义为:维护人员理解、改正和改动软件的难易程度

决定软件可维护性的因素是可理解性、可测试性和可修改性

6. 什么是软件危机?产生软件危机的原因?怎样消除?

软件危机是指软件在开发和维护过程中遇到的一系统严重问题,主要包含二方面的问题,一是如何开发利用软件,二是如何维护数量不断膨胀的已有软件。

产生软件危机的原因,一方面与软件本身的特点有关,另一方面和软件开发与维护的方法不正确有关。

为了消除软件危机,首先应该对计算机软件有一个正确的认识,更重要的是必须充分认识到软件开发不是个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目,应该开发和使用更好的软件工具,总之,为了解决软件危机,既要有技术措施,又要有必要的组织管理措施。

7. 软件开发模型有几种?各有什么特点?

  • 瀑布模型:阶段间具有顺序性和依赖性;推迟实现的观点;质量保证的观点。
  • 快速原型模型:软件产品的开发基本上是线性顺序进行的。
  • 增量模型:能在较短时间内向用户提交可完成部分工作的产品;逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品。
  • 螺旋模型:减少过多测试或测试不足所带来的风险;在维护和开发之间没有本质区别
  • 喷泉模型:典型的面向对象的软件过程模型之一

1>边做边改模型:一种类似作坊的开发方式
2>瀑布模型:强调文档的使用,并要求每个阶段都仔细验证
3>快速原模型:客服了瀑布模型的特点,减少由于软件需求不明确带来的开发风险
4>增量模型:高强的灵活性
5>螺旋模型:强调风险分析
6>喷泉模型:有更多增量和迭代性质
7>智能模型

8. 软件测试有几种方法?每种方法的特点是什么?

  • 单元测试:在模块接口、局部数据结构、重要的执行通路、出错处理通路、边界条件5个方面来对模块进行测试。
  • 集成测试:是测试和组装软件的系统化技术可分为自顶向下和自底向上两种集成策略
  • 确认测试:验证软件的有效性。
  • 白盒测试:也称结构测试,检验程序中的每条通路是否都能按预定要求正确工作。
  • 黑盒测试:也称功能测试,检测是否每个功能都能正常使用。

9. 什么是软件的可维护性?决定软件可维护性的因素是什么?

维护人员理解、改正、改动或改进这个软件的难易程度。可理解性、可测试性、可修改性、可移植性、可重用性.

10. 软件测试的基本任务是什么?测试与调试区别是什么?

尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。软件测试是软件测试人员和程序员都参与的一项工作,是贯穿整个生命周期的,只需要发现软件的错误,而软件调试主要是程序员自己参与,对程序(设计、编码)进行修改、排除错误,主要是在开发阶段。

  • 基本任务:根据软件开发各阶段的文档资料,程序的内部结构,精心设计一组高序的测试用例,利用这些用例执行程序,找出软件潜在的缺陷。
  • 软件测试是检验程序是否有错误,调试是发现错误的位置、原因一级改进错误等,软件调试是发生在测试之后的步骤。

简述软件测试的步骤,简要说明各测试步骤的目的。

软件系统的测试基本上由以下几个步骤组成:

  • 模块(单元)测试,目的是保证第个模块作为一个单元能正确执行。

  • 子系统测试,目的是把经过单元测试的模块放在一起形成一个子系统,测试模块相互间的协调和通信。

  • 系统测试,在这个过程中不仅应该发现设计和编码的错误,还应该验证系统确实能提供需求说明书中指定的功能,而且系统的动态特性也符合要求。

  • 验收测试,目的是验证系统确实能够满足用户的要求。

  • 平行运行,目的是用户能在准生产环境下熟悉系统、验证文档、负荷测试和验证系统性能指标。

11. 软件的生存周期的概念?

从形成软件概念起,所开发的软件使用之后,直到失去使用价值,消失为止的整个过程。

整个时期有:

①软件的定义时期:问题的定义、可行性研究、需求分析
②开发时期:总体设计、详细设计、编码和单元测试、综合测试。
③维护时期:使软件持久的满足用户的需求。

12. 软件工程的基本原则和目标?

原则:

  1. 用分阶段的生命周期计划严格管理
  2. 坚持进行阶段评审
  3. 实行严格的产品控制
  4. 采用现代的程序设计技术
  5. 结果应能清楚地审查
  6. 开发小组的人员应该少而精
  7. 承认不断改进软件工程实践的必要性。

目标:

  1. 付出较低的开发成本
  2. 达到要求的软件功能
  3. 取得较好的软件性能
  4. 开发的软件易于移植
  5. 需要较低的维护费用
  6. 能按时完成开发任务,及时完成开发任务,及时交付费用
  7. 开发的软件可靠性高

13. PAD图的基本控制结构?

顺序 选择 case型多分支 while型循环 until型循环

14. 模块的独立性?

模块独立性是指模块内部各部分及模块间的关系的一种衡量标准,由内聚和耦合来度量。是模块化、抽象化、信息隐藏和局部化概念的直接结果。

模块与模块化:模块是数据说明、可执行语句等程序对象的集合,它是单独命名的而且可通过名字来访问,例如:过程、函数、子程序等。

模块化是把模块划分为若干个模块,每个模块完成一个子功能,把这些模块集合起来组成一个整体,可以完成指定的功能满足问题的要求。

15. 数据字典包括哪些内容?它的作用是什么?

数据字典是描述数据流图中数据的信息的集合。它对数据流图上每一个成分:数据项、文件(数据结构)、数据流、数据存储、加工和外部项等给以定义和说明;它主要由数据流描述、加工描述和文件描述三部分组成。对用户来讲,数据字典为他们提供了数据的明确定义;对系统分析员来讲,数据字典帮助他们比较容易修改已建立的系统逻辑模型。

16. 需求分析的描述工具有哪些?

有数据流图、数据字典、判定表、判定树、结构化自然语言、层次方框图、Warnier图、IPO图和需求描述语言等。

① 深度:表示软件结构中从顶层模块到最底层模块的层数;
② 宽度:表示控制的总分布;
③ 扇出数:指一个模块直接控制下属的模块个数;
④ 扇入数:指一个模块的直接上属模块个数。

一个好的软件结构的形态准则是:顶部宽度小,中部宽度最大,底部宽度次之;在结构顶部有较高的扇出数,在底部有较高的扇入数。

模块化准则:所谓模块化就是将系统划分成若干模块,每个模块完成一个子功能,把这些模块集中起来组成一个整体,以满足所要求的整个系统的功能。我们利用模块化来降低软件复杂度。注意选择分解的最佳模块数。

软件独立性准则: 软件独立性的含义是指开发具有功能专一,模块之无过多相互作用的模块。又称为模块独立性准则。这种类型的模块可以并行开发,开发容易,能减少错误的影响,使模块容易组合、修改及测试。

软件独立性的度量标准是两个定性指标耦合性和内聚性。

17. 等价划分法

等价划分法:等价划分是黑盒设计测试方案的一种技术。把所有可能的输入数据按有效与无效分为若干个等价类(即类中每一个值在测试中的作用与这一类中所有其它值的作用相同。等价划分法先要划分输入数据的等价类,再分别设计测试方案覆盖有效等价类和无效等价类。

18. 简述原型法的基本思想

用交互的、快捷建立起来的原型取代规格说明,用户通过再计算机上运行、使用这个原型系统了解系统的概貌,想开发者提供反馈意见。

19. 详细设计的任务是什么?

详细设计的任务就是要针对每个模块,根据模块的功能,给出可以直接用于编码的程序逻辑结构。

因此,在详细设计阶段,我们应该完成两个方面的工作,一是确保模块功能实现的程序逻辑结构的设计,二是采用什么方法来表达和描述程序的逻辑结构。

20. 什么是白盒/黑盒测试法?

白盒测试:所谓白盒测试就是在知道产品内部工作过程或程序内部结构和处理过程的前提下,检验产品内部动作是否按照规格说明书的规定正常进行或按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按照预定要求正确工作的测试方法。因此白盒测试又称为结构测试或逻辑测试。

黑盒测试是指在完全不考虑程序的内部结构和处理过程的前提下,在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接受输入数据产生正确的输出信息,并且保持外部信息的完整性。因此,又称为功能测试。

21. 什么是结构化分析?它的结构化体现在哪里?

  • 结构化分析:使用数据流程图、数据字典、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化说明书的目标文档-需求规格说明书。
  • 结构化体现在将软件系统抽象为一系列的逻辑加工单元,各单元之间以数据流发生关联。

22. 数据字典包括哪些内容?它的作用是什么?

数据字典是描述数据流图中数据的信息的集合。它对数据流图上每一个成分:数据项、文件(数据结构)、数据流、数据存储、加工和外部项等给以定义和说明;它主要由数据流描述、加工描述和文件描述三部分组成。对用户来讲,数据字典为他们提供了数据的明确定义;对系统分析员来讲,数据字典帮助他们比较容易修改已建立的系统逻辑模型。

选择题

  1. 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作软件危机
  2. 在软件的分析阶段,常用数据流图来描述业务处理系统的信息来源、存储、处理和去向。
  3. 下列关于瀑布模型的描述正确的是瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开
  4. 在进行软件需求分析时,可使用多种工具,但判定表是不适用的。

数据流图、PAD图、数据词典

  1. 需求规格说明书的内容不应当包括的是对算法的详细过程性描述

对重要功能的描述、软件确认准则、软件的性能

  1. 程序的三种基本控制结构的共同特点是只有一个入口和一个出口
  2. 程序流程图是一种传统的程序设计表示工具,使用该工具应注意考虑控制流程
  3. 软件测试的目的是发现程序中的错误
  4. 单元测试是在实现阶段完成的
  5. 不影响软件可维护性的质量属性是可靠性
  6. 软件维护活动所花费的工作占整个生存周期工作量的70%
  7. 软件生存周期的每个阶段工作与软件可维护性有密切的关系。
  8. 模块在同一段时间内完成各种初始化工作,这属于时间内聚
  9. 在详细设计的图示工具中,PAD图可以纵横延伸,图形的空间效果好。
  10. 在软件测试中,白盒测试方法是通过分析程序的内部逻辑来设计测试用例的方法。
  11. 在衡量软件质量时,最重要的标准是符合要求
  12. 结构设计是一种应用最广泛的系统设计方法,是以数据流图为基础、自顶向下、逐步求精和模块化的过程。
  13. 软件工程中描述软件生存周期的瀑布模型一般包括计划、可行性分析 、设计、编码、测试、维护等几个阶段。
  14. 下列数据结构不是软件工程的要素。

工具、方法、过程

  1. 程序的三种基本控制结构的共同特点是只有一个入口和一个出口。
  2. 软件测试的目的是发现程序中的错误
  3. 集成测试是在实现阶段完成的。
  4. 影响软件可维护性的质量属性是可复用性
  5. 软件的适应性维护活动所花费的工作占整个维护工作量的20%
  6. 软件生存周期的每个阶段工作与软件的可维护性有密切的关系。
  7. 在详细设计的图示工具中,N-S图的形状象一个盒子。

N-S图

也叫盒图,由美国学者I.Nassi 和 B.Shneiderman提出,所以又称N-S图,可以清晰的表示程序的结构以及流程,其主要特征为“矩形框”。

PAD图

全称为Problem Analysis Diagram,即问题分析图表,利用二维树形结构表示程序的控制流,也就是将程序功能的路线图给画出来,既可以表示程序的逻辑,也可以表示程序的结构,区分它的方法是程序的最左端有一条“竖线”,表示程序的“主线”。

27. 软件需求分析阶段的工作,可以分为4个方面:需求获取,需求分析,编写需求规格说明书以及需求审评
28. 在原型法中称用户为用户/设计者,开发人员根据用户需求不断修改原型,直到满足用户要求为止。下面不属于软件工程的3个要素是环境

工具、过程、方法

  1. 检查软件产品是否符合需求定义的过程称为确认测试
  2. 数据存储和数据流都是数据,仅仅是所处的状态不同。
  3. 数据流图数据字典共同组成系统的逻辑模型。
  4. 数据元素组成数据的方式的基本类型顺序、选择、循环
  5. 数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是控制流

加工、数据存储、源和潭

  1. 结构化分析方法就是面向数据流的自顶向下逐步求精进行需求分析的方法。
  2. 通过功能分解可以完成数据流图的细化。
  3. 下面不属于软件工程原则的是自底向上

抽象、模块化、信息隐蔽

  1. 模块是数据说明、可执行语句等程序对象的集合,它是单独命名的而且可以通过名字来访问。
  2. 局部化是指让一些关系密切的软件元素在物理上彼此靠近。
  3. 面向数据流的设计方法把信息流映射成软件结构。
  4. 程序流程图(PDF)中的箭头代表的是控制流
  5. 在进行软件结构设计时应该遵循的最主要的原理是模块独立

填空题

  1. 从系统设计的角度出发,软件设计方法分为数据流、数据结构、面向对象三大类。
  2. 程序的三种基本控制结构的共同特点是只有一个入口和一个出口
  3. 模块耦合衡量:模块之间的联系紧密程度
  4. 模块内聚衡量:一个模块内部的紧密程度
  5. 常用的软件开发模型有: 瀑布模型、快速原型、螺旋模型、增量模型
  6. 软件生存周期是指从形成软件概念起,所开发的软件使用之后,直到失去使用价值,消失为止的整个过程。
  7. 等价类是指类中每一个值在测试中的作用与这一类的所有其它值的作用相同
  8. 原型化方法适用于部分清楚、要求模糊的系统。
  9. 节点是2条以上的支路的连接点.
  10. 模块的独立性是 指模块内部各部分及模块间的关系的一种衡量标准,由内聚和耦合来度量。
  11. 判定是表示复杂条件的组合与应做的动作之间的对应关系
  12. 结构图是控制系统原理图的定量描述,是纯数学的抽象运算
  13. 软件生存周期是指从形成软件概念起,所开发的软件使用之后,直到失去使用价值,消失为止的整个过程。
  14. 黑盒测试是指通过测试来检测是否每个功能都正常使用,也称功能测试。典型:黑匣子,它依据外部功能。

判断正误

  1. 瀑布模型的核心是按照软件开发的时间顺序将问题简化 。F

阶段间具有顺序性和依赖性;推迟实现的观点;质量保证的观点。瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开

  1. 需求分析阶段结束后,应交出的文档中应该包括简明的算法描述。F 不需要
  2. 具有独立的模块软件比较容易开发出来。T
  3. 耦合的强弱取决于模块内部各个元素彼此之间的紧密结合程度。F
  4. HIPO图是由一张H图和一张IPO图组成。F

HIPO图由层次结构图和IPO图两部分构成,前者描述了整个系统的设计结构以及各类模块之间的关系,后者描述了某个特定模块内部的处理过程和输入/输出关系。

  1. 在详细设计之前必须有概要设计。F
  2. 数据字典是定义被加工引用的数据流和数据存储。F
  3. 软件测试主要包括软件编码方面的差错和纠错。 F
  4. 模块之间的接口关系不变,各模块的内部细节的修改不会影响别的模块。F
  5. 在进行需求分析时,可以不考虑维护问题。 F
  6. 瀑布模型的核心不是按照软件开发的时间顺序将问题简化。T
  7. 需求分析阶段结束后,交出的文档中不应该包括简明的算法描述。T
  8. 模块越多,开发成本越小。F
  9. 程序流程图只反映数据的流向,不反映处理逻辑的先后。F
  10. HIPO图是由一组H图和一张IPO图组成。F
  11. 模块的内聚性程度与该模块在分层结构中的位置有关系。F
  12. 小说明是定义被加工引用的数据流和数据存储。F
  13. PAD图设置的基本控制结构,不允许使用递归调用。T
  14. 模块之间的接口关系改变,则影响各模块的内部细节的修改。F
  15. 在进行需求分析时,应考虑维护问题。T

加油!

感谢!

努力!

以上是关于软件工程导论期末复习试题集的主要内容,如果未能解决你的问题,请参考以下文章

计算机安全导论期末复习小笔记

网络空间安全导论期末复习资料

《软件需求分析(第二版)》期末考试试题总结/复习资料

人工智能导论期末复习合集

计算机导论期末知识点及试题总结 [近三万字总结 · 全]

Python数据分析与可视化期末复习试题集