软件工程是为了经济地获得可靠的和能在实际机器上高效运行的软件而建立和使用的好的工程原则。它是指导计算机软件开发和维护的工程学科。
(一) 软件工程的定义
采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
此外,IEEE给出了一个更加综合的定义,软件工程是:1)将系统化的、规范的和可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中;2) 1)中所述方法的研究。
(二) 软件工程的分层结构及一般视图
1. 软件工程的分层结构
软件工程是一种层次化的技术。自底向上分为:过程层,方法层和工具层。
软件工程的基层是过程层,软件工程过程是将技术层结合在一起的凝聚力,使得计算机软件能够被合理地和及时地开发出来。
软件工程的方法层提供了建造软件在技术上需要“如何做”。方法涵盖了一系列的任务:需求分析、设计、编程、测试和维护。
软件工程的工具层对过程和方法提供了自动的或半自动的支持。如,计算机辅助软件工程(CASE)。
2. 软件工程的一般视图
与软件工程相关的工作可分为三个一般的阶段:定义阶段、开发阶段和维护阶段。
定义阶段集中于“做什么”,三个主要任务:系统或信息工程,软件项目计划和需求分析。
开发阶段集中于“如何做”,三个特定的任务:软件设计,代码生成和软件测试。
维护阶段集中于“改变”,有四类修改要完成:纠错,适应,增强和预防。
(三) 软件工程的基本原理
1983年,美国TRW公司的B.W. Boehm概括出著名的软件工程7条基本原理:1)按软件生存周期分阶段制订计划并认真实施;2)坚持进行阶段评审;3)坚持严格的产品控制;4)使用现代程序设计技术;5)明确责任;6)用人少而精;7)不断改进开发过程。
(四) 软件工程的目标
软件工程的目标是运用先进的软件开发技术和管理方法来提高软件的质量和生产率,也就是要以较短的周期、较低的成本生产出高质量的软件产品,并最终实现软件的工业化生产。
衡量软件质量的6个特性:功能性、可靠性、可使用性、效率、可维护性和可移植性。
参考资料
[1] 软件工程。郑人杰,马素霞,麻志毅编著,人民邮电出版社。
[2] 软件工程——实践者的研究方法。(美)Roger S. Pressman著,黄柏素,梅宏等译。