五一三天假除了背单词,也抽空复习了下UML,毕竟还有一两周要半期考试了……(哪里来的半期考试啊syllabus明明里提都没有提啊T_T)今天先来看——领域模型。
首先领域模型长这样(后面还有九个图啊千万不要搞混了)
那么为什么要有领域模型呢,不是前面已经有用例图了嘛。书上在后面的内容稍微提到了这点,表示领域模型可以减小人们的思维与软件模型之间的表示差异。我自己在在其他资料上看到了另外一种更通俗的解释,大概是这么说的,因为用例是用纯自然语言写的,是没有“类”的概念的,无法从自然语言转换到面向对象语言,而领域模型就是这么一座自然语言向OOL的桥梁。
接下来的问题是,什么是领域模型,到底具体定义是怎样的呢?
书上的解释是:领域模型,是对领域内的概念类或现实世界中对象的可视化表示。领域模型并不是对软件对象的描述,它使真实世界领域中的概念和想象可视化。
这里需要说明的是领域模型中的对象和具体的语言无关,所以领域模型不需要方法(method)。
前面提到了“概念类”这个名词,领域模型既然也叫概念类图,那什么又是概念类呢,
书上说:通俗的说,概念类是思想、事物或对象。
这个解释也太通俗了…几乎是废话了…换个说法,概念类就是描述现实世界里的实体和概念。实体entity在数据库里提过这个概念,这样应该好理解一点。
好了,了解几个基本概念后,本着应试的角度(…)接下来最重要的目的就是画领域模型了。如何创建领域模型呢,书上给出的是三个步骤
- 寻找概念类
- 将其绘制为UML类图中的类
- 添加关联和属性
个人觉得,平时练习或者实际运用的话,用下面四个步骤会更容易进行
- 找出用例中的名词
- 识别名词本身的相关信息
- 识别对象间的关系
- 画出领域模型图
可以看出,方法二的步骤12对应方法一的步骤1,方法二的步骤3对应方法一的步骤3,剩下的方法一的步骤2和方法二的步骤4是废话(……)
所以接下来分两个方面讲怎么创建领域模型。
1) 如何找到概念类
书上给出的三个方法
- 重用和修改现有的模型
- 使用分类列表
- 确定名词短语
其中对于考试做作业来说,最实用的就是第三个,也就是找名词。基本上来说,首先把用例文档中所有的名词都拿出来就是了。当然得到的名词不全都是概念类,还需要识别名 词的相关信息,某一些名词可能是另外某个名词的属性,以及排除一些系统的外部对象。
2)画出领域模型UML图
首先是识别上面找到的对象间的依赖关系,如1对1、1对…多这个基本上凭常识就能搞定。随后画出图就可以了。
关于画图的细节讲几点:
- UML类图有“三层”,就是一个方框横着分为三段,最上一层是类名称,首字母必须要大些;中间一层是属性,上一步里识别的作为属性的名词可以放在这里;最下一层是方法,前面说过了在领域模型里不需要方法。
- 关联是一条没有箭头的实线,两端的数字分别表示对应的类在依赖关系中的数量,*表示零个或多个,..表示“到”(就是1到5的“到”,写作1..5),线上可以有首字母大写的关联名称(通常用动词短语表示),可以用一个小三角箭头指示动词短语的方向(没有的话默认阅读方向是从上到下,从左到右)
到这里,就现阶段来说,基本上就可以完成画图了…
系统分析与设计复习总结之【领域模型】,布布扣,bubuko.com