本文继20年研发管理经验谈(八)。html
软件工程的七条基本原理工具
自从1968年提出“软件工程”这一术语以来,研究软件工程的专家学者们陆续提出了100多条关于软件工程的准则或信条。美国著名的软件工程专家 Boehm 综合这些专家的意见,并总结了TRW公司多年的开
发软件的经验,于1983年提出了软件工程的七条基本原理。 post
Boehm 认为,这七条原理是确保软件产品质量和开发效率的原理的最小集合。它们是相互独立的,是缺一不可的最小集合;同时,它们又是至关完备的。 编码
人们固然不能用数学方法严格证实它们是一个完备的集合,可是能够证实,在此以前已经提出的100多条软件工程准则均可以有这七条原理的任意组合蕴含或派生。 设计
下面简要介绍软件工程的七条原理: htm
1 用分阶段的生命周期计划严格管理 对象
这一条是吸收前人的教训而提出来的。统计代表,50%以上的失败项目是因为计划不周而形成的。在软件开发与维护的漫长生命周期中,须要完成许多性质各异的工做。这条原理意味着,应该把软件生命周期分红若干阶段,并相应制定出切实可行的计划,而后严格按照计划对软件的开发和维护进行管理。 Boehm 认为,在整个软件生命周期中应指定并严格执行6类计划:项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划、运行维护计划。 blog
2 坚持进行阶段评审 生命周期
统计结果显示: 大部分错误是在编码以前形成的,大约占63%; <2> 错误发现的越晚,改正它要付出的代价就越大,要差2到3个数量级。 所以,软件的质量保证工做不能等到编码结束以后再进行,应坚持进行严格的阶段评审,以便尽早发现错误。 开发
3 实行严格的产品控制
开发人员最痛恨的事情之一就是改动需求。可是实践告诉咱们,需求的改动每每是不可避免的。这就要求咱们要采用科学的产品控制技术来顺应这种要求。也就是要采用变更控制,又叫基准配置管理。当需求变更时,其它各个阶段的文档或代码随之相应变更,以保证软件的一致性。
4 采纳现代程序设计技术
从6、七时年代的结构化软件开发技术,到最近的面向对象技术,从第1、第二代语言,到第四代语言,人们已经充分认识到:方法大似气力。采用先进的技术便可以提升软件开发的效率,又能够减小软件维护的成本。
5 结果应能清楚地审查
软件是一种看不见、摸不着的逻辑产品。软件开发小组的工做进展状况可见性差,难于评价和管理。为更好地进行管理,应根据软件开发的总目标及完成期限,尽可能明确地规定开发小组的责任和产品标准,从而使所获得的标准能清楚地审查。
6 开发小组的人员应少而精
开发人员的素质和数量是影响软件质量和开发效率的重要因素,应该少而精。这一条基于两点缘由:高素质开发人员的效率比低素质开发人员的效率要高几倍到几十倍,开发工做中犯的错误也要少的多; 当开发小组为N人时,可能的通信信道为N(N-1)/2, 可见随着人数N的增大,通信开销将急剧增大。
7 认可不断改进软件工程实践的必要性
听从上述六条基本原理,就可以较好地实现软件的工程化生产。可是,它们只是对现有的经验的总结和概括,并不能保证遇上技术不断前进发展的步伐。所以,Boehm提出应把认可不断改进软件工程实践的必要性做为软件工程的第七条原理。根据这条原理,不只要积极采纳新的软件开发技术,还要注意不断总结经验,收集进度和消耗等数据,进行出错类型和问题报告统计。这些数据既能够用来评估新的软件技术的效果,也能够用来指明必须着重注意的问题和应该优先进行研究的工具和技术。