重点章节,选择会考12-15分。主要考察软件工程基础、软件开发方法、系统分析、设计、测试以及运行和维护。
1.需求工程
1.1.软件需求
1.1.2.需求开发
1)需求获取
2)需求分析
3)需求定义
4)需求验证
1.1.3.需求管理
2.系统设计
2.1. 处理流程设计
2.1.1.流程表示工具
- 程序流程图
- IPO图
- N-S图(盒图):不适合复杂程序设计
- 问题分析图PAD:结构化
2.1.2.业务流程重组EPR
需要记住基本原则
2.1.3.业务流程管理BPM
BPM和BPR的区别在于BPM并不对所有的流程进行改造。
2.2.系统设计
2.2.1.模块内聚和模块耦合
内聚分类 | 记忆关键字 |
偶然内聚 | 无直接关联 |
逻辑内聚 | 逻辑类似,参数决定 |
时间内聚 | 同时执行 |
过程内聚 | 指定过程顺序 |
通信内聚 | 相同数据结构,相同输入输出 |
顺序内聚 | 顺序执行,输入为输出 |
功能内聚 | 共同作用,缺一不可 |
耦合分类 | 记忆关键字 |
无直接耦合 | 没有直接关系 |
数据耦合 | 传递数据值调用 |
标记耦合 | 传递数据结构 |
控制耦合 | 控制变量,选择执行某一功能 |
外部耦合 | 软件外部环境 |
公共耦合 | 公共数据结构 |
内部耦合 | 模块内部关联 |
2.3.人机界面设计的三大原则
- 置于用户控制之下
- 减少用户记忆负担
- 保持界面一致性
3.测试基础知识
3.1.测试的原则
系统测试是为了发现错误而执行程序的过程,成功的测试是发现了至今尚未发现的错误的测试。
测试原则:
- 应尽早并不断的进行测试;
- 测试工作应该避免由原开发软件的人或小组承担:
- 在设计测试方案时,不仅要确定输入数据,而且要根据系统功能确定预期的输出结果;
- 既包含有效、合理的测试用例,也包含不合理、失效的用例;
- 检验程序是否做了该做的事,且是否做了不该做的事;
- 严格按照测试计划进行;
- 妥善保存测试计划和测试用例;
- 测试用例可以重复使用或追加测试。
3.2.测试类型
3.3.测试阶段
3.4.测试用例设计
3.5.调试
测试是发现错误,调试是找出错误的代码和原因。
调试需要确定错误的准确位置,确定问题的原因并设法改正。改正后要进行向归测试。
调试的方法有:
- 蛮力法
- 回溯法(从出错的地方开始,向回找)、
- 原因排除法(找出所有可能的原因逐一进行排除,具体包括演绎法、归纳法、二分法)
3.6.软件度量
环路复杂度=判定节点个数+1
4.系统的运行与维护
4.1.遗留系统
4.2.净室软件工程
净室软件工程是一种应用数学与统计学理论以经济的方式生产高质量软件的工程技术,力图通过严格的工程化的软件过程达到开发中的零缺陷或接近零缺陷。净室方法不是先制作一个产品
再去消除缺陷,而是要求在规约和设计中消除错误,然后以“净”的方式制作,可以降低软件开
发中的风险,以合理的成本开发出高质量的软件。
在净室软件工程它甚至提倡开发者不需要进行单元测试,而是进行正确性验证和统计质量控制。
净室软件工程的理论基础主要是函数理论和抽样理论。
4.3.基于构建的软件工程
基于构件的软件工程(CBSE)是一种基于分布对象技术、强调通过可复用构件设计与构造软件系将软件开发的重点从程序编写转统的软件复用途径。CBSE 体现了‘购买而不是重新构造'的哲学。
用于CBSE的构件应该具备以下特征:
- 可组装型:对于可组装的构件,所有外部交互必须通过公开定义的接口进行。同时它还必须对自身信息的外部访问。
- 可部署的,无需在部署前编译
- 文档化的,构件必须是完全文档化的,用户根据文档来判断构件是否满足需求。
- 独立性,构件应该是独立的,应该可以在无其他特殊构件的情况下进行组装和部署,如确实需要其他构件提供服务,则应显示声明。
- 标准化,构件标准化意味着在CBSE 过程中使用的构件必须符合某种标准化的构件模型。
构建的组装方式:
- 顺序组装
- 层次组装
- 叠加组装