`
jgsj
  • 浏览: 963149 次
文章分类
社区版块
存档分类
最新评论

软件工程 之 软件维护

 
阅读更多
在软件开发完成交付用户使用后,就进入软件运行/维护阶段。此后的工作就是要保证软件在一个相当长的时期能够正常运行,这样对软件的维护就成为必不可少的了。









软件维护的种类:


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.可使用性
从用户观点出发,把可使用性定义为程序方便、实用及易于使用的程度。一个可使用的程序应是易于使用的、能允许用户出错和改变,并尽可能不使用户陷入混乱状态的程
序。











分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics