20世纪60年代以前,计算机刚刚投入实际使用,软件设计往往只是为了一个特定的应用而在指定的计算机上进行设计和编制,采用密切依赖于计算机的机器代码或汇编语言,软件规模比较小,文档资料通常也不存在,很少使用系统化的开发方法,设计软件往往等同于编制程序,基本上是个人设计、个人使用、个人操作、自给自足的私人化的软件生产方式。
20 世纪60年代中期,大容量、高速度计算机的出现,使计算机的应用范围迅速扩大,软件开发量急剧增长,软件系统的规模越来越大,复杂程度越来越高,软件可靠性问题也越来越突出。1968年,软件危机(Software Crisis)的概念被首次提出,具体表现为软件开发进度难以预测、软件开发成本难以控制、软件功能难以满足用户期望、软件质量无法保证、软件难以维护、软件缺少适当的文档资料等,为解决软件危机,软件工程概念诞生。
软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程,其目的是提高软件生产率、提高软件质量、降低软件成本。电气与电子工程师协会(Institute of Electrical and Electronics Engineers,IEEE)对软件工程的定义是:将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及上述方法的研究。计算机科学家Fritz Bauer给出的软件工程的定,义是:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。
软件工程由方法、工具和过程3个部分组成。软件工程使用的方法是完成软件项目的技术手段,它支持整个软件生命周期;软件工程使用的工具是人们在开发软件的活动中智力和休力的扩展与延伸,它自动或半自动地支持软件的开发和管理,支持各种软件文档的生成;软件工程中的过程贯穿于软件开发的各个环节,是指为获得软件产品,在软件工具的支持下由软件工程师完成的一系列软件工程活动。管理人员在软件工程过程中,要对软件开发的质量、进度、成本进行评估、管理和控制,包括人员组织、计划跟踪与控制、成本估算、质量保证和配置管理等。
整理不易动动你发财的小手点个“在看”哦!
您的支持是我坚持的动力,谢谢
领取专属 10元无门槛券
私享最新 技术干货