模型在帮助领域学习方面也具有很大价值。对设计起到推动作用的模型是领域的一个视图,但为了学习领域,还可以引入其他视图,这些视图只用作传递一般领域知识的教学工具。出于此摸底,人们可以使用如软件设计无关的其他种类模型的那些图片或文字。
使用其他模型的一个特殊原因是范围。驱动软件开发过程的技术模型必须经过严格的精简,以便使用最小化的模型来实现其功能。而解释性模型则可以包含提供上下文的哪些领域方面,用澄清范围上受到严格限制的技术模型。
解释性模型提供了一定的自由度,可以专门为某个特殊主题制度能够一些表达力更强的风格。领域专家在一个领域中所使用的视觉隐喻通常呈现了更清晰的解释,这可以教给开发人员领域知识,同时是领域专家们的意见更一致。解释性模型还可以以一种不同的方式来呈现领域,各种不同角度的解释有助于人们更好地学习。
解释性模型不必是对象模型,而且最好不是,实际上在这些模型中不使用UML是有好处的,这样可以避免人们错误的认为这些与软件设计是一致的。尽管解释性模型与驱动设计的模型往往有对应关系,但他们并不完全类似。为了避免混淆,每个人都必须知道他们之间的区别。
实例
航运操作和线路
考虑一个用来跟踪某家航运公司货物的应用程序。模型包含一个详细的视图,他显示了如何将港口装卸和货轮航次组合为一次货运的操作计划。但对外行而言,类图可能起不到多大的说明作用。
在这种情况下,解释性模型可以帮助团队成员理解类图的实际含义。
图中的每根线段都表示后物的一种状态——或者正在港口装卸,或者停放在仓库里或者正在运输途中。这个图并没有与类图中的细节一一对应,当强调了领域的要点。
这种图连同他所表示的模型的自然语言解释,能够帮助开发人员和领域装甲理解更严格的软件模型图。把这两种图放在一起看要比单独看一种图更容易理解。