软件工程第八章(维护)
- 格式:ppt
- 大小:320.00 KB
- 文档页数:76
第八章 维护8.1 软件维护的定义所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。
四类维护活动: 改正性维护 适应性维护扩充与完善性维护 预防性维护⏹改正性维护(corrective maintenance)诊断和改正软件中存在的错误的活动。
通常占整个维护活动的17-21%。
⏹适应性维护(adaptive maintenance)为了和变化了的环境适当地配合而进行的修改软件的活动。
通常占整个维护活动的18-25%。
⏹完善性维护(perfective maintenance)为了满足用户在使用软件的过程中提出的增加新功能、修改已有功能或其它一般性改进的要求而进行的软件修改活动。
通常占整个维护活动的50-66%。
⏹预防性维护(preventive maintenance)为了改进未来的可维护性或可靠性,或为了给未来的改进奠定更好的基础而修改软件的活动。
通常占整个维护活动的4%。
各类维护活动的根本目的是延长软件生存期8.2 维护的特点⏹非结构化维护在软件配置的唯一成分只有程序代码的情况下所进行的维护 。
⏹结构化维护在软件配置完整的情况下所进行的维护。
8.2.2 维护的成本⏹用于维护已有软件的费用占软件总预算的比例:1970年为35-40%,1980年为40-60%,1990年为70-80%。
各类维护活动的根本目的是延长软件生存期软件 生存 周期软件诞生1年-10年个月-2年重构软件工程周期常规软件生成周期时间的估计⏹其它无形的代价:* 因为可用的资源必须供维护任务使用,以致耽误甚至丧失了开发新软件的良机。
* 当看来合理的有关错误修改或其他要求不能及时满足时将引起用户不满。
* 由于维护时的改动,在软件中引入了潜伏的故障,从而降低了软件的质量。
* 当必须把软件工程师调去从事维护工作时,将在开发过程中造成混乱。
8.2.3 影响维护工作量的因素⏹系统大小⏹程序设计语言⏹系统年龄⏹数据库技术的应用⏹先进的软件开发技术⏹其它8.2.4 维护中的典型问题(1)难以跟踪软件版本的进化过程,软件的变化未在文档中反映出来.(2)难以跟踪软件的创建过程.(3)难以读懂他人程序.(4)无文档或文档不全.(5)软件人员流动性大.(6)设计时未考虑修改需要,修改困难.(7)维护工作无吸引力,缺乏成就感.8.2.5 维护的副作用(side effects)⏹由于维护或在维护过程中其它一些不期望的行为引入的错误,称为维护的副作用。
软件工程第八章维护第一点:软件维护的定义和重要性软件维护是指在软件发布后对其进行的一系列操作和活动,旨在确保软件系统的持续可用性、可靠性和性能。
软件维护是软件开发生命周期中的一个重要环节,它涉及到对软件进行修正、优化和升级。
软件维护的重要性体现在以下几个方面:1.保障软件质量:软件在实际运行过程中可能会出现各种问题,维护可以帮助及时修复这些问题,保证软件的正常运行。
2.提高用户满意度:通过维护,可以对软件进行功能优化和界面调整,使其更加符合用户的需求,提高用户的使用体验。
3.降低风险:软件维护可以帮助提前发现并解决潜在的风险,避免因软件问题导致的损失。
4.延长软件寿命:通过不断的维护和升级,可以使软件适应不断变化的环境和需求,延长其使用寿命。
5.提高开发效率:良好的维护可以避免因软件问题导致的重复开发,提高开发团队的效率。
第二点:软件维护的类型和策略软件维护可以分为以下几种类型:1.改正性维护:这种维护类型主要是针对软件中存在的问题和错误进行修复,保证软件的正常运行。
2.适应性维护:随着环境的变化和用户需求的变化,软件需要进行相应的调整和优化,以适应新的环境和工作需求。
3.完善性维护:这种维护类型主要是针对软件的功能进行增强和扩展,以满足用户的新需求。
4.预防性维护:预防性维护是为了避免软件出现潜在的问题和风险,提前对软件进行调整和优化。
在进行软件维护时,可以采取以下策略:1.计划维护:制定详细的维护计划,包括维护的时间、内容、责任人等,确保维护工作的有序进行。
2.变更管理:对于软件的修改和更新,需要进行严格的变更管理,确保每次变更都是经过审核和评估的。
3.版本控制:通过版本控制工具,对软件的不同版本进行管理,确保软件的每个版本都是可追踪和可恢复的。
4.文档管理:对软件的维护过程和结果进行详细的文档记录,方便对软件进行管理和维护。
5.持续集成:将软件的维护工作与开发工作结合起来,通过持续集成的方式,确保软件的质量和稳定性。