统一软件开发过程之1:创建领域模型
1:什么是领域模型
是对领域内的概念类或现实世界中对象的可视化表示。领域模型也称概念模型,领域对象模型和分析对象模型。
(UP领域模型是UP业务对象的特化“专用于解释业务领域中重要的‘实物’和产品也就是说领域模型专注于特定领域
”)
2:如何找到领域模型
通常由两种方法。“使用分类列表”和“通过”
2.1:使用分类列表
我们可以通过制作概念类候选列表来开始创建领域模型。(列表建议考虑优先级)
以下例子取自于POS,Monopoly或航空预定领域。
概念类的类别 |
示例 |
业务交易 准则:关键所以作为起点 |
Sale,Payment,Reservation |
交易规则 准则:交易中通常会涉及项目所以放在第二位 |
SalesLineItem |
与交易或交易项目相关的产品或服务 准则:(产品或服务)是交易的对象所以放在第三位 |
Item,Flight,Seat,Meal |
交易记录于何处? | Register,Ledger,FlightManifest |
与交易相关的人或组织的角色;用例的参与者 准则:我们通常要知道交易的各方 |
Customer,Store,Player |
交易的地点:服务的地点 | Store,Plane |
。。。 | 。。。 |
2.2:通过识别名词短语寻找概念类
语言分析,在对领域的文本性描述中识别名词和名词短语,将其作为候选的概念类或属性。(注意语言中的二意性)
(UML表示法中第二框表示领域对象的属性)
领域模型是重要的领域概念和词汇的可视化,其中某些词语来源于用例,另外一些术语则源于其他文档或专家的想法。无论如何用例是挖掘名词短语的重要来源之一。
3:找领域模型过程中要关注的几点
3.1:如何区分属性和类
准则:如果我们认为某概念了X不是现实世界中的数字和文本,那么X可能是概念类而不是属性。
例如Store应该是Sale的属性还是单独的概念类?现实世界中由于商店不会被认为是数字或文本所以Store是概念类
3.2:关联
关联(association)是类(精确地说是这些类的实例)之间的关系,表示有意义和值得关注的连接。
表示法:类之间的连线并冠以首字母大写的关联名称。
命名:“类名-动词短语-类名”其中动词构成了可读的和有意义的顺序。
3.3:领域模型里的属性都不表示外键,领域类之间的关系只能通过关联来表示而不能像数据库中的外键来表示。 统一软件开发过程之2:用例文本书写