1.3.3 软件工程的目标和原则
软件工程要达到的基本目标包括以下六方面。
(1)达到要求的软件功能。
(2)取得较好的软件性能。
(3)开发出高质量的软件。
(4)付出较低的开发成本。
(5)需要较低的维护费用。
(6)能按时完成开发工作,及时交付使用。
为了达到上述目标,软件工程设计、工程支持及工程管理在软件开发过程中必须遵循一些基本原则。经过长期的实践,1983年,著名软件工程专家B.W.Boehm综合有关专家和学者的意见并根据多年来开发软件的经验,提出了软件工程的七条基本原则。(https://www.daowen.com)
(1)用分阶段的生存周期计划进行严格的项目管理。将软件的生存周期划分为多个阶段,对各个阶段实行严格的项目管理。软件开发是一个漫长的过程,人们可以根据软件的特点或目标,把整个软件的开发周期划分为多个阶段,并为每个阶段制订分阶段的计划及验收标准,这样有益于对整个软件开发过程进行管理。在传统的软件工程中,软件开发的生存周期可以划分为可行性研究、需求分析、软件设计、软件实现、软件测试、产品验收和交付等阶段。
(2)坚持进行阶段评审。严格地贯彻与实施阶段评审制度,可以帮助软件开发人员及时地发现错误并将其改正。在软件开发的过程中,错误发现得越晚,修复错误所要付出的代价就会越大。实施阶段评审,只有在本阶段的工作通过评审后,才能进入下一阶段的工作。
(3)实行严格的产品控制。在软件开发的过程中,用户需求很可能在不断地发生着变化。有些时候,即使用户需求没有改变,软件开发人员受到经验的限制,以及与客户交流不充分的影响,也很难做到一次性获取到全部的正确的需求。可见,需求分析的工作应该贯穿整个软件开发的生存周期。在软件开发的整个过程中,需求的改变是不可避免的。当需求更新时,为了保证软件各个配置项的一致性,实施严格的版本控制非常必要。
(4)采用现代程序设计技术。现代程序设计技术,如面向对象的软件开发技术,可以使开发出来的软件产品更容易维护和修改,同时还能缩短开发的时间,并且更符合人们的思维逻辑。
(5)软件工程结果应能清楚地审查。虽然软件产品的可见性比较差,但是它的功能和质量应该能够被准确地审查和度量,这样才能有利于有效的项目管理。一般软件产品包括可以执行的源代码、一系列相应的文档和资源数据等。
(6)开发小组的人员应该少而精。开发小组成员的人数少有利于组内成员的充分交流,这是高效团队管理的重要因素。而高素质的开发小组成员是影响软件产品的质量和开发效率的重要因素。
(7)承认不断改进软件工程实践的必要性。随着计算机科学技术的发展,软件从业人员应该不断地总结经验,并且主动学习新的软件技术,只有这样才能不落后于时代。
B.W.Boehm指出,遵循前6条基本原理,能够实现软件的工程化生产。按照第7条原理,不仅要积极主动地采纳新的软件技术,还要注意不断总结经验。通过学习本课程,读者可以深入理解软件工程基本原理的含义和作用。