Ian Sommerville
在「软件工程(Sofware Engineering)」一书中提到,所谓的好软件必须具备以下4种性质:

特性

说明

可维护性(Maintainability

完成后的软件必须能够对顾客的需求改变进行软件的演进与维护,这是一项非常重要的特性,因为在变动的商业环境中,软件的改变是无法避免的结果。

可保护性(Dependability

软件的可保护性包括可靠性、防护性与安全性。系统发生故障时,可信任的软件不应该会造成实体或经济上的损失。

效率(Efficiency

软件不应该浪费系统资源,例如处理器与内存。因此,效率包含了响应能力、处理时间、内存使用率等。

可用性(Usability

软件必须能够让设计的对象容易使用,不用花太多功夫,这表示它必须有适当的使用接口与说明文件。