软件工程自从 1968 年初次提出软件工程一词以来,软件工程已成为计算机软件的一种重要分支和研究方向
软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和措施来处理软件问题的工程
其目的是提高软件生产率、提高软件质量、减少软件成本
一、软件工程基本概念初期的软件重要指程序
程序的开发采用个体工作方式,开发工作重要依赖于开发人员的个人技能和程序设计技巧
当时的软件一般缺乏与程序有关的文档,软件开发的实际成本和进度往往与估计的相差甚远,软件的质量得不到保证,开发出来的软件常常不能使顾客满意
伴随计算机应用的需求不停增长,软件的规模也越来越大,然而软件开发的生产率远远跟不上计算机应用的迅速增长
此外,由于软件开发时缺乏好的措施指导和工具辅助,同步又缺乏有关的文档,使得大量已经有的软件难以维护
上述这些问题严重地阻碍了软件的发展,20 世纪 60 年代中期,人们把上述软件开发和维护中的多种问题称为“软件危机”
1968 年在德国召开的 NATO 会议上,初次提出了“软件工程”一词,但愿用工程化的原则和措施来克服软件危机
在此后来,人们开展了软件开发模型、开发措施、工具与环境的研究,提出了瀑布模型、演化模型、螺旋模型、喷泉模型等开发模型,出现了面向数据流措施、面向数据构造的措施、面向对象措施等开发措施,以及一批CASE(computer aided software engineering)工具和环境
(一) 软件生存周期如同人的毕生要经历婴儿期、少年期、老年期直至死亡这样一种全过程同样,任何一种软件产品或软件系统也都要经历软件定义、软件开发、软件维护直至被淘汰这样一种全过程,我们把软件的这一全过程称为软件生存周期
软件定义、软件开发、软件维护等阶段还可分为若干个阶段,每个阶段相对独立又彼此有联络,上一阶段的工作成果是下一阶段工作的根据,下一阶段是上一阶段的进化,它更靠