软件缺陷产生的原因多种多样,一般可能有以下几种原因。
1. 需求表述、理解、编写引起的错误。
2. 系统设计架构引起的错误。
3. 开发过程缺乏有效的沟通及监督,甚至没有沟通或监督。
4. 程序员编程中产生的错误。
5. 软件开发工具本身隐藏的问题。
6. 软件复杂度越来越高。
7. 与用户需求不符,即使软件实现本身无缺陷。
8. 外界应用环境或电磁辐射导致的缺陷。
上述情况都可能产生缺陷,常见的缺陷分为以下4种情况。
1. 遗漏
规定或预期的需求未体现在产品中,可能在需求调研或分析阶段未能将用户规格全部分析实现,也可能在后续产品实现阶段,未能全面实现。
通俗而言,一是根本没记录需求,需求本身就遗漏了客户的原始需求,二是需求是齐备完整的,但在设计开发阶段,遗漏了某些需求。
【案例5-1 OA系统需求遗漏缺陷】
OA系统需求调研时,用户提出需要实现发文回收功能,发出的通告信息可在对方未查收时撤销,需求开发人员在需求调研阶段并未记录该需求,从而导致此需求遗漏。
另外一种情况是,需求开发人员在需求规格说明书中已经详细阐明了需求,但研发人员在实现时遗漏了。
2. 错误
需求是正确,但在实现阶段未将规格说明正确实现,可能在概要、详细设计时产生了错误,也可能是编码错误,即有此需求,但需求实现与用户期望不一致。例如,排序功能,用户期望的是按价格升