还要注意的一点是,领域模型是随着时间进化的。由于领域处于问题理解与通信的核心地带,因此怎样维护在团队中(或更大一些的范围,如整个社区)不断发展的领域模是一个很大的主题,这一点在Eric Evans的领域驱动设计(DDD)一书中进行了详细的讨论。

  图6是某个以类图方式表现的领域模型示例,它用一张图表现了整个领域。

图6,领域模型的类图(示例)

  3. 关键用例的用例图与时序图/协作图

  关键用例经常从用户角度表现系统的使用方式,有两个原因让我们决定将它作为保留模型的一部分。首先,开发者经常会钻进解决方案细节中,而遗忘了系统的用户是谁,以及他们想在系统中完成什么任务。用例能够帮助他们回到用户的视角,同时它也是与用户对话的一种良好的方式(其它文档更适合给技术人员看)。

  其次,用时序图或协作图方式表现关键用例以及它们的运作过程对于开发者来说是一个很好的示范。它们描述了系统架构中不同层次的对象如何协同工作,以完成用户的目标。它表现了一个从用户界面到数据库的纵切面的实际示例,并且告诉你如何在整个架构中实现某个用例。

  关键用例不必完整到覆盖所有的情况,只需挑选那些典型的用例,并使它们保持简单。

图7,关键用例的用例图(示例)

图8,关键用例机制的协作图(示例)

  图7是用例图的一个示例,它使得系统的用户与经典场景更加清晰化。它不需要非常完整,但应该表现出系统的上下文情况。标为黄色的用例(“创建类图”)被选为某个用例示例,具体的设计分解体现在图8的协作图中。通过这一示例,团队能够将他们对架构图与领域模型图(表现在图5与图6中)如何完成关键用例中所描述的特性的理解进行分享。请再次看看图4中架构、领域模型与关键用例这三者的关联吧。

  你可以在画这些图时使用工具,以简化维护工作,然后将它们打印到一张大纸上并粘贴到墙上。这面墙会成为建模研讨会的讨论场所了(我在下一节中会很快讨论到这部分)。