如何保证软件工程的质量、时间/工期和预算/成本
计算机科学与教育软件学院 05 级软件工程 2 班
彭镇剑 0515214526
质量保证:
软件工程的质量保证并非是在软件开发过程中的某一阶段就可以完成的,相反,质量
的保证要深入到软件开发过程的每一阶段。
首先是在项目决策阶段,因为在这个阶段要决定项目的可行性,所以要广泛收集资料、
仔细调查研究,并在此基础上得出既可以保证项目质量而又可以获取最大利润的最佳方案
当然个人认为这个时候项目质量占的成分要远比利润高,因为没有好的质量利润是不长久
的,所以要想得到更多的利润就要保证软件的质量。其次是需求分析阶段,这就要找到开
发项目领域最好的领域专家了(当然要量力而为,不然找个相关领域最好的领域专家却把
所有的利润都用来支付领域专家的酬劳了,那样就得不偿失了),毕竟没有好的领域专家
就不能清楚的了解客户真正的需求是什么,这不仅会给软件工程的开发进度带来麻烦,同
时也会严重的影响了软件工程的质量。因为需求分析做得不好就可能困死在需求的不断修
改当中,永无止境的修改会给软件工程带来严重的质量问题,修改越多就意味着在程序中
打入更多的补丁,而这一大群的补丁是否会运行中发生冲突也不一定能够通过软件测试来
解决,而且不断的需求修改也会让客户对软件公司失去耐心,从而放弃该软件公司另谋高
处,造成项目中途流产,所以做好需求分析至关重要,而这就需要有好的领域专家帮忙,
在领域专家的鼎力支持之下搞懂客户大部分的需求,并作出最符合客户需求的需求分析,
当然要想 100%符合客户的要求那就只能是痴人说梦了。再者是软件工程开发阶段,首先是
尽量不要干扰开发人员的情绪,情绪不稳的开发人员是不可能写出高质量代码的,所以要
做好开发人员的安抚工作;其次是要让开发人员及时了解需求的变更,最好能够让领域专
家随时给开发人员提供相关的领域知识和要求;第三,最好使用一些先进的开发方法来开
发,比如测试驱动开发方法(TDD)、敏捷开发方法等;最后是使用的工具,尽量使用一
些先进的开发工具,不要迷恋那些古老的开发工具,先进的开发工具开发的产品出错率远
比古老开发工具开发的产品低得多。最后是测试阶段,虽然说测试驱动开发(TDD)等先
进的开发方法是由测试开始写代码的,但这并不意味着就可以忽略了软件工程测试阶段的
重要性,一件产品质量如何很到程度决定于测试阶段,好的测试一般都会带来好的软件质
量。很多公司因为规模问题可能最后的软件测试也是由开发人员来完成的,这就会给软件
带来很大的风险,因为很多时候开发人员由于潜意识作祟可能不能很好的尽到测试的职责
所以如果条件允许最好使用独立的测试人员,这样才可以给软件质量带来良好的保证。
时间/工期保证:
在软件需求分析阶段就要做好在软件项目的进度计划,最好具体到每个部件、每个功
能的所需要的开发时间,并给予足够的松弛时间,但是软件开发过程中难免会遇到需求更
改,这样需求分析阶段制定的进度计划表就可能失效,所以在开发过程中就能采用适当的
方法定期跟踪、检查工程的实际进度状况,并与计划进度对照,比较照度两者之间的偏差
对产生偏差的各种因素要进行分析和评估,并采取有效措施调整工程的进度计划。
预算/成本保证:
正确做好软件工程的预算/成本估计对软件公司来说至关重要,在进行项目可行性分析
的时候就要开始进行项目预算,主要看该项目是属于新项目还是原有产品的更新,如果是
新项目工程就会比较大,所需的开支也会相应更加,所以预算会相对高一点,而产品更新