UML期末复习题——2.4:Domain Model
第四题:领域模型
重要概念:
1. 领域模型:是对领域内的概念类或现实世界中对象的可视化表示。领域模型也称为概念模型,领域对象模型和分析对象模型。
2. 应用UML表示法,领域模型被描述为一组没有定义操作的类图。它提供了概念透视图。它可以展示:
3. 如何找到概念类
2)使用分类列表
3)通过识别名词短语寻找概念类
4. 准则:属性和类的常见错误
在创建领域模型时最常见的错误是,把应该是概念类的事物表示为属性。
如果我们认为某概念类X不是现实世界中的数字或文本,那么X可能是概念类而不是属性
5. 准则:何时需要描述类?
在以下情况下需要增加描述类(例如,ProductDescription):
1)需要有关商品或服务的描述,独立于任何商品或服务的现有实例
2)删除其所有描述事物的实例后,导致信息丢失,而这些信息是需要维护的,但是被错误地与所删除的事物关联起来
3)减少冗余或重复信息
6. 关联:
关联是类之间的关系,表示有意义和值得关注的连接
7. 准则:为什么应该避免加入大量关联?
我们要避免在领域模型中加入太多的关联。回顾离散数学的相关知识,可以知道,在具有N个节点的图中,节点间有(n*(n-1))/2个关联,这可能是个非常大的数值。连线太多会产生“视觉干扰”,使图变得混乱。所在要谨慎地增加关联线。
8. 准则:在UML中如何对关联命名
例如,Sale Paid—by CashPayment 反面示例,应改为Sale Uses CashPayment
Player Is—on Square 反面示例,应以为 Player Has Square
关联名称应该使用首字母大写的形式。在UML中,类元应该首字母大写。以下是复合性关联名称的两种常见并且等价的合法格式:
Records—current
9. 应用UML:角色
关联的每一端称为角色。角色具有如下可选项:
1)多重性表达式
2)名称
3)导航
10. 应用UML:多重性
多重性定义了类A有多少个实例可以和类B的一个实例关联
11. 应用UML:两个类之间的多重关联
12. 属性:是对象的逻辑数据值
当需求建议或暗示需要记住信息时,引入属性。
2)Store需要name和address属性
3)Cashier需要ID属性
visibility name:type multiplicity=default{property—string}
1.名词法:找一堆名词,然后把这堆名词之间的关系给建立起来
2.名词里面有属性。要判断名词是不是概念类,是不是属性。
3.考试的时候是针对一个用例来画领域模型,一定要看清楚是要对哪个用例建模,没有那么多时间对整个系统建模。
(1)先找到所有名词,判断它是类还是属性
找名词的原则(下面不要的名词标红):
1) 跟UI相关的名词不要
2) 跟database相关的名词不要
3) 跟业务流程没有关系的名词不要,如技术相关的术语,如下面的workflow,list
4) 任何计算出来的结果,不参与业务运算,不要,如果留下了这个会扣分
5) 模糊的术语一定要过滤掉
(2)如果出现动词,扣分
(3)没有名词,扣分
(4)多重性(关联的一对多,一对一等)没有,扣分
(5)漏掉一两个类,不扣分
6、 属性,假如每一个类有七八个属性,只写一两个典型的代表即可,考试没有那么多时间
7、 领域模型的类不能有操作(也就是类的函数),如果写出来要扣分。
8、 如果有描述类,一定要画出来。
描述类是包含其他事物的信息的类。命名方式:被描述类名Description
被描述的事物存在,并且描述独立于事物的实例
比如酒店的每一个同类型的房间价格都是一样的,它并不随着房间号的变化而变化,所以把房间描述独立出来会比较好
9、 没有描述类一定会扣分!
整个画图的最重要步骤就是找出名词!
UML期末复习题——2.4:Domain Model的更多相关文章
- UML期末复习题——2.6:Package Diagram
第六题 包图 重要概念: 1.包图(package Diagram) 由若干个包以及包之间的关系组成.包是一种分组机制,其将一些相关的类集合为一个包,形成高内聚,低耦合的类集合,可以说,一个包相当于一 ...
- UML期末复习题——2.8:UML Design Class Diagram(DCD)
第八题:设计类图 重要概念: 1. 类图(Class Diagram): 类图是面向对象系统建模中最常用和最重要的图,是定义其它图的基础.类图主要是用来显示系统中的类.接口以及它们之间的静态结构和关系 ...
- UML期末复习题——2.9:UML Deployment Diagram
附加题:部署图 重要概念: 1. 部署图 部署图表示的是,如何将具体的软件制品(例如可执行文件)分配到计算节点(具有处理服务的某种事物)上.部署图表示了软件元素在物理架构上的部署,以及物理元素之间的通 ...
- UML期末复习题——2.7:UML Sequence Diagram
第七题:顺序图 重要概念: 1. 顺序图的主要介绍,在之前对第5题“系统顺序图”的解析讲解里已经很详细了,在这里只是对部分不全面的内容进行补充. 第五题:系统顺序图&后置条件 http://w ...
- UML期末复习题——2.5:System Sequence Diagram & Post-condition
第五题:系统顺序图 重要概念: 1.对象: 对象是特定行为与属性的集合. 对象的表示方式有三种: a.包括对象名和类名 b.只有类名. c.只有对象名 2.消息表示形式: 消息用于描述对象间交互的方式 ...
- UML期末复习题
看了网上的各种UML图的相关资料,找到的都是差不多一样的对图的基本介绍.之前复习的时候也想对不同UML图单独进行复习总结,后来发现这样复习好像没什么用,不能理解每个图之间的关系,所以就没有进一步总结. ...
- UML期末复习题——2.3:UML State Diagram
第三题 状态图 重要概念: 1.定义:事件.状态和转换: 事件:指一件值得注意的事情的发生. 状态:指对象在事件发生之间某时刻所处的情形. 转换:两个状态之间的关系.它表明当某事件发生时,对象从先前 ...
- UML期末复习题——2.2:UML Activity Diagram.
第二题:活动图 重要概念: 活动图:一种有助于使工作流和业务过程可视化的图. 绘制要点: 具体方法见:http://www.cnblogs.com/xiaolongbao-lzh/p/4591953. ...
- UML期末复习题——2.1:Use Case Diagram
第一题:用例图 重要概念: 1.采用参与者和参与者目标的观点: 一组用例实例,每个实例是系统所执行的一系列活动,以此产生对特定参与者具有价值的客观结果. 短语“对特定参与者具有价值的客观结果”是细微而 ...
随机推荐
- UMI.js开发知识总结
五分钟掌握最小知识体系 本文阅读时间大概为5分钟,但是能让你了解基于UMI和DVA构建项目的最小知识体系,你可以粗略的浏览一下本文所提到的知识,在后续的讲解中都会多次重复提起,保证学习效率.由于现在前 ...
- Liunx-tail命令
1. 实时刷新tail -f /var/log/messages 2. 实时刷新最新500条log tail -500f /var/log/messages 3. tail -n 20 catali ...
- PAT Advanced 1008 Elevator (20 分)
The highest building in our city has only one elevator. A request list is made up with N positive nu ...
- PAT Basic 1045 快速排序 (25 分)
著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边. 给定划分后的 N 个互不相同的正整数的排列,请问 ...
- Wireless Network(并查集)
POJ - 2236 #include<iostream> #include<algorithm> #include<cstring> #include<cm ...
- BZOJ 3716 [PA2014]Muzeum 贪心SET最大闭合子图
看上去像是一个最大权闭合子图裸题但是数据太大 我们可以先把守卫的视野转换到第二象限(每个守卫可以看到横坐标比他小 纵坐标比他大的宝物) 然后按X从小到大 再按Y从大到小排 这样我们就可以按SORT序遍 ...
- 单元测试框架之unittest(三)
一.摘要 前边的文章我们看到执行测试用例的是通过调用unittest.mian()函数,它会将模块的测试用例收集起来并执行,然而当我们的测试用例增多了以后,这样的执行非常不灵活而且没有效率,我们更愿意 ...
- Selenium(九)测试用例数据分离与从文件导入数据
一.测试用例数据与代码分离 1.从之前的脚本来看,我还是把数据写在了脚本中,这样脚本的通用性很差.全局的数据其实可以从数据库.文本文件.Excel中直接读取. 2.代码和用户数据分离: 3.数据设计- ...
- [唐胡璐]Selenium技巧- dataProvider实现数据驱动
废话不多讲,直接进主题,怎么实现用Excel配置测试数据,用dataProvider来调用测试数据。 jxl目前来看只支持.xls格式的文件,所以我们采用Apache POI来实现对.xlsx的操作, ...
- 第90题:子集II
一. 问题描述 给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: [1,2,2] 输出: [ [2], [1], [1, ...