网资酷

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 104|回复: 2

7 软件维护

[复制链接]

2

主题

3

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2022-11-30 17:38:11 | 显示全部楼层 |阅读模式
定义

软件维护是在软件交付使用之后,为了改正错误满足新需求而修改软件的过程。

软件维护需要的工作量很大,平均说来,大型软件的维护成本高达开发成本的4倍左右。
软件工程的主要目的就是:

  • 提高软件的可维护性,
  • 减少软件维护所需要的工作量,
  • 降低软件系统的总成本。
四大类维护

1. 改正性维护
用户发现程序错误,把问题报告给维护人员。


2. 适应性维护
为了和变化了的环境适当地配合而修改软件。


3. 完善性维护
用户提出新功能、或要求修改已有功能。


4. 预防性维护
为了改进可维护性或可靠性,主动修改软件。
此类维护比较少,尤其是商业软件,能做出来就不错了,预防性维护?呵呵


结构化维护

有文档的维护,叫“结构化维护”(相反的叫非结构化维护)
1. 修改设计并复查。
2. 编写相应的源程序代码;
3. 按照测试说明书进行回归测试;
4. 把修改后的软件再次交付使用。

维护的代价



  • 维护代码高昂。
如:1976年,美国空军的飞行控制软件每条指令的开发成本是75美元,然而维护成本大约是每条指令4000美元。


  • 维护所需要的时间往往比想象的长,不能及时完成修改,引起用户不满。



  • 修改代码引入了潜伏的Bug,降低软件质量。
虽然有回归测试,但是测试不能测出所有问题


  • 抽调软件工程师进行维护时,引发其他项目组的混乱。
企业不养闲人,项目完成之后,软件工程师会被调走开发其它项目

维护是件不受人待见的工作




  • 理解别人写的程序通常非常困难。如果没有说明文档,则更加困难。
所以软件工程强调文档,编码阶段强调提高代码的可读性


  • 文档可能和代码不完全一致
可能修改了代码,详细设计书没有修改


  • 大多数软件在设计时没有考虑将来的修改
先实现功能再说,没有精力或没有能力考虑将来的修改


  • 维护工作经常遭受挫折
一是上述原因造成代码看不懂,不知如何改。尤其是对于为参与原项目开发的人员,根本不了解该系统的来龙去脉,也没有时间仔细研究。
二是修改代码时发现牵扯到的代码太多,可能这也不能改,那也不能动。
回复

使用道具 举报

1

主题

2

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2022-11-30 17:38:19 | 显示全部楼层
像是在吐苦水啊
回复

使用道具 举报

0

主题

5

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2025-6-21 14:20:25 | 显示全部楼层
向楼主学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|网资酷

GMT+8, 2025-7-6 06:03 , Processed in 0.081317 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表