跳转至

复习大纲

第一章

什么是软件?软件的特点是什么?本质特征是什么?

软件危机的定义,软件危机的现象

软件可以有哪些分类?

产生软件危机的原因?软件危机现在还存在吗?

解决软件危机的途径是什么?

什么是软件工程?

软件工程研究的内容是什么?中心课题是什么?

提高软件质量的手段。

什么是软件生命期?

瀑布模型每一阶段的含义。瀑布模型的优缺点。

快速原型、增量模型的定义,特点,选取依据。

螺旋模型的定义,适用的软件项目。

软件过程的基本活动

-- 分析、设计、实现、测试、维护

软件工程过程管理原则有哪些?

第二章

可行性分析任务是什么?

大法师

可行性分析的内容?

经济可行性

代码行技术(LOC代码规模统计);

LOC是什么的含义,是什么的单位。

什么是人月,人月是什么的单位。“人月”与“人时”的换算关系;

数据流图包含的要素,数据流图的画法。

画数据流图的注意点。

数据字典的内容;

第三章

需求分析的任务

需求定义和层次

需求包含的内容

需求获取的手段方法

需求报告的作用是什么,需求报告的主要内容有哪些,写作需求文档的注意事项

需求建模时,除了可以使用数据流图数据字典之外,还有哪些需求建模手段?

  • E-R图
  • 状态变迁图
  • UML建模工具

判定树、判定表

需求文档的质量属性有哪些

  • 正确;无二意;完整;可验证;一致;

什么是SA建模方法,掌握SA建模图

非功能性需求的内容有哪些

数据流图包含的要素,数据流图的画法

画数据流图的注意点

数据字典的内容

第四章

总体(概要)设计的内容是什么。

  • 将系统划分成模块
  • 决定每个模块的功能
  • 决定模块的调用关系
  • 决定模块的界面,即模块间传递的数据

模块的定义,模块化设计的重要指导思想是什么。为什么采用模块化进行软件设计?

模块化设计的重要指导思想

  • 分解、信息隐蔽、确保模块独立性

什么是耦合,具体由哪些耦合方式,每种的含义是什么?

模块之间联系的原则

  • 尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,完全不用内容耦合。
  • 模块间相互调用时,传递参数最好只有一个。

什么是内聚,内聚有哪些类型。设计时应追求什么内聚,哪种类型内聚性最差?

模块化的基本原则

  • 高内聚,低耦合。

模块的评价标准

  • 可分解;可组装;可理解;连续性;保护性;

什么是模块的深度广度

什么是扇入扇出

什么是控制域、作用域

模块设计时的启发式规则有哪些

  • 低耦合、高内聚;模块规模适中;适当控制深度宽度;降低接口的复杂程度;争取 单出单入;模块功能可预测;

什么是变化流,什么是事务流;会进行甄别

如何画层次图,结构图

如何从数据流图导出系统初始结构。

萨达

第五章

什么是SD(结构程序设计)

是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结 构。

详细设计的内容是什么

详细设计的工具有哪些。都有哪些优缺点

  • 程序流程图,盒图、pad 图。会将代码,或者程序流程图转换为盒图。

程序流程图,盒图、PAD图,PDL语言

会将代码、或者程序流程图转换为盒图

流图画法

什么是环形复杂度,如何计算程序的环形复杂度

环路复杂度对编程有什么指导意义

第六章

1. 编程语言共有的特性有哪些

2. 什么是编码规范,枚举一些常用的编码规范

3. 什么是程序内文档。如何做程序内文档(或者注意点有哪些)

4. 枚举提高程序局部效率(代码效率)的方法

第七章

1. 测试的目的,测试和审查(静态测试)的关系

2. 什么是软件缺陷,试举一些软件缺陷的例子

  • 程序异常终止;
  • 未达到需求说明书指明的要求;
  • 出现了需求说明书中指明不会出现的错误;
  • 功能超出了需求说明书指明的范围;
  • 未达到需求说明书未指明但是应达到的要求;
  • 难以理解,不易使用,运行速度缓慢;

3. 为什么说:测试发现的错误中的80%很可能是由程序中20%的模块造成的。如何使用这个原理

满足条件覆盖的测试用例,是否一定满足判定覆盖

4. 什么是白盒测试,什么情况需要进行白盒测试?

5. 为什么需要白盒测试,只进行功能测试是否可以?

6. 白盒测试方法有哪些,满足条件覆盖的测试用例,是否一定满足判定覆盖?

7. 什么是基本路径,如何根据流图寻找基本路径?

如何计算环形复杂度?

8. 遇到循环语句,如何进行测试?

9. 代码完成后,应当按照什么样的测试步骤进行测试

10. 单元测试如何完成

11. 什么是驱动模块,什么是桩模块?

12. 自顶向下集成测试,需要构筑驱动模块还是桩模块?

13. 什么是黑盒测试,黑盒测试有哪些方法?什么情况进行黑盒测试?

14. 除功能测试之外,系统测试还需要包含哪些测试(至少枚举3条)

15. 什么是回归测试?为什么要进行回归测试?

16. Alpha测试和Beta测试是什么含义?

第八章

1. 维护的概念

2. 维护的种类、各类的特点。维护工作的难点在哪里?

3. 纠错型维护的方法:程序运行发现了错误,如何定位错误、确认问题点?(综合问题,答案在维护和调试里面)

  • 确认故障问题发生的软件和操作步骤
    • 发生时日
    • 该当制品名、版本
    • OS 版本
    • 现象的内容 发生时的现象、事前的操作内容、发生后的操作(确认是否有 log 的写入)、 再现性的有无
    • 确认其他运行的 SW
    • HW的器械名称(打印机名、网络)
    • LOG文件(event log、其它 log)
  • 在对应的软件代码里面定位排错
  • 在输出储存器内容
  • 打印语句
  • 使用 debug 工具进行跟踪运行
  • 定位的策略:
  • 试探法
  • 回朔法
  • 对分法
  • 归纳法

4. 修改错误代码的注意点有哪些?试着枚举至少3条

  • 设计思想的一致性
  • 修改的处所尽可能的少,不要比需要修改的地方多
  • 尽量不使用共享系统中的已有变量,而使用局部量
  • 不要建立公用子程序,而建立各自独立的子程序
  • 坚持修改后的复审
  • 建立修改文档
  • 注意修改相应的文档

5. 什么是再工程。

什么是逆向工程

第十三章

1. 软件项目管理的内容包含哪些。至少枚举3条

2. 甘特图一般用来描述什么内容?试举例说明

3. 作为一个合格的软件开发人员的条件有哪些,试枚举5条以上

4. 评价软件质量的因素(试枚举评价软件质量的方面)

  • 正确性;
  • 健壮性
  • 可理解性
  • 可维护性
  • 可移植性
  • 效率
  • 可用性
  • 安全性

5. 什么是SQA

6. 软件配置管理的目标、内容和对象

软件配置管理的内容

  • 标识变化;
  • 控制变化;
  • 确保适当地实现了变化;
  • 向需要知道这类信息的人报告变化。

软件配置管理的对象有哪些

  • 文档
  • 代码
  • 数据

配置管理工具举例

  • Svn
  • Git
  • Sourcesafe

7. 配置管理工具举例

8. 基线的概念

什么是里程碑

9. CMM的5个级别

  • 5:最好的实践方式的确立和继续的过程改善
  • 4:过程、成果物测定值被收集、被分析、定量的过程控制
  • 3:组织过程的标准被确立,应用于管理和工程活动中
  • 2:可确立基本的项目管理、成本、进度获得了管理
  • 1:项目的成功依从于个人的努力(混沌)

10. 如何确保软件的质量(综述题目)

  • 正确的开发方式(需求获取、设计、编码这些环节的注意点,自行展开)
  • 分阶段的评审(静态测试)
  • 分阶段的测试(动态测试),确保代码覆盖、功能覆盖、非功能测试要注意。

关于软件工程工具的使用

  1. 数据流图要很好掌握;
  2. 判定表,判定树画法;
  3. 流程图,盒图,PAD 图;
  4. 流图,环形复杂度;
  5. 使用甘特图做计划;