由于软件系统越来越复杂,不管是需求分析、程序设计等都面临越来越大的挑战。由于软件开发人员思维上的主观局限性,
且目前开发的软件系统都具有相当的复杂性,决定了在开发过程中出现软件错误时不可避免的,造成软件缺陷的主要原因有哪些?
可以从软件本身、团队工作和技术问题等多个方面分析,以确定造成软件缺陷的主要因素。
1、技术问题
a、开发人员技术的限制,系统设计不能够全面考虑功能、性能和安全性的平衡。
b、刚开始采用新技术,解决问题和处理问题时不够成熟
c、由于逻辑过于复杂,很难在第一次就将问题全部处理好
d、系统结构设计不合理或算法不科学,造成系统性能低下
e、接口参数太多,导致参数传递不匹配
f、需求规格书中有些功能在技术上无法实现
g、没有考虑系统崩溃后自我恢复或数据的异地备份、灾难性恢复等需求,导致系统存在安全性、可靠性隐患
h、一般情况下,对应的编程语言编译器可以发现这类问题;对于解释性语言,只能在测试运行的时候发现
2、软件本身
a、不完善的软件开发标准或开发流程
b、文档错误、内容不正确或拼写错误
c、没有考虑大量数据使用场合,从而可能会引起强度或负载问题
d、对程序逻辑路径或数据范围的边界考虑不够周全,漏掉某几个边界条件造成的问题
e、对一些实时应用系统,缺乏整体考虑和精心设计,忽视了时间同步的要求,从而引起系统各单元之间不协调、不一致性的问题
f、与硬件、第三方系统软件之间存在接口或依赖性
3、团队工作
a、团队文化(如对软件质量不够重视)
b、系统分析时对客户的需求模糊,或者和用户的沟通存在一些困难,从而造成对用户需求的误解或理解不全面
c、不同阶段的开发人员相互理解不一致,软件设计对需求分析结果的理解偏差,编程人员对系统设计规格说明书中某些内容重视不够,或存在误解
d、设计或编程上的一些假定或依赖性,没有得到充分的沟通
软件缺陷的造成
规格说明书(需求41%)、系统设计结果(12%+24%)、编程代码(23%)
遇到的问题:在和非计算机专业人员沟通需求时,如何沟通清楚避免出现需求理解错误的问题?
评论