网站大量收购闲置独家精品文档,联系QQ:2885784924

(软件系统开发技术)第1章绪言.ppt

  1. 1、本文档共69页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
   计算机专业的学生在修完编程(Programming)等课程之后,对编写小型程序,例如字符编辑程序或报表打印程序等,一定是很有把握了。但是,如果需要研制一个大型的软件系统,例如飞机订票系统或学校管理系统(包括教务、财务、人事、物资等各系科的全面管理),相信会遇到许多困难,因此还必须学习“软件工程学”。 “软件工程”(Software Engineering)是从“编程”演变过来的,后者一般考虑小型程序的编写,前者则考虑大型软件系统的研制。“软件工程学”出现至今只有二十余年,是一门新的学科。本节先讨论软件工程学产生的背景及这门学科的目的。   60年代以来,在一些技术领先的国家中,计算机的应用领域越来越广,它几乎涉及到社会生活的各个方面,如工厂管理、银行事务、病人监护、学校档案、图书馆流通、旅馆预订……,这些系统的软件规模都相当大,逻辑很复杂,而且功能上需要不断更改和扩充。   至于军事方面的导弹防御系统、宇航方面的飞行控制系统,其软件就更为庞大和复杂了。  由于软件是非实物性、不可见的,开发软件本质上又是一个“思考”的过程,很难进行管理,开发人员可以按各自的爱好和习惯进行工作,没有统一的标准可以遵循,只能以手工艺的方式进行。管理人员事前很难估计项目所需的经费和时间,技术人员在项目完成之前也难以预料系统是否能成功。    人们在开发上述大型软件系统时遇到了许多困难,有的系统最终彻底失败了;有的系统虽然完成了,但比原定计划迟了好几年,而且经费上大大超过了预算;有的系统未能完满地符合用户当初的期望;有的系统则无法进行修改维护。更糟的是,失败的系统往往无可挽回,除非再从头做起,但由于时间和经费的限制,这又是不可能的。   IBM公司的OS/360系统和美国空军某后勤系统在开发过程中遭受的挫折是众所周知的。以OS/360为例:它由4000个模块组成,共约100万条指令,人工为5 000人年(一个人工作一年其工作量相当于一个人年),经费达数亿美元,但结果却是令人沮丧的,人们在程序中发现的错误达2000个以上。 OS/360系统的负责人Brooks曾生动地描述了开发过程中的困难和混乱:……像巨兽在泥潭中作垂死挣扎,挣扎得越猛,泥浆就沾得越多,最后没有一个野兽能逃脱淹没在泥潭中的命运……程序设计就像是这样一个泥潭……一批批程序员在泥潭中挣扎……没人料到问题竟会这样棘手……” 。 人们发现,研制软件系统需要投入大量的人力和物力,但系统的质量却难以保证,也就是说,开发软件所需的高成本同产品的低质量之间有着尖锐的矛盾,这种现象就是所谓 的“软件危机”(Software crisis)。   与此同时,由于新的电子元器件的出现,计算机硬件的功能和质量在不断地提高,而价格却在大幅度地下降,因此同硬件投资相比,软件投资比例上升极快,图11是Boeh-m在l 976年对美国计算机总投资的统计和预测,从图中可以看出,在50年代,软件投资约占20%,至70年代已超过60%,当时预测到1985年软件投资将高达85%。   硬件价格的大幅度下降意味着计算机可以广泛使用,因此对软件的需求量将会迅速上升,但是软件危机的事实告 诉人们:软件技术没有跟上硬件技术的高速发展,人们意识到计算机要推广使用,其关键在于软件开发技术的革新。    Parnas认真分析了开发大型软件和编制小型程序之间的差别,他发现,从所需人力来看,小型程序从确定要求、编制、使用、直至修改往往是由同一个人完成的,因此只要他本人心里明白程序的构思就够了,而大型系统则必须由许多人(包括用户、项目负责人、分析员、高初级程序员、资料员、操作员等)组成一支开发队伍来协同完成,所以人与人之间必须准确地进行协商讨论;另外,从产品使用情况来看,小型程序往往是“一次性”的,意即如果需要作较大的修改,人们通常宁可丢弃旧的程序而重新编写,但大型系统的开发耗费了大量的人力与物力,所以人们一般不会轻易将其抛弃,而总是在旧程序的基础上一改再改,希望延长它的使用期,因而是“多个版本”的。    所以,Parnas将大型软件开发的特点总结为:由“多个人”来开发具有“多个版本”的程序。   大型软件系统的开发提出了许多新的问题,诸如:如何将一个系统分解成若干个部分,以便各人分工开发;如何精确地说明每个部分的规格要求;怎样才能使软件产品易于修改维护;……。 显然,传统的“编程”没有考虑这些问题。  量变带来了质变,系统规模的增大使问题的性质发生了变化,人们认识到:正像不能用造独木船的手工艺方式来研制航空母舰一样,沿用50年代个人编写小型程序的那种手工艺方式来开发大型软件系统也是不行的,必须寻找新的技术来指导软件的大规模生产。    考虑到机械、建筑等领域都经历过从手

文档评论(0)

autohhh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档