软件工程相关整理
1、 需求分析—通过需求分析,可以检测和解决 需求之间的冲突、发现系统的边界、详细出同需求(需求的可验证性是基本属性)
2、 软件设计—架构设计和详细设计(两者区别)
a) 概要设计就是设计软件的结构,包括组成模块、模块之间的层次结构和调用关系,每个模块的功能,该项目的应用系统总体数据和数据库结构,即应用系统要存储什么数据、以什么样的结构存储、之前什么关系—概要设计阶段通常产出 软件结构图
b) 详细设计,为每个模块完成的功能进行具体描述,要把功能描述转换为 精确的、结构化的过程描述。详细设计阶段常用的描述方式:流程图、N-S图,PAD图,伪代码等。
c) 软件测试是针对程序的行为,在有限测试用例集合上,动态验证是否达到预期行为。测试不再只是一种尽在编码阶段完成后才开始的活动。现在的软件测试被认为是一种应该包括在整个开发和维护过程中的活动,它本身是实际产品构造的一个重要部分
- 所有的软件测试都应追溯到用户需求;
- 应当把“尽早的和不断进行软件测试”作为软件测试者的座右铭(需求分析和设计阶段就应该开始测试)
- 完全测试是不可能的,测试需要终止(穷举测试不可能)
- 测试无法显示软件潜在的缺陷(只能证明软件存在错误而不能证明软件没有错误)
- 充分注意测试中的群集现象
- 程序员应避免检查自己的程序
- 尽量避免测试的随意性
软件测试伴开发和维护过程,通常可以在概念上划分为 单元测试、集成测试和系统测试 3个阶段