什么是领域模型
表达某个业务领域的概念的关系的图,如下:
需求人员视角
通过领域建模能够促进需求分析,在聆听客户需求时,经常画一些草图作为领域模型基础,当我们了解更多的领域知识是,也就丰富这个领域模型
如下,需求分析过程中建立起来的领域模型
开放人员视角
领域模型作为理解领域知识的手段,因为领域模型很好的展示了概念之间的关系
领域模型构建过程示例
领城建模小组正在卓有成效地开展着工作…
领域专家:项目被分解成许多任务,分配下去。
架构师:你是说这个意思吗? (指着图 7-20。)
领域专家:正是这样,分工的单位是任务而不是项目。
架构师:也就是说,需要把任务分配给项目成员。(边在图上改着)
领域专家:是的,而且项目规定,每个任务只能分配给唯一的人,而一个人可以负责多个任务
架构师:好的,这很重要,我要把它们记录下来(见图7-21).
架构师:恕我哕嗦,一个项目分解为多个任务,但-一个任务只能对应于某-一个项目。是这样吗? (指着图7-22)
领域专家:停,似乎有些问题… (盯着图)
领域专家:我们必须支持“多项目管理”,这时,多个项目可能共享某个子任务。
架构师:多个项目可能共享某个子任务?能举个具体例子吗?
领域专家:比如企业级应用都会用到的一些和领域无关的模块, 如身份验证、消息机制等…你是在考我吗?
架构师:哪里哪里。你看,这就是“不要想当然”的好处,所以我必须能够支持诸如“多项
目共享任务”这样的特性(在图7-23上改着)。
领域专家:将项目分解为多个任务之后,需要为任务排定日程,比如,某任务结束之后另一
任务才能开始…
架构师:哦,很好,任务之间可能有前后关系… (见图7-24.)
领域专家:我们的项目涉及的资源有多种,比如人、设备和材料等。对企业而言,“资源管
理”是项目管理的应有内容:对项目组而言,没有必要的资源也很难开展工作。
架构师:是的,你桌上放的是仿真器吧。仿真器这个“资源”忒重要了,我做嵌入式系统开发那会儿,程序员都排队等这东西。紧缺资源啊! (跳槽往事闪过脑海,他诡秘地笑了一下。)
领域专家:的确如此。(看着图7-25说.)
领域专家:从逻辑上看,资源是项目占用的,但对资源的使用要具体分配到任务,而且应明确具体的使用期限…
架构师:是任务占用资源,很好。项目、任务、资源的关系越来越清晰了,不是吗? (指着图7-26)
临近下班的时候,架构师看着已经逐渐有模有样的领域模型(如图7-27所示),有一种不大
不小的成就感。“我们的模型明天还要继续精化,比如,项目状态的跟踪等问题还没有讨论清楚。”架构师说。
第二天讨论的项目的状态变迁如下:
(注:不止是项目有状态变迁,其他模型也有状态变迁)