1、可读性:软件的设计文档是否轻易被其他程序员理解。可读性差的设计会给大型软件的开发和维护过程带来严重的危害。
2、可复用性:软件系统的架构、类、组件等单元能否很容易被本项目的其它部分或者其它项目复用。
3、可扩展性:软件面对需求变化时,功能或性能扩展的难易程度。
4、可维护性:软件维护(主要是指软件错误的修改、遗漏功能的添加等)的难易程度。
5、内聚度表示一个应用程序的单个单元所负责的任务数量和多样性,内聚与单个类或者单稍僚敉视个方法单元相关。好的软件设计应该做到高内聚。
6、耦合度:耦合度表示类之间关系的紧密程度,它决定了变更一个应用程序的难易程度。
7、概括起来,较低的耦合度和较高的内聚度,也即我们常说的“高内聚、低耦合”是所有优秀软件的共同特征。