可维护性是所有软件都应该具备的基本特点。在软件设计的每个阶段都应该努力提高系统的可维护性,在每个阶段结束前的审查和复审中.应着重对可维护性进行复审。
(1)在需求分析阶段的复审中,应对将来要扩充和修改的部分加以说明。在讨论软件可移植性问题时.要考虑可能影响软件维护的系统界面。
(2)在软件设计的复审中.应从便于修改、模块化和功能独立的目标出发.评价软件的结构和过程.从软件质量的角度全面评审数据没计、总体结构设汁、过程设引‘和界面设计。还应对将来可能修改的部分预先做准备。
(3)在软件代码复审中,应强调编码风格和内部说明文档这两个影响可维护性的冈素。最后.每一阶段性测试部应指出软件正式交付之前.应该进行的预防性维护。在完成每项维护工作后,都应陔对软件维护本身进行仔细认真的复审。为了从根本上提高软件系统的可维护性。人们正试图通过直接维护软件规格说明来维护软件.同时也在大力发展软件重用技术。[2]
这个指数用一个公式计算,考虑到了圈复杂性、代码行以及Halstead量,Halstead量也是一个度量,考虑操作符和操作数的总数。该指数的范围是0~100,数值越高就越容易维护。[3]
大多数可维护性参数是可测量的,例如模块化、测试性、灵活性和可移植性。测试必须从用户需求中引出,因为在这个领域几乎没有发表现成的参考资料。[4]
(1)建立明确的软件质量目标。如果要程序完全满足可维护性的7种质量特性,肯定是很难实现的。实际上,某些质量特性是相互促进的,如可理解性和可测试性,可理解性和可修改性;某些质量特性是相互抵触的,如效率和可移植性,效率和可修改性。因此,为保证程序的可维护性,应该在一定程度上满足可维护的各个特性,但各个特性的重要性又是随着程序的用途或计算机环境的不同而改变的。对编译程序来说,效率和可移植性是主要的;对信息管理系统来说,可使用性和可修改性可能是主要的。通过实验证明,强调效率的程序包含的错误比强调简明性的程序所包含错误要高出10倍。显然,在提出目标的同时,还必须规定它们的优先级,这样有助于提高软件的质量。
(2)使用先进的软件开发技术和工具。利用先进的软件开发技术和工具是软件开发过程中提高软件质量、降低成本的有效方法之一,也是提高可维护性的有效技术。常用的技术:采用模块化、结构化程序设计,结构化设计技术能提高软件的可维护性;设计文档中使用标准的表达工具来描述算法、数据结构、接口等,能帮助维护人员更好地理解软件。