- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软 件 工 程 第8章 维 护 8.1 软件维护的定义 8.2 软件维护的特点 8.3 软件维护过程 8.4 软件的可维护性 8.5 预防性维护 8.6 软件再工程过程 8.7 小结 【软件维护的基本任务】:保证软件在一个相当长的时期能够正常运行。 【软件维护的工作量】:非常巨大,平均说来,大型软件的维护成本高达开发成本的4倍左右。 【软件工程的目的】:是要提高软件的可维护性,减少软件维护所需要的工作量,降低软件系统的总成本。 【软件维护与程序设计语言的关系】:恰当的程序设计语言能使编码时困难最少,可以减少需要的程序测试量,并且可以得出更容易阅读、更容易维护的程序。 为什么要进行软件维护? 大学科研机构里的软件维护工作恐怕是做得最差的了。几乎每一批新的研究生都会把毕业生留下的软件臭骂一通,然后全部推到重做。到他毕业该走时,就轮到别人骂他的工作了。如此轮回,最终没有什么成果留下。 如果希望软件系统能活下,必须要对它进行维护。 如果希望软件系统有效益,则必须设法降低维护的代价。 §8.1 软件维护的定义 【定义】:就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。 通过以下4项活动,来定义软件维护。 改正性维护 适应性维护 完善性维护 预防性维护 各种维护所占比例 §8.2 软件维护的特点 §8.2.1 结构化维护与非结构化维护差别巨大 1. 非结构化维护 非结构化维护需要付出很大代价(浪费精力并且遭受挫折的打击),这种维护方式是没有使用良好定义的方法学开发出来的软件的必然结果。常常由于缺少系统设计、缺少程序内部文档,难于进行回归测试。例如:对于软件结构、全程数据结构、系统接口、性能和(或)设计约束等经常会产生误解,而且对程序代码所做的改动的后果也是难于估量的。 2. 结构化维护 (1)如果有一个完整的软件配置存在,那么维护工作从评价设计文档开始,确定软件重要的结构特点、性能特点以及接口特点; (2)估量要求的改动将带来的影响,并且计划实施途径。 (3)修改设计并且对所做的修改进行仔细复查。 (4)编写相应的源程序代码; (5)使用在测试说明书中包含的信息进行回归测试; (6)把修改后的软件再次交付使用。 §8.2.2 维护的代价高昂 影响维护工作量的因素: 系统大小:系统越大,理解掌握起来越困难。系统越大,所执行功能越复杂。 程序设计语言:使用强功能的程序设计语言可以控制程序的规模。语言的功能越强,生成程序的模块化和结构化程度越高,所需的指令数就越少,程序的可读性越好。 数据库技术的应用:使用数据库,可以简单而有效地管理和存储用户程序中的数据,还可以减少生成用户报表应用软件的维护工作量。 维护成本 先进的软件开发技术:在软件开发时,若使用能使软件结构比较稳定的分析与设计技术,及程序设计技术,如面向对象技术、复用技术等,可减少大量的工作量。 维护工作量的模型 M是维护中消耗的总工作量 p是上面描述的生产性工作量 K是一个经验常数 c是因缺乏好的设计和文档而导致复杂性的度量 d是对软件熟悉程度的度量。 模型指明,如果使用了不好的软件开发方法(未按软件工程要求做),原来参加开发的人员或小组不能参加维护,则工作量(及成本)将按指数级增加。 §8.2.3 维护的问题很多 (1) 难以跟踪软件版本的进化过程,软件的变化未在文档中反映出来; (2) 难以读懂他人程序; (3) 无文档或不全; (4) 软件人员流动性大; (5) 设计时未考虑修改需要,修改困难; (6) 维护工作无吸引力,缺乏成就感。 §8.3 软件维护过程 【定义】:本质上是修改和压缩了的软件定义和开发过程。 主要有如下过程: 维护组织的建立 维护事件流的确定 维护报告文档的书写和审查 1. 维护组织——明确维护责任、减少混乱 每个维护要求都通过维护管理员转交给相应的系统管理员去评价。系统管理员对维护任务做出评价之后,由变化授权人决定应该进行的活动。 2. 维护报告——做好档案记录 应该用标准化的格式表达所有软件维护要求。软件维护人员通常给用户提供空白的维护要求表——有时称为软件问题报告表,这个表格由要求一项维护活动的用户填写。维护报告主要有以下内容: 与程序安装后运行次数有关的处理故障次数 程序改变的层次及名称 修改程序增加的源程序语句条数 修改程序减少的源程序语句条数 每次修改所付出的“人时”数 修改程序的日期 软件维护人员的姓名 维护申请报告的名称、维护类型 维护开始时间和维护结束时间、 花费在维护上的累计“人时”数 维护工作的净收益等。 3. 维护的事件流 图8.2描绘了由一项维护要求而引出的一串事件。首先应该确定要求进行的维护的类型。用户常常把一项要求看作是为了改正软件
文档评论(0)