- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1 9.1 软件维护的基本概念 软件维护是指软件系统交付使用以后,为了改正错误或满足新的需求而修改软件的过程。 软件维护工作处于软件生命期的最后阶段,维护阶段是软件生存期中最长的一个阶段,所花费的人力、物力最多,其花费高达整个软件生命期花费的约60-70%。因为计算机程序总是会发生变化,对隐含错误的修改,新功能的加入,环境变化造成的程序变动等。 因此,应该充分认识到维护工作的重要性和迫切性,提高软件的可维护性,减少维护的工作量和费用,延长已经开发软件的生命期,以发挥其应有的效益。 9.1.1 软件维护的目的 1.在运行中发现在测试阶段未能发现的潜在软件错误和设计缺陷; 2.根据实际情况,需要改进软件设计,以增强软件的功能,提高软件的性能; 3.要求在某环境下已运行的软件能适应特定的硬件、软件、外部设备和通信设备等新的工作环境,或是要求适应已变动的数据或文件; 4.为使投入运行的软件与其它相关的程序有良好的接口,以利于协同工作; 5.为使运行软件的应用范围得到必要的扩充。 9.1 .2 软件维护的类型 按照不同的维护目的,维护工作可分成4类。 软件维护的类型 四类软件维护的比例 9.1 .3 软件维护的特性 9.1 .3 软件维护的特性 (2)修改数据的副作用。在修改数据结构时,有可能造成软件设计与数据结构不匹配,因而导致软件出错。数据副作用就是修改软件信息结构导致的结果。修改数据副作用可以通过详细的设计文档加以控制,此文档中描述了一种交叉作用,把数据元素、记录、文件和其他结构联系起来。 (3)修改文档的副作用。对软件的数据流、软件结构、模块逻辑等进行修改时,必须对相关技术文档进行相应修改。但修改文档过程会产生新的错误,导致文档与程序功能不匹配,缺省条件改变等错误,产生文档的副作用。 为了控制因修改而引起的副作用,应该:按模块把修改分组;自顶向下的安排被修改模块的顺序;每次修改一个模块。 3、软件维护的困难 读懂别人的程序困难。 文档的不一致性。 软件开发人员和软件维护人员在时间上的差异。 软件维护工作是一项难出成果的工作。 结构化维护 — 指软件开发过程是按照软件工程方法进行的,开发各阶段文档齐全,软件的维护过程,有一整套完整的方案、技术、审定过程。 非结构化维护 — 只有源程序,缺乏必要的文档说明,难于确定数据结构、系统接口等特性。维护工作令人生畏,事倍功半。 9.1 .4 软件维护的工作量及模型 1.软件维护的工作量 软件维护的费用在整个软件开发费用的55%-70%,并且所占比例在逐年上升。而且维护中还可能产生新的潜在错误。例如1970 年维护费用约占软件开发费用的40%,到1990年维护费用所占比例就超过了70%。另外维护还包含了无形的资源占用,包括大量的使用很多硬件、软件和软件工程师等资源。 在软件维护时,直接影响维护成本和工作量的因素很多,主要如下: (1)系统规模大小 系统规模大小直接影响维护工作量,系统规模越大,仅仅看懂理解就很困难,维护的工作量就更多。系统规模主要由源代码行数、程序模块数、数据接口文件数、使用数据库规模大小等因素衡量。 9.1 .4 软件维护的工作量及模型 1.软件维护的工作量 (2)程序设计语言 解决相同的问题选择不同的程序设计语言,得到的程序的规模可能不同。 (3)系统使用年限 使用年限长的老系统维护比新系统所需要的工作量更多。 (4)软件开发新技术的应用 软件开发过程中,使用先进的分析和设计技术,以及程序设计技术,如:面向对象的技术、构件技术、可视化程序设计技术等,可以减少维护工作量。 (5)设计过程中的技术 在具体对软件进行维护时,影响维护工作量的其他因素还有很多,例如设计过程中应用的类型、数学模型、任务的难度、开关与标记、IF 嵌套深度、索引或下标数等。 9.1 .4 软件维护的工作量及模型 2.软件维护工作量模型 维护活动分为生产性活动和非生产性活动。生产性活动包括分析评价、修改设计和编写程序代码等。非生产性活动包括理解程序代码,解释数据结构,接口特点和设计约束等。 Belady 和Lehman 提出软件维护工作模型: M=P+K*EXP(C-D) 其中: M—维护总工作量 P—生产性活动 K—经验常数 C—程序复杂度(由非结构化维护引起的) D—对维护软件熟悉程度的度量。 上式可以发现,C 越大,D 越小,那么维护工作量就成指数的增加。C 增加主要因为软件采用非结构化设计,程序复杂性高;D 减小表示维护人员不是原来的开发人员,不熟悉程序,理解程序花费太多时间。 二、软件维护的代价 维护费用高达开发费用的55% — 70%
文档评论(0)