第1页共42页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共42页软件工程自从1968年首次提出软件工程一词以来,软件工程已成为计算机软件的一个重要分支和研究方向
软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程
其目的是提高软件生产率、提高软件质量、降低软件成本
一、软件工程基本概念早期的软件主要指程序
程序的开发采用个体工作方式,开发工作主要依赖于开发人员的个人技能和程序设计技巧
当时的软件通常缺少与程序有关的文档,软件开发的实际成本和进度往往与预计的相差甚远,软件的质量得不到保证,开发出来的软件常常不能使用户满意
随着计算机应用的需求不断增长,软件的规模也越来越大,然而软件开发的生产率远远跟不上计算机应用的迅速增长
此外,由于软件开发时缺少好的方法指导和工具辅助,同时又缺少有关的文档,使得大量已有的软件难以维护
上述这些问题严重地阻碍了软件的发展,20世纪60年代中期,人们把上述软件开发和维护中的各种问题称为“软件危机”
1968年在德国召开的NATO会议上,首次提出了“软件工程”一词,希望用工程化的原则和方法来克服软件危机
在此以后,人们开展了软件开发模型、开发方法、工具与环境的研究,提出了瀑布模型、演化模型、螺旋模型、喷泉模型等开发模型,出现了面向数据流方法、面向数据结构的方法、面向对象方法等开发方法,以及一批CASE(computeraidedsoftwareengineering)工具和环境
(一)软件生存周期如同人的一生要经历婴儿期、少年期、老年期直至死亡这样一个全过程一样,任何一个软件产品或软件系统也都要经历软件定义、软件开发、软件维护直至被淘汰这样一个全过程,我们把软件的这一全过程称为软件生存周期
软件定义、软件开发、软件维护等阶段还可分为若干个阶段,每个阶段相对独立又彼此有联系,上一