开发设计阶段要降低沟通的成本.UML的使用就是为了降低这种成本,但是要适可而止.
场景1:在大多数人对UML不是很熟练的情况下,如果采用UML来进行沟通,大家在理解上一定会存在分歧,无形之中会提高开发和沟通的成本,在这种情况下,建议不使用UML.举个例子,《实现领域驱动》的作者一开始是使用UML和领域专家沟通,作者认为UML很简单,但是许多领域专家或开发人员并不能很好地理解,最后又出现了事件风暴(ES)的形式来替代.
场景2:如果需要准确传达设计意图,还是需要UML这样的通用设计工具的,目的也是降低沟通的成本.例如,架构师的设计理念想准确传达给工程师,如果使用UML工具,可以避免模糊意图,带来额外的沟通成本.
敏捷宣言的第一条就是“个体和沟通”高于“流程和工具”.所以要因人而异,因场景而异,类图不是完全遵守 UML 的规范标准是一个不错的折中.