领域模型

王朝百科·作者佚名  2010-01-22  
宽屏版  字体:   |    |    |  超大  

领域模型是对领域内的概念类或现实世界中对象的可视化表示。又称概念模型、领域对象模型、分析对象模型。它专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系。

领域模型的概念

什么是领域模型?这个很关键,弄清楚什么是领域模型,才能进行领域模型设计,否则领域模型设计的结果就没有相互讨论的基础。

首先,我想谈谈我的理解。

业务系统一般包括三部分内容:(1)操作者(角色)、(2)系统为操作者提供的行为、(3)操作对象。其中的操作对象就是领域模型的来源。在进行需求分析时,领域模型来自于业务描述中的名词以及对名词的抽象。

当然描述业务的名词不都是模型,有可能是模型的一个属性,也有可能是角色、或者是跟业务无关紧要描述。在业务描述中有些关联名词描述的则是模型之间的关系。例如,在一个业务描述中出现了部门、用户、用户部门、部门用户这些名词,那么领域模型可能只是部门和用户,用户部门则是模型的一个属性,而部门用户表明了部门和用户这两个模型的关系。

一个描述业务的名词成为领域模型,至少具备两点:要么是业务中确实存在的实体、要么是业务实体的提炼(抽象)。

领域模型设计

举一个简单的例子来说明如何进行领域模型设计。

假如我们要为一个小卖店设计一套进销存系统,她为我们提供的业务描述是这样的:每天凌晨从布吉农批市场买苹果、梨、葡萄、橘子、香蕉、荔枝、核桃等等,反正哪些好卖她就买回来卖。葡萄、荔枝不能长久保留,一般要当天卖出去…。

针对上面这段业务描述,我们怎么进行领域模型设计?我给出以下几个步骤来完成领域模型设计。

总结业务描述中的名词

首先建一个名词表,把涉及到的名词列出来:

序号

名词

备注

1.

布吉农批市场

2.

买东西的人

是一个隐含的名词,每天凌晨从农批市场拿货

3.

苹果

4.

5.

葡萄

6.

橘子

7.

香蕉

8.

荔枝

9.

核桃

10.

顾客

是一个隐含的名词,买回来卖的对象

11.

凌晨、当天

时间名词,与实体及角色无关

这个名词列表包括了业务的行为主体:角色,以及业务过程中的操作实体:模型,对我们接下来的用例描述、领域模型分析、需求分析很有帮助。当然这个名词列表需要经过进一步分析提炼,成为领域模型

确定业务实体

序号

名词

描述

1.

布吉农批市场

不是本业务的一个实体

2.

买东西的人

是本业务的一个角色

3.

苹果

是一个实体

4.

是一个实体

5.

葡萄

是一个实体

6.

橘子

是一个实体

7.

香蕉

是一个实体

8.

荔枝

是一个实体

9.

核桃

是一个实体

10.

顾客

是本业务的一个角色

11.

凌晨、当天

时间名词,与实体及角色无关

抽象业务模型

经过分析,我们得出的实体是苹果、梨、葡萄、橘子、香蕉、荔枝、核桃,这些是不是模型呢?应该说还不是,还要经过进一步分析:在我们分析的业务领域内,它们有没有共性?苹果、梨、葡萄、橘子、香蕉、荔枝属于水果,核桃属于干果,它们都是果品的一个具体实例。而在水果中葡萄和荔枝属于不宜保存水果,通过这样进一步的分析得出如下的领域模型图例:

果品进销存领域模型

这个领域模型不但能反映目前的经营实体,同时给我们需求分析人员和系统功能提供了一定的扩展视野:将来会不会经营食品,短期保持水果采取什么利润空间来促销,长期保存的水果会不会因为保存成本而导致利润下降。

领域模型与数据模型的关系

我认为领域模型它是一个分析模型,帮助系统分析人员、用户认识现实业务的工具,描述的是业务中涉及到的实体及其相互之间的关系,它是需求分析的产物,与问题域相关。领域模型是需求分析人员与用户交流的有力工具,是需求分析人员与用户共同理解的概念,是彼此之间交流的语言。而数据模型是系统设计、实现的一部分,描述的是对用户需求在数据结构上的实现,仅此而已。当然数据模型中的概念模型设计与领域模型类似,缺乏的是实体之间更广泛的关系描述。

通常大家会考虑数据怎么存放的问题,我的理解是领域模型设计期间不用考虑数据的存放问题,只考虑业务描述中涉及的实体以及实体之间的关系。

实体之间的关系,很多书都讲了,无非是泛化、依赖和关联,关联又分了一般关联、聚合、组合等等,我这里就不列了。

总结

领域模型设计是需求分析的关键步骤。它帮助用户及需求分析人员建立业务概念,确定用户业务的问题域,系统涉及的业务范围等等。

领域模型设计的步骤为:

1. 从业务描述中提取名词;

2. 从提取出来的名词中总结业务实体,区分名词中的属性、角色、实体、实例,形成问题域中操作实体的集合;

3. 从业务实体集合中抽象业务模型,建立问题域的概念(例如在前面的例子中,我们把容易变质的水果称之为“短期保持水果”,当然也可以是其它说法,只要能跟用户达成共识即可);

4. 用UML提供的方法和图例进行领域模型设计、确定模型之间的关系;

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有