koorio.com
海量文库 文档专家
当前位置:首页 >> IT/计算机 >>

第9章 领域模型_图文

第9章 领域模型 Domain Model

1

领域模型
领域模型是对领域内的概念类或现实中对 象的可视化表示 领域模型也称为概念模型,领域对象模型 和分析对象模型 领域模型是可以在业务建模科目中创建的 制品之一 领域模型是UP业务对象模型(BOM)的特化
2

领域模型
领域模型是OO分析中最重要的和经典的模 型. 确定一组概念类是OO分析的核心.(每次 早期迭代不超过几个小时的时间来完成这 项工作) 领域模型的范围限定于当前迭代所开发的 用例场景,通过迭代不断演进. 领域模型与其它制品的关系见图9-1 领域模型的示例见图9-2
3

图9-1 UP制品样例的影响

4

图9-2 部分领域模型:可视化字典

5

领域模型是软件业务对象图吗
在UML中,领域模型被描 述为一组没有定义操作的 类图

图9-3 领域模型表示真实世界概念的可视化并非表示软件类

6

图9-4 领域模型并非表示软件制品或类
7

"领域模型"的两个传统含义
含义一:领域模型是现实世界中对象的概 念透视图,而非软件透视图 含义二:软件对象的领域层.在表示层之 下的软件对象层是由领域对象组成的.领 域对象是表示问题领域空间事物的软件对 象,并且与"业务逻辑"或"领域逻辑" 方法相关 在本书中,用领域层(domain layer)来表示 第二种含义
8

什么是概念类
概念类是思想,事物或对象.更正式地讲,概念类 可以从其符号,内涵和外延来考虑.
Sale date time 概念符号:表示概念类的词语或图形

"Sale表示购买交易的事件, 具有日期和时间".

概念内涵:概念类的定义

sale-1 sale-2

sale-3

概念外延:概念类所适用 的一组示例

sale-4

图9-5 概念类具有符号,内涵和外延

9

领域模型和数据模型是一回事吗
领域模型不是数据模型(持久化数据) 在领域模型中不会排除没有明确要求记录 其相关信息的类,也不会排除没有属性的 概念类
– 在领域内充当纯行为角色而不是信息角色的概 论类也是有效的.

10

动机:为什么要创建领域模型
理解关键概念和词汇

11

动机:降低与OO建模之间的表示差异

图9-6 OO建模减小了表示差异

12

如何创建领域模型
1. 寻找概念类 2. 将其绘制为UML类图中的类 3. 添加关联和属性

13

如何找到概念类
找到概念类的三条策略
– 重用和修改现有模型.
在许多常见领域中都存在已发布的,绘制精细的领 域模型和数据模型

– 使用分类列表(见P104表9-1) – 确定名词短语.将对领域的文本描述中的名词 和名词短语作为候选的概念类或属性.(见 P106用例的文本描述)

14

示例:寻找和描述概念类(NextGen POS) 根据分类列表衙名词短语分析,可以得到 该领域候选概念类的列表 根据迭代1所考虑的需求和简化的处理销售 用例,即基本的现金交易场景,可以得到 如P107所示的候选概念类的列表. 没有什么所谓"正确"列表.上述列表中 的抽象事物和领域词汇在一定程度上是随 意收集的,但都是建模者认为重要的. 实践中,可以不会创建文本列表,而是直 接绘制成UML类图.见图9-7.
15

Register

Item

Store

Sale

Sales LineItem

Cashier

Customer

Ledger

Cash Payment

Product Catalog

Product Description

图9-7 初始的POS领域模型

16

案例:Monopoly领域

图9-8 初始的Monopoly领域模型

17

准则:敏捷建模-绘制类图的草图
注意图9-8中UML类图的风格,让类框的底 部和右侧呈开放状态,以方便扩展.

18

准则:敏捷建模-是否要使用工具维护模型 在后期的草图设计中或编程中发现新的概 念类,是否需要更新早期的概念模型?视 情况而定 通常,进化的软件领域层对大部分重要术 语会给予提示,而且长生命期的OO分析领 域模型不会增加价值.

19

准则:报表对象-模型中是否要包括"票据"
一般来说,在领域模型中显示其它信息的报表并 没有意义,因为其所有信息都是源于或复制于其 他信息源的.这是排除它的理由 另一方面,就业务规则而言,票据有特殊的作用: 通常持有(纸质)票据的人有退货的权利.这是 在模型中要表示它的原因 在本次迭代中没有考虑退货,所以不应包括票据. 在解决"处理退货"用例的迭代中,再考虑将其 包含在内.
20

准则:像地图绘制者一样思考:使用领域术语 使用地域中现有的名称.在图书馆模型中, 将顾客命名为"借书者","赞助者"等, 这是图书馆职员使用的术语. 排除无关或超出范围的特性 不要凭空增加事物

21

准则:如何对非现实世界建模
有些软件系统的领域与自然领域或业务领 域几乎没有类似之处,例如:电信软件. 此时需要高度的抽象,对常见的非OO设计 进行回顾,并且认真汲取领域专家所使用 的核心词汇和概念. 例如,电信软件的候选概念类:消息,连 接,端口,会话,路由,协议.

22

准则:属性与类的常见错误
常见错误:把应该是概念类的事物表示为属性 判别准则:如果我们认为某概念类X不是现实世 界中的数字或文本,那么X可能是概念类而不是 属性.
Sale store 或…? Sale Store phoneNumber

Flight destination

或…?

Flight

Airport name

23

准则:何时使用"描述"类建模
描述述(description class)包含描述其它事 物的信息.如:ProductDescription记录 Item的价格,图片和文字描述.命名方式: 项目-描述符

24

准则: 准则:何时需要描述类
1.需要有关商品或服务的描述,独立于任何商务或服务现有实例 2.删除其所描述事物(如Item)的实例后,导致信息丢失,而这些信息是需 要维护的,但是被错误地与所删除的事物关联起来 3.减少冗余或重复信息

图9-9 关于其它事物的描述

25

示例:航空领域中的描述
Flight date number time Flies-to Airport 1 name

*

Flight Described-by date time

FlightDescription 1 number

*

*
Describes-flights-to 1 Airport name

图9-10 对其它事物的描述

26

关联(association)
关联是类(更精确也说,是这些类的实例)之间 的关系,表示有意义和值得关注的连接. 在UML中,关联被定义为"两个或多个类之间的 语义联系,涉及这些类元实例之间的连接.

图9-11 关联
27

准则:何时表示关联
在领域模型中要考虑如下关联:
– 如果存在需要保持一段时间的关系,将这种语 义表示为关联("需要记住"的关联). – 从常见关联列表中派生的关联(见P115表9-2) P115 9-2

28

准则:为什么应该避免加入大量关联
节点间可以有(n*n(n-1))/2个关联 太多关联,会产生"视觉干扰,使图变混 乱. 要谨慎地增加关联线,并重点关注"需要 记住"的关联.

29

观点:关联是否会在软件中实现
在领域建模中,关联不是关于数据流,数 据库外键联系,实例变量或软件方案中的 对象连接语句;关联声明是针对现实领域 从纯概念角度看有意义的关系. 这些关系的大部分将作为(设计模型和数 据模型中的)导航和可见性路径在软件中 加以实现.

30

应用UML:关联表示法

图9-12 关联的UML表示法

31

准则:在UML中如何对关联命名
以"类名-动词短语-类名"的格式为关联命名,其中 的动词短语构成了可读的和有意义的顺序. 例
– Sale paid-by CashPayment
反面示例(动词短语没有增加意义),Sale Uses CashPayment

– Player is-on Square
反面示例(动词短语没有增加意义),Player Has Square

关联名首字母应该大写,因为关联表示的是实例之 间链接的类元.
32

应用UML:角色
关联的每一端称为角色(role).角色具有如 下可选项
– 多重性表达式 – 名称 – 导航

33

应用UML:多重性
多重性(mumltiplicity)定义了类A有多少个实例可以和类B的一 个实例关联

图9-13 关联的多重性

图9-14 多重性的取值

34

多重性是和语境有关的

图9-15 多重性是和语境有关的

35

应用UML:两个类之间的多重关联

*
Flight

Flies-to Flies-from

1 Airport 1

*
图9-16 多重关联

36

示例:NextGen POS中的关联
Records-sale-of Product Description Contains 1 1 0..1 Sales LineItem 1 Recordsaccountsfor 1 Used-by Describes 1..* Ledger Product Catalog

*
Store Stocks 1 1

*
Item

1 1..* Contained-in 1 Sale Logscompleted

*

1..*

Houses

1..* Register

*
Captured-on 0..1 1

Paid-by 1 CashPayment

1

1

Is-for 1 Customer

1

3 Works-on 1 Cashier

图9-17 NextGen POS部分领域模型

37

示例:Monopoly中的关联

图9-18 Monopoly部分领域模型

38

属性
属性(attribute)是对象的逻辑数据值 确定概念类的属性是有助的,能够满足当 前所开发场景的信息需求.

39

准则:何时展示属性
当需求(例如:用例)建议或暗示需要记住信 息时,引入属性.

40

应用UML:属性表示法

图9-19 类和属性
41

更多表示法
在UML中,属性的完整语法是: visibility name:type multiplicity = default {property-string}

图9-20 UML属性表示法

42

准则:在哪里记录属性需求
middleName:[0..1]等是嵌入到领域模型的 需求或领域规则 建议把所有这种属性需求置于UP词汇表中 (UP词汇表可充当数据字典)

43

导出属性

图9-21 在销售项目中记录售出的商品数量
44

准则:什么样的属性类型是适当
领域模型中属性的类型更应该是数据类型.十分常见的数据 类型包括:Boolean,Date,Number,Character,String, Time等, 其它常见的类型有Address,Color,Geometrics,Phone Numer,Social Security Number,Universal Product Code(UPC),SKU,ZIP,枚举类型等

图9-22 使用关联而不是属性表示关系
45

准则:何时定义新的数据类型类
见P120表9-3

46

准则:通过关联而不是属性来表示 概念类之间的关系

图9-23 不要用属性表示复杂概念

47

应用UML:在何处描述这些数据类型类
Address Store 1 1 street1 street2 cityName ...

ItemID OK Product Description 1 1 id manufacturerCode countryCode

OK

Product Description itemId : ItemID

Store address : Address

图9-24 表示对象的数据类型特性的两种方式

48

准则:任何属性都不表示外键
可以用许多方法来表示对象之间的关系,外键是 其中的一种

图9-25 不要将属性作为外键

49

准则:对数量和单位建模

图9-26 对数量建模
50

示例:NextGen POS中的属性
Records-sale-of Product Description Contains 1 1 0..1 Sales LineItem quantity 1..* Contained-in 1 Sale dateTime / total 1 Paid-by 1 CashPayment amountTendered 1 Logscompleted 1 Recordsaccountsfor 1 Used-by 1..* item ID description price Describes Ledger Product Catalog

*
Store Stocks name address 1 1

*
Item

1

*

1..*

Houses

1.. * Register id 1

*
Captured-on 1 0..1

Is-for 1 Custom er

3 W orks-on 1 Cashier id

图9-27 NextGen POS的部分领域模型

51

示例:Monopoly中的属性

图9-28 Monopoly的部分领域模型

52


推荐相关:

第9章 领域模型.ppt

第9章 领域模型 Domain Model 1 领域模型 ? 领域模型是对领域内的概念类或现实中对 象的可视化表示 ? 领域模型也称为概念模型、领域对象模型 和分析对象模型 ?...


领域模型 - 图文 - 百度文库.ppt

领域模型 - 第9章 领域模型 Domain Model 1 领域模型 ? 领域模型是对领域内的概念类或现实中对 象的可视化表示 ? 领域模型也称为概念模型、领域对象模型 和...


领域模型_图文.ppt

领域模型 - 第9章 领域模型 Domain Model 1 领域模型 领域模型是对领域内的概念类或现实中对 象的可视化表示 领域模型也称为概念模型、领域对象模型 和分析对象...


spss统计分析及应用教程-第9章 结构方程模型_图文.ppt

spss统计分析及应用教程-第9章 结构方程模型_数学_自然科学_专业资料。第9章 ...但是对于管理学等社会科学领域的很 多研究课题来说,模型所涉及的自变量常常不可...


初中数学解题方法 第9章 建模思想_图文.ppt

初中数学解题方法 第9章 建模思想_数学_初中教育_教育专区。选填,简要介绍文档...同时数学模型也是解决各个领域中科技问题 的有用工具,在经济、军事以及各个领域...


10期 领域模型_图文.ppt

10期 领域模型_计算机软件及应用_IT/计算机_专业资料。2011年11月 夏


最新spss统计分析及应用教程-第9章-结构方程模型_图文.ppt

最新spss统计分析及应用教程-第9章-结构方程模型 - 第9章 结构方程模型 第9章 结构方程模型 ? 本章学习目标 ? 理解结构方程分析的基本思想与原理 ? 了解结构...


第3章 类图及建立领域模型.ppt

第3章 类图及建立领域模型 - 第三章 类图及建立领域模型 ?类图是应用最广泛的


领域模型知识总结_图文.ppt

领域模型知识总结_计算机软件及应用_IT/计算机_专业资料。领域建模(概念模型)


第9章 软件体系结构与设计模式_图文.ppt

第9章 软件体系结构与设计模式_计算机软件及应用_IT/计算机_专业资料。第9章 ...特定的应用还需要特定的体系结构模型。这些体 系结构模型称为领域相关的体系结构...


Hibernate第3章 领域模型和元数据_图文.ppt

Hibernate第3章 领域模型和元数据 - 第三章 领域模型和元数据 CaveatEmptor领域模型 CaveatEmptor网站拍卖许多不同种类的货品,从电子 设备到机器,应有尽有。...


使用领域模型构建UML类模型_图文.pdf

使用领域模型构建UML类模型上海东华大学信息科学与技术学院(200051)任勇包盛 陈...第9章 领域模型 52页 1下载券 领域模型 52页 1下载券 2018 Baidu |由...


第9章真实感图形_图文.ppt

第9章真实感图形 - 计算机图形学基础 第9章 真实感图形绘制 本章主要内容 ? 几何造型技术 ? 光照模型 ? 表面纹理 ? 真实感图形表现实例 OpenGL三维图形...


投资学第9章资本资产定价模型_图文.ppt

投资学第9章资本资产定价模型 - 投资学 第9章 资本资产定价模型 (CAPM)


领域模型(概念类图)_图文.ppt

领域模型软件学院 代飞 2013〃秋 内容 1、概念模型的简介 2、建立概念模型的基本步骤 1、领域模型简介领域模型:显示最重要的业务概念和它们 之间的关系的类图。 ...


第5讲.细化阶段与领域模型_图文.ppt

第5讲.细化阶段与领域模型 - 第讲.细化阶段与领域模型 上海交通大学计算机科学与工程系 内容提要 ? 细化阶段 ? 领域模型 ? 领域模型 ? 概念类 ? 关联 ? ...


第9章 基于Agent的建模方_图文.ppt

但随着Agent广泛应用的不同领域,不再局限于 “代理”。 1.Agent应具有的特性:...这样,基于Agent的模型仿真程 序可用图9.5的伪码表示。 ? 在图9.5所述的...


领域模型_图文.ppt

领域模型_计算机软件及应用_IT/计算机_专业资料。领域模型 面向对象的分析与设计 第3章 领域模型 (1) 领域模型 ? 领域模型(domain model)是概念类或问题领域中...


第1章 建立数学模型_图文.ppt

模型 微分方程模型 第6章第7章 第9章 差分方程模型稳定性模型 概率模型 第8...数学以空前的广度和深度向一切领域渗透. 数学建模作为用数学方法解决实际问题的第...


可视化领域模型_图文.ppt

可视化领域模型_工学_高等教育_教育专区。可视化领域模型 可视化领域模型 ? 什么是领域模型 ? 概念类 ? 识别和提取概念类 ? 创建领域模型步骤 几个问题 ?命名 ?...

网站首页 | 网站地图
All rights reserved Powered by 酷我资料网 koorio.com
copyright ©right 2014-2019。
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@126.com