在软件开发完成交付用户使用后,就进入软件运行/维护阶段。此后的工作就是要保证软件在一个相当长的时期能够正常运行,这样对软件的维护就成为必不可少的了。
软件维护的种类:
1.校正性维护(corrective maintenance)
在软件交付使用后,由于开发时测试的不彻底、不完全,必然会有一部分隐藏的错误被带到运行阶段来。这些隐藏下来的错误在某些特定的使用环境下就会暴露。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程,就叫做校正性维护。
2.适应性维护(adaptive maintenance)
随着计算机的飞速发展,外部环境(新的硬、软件配置)或数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化,为了使软件适应这种变化,而去修改软件的过程就叫做适应性维护。
3.完善性维护(perfective maintenance)
在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下,进行的维护活动叫做完善性维护。
4.预防性维护(Preventive maintenance)
预防性维护定义为:“把今天的方法学用于昨天的系统以满足明天的需要”。也就是说,采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编制和测试。
软件可维护性的度量:
1.可理解性
对于可理解性,可以使用一种叫做“90-10测试”的方法来衡量。即把一份待测试的源程序清单拿给一位有经验的程序员阅读10分钟,然后把这个源程序清单拿开,让这位程序员凭自己的理解和记忆,写出该程序的90‰。如果程序员真的写出来了,则认为这个程序具有可理解性,否则这个要重新编写。
2.可靠性
度量可靠性的方法,主要有两类:
(1) 根据程序错误统计数字,进行可靠性预测。常用方法是利用一些可靠性模型,根据程序测试时发现并排除的错误数预测平均失效间隔时间MTTF。
(2) 根据程序复杂性,预测软件可靠性。用程序复杂性预测可靠性,前提条件是可靠性与复杂性有关。因此,可用复杂性预测出错率。程序复杂性度量标准可用于预测哪些模块最可能发生错误,以及可能出现的错误类型。了解了错误类型及它们在哪里可能出现,就能更快地查出和纠正更多的错误,提高可靠性。
3.可测试性
对于程序模块,可用程序复杂性来度量可测试性。程序的环路复杂性越大,程序的路径就越多。因此,全面测试程序的难度就越大。
4.可修改性
测试可修改性的一种定量方法是修改练习。其基本思想是通过做几个简单的修改,来评价修改的难度。设C 是程序中各个模块的平均复杂性,A 是必须修改的模块数,D 是要修改的模块的平均复杂性,则修改的难度由下式计算:
D=A/C
对于简单的修改,若D>l,说明该程序修改困难。A 和C 可用任何一种度量程序复杂性的方法计算。
5.可移植性
可移植性表明程序转移到一个新的计算环境的可能性的大小,或者表明程序可以容易地、有效地在各种各样的计算环境中运行的容易程度。一个可移植的程序应具有结构良好、灵活、不依赖于某一具体计算机或操作系统的性能。
6.效率
效率表明一个程序能执行预定功能而又不浪费机器资源的程度。这些机器资源包括内存容量、外存容量、通道容量和执行时间。
7.可使用性
从用户观点出发,把可使用性定义为程序方便、实用及易于使用的程度。一个可使用的程序应是易于使用的、能允许用户出错和改变,并尽可能不使用户陷入混乱状态的程序。
分享到:
相关推荐
内容包括: 软件维护的概念 软件维护活动 程序修改的步骤及修改的 副作用 软件可维护性 提高可维护性的方法
软件维护与再工程软件维护与再工程软件维护与再工程软件维护与再工程软件维护与再工程软件维护与再工程软件维护与再工程
软件的易维护性差是软件维护工作量和费用激增的直接原因,因此在软件工程的各个阶段都要保证软件具有较高可维护性,从而降低软件维护成本,这是软件工程的重要目标之一。国外的统计数字表明,完善性维护占全部维护...
这是软件工程课程项目,有助于同学学习软件工程,并了解软件维护工具的使用
软件工程课程的小论文,关于软件维护方面 希望可以对你有用
软件工程PPT课件 1.1 软件工程的基本概念 1.2 软件开发各阶段的目标与任务 1.3 软件开发方法基本知识 1.4 CASE工具 1.5 软件开发环境 1.6 软件开发模型 .......
2007年《软件工程》实验指导书 一、基本目的: 1.使学生把软件工程的基本原理和技术应用于实践 。 2.使学生掌握实际大型软件的开发过程和组织方式。 3.使学生增强开发大型软件的能力。 二、实验环境: 文档制作...
1. 软件工程学的概述: 为了更有效的开发与维护软件,软件工作者在20世纪60年 代后期 开始认为研究消除软件危机的途径,从而组 建形成了一门新兴的工程学科——计算机软 件工程学。 2. 软件危机的介绍: 软件危机是...
软件工程文档模板--十一、程序维护手册
以软件生命周期为主线,主要内容包括:软件工程概论、软件工程过程模型、项目分析与规划、软件需求分析、软件概要设计、面向对象分析与设计、用户界面设计、程序算法设计与编码、软件测试、软件维护。附录部分包括...
第1篇面向过程的软件工程 第1章软件危机、 软件工程 11软件工程的发展史 111程序设计时代 112程序系统时代 113软件工程时代 12软件危机主要表现形式 13产生软件危机的原因及解决途径 131产生软件...
第14章 软件维护与软件工程管理 软件维护与软件工程管理全文共41页,当前为第1页。 本章目标 熟悉软件维护的基本概念。 了解软件估算的概念、方法、原则与技巧。 掌握制定软件开发进度计划的方法 了解软件开发人员...
软件工程软件维护.pptx
《软件工程之全程建模实现》采用UML建模实现了软件工程的主要过程:需求、分析、设计、代码导出、设计模型维护等。本书采用了大量国内实际工程软件过程中的截图,通过图形和示例来描述工程实际中的问题和过程。这在...
然而,软件过程领域的最新研究结果表明,软件过程概念已不仅局限在软件开发和软件维护,而是发展到包括系统集成和软件产品的制作与生产。SEE旨在解决软件过程中各个过程和活动如何按照各条路径并行完成。管理、支持...
《面向对象软件工程》 作者:Stephen.R.Schach 学校:(美)范德比尔特大学 书名原名:Objected-Oriented Software Engineering 目录: 第一部分 面向对象软件工程简介 第一章 面向对象软件工程的范畴 第二章 ...
软件工程的授课课件软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。 在现代社会中,软件应用于多个...
好好学习,天天向上,迈瑞bs300生化工程维护软件
软件工程-软件维护.ppt
软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件比如...