软件维护到底面临什么问题?
虽然大家都承认“软件维护”是软件生命周期中的一个重要部分,可是一提起“软件维护”这个无奈的话题,很多人都恨不得逃得远远的。软件规模、软件质量、需求变化,无数的问题使得软件维护困难重重。
那么,软件维护到底有一些什么困难呢?我想到了这样一些问题:
1、软件难以看懂
1)原来的软件代码的书写习惯非常差,很难阅读,例如使用无规律的变量名称、过长的函数等;而且反复的修改使软件结构混乱,层层嵌套的注释更是难以匹配;
2)没有可以参考的文档,或者文档不全,或者文档太老;
3)现在的维护人员都不知道系统原有的业务逻辑;
......
2、修改带来不良影响
1)对某一功能模块的修改,需要做多大范围的测试才能保证它没有给其他模块带来负作用呢?
2)由于各种成本的限制,很多时候只能以“打补丁”的方式来进行修改,而不是全面解决问题,以至于积累了很多潜伏的风险;
3)跟踪软件版本的演化是一件非常困难的事;
4)对程序的修改,导致了文档的不一致;
......
3、原来的软件质量有缺陷
1)软件本身就有质量问题,只是日常维护已经很不容易,更不要说修改;
2)软件设计时为维护工作考虑得太少,例如对错误给出的提示很不清楚,过分依赖输入数据的正确性;
3)软件的可移植性、可扩展性很差。设备、软件(主要是系统软件)的更新换代对软件的兼容性提出了巨大的考验。可是,有几个软件在设计时充分考虑了可移植性呢?将一套系统从32位机上移到64位机上,即使没有对任何语句进行修改,也必须做全面的测试以保证不会突然当机;
4)软件的易用性不高,必须要专业人员才能维护;
......
4、客户需求不断变化
1)软件更新的速度赶不上需求变化的速度;
2)原来的技术、模式、结构不能满足新的需求;
3)多次变化后连客户也不清楚到底要什么;
4)层层堆叠的补丁给系统带来了预料之外的负担。例如不断增加的、过多的报表降低了系统效率。
......
5、软件开发人员的情绪
1)优秀的程序员都不愿意做系统维护这种枯燥的工作;
2)做系统维护占用的时间可能远远大于做软件开发,但薪水却不是保持同样的比例;
......
那么还有哪些问题是你在软件维护过程中经常碰到的呢?
欢迎大家贡献自己的力量,给我一些参考和建议。