文档介绍:福州大学·软件学院·软件工程教研室
王灿辉(******@fzu.)
(给我发邮件或加我QQ需注明学号、姓名等信息)
SOFTWARE ENGINEERING
(软件工程)
教案
软件
$
oftware
IT发展趋势
硬件费用降低
人力费用提高
应用复杂性提高
社会对软件的依赖性增加
软件危机
20世纪六七十年代,计算机硬件技术有了很大的发展,为计算机的广泛应用创造了条件,并要求软件与之相适应。当时的软件生产具有个体化、作坊式特点,开发工具落后,开发平台单一,程序设计语言功能差。尤其是软件维护工作,耗费大量的人力、物力和计算机资源,许多程序的个体化特性使得它们无法修改和维护。
软件危机
有的干脆废弃原有系统不用,从头编写新软件。与此同时,软件的规模越来越大,结构越来越复杂,软件管理和维护困难,开发费用不断增加。这种软件开发技术、开发工具和生产方式落后的状况与计算机应用迅速普及和对软件的需求日益增加形成了尖锐的矛盾,由此而产生了“软件危机”。
软件
软件= or ≠程序?
软件开发项目的成功率?
软件
在60年代计算机发展初期,程序设计是少数聪明人干的事。他们的智力与技能超群,编写的程序既能控制弱智的计算机,又能让别人看不懂、不会用。那个时期编程就跟捏泥巴一样随心所欲,于是他们很过分地把程序的集合称为软件,以便自己开心或伤心时再把程序捏个面目全非。人们就在这种美滋滋的感觉下热情地编程,结果产生了一堆问题:程序质量低下,错误频出,进度延误,费用剧增…这些问题导致了“软件危机”。
软件?
软件=程序?
软件=程序+数据?
软件=程序+数据+文档?
软件:三层含义
个体含义:程序、数据及相关文档。
整体含义,指在特定计算机系统中所有上述个体含义下的软件的总称,即计算机系统中硬件除外的所有成分。
学科含义,指在研究、开发、维护以及使用前述含义下的软件所涉及的理论、方法、技术所构成的学科。
软件开发面临的问题
①软件开发成本高并且难以控制
②研制周期长,开发进度难以估计
③正确性难保证(软件质量差)
④缺乏完整、正确的文档资料
⑤软件的维护困难,维护的人员与费用不断增加,软件质量等难于度量
⑥软件的发展跟不上硬件的发展和用户的要求,……