欢迎来到天天文库
浏览记录
ID:38557367
大小:159.50 KB
页数:22页
时间:2019-06-14
《计算机导论11_软件工程new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第11章软件工程软件工程概述软件危机概念:大型软件开发和维护过程中遇到的一系列严重问题。概括地说,主要包含两方面的问题:1)如何开发软件,怎样满足对软件日益增长的需求;2)如何维护数量不断膨胀的已有软件表现形式:质量难以保证、开发成本和开发进度难以控制、维护非常困难、用户不满意。软件危机的主要表现:1.对软件开发成本和进度的估计常常很不准确。实际成本比估计成本有可能高出一个数量级,实际进度比预期进度拖延几个月甚至几年的现象并不罕见。这种现象降低了开发组织的信誉。为赶进度和节约成本所采取的权宜之计往往又损害了软件产品的质量,从而不可避免地引起用户的不满。软件危机的主要表现:
2、2.用户对“已完成的”软件系统不满意的现象经常发生。软件开发人员常常在对用户需求只有模糊的了解,甚至对所要解决的问题还没有确切认识的情况下,就仓促上阵匆忙着手编写程序。软件开发人员和用户之间的交流往往很不充分,“闭门造车”必然导致最终产品不符合用户实际的需要软件危机的主要表现:3.软件产品的质量常常靠不住。软件可靠性和质量保证的确切定量概念刚刚出现,软件质量保证技术(审查、复审和测试)还没有坚持不懈地应用到软件开发的全过程中,这些都会导致软件产品发生质量问题。软件危机的主要表现:4.软件常常是不可维护的。程序中的错误很难改正,实际上不可能使这些程序适应新的硬件环境,也不能
3、根据用户的需求在原有程序中增加新的功能5.软件通常没有适当的文档资料。软件不仅是程序,还应该有一整套文档资料。这些文档资料是在软件开发过程中产生出来的,而且应该是“最新的”(与代码完全一致)。缺乏文档必然给软件的开发和维护带来许多严重的困难和问题软件=程序+文档6.软件成本在计算机系统总成本中所占比例逐年上升。随着微电子技术的进步和生产自动化程度的提高,硬件成本逐年下降,然而软件开发需要大量的人力,软件成本随着通货膨胀以及软件规模和数量的不断扩大而逐年上升。美国在1995年的调查表明,软件成本大约已占计算机系统总成本的90%。软件危机的主要表现:软件危机的例子最为突出的例
4、子是美国IBM公司于1963年~1966年开发的IBM360系列机的操作系统。该软件系统花了大约5000人一年的工作量,最多时,有1000人投入开发工作,写出近100万行的源程序。尽管投入了这么多的人力和物力,得到的结果却极其糟糕。据统计,这个操作系统每次发行的新版本都是从前一版本中找出1000个程序错误而修正的结果。可想而知,这样的软件质量糟到了什么地步。该项目的负责人F·D·布罗克斯在总结该项目时无比沉痛地说:“……正像一只逃亡的野兽落到泥潭中作垂死挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶的灾难,……程序设计工作正像这样一个泥潭……一批批程序员被迫在泥潭中拼命挣扎,
5、……,谁也没有料到问题竟会陷入这样的困境……。”IBM360操作系统的历史教训已成为软件开发项目中的典型事例被记入历史史册。软件危机的例子如果开发的软件隐含错误,可靠性得不到保证,那么在运行过程中很可能对整个系统造成十分严重的后果,轻则影响到系统的正常工作,重则导致整个系统的瘫痪,乃至造成无可挽回的恶性事故。如,银行的存款可能被化为乌有,甚至弄成赤字;工厂的产品全部报废,导致工厂破产。1963年,美国用于控制火星探测器的计算机软件中的一个“,”号被误写为“·”,而致使飞往火星的探测器发生爆炸,造成高达数亿美元的损失软件工程概述软件危机“软件危机”使得人们开始对软件及其特性
6、进行更深一步的研究,人们改变了早期对软件的不正确看法。早期那些被认为是优秀的程序常常很难被别人看懂,通篇充满了程序技巧。现在人们普遍认为优秀的程序除了功能正确,性能优良之外,还应该容易看懂、容易使用、容易修改和扩充。软件工程概述软件危机产生的原因软件危机产生的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的:a.软件的规模越来越大,结构越来越复杂。b.软件开发管理困难而复杂。c.软件开发费用不断增加。d.软件开发技术落后。e.生产方式落后。f.开发工具落后,生产率提高缓慢。软件工程概述软件工程软件工程正是为克服软件危机而提出的一种概念,并在实践中不断
7、地探索它的原理,技术和方法。在此过程中,人们研究和借鉴了工程学的某些原理和方法,并形成了一门新的学科─软件工程学概念:SoftwareEngineering,简称为SE,研究大规模程序设计的方法、工具和管理的一门工程科学,也就是运用系统的、规范的和可定量的方法来开发、运行和维护软件的系统工程。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面软件工程概述软件生命周期一个软件从提出开发要求开始直到该软件报废为止的整个时期。包括可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等活动。
此文档下载收益归作者所有