第7章 维护 软件工程 编程大师曾说:“哪怕程序只有三行长,总有一天你也不得不对它维护。” 很多软件产品不是一次性的买卖,软件维护是必须的 什么是软件维护 是指软件系统交付使用以后,为了改正错误或满足新的需要而修改软件的过程 国标GB/T 11457-95给出如下定义 因为软件测试不可能暴露出一个大型软件系统中所有潜藏的错误,在任何大型程序的使用期间,用户必然会发现程序错误,并且把他们遇到的问题报告给维护人员。 把诊断和改正错误的过程称为改正性维护。 计算机科学技术领域的各个方面都在迅速进步,大约每过36个月就有新一代的硬件宣告出现,经常推出新操作系统或旧系统的修改版本,时常增加或修改外部设备和其他系统部件;另一方面,应用软件的使用寿命却很容易超过10年,远远长于最初开发这个软件时的运行环境的寿命。 为了和变化了的环境适当地配合而进行的修改软件的活动,叫做适应性维护。 当一个软件系统顺利地运行时,常常出现第三项维护活动:在使用软件的过程中用户往往提出增加新功能或修改已有功能的建议,还可能提出一般性的改进意见。为了满足这类要求,需要进行完善性维护。 满足使用过程中用户提出增加新功能或修改已有功能的活动,叫做完善性维护。 当为了改进未来的可维护性或可靠性,或为了给未来的改进奠定更好的基础而修改软件时,出现了第四项维护活动。 为了提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础而修改软件的活动,叫做预防性维护。 在软件交付使用的初期,改正性维护的工作量较大。 随着错误发现率不断降低,软件便进入了正常使用期。 在长期的软件使用过程中,由于计算机新技术的出现和用户新需求的提出,适应性维护和完善性维护的工作量逐步增加。在这种维护过程中,又会引入新的错误,从而加重了维护的工作量。 结构化维护与非结构化维护差别巨大 维护的代价高昂 维护的问题很多 软件的开发过程对软件的维护产生较大的影响。 如果采用软件工程的方法进行软件开发,保证每个阶段都有完整且详细的文档,这样维护会相对容易,被称为结构化的维护。 反之,如果不采用软件工程方法开发软件,软件只有程序而欠缺文档,则维护工作变得十分困难,被成为非结构化的维护。 在非结构化维护过程中,开发人员只能通过阅读、理解和分析源程序来了解系统功能、软件结构、数据结构、系统接口和设计约束等,这样做是十分困难的,也容易产生误解。要弄清楚整个系统,势必要花费大量的人力和物力,对源程序修改产生的后果难以估计。在没有文档的情况下,也不可能进行回归测试,很难保证程序的正确性。 在结构化维护的过程中,开发人员从分析需求规格说明开始,明白软件功能和性能上的改变,对设计说明文档进行修改和复查,再根据设计修改进行程序变动,并用测试文档中的测试用例进行回归测试,最后将修改后的软件再次交付使用。这种维护有利于减少工作量和降低成本,大大提高软件的维护效率。 * 在软件产品被开发出来并交付用户使用之后,就进入了软件的运行维护阶段。这个阶段是软件生命周期的最后一个阶段,其基本任务是保证软件在一个相当长的时期能够正常运行 很多软件产品不是一次性的买卖。比如在电信、金融等领域,有些软件系统要用十几年,对软件进行维护是必不可少的。 软件公司的经理们没有哪一个喜欢被维护的费用吓一跳,但软件维护的代价通常是高昂的。7. 2 节将说明影响维护代价的一些主要技术因素与非技术因素。 如果希望提高已有软件的质量并且提高商业竞争力,却又无法靠维护来实现,只好对已有软件进行全部或者部分的改造,这种活动叫再生工程(Reengineerin g)。7. 3 节将解释什么 是再生工程,并论述再生工程的三种类型:重构(Rest ru c tur e)、逆向工程(Reverse Engine ering)和前向工程(Forward Engineerin g)。 * * * * * * 纠错性维护:为了改正软件系统中的错误,使软件能够满足预期的正常运行状态的要求而进行的维护 * 适应性维护:为了使软件适应内部或外部环境变化,而去修改软件的过程 * 改善性维护:满足使用过程中用户提出增加新功能或修改已有功能的建议维护 * 除了上述三类维护之外,还有一类维护活动,称为预防性维护。通常,人们将预防性维护定义为:把今天的方法学用于昨天的系统以满足明天的需要。也就是说,采用先进的软件工程方法对需要维护的软件或软件中的某一部分重新进行设计、编制和测试,提高软件的可维护性和可靠性等,为以后进一步改进软件打下良好基础。 * 在整个软件维护阶段所花费的全部工作量中,预防性维护只占很小的比例,而完善性维护占了几乎一半的工作量,这说明即大部分维护工作是改变和加强软件,而不是纠错。同时,软件维护技术不像开发技术那样成熟和规范,自然消耗的工作量就比
您可能关注的文档
- (软件工程)第2章可行性研究.ppt
- (软件工程)第3章需求分析(ok).ppt
- (软件工程)第3章需求分析(第一堂课).pptx
- (软件工程)第4章概要设计(ok).ppt
- (软件工程)第5章详细设计(第二堂课).ppt
- (软件工程)第6章实现(第二堂课编码风格).ppt
- (软件工程)第6章实现(第三堂课不同集成测试策略的比较).ppt
- (软件工程)第6章实现(第四堂课路径覆盖).ppt
- (软件工程)第6章实现(第五堂课调试).ppt
- (软件工程)第8章面向对象方法学引论(第二堂课面向对象建模).ppt
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 商务型(带电梯、地下室、效果图)三层别墅设计图.pdf VIP
- 2026年详版个人信用报告征信报告最新Word可编辑模版样板doc文件.docx
- 2026年春接力版(新教材)小学音乐一年级下册(全册)教学设计(附目录P160).docx
- 行者讲课脉法下篇.doc VIP
- 铁塔电池通讯协议.docx VIP
- 复旦大学课程汉语言文学原典精读李杜精读.pdf VIP
- 电商数据分析(微课版)课件全套 第1--10章 电商数据分析概述---数据分析报告与看板制作.pptx
- 异常子宫出血的护理查房.pptx
- 2025年中医执业医师个人工作计划范文.docx VIP
- 2024《中班幼儿饮食行为现状调查—以S幼儿园为例》12000字.docx VIP
原创力文档

文档评论(0)