必须考虑如下因素:
(1)系统大小。主要指可执行程序或机器语言指令的字节数、语言语句的行数、新编写指令的百分比、系统数据存储量和文体数目等。
(2)系统复杂性。主要是指系统和界面的复杂度、系统的独特性、硬件与软件的接口和程序结构等。
(3)程序类型。主要是指应用程序的形式(商用或非商用),程序所处理的技术问题类型等。
(4)软件对支持条件和运行环境的要求。主要是指计算机系统的速度及内存、外存容量,支持开发的软件工具和软件环境等。
(5)软件的有效收益或经济寿命期。
(6)软件的维护成本和升级能力。
(7)市场竞争状况。