《软件工程-第6章第2节.pptx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

6.2软件维护的特点6.2.1非结构化维护和结构化维护软件的开发过程对软件的维护有较大的影响。若不采用软件工程的方法开发软件,则软件只有程序而无文档,维护工作非常困难,这是一种非结构化的维护。若采用软件工程的方法开发软件,则各阶段都有相应的文档,容易进行维护工作,这是一种结构化的维护。

6.2.1非结构化维护和结构化维护1.非结构化维护因为只有源程序,而文档很少或没有文档,维护活动只能从阅读、理解和分析源程序开始。由于没有需求说明文档和设计文档,只有通过阅读源程序来了解系统功能、软件结构、数据结构、系统接口和设计约束等。这样做,一是非常困难;二是难于搞清楚这些问题;三是常常误解这些问题。要想搞清楚,需花费大量的人力、物力,最终对源程序修改的结果是难以估量的,因为没有测试文档,不可能进行回归测试,很难保证程序的正确性。这就是软件工程时代以前进行维护的情况。

6.2.1非结构化维护和结构化维护2.结构化维护用软件工程思想开发的软件具有各个阶段的文档,这对于理解、掌握软件功能、性能、软件结构、数据结构、系统接口和设计约束有很大作用。进行维护活动时,需从评价需求说明开始,搞清楚软件功能、性能上的改变;对设计说明文档进行评价,对设计说明文档进行修改和复查;根据设计的修改,进行程序的变动;根据测试文档中的测试用例进行回归测试;最后,把修改后的软件再次交付使用。这对于减少精力、减少花费和提高软件维护效率有很大的作用。

读懂别人的程序是困难的。要修改别人编写的程序,首先要看懂、理解别人的程序。而理解别人的程序是非常困难的,这种困难程度随着程序文档的减少而很快增加,如果没有相应的文档,困难就会达到非常严重的地步。一般程序员都有这样的体会,修改别人的程序,还不如自己重新编程序。(2)文档的不一致性。文档的不一致性是维护工作困难的又一因素。它会导致维护人员不知所措,不知根据什么进行修改。这种不一致表现在各种文档之间的不一致以及文档与程序之间的不一致。这种不一致是由于开发过程中文档管理不严所造成的。6.2.2维护的困难性

6.2.2维护的困难性(3)软件开发和软件维护在人员和时间上的差异。如果软件维护工作由该软件的开发人员来进行,则维护工作就变得容易,因为他们熟悉软件的功能、结构等。但通常开发人员与维护人员是不同的,这种差异会导致维护的困难。由于维护阶段持续时间很长,正在运行的软件可能是十几、20年前开发的,开发工具、方法、技术与当前的工具、方法和技术差异很大,这又是维护困难的另一因素。(4)软件维护不是一项吸引人的工作。由于维护工作的困难性,维护工作经常遭受挫折,而且很难出成果,不像软件开发工作那样吸引人。

6.2.3软件维护的费用软件维护的费用在总费用中的比重是在不断增加的,在1970年占35%~40%,1980年上升到40%~60%,1990年上升到70%~80%。软件维护费用不断上升,这只是软件维护有形的代价。另外还有无形的代价,即要占用更多的资源。由于大量软件的维护活动要使用较多的硬件、软件和软件工程师等资源,这样一来,就会因为投入新的软件开发的资源不足而使软件开发受到影响。由于维护时的改动,在软件中引入了潜在的故障,从而降低了软件的质量。

6.2.3软件维护的费用软件维护费用增加的主要原因是软件维护的生产率非常低。例如,在1976年美国的飞行控制软件每条指令的开发成本是75美元,而维护成本是每条指令大约4000美元,也就是说生产率下降为原来的2%。用于软件维护工作的活动可分为生产性活动和非生产性活动两种。生产性活动包括分析评价、修改设计和编写程序代码等。

6.2.3软件维护的费用非生产性活动包括理解程序代码功能、解释数据结构、接口特点和设计约束。维护活动总的工作量由下式表示:M?=?P?+?K·exp(C?-?D)其中:M表示维护工作的总工作量;P表示生产性活动工作量;K表示经验常数;C表示复杂性程度;D表示维护人员对软件的熟悉程度。上式表明,若C越大,D越小,那么维护工作量将成指数增加;C增加表示软件因未用软件工程方法开发,从而使得软件为非结构化设计,文档缺少,程序复杂性高;D减小表示维护人员不是原来的开发人员,对软件熟悉程度低,重新理解软件要花费很多时间。?

谢谢!西安电子科技大学出版社

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档