【软件工程总复习】第八章 软件维护

1. 定义

软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。(软件维护(software maintenance)是指在软件产品在交付之后,为改正错误、改进性能或其他属性,或者为了适应变化了的环境而对软件产品所进行的修改活动。)

2. 引起软件维护的原因

影响软件可维护性有以下7个因素:
1、可理解性
一个可维护的软件必然是可理解的。
软件的可理解性是指通过阅读源代码和相关文档,了解软件的功能和如何运行的容易程度。
软件的可理解性可以使用“90-10测试”的方法来衡量,即如果一个有经验的程序员阅读一份源代码清单10分钟,可以写出该程序的90%,则认为这个程序具有可理解性。
2、可测试性
一个可维护的软件必然是可测试的。
软件的可测试性是指验证软件程序正确的难易程度。可测试性好的软件,通常意味着软件设计简单,复杂性低。因为软件的复杂性越大,测试的难度也就越大。
3、可修改性
一个可维护的软件必然是可修改的
软件的可修改性是指修改软件的难易程度。
软件的可修改性可以通过进行几个简单的修改练习来评价。假如软件的平均复杂性是C,要修改的模块的复杂性是A,那么修改的难度可由下面公式计算:D=A/C
4、可靠性
一个软件的可靠性越高,需要维护的概念就会越低。软件的可靠性是指软件在满足用户需求的前提下,在给定的时间段内正确运行的概率。软件可靠性的度量有以下两种方法:
根据软件的错误统计进行可靠性预测。如度量软件的平均失效间隔时间(MTTF)。
根据软件的复杂性进行可靠性预测。
5、可移植性
软件运行环境的变化是软件维护的一种常见情形,可移植性好的软件会降低维护的概率。
软件的可移植性是指将软件从一个环境移植到新的环境下正确运行的难易程度。
一个可移植性的软件应具有良好的结构,使用独立于机器的高级语言编写。
6、可使用性。
软件易于使用通常意味着软件设计简单,易于理解。
软件的可使用性是指用户使用软件的难易程度。
软件的可使用性可以通过测试用户首次使用软件掌握常用功能的时间来衡量。
7、效率。
效率是指软件既能很好地完成用户期望的功能、性能,又不浪费机器资源的程度。
软件设计不能一味地追求效率,盲目地追求效率会使得软件的其他质量特性受到影响,比如降低软件的可维护性

3. 类型

软件维护的类型包括:改正性维护(正确性维护)、适应性维护、完善性维护、预防性维护。
1.改正性维护:软件交付使用后,必然会有一部分隐藏的错误被带到运行阶段,这些错误在某些条件或者环境下就会暴露出来,改正性维护就是对软件进行诊断和改正错误的过程。
2.适应性维护:外部环境(新的硬件、软件配置)或者数据库环境(数据库、数据格式、数据输出输入、数据存储介质)可能发生变化,为了适应这种变化而修改软件的过程就是适应性维护。
3.完善性维护:在软件使用过程中,用户万万会对软件提出新的功能与性能要求,为了满足这种需求,需要修改或者再开发软件,以扩充软件功能、增强软件性能、提供可靠性,这就是完善性维护。
4.预防性维护:为了提供软件的可维护性、可靠性而提出的一种维护类型——把今天的方法学用于昨天的系统以满足明天的需要,可能需要对软件进行设计、开发及测试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

温柔的辣面子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值