维护就是在软件交付使用后进行的修改,修改之后因该进行必要的测试,以保证所做的修改时正确的。一个可维护的程序应该是可理解的、可靠的、可测试的、可修改的、可移植的、效率高的、可使用的。同时,要实现这所有的目标,不仅成本高昂,而且也不一定行得通。
因为某些质量特性是相互促进的,例如可理解性和可修改性、可理解性和可测试性等;但另一些质量特性却是相互抵触的,例如效率和可修改性、效率和可移植性等。因此,尽管可维护性希望每一种质量特性都要得到满足,但是它们的相对重要性应随软件的用途以及运行环境的不同而不同。所以,应当对程序的质量特性,在提出目标的同时还必须规定它们的优先级。这样有助于提高软件的质量,并对软件生存期的费用也会产生很大的影响。
提高软件可维护性是一个长期的过程,需要在整个软件过程的每个阶段都进行考虑,不可一蹴而就。软件需求阶段在考虑需求可行性,准确性等的同时,也需要考虑软件可维护性.例如:电子商务网站项目中,后台系统的需求描述中一般都明确指出要有操作log。因为后台系统一般都是控制台程序或服务,如果没有log 记录,一旦有异常出现,将无从查起,给后面的维护工作造成极大的困难。而需求之后的设计,编码等工作都是以需求为依据,如果需求没有明确指出要打印系统运行log,后面阶段的设计,实现中一般都不会考虑主动增加新功能,除非系统是给自己做的。