软件的质量保证工作不能等到编码阶段结束之后再进行。因为大部分错误是在编码之前造成的,而且错误发现得越晚,为改正它所需付出的代价就越大。因此,在每个阶段都要进行严格的评审,以尽早发现在软件开发过程中产生的错误。
根据统计,设计错误占软件错误的63%,编码错误仅占37%。
・坚持严格的产品控制
在软件开发过程中不应随意改变需求,因为改变一项需求往往需要付出较高的代价。但是,由于外界环境的变化或软件工作范围的变化,在软件开发过程中改变需求又是难免的,不能硬性规定禁止客户改变需求,只能依靠科学的产品变更控制技术来顺应需求的变更。就是说,当变更需求时,为了保持软件各个配置成分的一致性,必须实施严格的产品控制,其中主要是实施基线配置管理。
课文注释:所谓基线配置,是经过评审后的软件配置成分,包括各个阶段产生的文档或源代码。一切有关软件修改的建议,特别是涉及到对基线配置的修改建议,都必须按照严格的规程进行审查,获得批准之后才能实施修改。
・使用现代程序设计技术
自从提出软件工程的概念以来,人们一直致力于研究各种新的程序设计技术。1960年代末提出的结构化程序设计技术,已经成为大多数人公认的能够产生高质量程序的程序设计技术。随着软件建模技术的兴起,继而出现了结构化设计技术,接着又出现了结构化分析技术。实践表明,采用先进的技术可提高软件开发的生产率,还可提高软件的可维护性。
・明确责任
软件产品不同于一般的物理产品,它是看不见摸不着的逻辑产品。软件开发人员或开发小组的工作进展情况可见性差,难以准确度量,使得软件产品的开发过程比一般产品的开发过程更难于评价和管理。为了提高软件开发过程的可见性,有效地进行管理,应当根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,使得工作结果能够得到清楚的审查。
・用人少而精
合理安排软件开发小组人员的原则是参与人员应当少而精,即小组的成员应当具有较高的素质,且人数不应过多。人员素质高能大大提高软件开发的生产率,明显减少软件中的错误。此外,随着开发小组人数的增加,因交流开发进展情况和讨论遇到的问题而造成的通信开销也急剧增加。因此,应当保证软件开发小组人员少而精。
・不断改进开发过程
为保证软件开发的过程能够跟上技术的进步,必须不断地灵活地改进软件工程过程。为了达到这个要求,应当积极主动地采用新的软件技术,注意不断总结经验。此外,需要注意收集和积累出错类型、问题报告等数据,用以评估软件技术的效果和软件人员的能力,确定必须着重开发的软件工具和应当优先研究的技术。