<六>面向对象分析之UML核心元素之业务实体
一:基本概念
---->业务实体类(class)的一种版型。特别用于在业务建模阶段建立领域模型。业务实体是业务模型中非常重要的一个因素,它为问题领域中的关键概念建立概念化的理解。是人们认识问题领域的重要手段。如果说参与者和用例描述了我们在这个问题领域中达到的什么样的目标,那么业务实体就描述了我们使用什么来达到业务目标以及通过什么记录这个业务目标。
---->官方定义:业务实体代表业务角色执行业务用例处理或使用的“事物”。
---->一个业务实体经常代表某个对多个业务用例或用例实例有价值的事物,一般而言,一个好的业务实体不包含关于使用主体和使用方法的信息。
---->如何理解上述定义呢?
(1)业务实体来自现实世界,在我们建模的问题领域里一定能够找到与它相对应的事物,并且这个事物是参与者在完成其业务目标的过程中使用的或创建出来的。并不一定对应一个具体的事物,dto是作为数据工具。
(2)业务实体一定是在分析业务流程的过程当中发现的,而业务流程实际上就是业务的用例场景。这意味着业务实体必须至少被一个业务用例场景使用或创建,对业务用例场景没有贡献的事物,即使它客观存在,也不应该为它建模。例如,买衣服的场景中,挂衣服的衣架就是无贡献的。
(3)业务实体作为类的一个版型,具有对象所有性质,包括属性和方法,同时具有对象的独立性,即业务实体只应当包含它本身固有的特性,而不能够包含外界是如何使用它的信息。例如:一把刀,就是一把刀,具有自身固有的属性和行为。这个业务实体我们之描述它的大小,材料,外观,锋利程度等,不能描述它是用来切菜的。因为它是不是用来切菜,得取决于业务场景。在厨师的厨房做菜的场景,就是切菜。在坏人则是用来抢劫的凶器。
二:业务实体的属性
---->属性是用来保存业务实体特征的记录,业务实体的属性集合决定了它的唯一性。
---->属性可以很容易从它所对应的现实事物中找到。例如,钱币,我们可以很容易找到它的属性:面额,材料,大小,防伪标识。但,在建模时,我们不需要把它所有的属性都列举出来,只在场景中有用的列举出来。
---->一般来说,如果只有一个对象可以直接使用这个属性,或者只能通过这个对象才能访问到这个属性,它就应当作为一个属性存在。否则就应当把它单独建模成一个业务实体。
三:业务实体的方法
---->方法是访问一个业务实体的句柄,它规定了外部可以怎样使用它。
---->方法是外部能够使用这个业务实体的全部信息。
---->不需要将这个业务实体所有可能的方法都列举出来,只列举场景中应用到的。
---->业务实体的方法也同样是面向对象方法中的抽象视角的体现。
四:获取业务实体
-----> 在业务实体的定义里讲到:业务实体代表业务角色执行业务用例时所处理或使用的“事物”。一个业务实体经常代表某个对业务用例或用例实例有价值的事物。实际上这个定义就是我们获取业务实体的方法。
----->(1)建立业务用例场景。(2)从业务用例场景中诸葛分析动词后面的名词,他们就是业务实体的备选对象。(3)根据备选对象对业务目标是否有贡献这一筛选条件从备选列表中挑选出符合的对象。例如邮局是一个场所,它是寄信的一个约束,或者说前置条件,对寄信业务目标来说没有直接的贡献,应当把它从列表去掉。剩下的就成为初始的业务实体。(4)分析业务实体之间的关系,并决定哪些应当单独建模,哪些应当作为属性。比如地址和邮票都在信封上,其中地址只有信封能够承载,并且也只有通过信封来读取地址,所以地址应当作为信封的一个属性。而邮票虽然也在信封上,但是寄信人可以对邮票进行单独处理,比如在购买邮票时没有贴在信封上,所以邮票应该单独建模。
<六>面向对象分析之UML核心元素之业务实体的更多相关文章
- <十>面向对象分析之UML核心元素之关系
关系 --->在UML中关系是非常重要的语义,它抽象出对象之间的联系,让对象构成特定的结构. 一,关联关系(association)
- <八>面向对象分析之UML核心元素之分析类
一:基本概念 ---->在那大数项目中,分析类是被忽视的一种非常有用的元素. ---->分析类用于获取系统中主要的“职责簇”,他们代表系统的原型类,是系统必须处 ...
- <七>面向对象分析之UML核心元素之包
一:基本概念
- <四>面向对象分析之UML核心元素之用例
一:基本概念 --->用例定义了一组用例实例,其中每个实例都是系统所执行一系列操作,这些操作生成特定主角可以观测的值. --->所谓用例,就是一件事情,要完成这 ...
- <九>面向对象分析之UML核心元素之设计类,类,属性,方法,可见性
设计类
- <五>面向对象分析之UML核心元素之边界
一:基本概念
- <三>面向对象分析之UML核心元素之参与者
一:版型 --->在UML里有一个概念叫版型.有些书里也称类型,构造型. --->这个概念是对一个UML元素基础定义的扩展.在同一个元素基础定义的基础上赋予特别 ...
- <十二>面向对象分析之UML核心元素之节点和设备
节点,设备
- <十一>面向对象分析之UML核心元素之组件
组件
随机推荐
- jQuery+css+div--一些细节详解
(一).首先.让我们认识一下最基本普通的alert()弹出框!(改变alert()提示弹出框的样式) 我们在写html或是jsp页面的时候,谁都不希望自己精心设计,且非常美观的页面颜色布局被破坏掉吧! ...
- C++代码反汇编后的堆栈寄存器EBP和ESP
最近在分析一个进程崩溃的严重问题,其中有些过程分析需要对ebp, esp 有清晰的理解,对于ebp 和esp 相信大家都很熟悉了,但是为了使本文自成体系,我还是解释一下. ebp--栈底指针 esp- ...
- Unity3d开发wp8问题汇总
原地址:http://blog.csdn.net/sunshine_1984/article/details/12849117 .wp8应用点击返回键没有响应将Unity3d导出wp8工程后,编译工程 ...
- cognos8.3 sample在DB2里的安装
db2 create db c83 alias c83 using codeset UTF-8 territory CA 创建sample数据库 db2set db2codepage= db2 cha ...
- Java学习笔记之:Java 接口
一.引言 接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明.一个类通过继承接口的方式,从而来继承接口的抽象方法. 接口并不是类 ...
- 用 React 编写SVG图表
1.代码 <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="U ...
- C#实现字符串按多个字符采用Split方法分割
原文:C#实现字符串按多个字符采用Split方法分割 String字符串如何按多个字符采用Split方法进行分割呢?本文提供VS2005和VS2003的实现方法,VS2005可以用下面的方法: str ...
- 安装nginx创建错误
./configure: error: the HTTP gzip module requires the zlib library. 解决: yum install -y zlib-devel -- ...
- *两个关键字static和final
static关键字:可以用于修饰属性,也可以用于修饰方法,还可以用于修饰类. static 修饰属性: 无论一个类生成了多少个对象,所有这些对象共同使用唯一一份静态的成员变量:一个对象对该静态成员变量 ...
- C++:类型转换
5.3 类型转换 5.3.1 系统预定义类型间的转换 1. 隐式转换: 例如: int x=5,y; y=3.5+x; //系统会自动先将int型的5转换为double型的5. ...