当我们调查现有的软件系统,试图了解不同的模型是如何在定义的边界内发挥作用时,会发现系统的某些部分,通常是大型系统,模型混杂,边界不一致。
在根本没有边界的系统中,试图描述模型的上下文边界是非常困难的。
只有经过仔细的思考,并在一定的组织因素的作用下,才会出现定义明确的上下文边界(尽管创建系统的人当时可能并没有意识到这些原因)。当这些因素不足或完全缺失时,多种概念系统就会混杂在一起,使定义和规则变得模糊不清或相互矛盾。随着功能的增加,这些系统通过偶然的逻辑得以运行。依赖关系在软件中错综复杂。因果关系越来越难以追溯。软件最终凝结成一个大泥球。
在某些情况下,大泥球实际上是很实用的(如 Foote 和 Yoder 最初的文章所述),但它几乎完全没有达到有用的模型所需的精确和细致程度。
因此:
在整个混乱的部分周围划出一个边界,将其标明为一个大泥球。不要试图在这个上下文内应用复杂的建模方法。要警惕这种系统蔓延到其他上下文的趋势。
(参考 http://www.laputan.org/mud/mud.html. Brian Foote 和 Joseph Yoder 作)