<六>面向对象分析之UML核心元素之业务实体
一:基本概念 ---->业务实体类(class)的一种版型。特别用于在业务建模阶段建立领域模型。业务实体是业务模型中非常重要的一个因素,它为问题领域中的关键概念建立概念化的理解。是人们认识问题领域的重要手段。如果说参与者和用例描述了我们在这个问题领域中达到的什么样的目标,那么业务实体就描述了我们使用什么来达到业务目标以及通过什么记录这个业务目标。
---->官方定义:业务实体代表业务角色执行业务用例处理或使用的“事物”。
---->一个业务实体经常代表某个对多个业务用例或用例实例有价值的事物,一般而言,一个好的业务实体不包含关于使用主体和使用方法的信息。
---->如何理解上述定义呢?
(1)业务实体来自现实世界,在我们建模的问题领域里一定能够找到与它相对应的事物,并且这个事物是参与者在完成其业务目标的过程中使用的或创建出来的。并不一定对应一个具体的事物,dto是作为数据工具。
(2)业务实体一定是在分析业务流程的过程当中发现的,而业务流程实际上就是业务的用例场景。这意味着业务实体必须至少被一个业务用例场景使用或创建,对业务用例场景没有贡献的事物,即使它客观存在,也不应该为它建模。例如,买衣服的场景中,挂衣服的衣架就是无贡献的。
(3)业务实体作为类的一个版型,具有对象所有性质,包括属性和方法,同时具有对象的独立性,即业务实体只应当包含它本身固有的特性,而不能够包含外界是如何使用它的信息。例如:一把刀,就是一把刀,具有自身固有的属性和行为。这个业务实体我们之描述它的大小,材料,外观,锋利程度等,不能描述它是用来切菜的。因为它是不是用来切菜,得取决于业务场景。在厨师的厨房做菜的场景,就是切菜。在坏人则是用来抢劫的凶器。
二:业务实体的属性
---->属性是用来保存业务实体特征的记录,业务实体的属性集合决定了它的唯一性。
---->属性可以很容易从它所对应的现实事物中找到。例如,钱币,我们可以很容易找到它的属性:面额,材料,大小,防伪标识。但,在建模时,我们不需要把它所有的属性都列举出来,只在场景中有用的列举出来。
---->一般来说,如果只有一个对象可以直接使用这个属性,或者只能通过这个对象才能访问到这个属性,它就应当作为一个属性存在。否则就应当把它单独建模成一个业务实体。
三:业务实体的方法
---->方法是访问一个业务实体的句柄,它规定了外部可以怎样使用它。
---->方法是外部能够使用这个业务实体的全部信息。
---->不需要将这个业务实体所有可能的方法都列举出来,只列举场景中应用到的。
---->业务实体的方法也同样是面向对象方法中的抽象视角的体现。
四:获取业务实体
-----> 在业务实体的定义里讲到:业务实体代表业务角色执行业务用例时所处理或使用的“事物”。一个业务实体经常代表某个对业务用例或用例实例有价值的事物。实际上这个定义就是我们获取业务实体的方法。
----->(1)建立业务用例场景。(2)从业务用例场景中诸葛分析动词后面的名词,他们就是业务实体的备选对象。(3)根据备选对象对业务目标是否有贡献这一筛选条件从备选列表中挑选出符合的对象。例如邮局是一个场所,它是寄信的一个约束,或者说前置条件,对寄信业务目标来说没有直接的贡献,应当把它从列表去掉。剩下的就成为初始的业务实体。(4)分析业务实体之间的关系,并决定哪些应当单独建模,哪些应当作为属性。比如地址和邮票都在信封上,其中地址只有信封能够承载,并且也只有通过信封来读取地址,所以地址应当作为信封的一个属性。而邮票虽然也在信封上,但是寄信人可以对邮票进行单独处理,比如在购买邮票时没有贴在信封上,所以邮票应该单独建模。
<六>面向对象分析之UML核心元素之业务实体的更多相关文章
- <十>面向对象分析之UML核心元素之关系
关系 --->在UML中关系是非常重要的语义,它抽象出对象之间的联系,让对象构成特定的结构. 一,关联关系(association)
- <八>面向对象分析之UML核心元素之分析类
一:基本概念 ---->在那大数项目中,分析类是被忽视的一种非常有用的元素. ---->分析类用于获取系统中主要的“职责簇”,他们代表系统的原型类,是系统必须处 ...
- <七>面向对象分析之UML核心元素之包
一:基本概念
- <四>面向对象分析之UML核心元素之用例
一:基本概念 --->用例定义了一组用例实例,其中每个实例都是系统所执行一系列操作,这些操作生成特定主角可以观测的值. --->所谓用例,就是一件事情,要完成这 ...
- <九>面向对象分析之UML核心元素之设计类,类,属性,方法,可见性
设计类
- <五>面向对象分析之UML核心元素之边界
一:基本概念
- <三>面向对象分析之UML核心元素之参与者
一:版型 --->在UML里有一个概念叫版型.有些书里也称类型,构造型. --->这个概念是对一个UML元素基础定义的扩展.在同一个元素基础定义的基础上赋予特别 ...
- <十二>面向对象分析之UML核心元素之节点和设备
节点,设备
- <十一>面向对象分析之UML核心元素之组件
组件
随机推荐
- win7 安装Oracle 10G,11G
安装 10G : 安装说明: http://wenku.baidu.com/view/a73d048bd0d233d4b14e69a8.html 按这个安装成功过. 11G R2: 在Win7 6 ...
- SpringMVC数据绑定全面示例(复杂对象,数组等)
点击链接查询原文 http://www.xdemo.org/springmvc-data-bind/ 已经使用SpringMVC开发了几个项目,平时也有不少朋友问我数据怎么传输,怎么绑定之类的话题,今 ...
- gdb基本使用方法
gdb时linux下的一个非常好用的调试工具.下面给出它几个常用的方法 b 设置断点.c 继续执行. i 查看一些信息,比如断点,i b. bt 查看函数调用栈. n 执行下一条指令,但不会进入到调用 ...
- POJ 2253 Frogger (求某两点之间所有路径中最大边的最小值)
题意:有两只青蛙,a在第一个石头,b在第二个石头,a要到b那里去,每种a到b的路径中都有最大边,求所有这些最大边的最小值.思路:将所有边长存起来,排好序后,二分枚举答案. 时间复杂度比较高,344ms ...
- POJ 3278Catch That Cow
http://poj.org/problem?id=3278 大意是说牛在原地不动,他在某点去抓牛,他有两种方式可以走,第一种走一步,往前往后都可,第二种是走现在所在点的两倍的数目.只要能够刚好到达牛 ...
- 2016年2月---Javascript
How to Learn JavaScript Properly 如何正确学习JavaScript Learn Intermediate and Advanced JavaScript 书籍: < ...
- Linux Shell 数字计算与比较
直接上脚本, 使用$(())以及$[]进行数字计算 数值比较:n1 -eq n2检查n1是否等于n2 n1 -le n2检查n1是否小于等于n2n1 -ge n2检查n1是否大于等于n ...
- Tomcat处理HTTP请求源码分析(下)
转载:http://www.infoq.com/cn/articles/zh-tomcat-http-request-2 很多开源应用服务器都是集成tomcat作为web container的,而且对 ...
- Apache源码分析资源
关于作者张中庆, 目前主要的研究方向是嵌入式浏览器,移动中间件以及大规模服务器设计.目前正在进行Apache的源代码分析,计划出版<Apache源代码全景分析>上 下册.Apache系列文 ...
- POI 中的CellRangeAddress 参数
在用poi在EXECL报表设计的时候,遇到单元格合并问题,用到一个重要的函数: CellRangeAddress(int, int, int, int) 参数:起始行号,终止行号, 起始列号,终止列号 ...