软件工程的七条基本原理
软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程,目的是提高软件生产率、提高软件质量、降低软件成本。
美国软件工程师B.W.Boehm于1983年提出了软件工程的七条基本原理。它是确保软件产品质量和开发效率的原理的最小集合。
一、用分阶段的生命周期计划严格管理
统计发现,50%以上的失败项目是由于计划不周造成的。
这条基本原理意味着,应该把软件生命周期划分成若干个阶段,并相应地制定出切实可行的计划,然后严格按照计划对软件的开发与维护工作进行管理。软件生命周期中应该制定并严格执行六类计划:项目概要计划,里程碑计划,项目控制计划,产品控制计划,验证计划,运行维护计划。
二、坚持进行阶段评审
统计发现,大部分错误是在编码之前造成的:设计错误占软件错误的63%,编码仅占37%。并且,错误发现与改正得越晚,所需付出的代价也越高。所以,在每个阶段都进行严格的评审,以便尽早发现错误。
三、实现严格的产品控制
在软件开发过程中不应随意改变需求,但是,在软件开发过程中改变需求又是难免的。在改变需求时,为了保持软件各个配置成分的一致性,必须实行严格的产品控制 —— 其中主要是实行基准配置管理(变动控制):一切有关修改软件的请求,都必须按照严格的规程进行评审,获得批准以后才能实施修改。
四、采用现代程序设计技术
实践表明,“方法大于力气” —— 采用先进的技术既可提高软件开发的效率,又可提高软件维护的效率,降低维护成本。
五、结果应能清楚地审查
软件产品不同于一般的物理产品,它是看不见摸不着的逻辑产品。为了提高软件开发过程的可见性,更好地进行管理,应该根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,从而使得所得到的结果能够清楚地审查。
六、开发小组的人员应少而精
开发小组人员的素质和数量是影响软件产品质量和开发效率的重要因素。高素质的人员的开发效率比低素质的人员的开发效率可能高几倍至几十倍,并且所开发的软件中的错误要少得多。
此外,随着开发小组人员数目的增加,因为交流情况讨论问题而造成的通信开销也急剧增加。
七、承认不断改进软件工程实践的必要性
遵循上述六条基本原理,就能够按照当代软件工程基本原理实现软件的工程化生产,却并不能保证软件开发与维护的过程能赶上时代前进的步伐。因此,不仅要积极主动地采纳新的软件技术,而且要注意不断总结经验,例如,收集进度和资源耗费数据,收集出错类型和问题报告数据等等。这些数据不仅可以用来评价新的软件技术的效果,而且可以用来指明必须着重开发的软件工具和应该优先研究的技术。