1、系统大小

��系统越大,理解掌握起来越困难。系统越大,所执行功能越复杂。因而需要更多的维护工作量。
��系统大小可用源程序语句数,程序数,输入输出文件数,数据库所占字节数及预定义的用户报表数来度量。

2、程序设计语言
��语言的功能越强,生成程序所需的指令数就越少;语言的功能越弱,实现同样功能所需语句就越多,程序就越大。有许多软件是用较老的程序设计语言书写的,程序逻辑复杂而混乱,且没有做到模块化和结构化,直接影响到程序的可读性。

3、系统年龄
��老系统随着不断的修改,结构越来越乱;由于维护人员经常更换,程序又变得越来越难于理解。而且许多老系统在当初并未按照软件工程的要求进行开发,因而没有文档,或文档太少,或在长期的维护过程中文档在许多地方与程序实现变得不一致,这样在维护时就会遇到很大困难。

4、数据库技术的应用
��使用数据库,可以简单而有效地管理和存储用户程序中的数据,还可以减少生成用户报表应用软件的维护工作量。

5、先进的软件开发技术
��在软件开发时,若使用能使软件结构比较稳定的分析与设计技术,及程序设计技术,如面向对象技术、复用技术等,可减少大量的工作量。

6、其它
��如应用的类型、数学模型、任务的难度、开关与标记、IF嵌套深度、索引或下标数等,对维护工作量都有影响。
  此外,许多软件在开发时并未考虑将来的修改,这就为软件的维护带来许多问题。
���