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