文章规划为七篇,本篇是第二篇.
主要介绍在数据建模工作的初步准备阶段里关键的具有重要的业务含义 的人,事,物,概念的识别
他们会作为建模阶段的输入信息,接下来我们进入本篇主题.
什么是业务对象?
在软件工程里是这么定义的: 业务对象是指对数据进行检索和处理的组件。 这么形容业务对象的概念确实过于抽象了,而且一时也很难对这种类型的组件形成一般的感性认知。所以我根据自身的理解给业务对象的定义下了个通俗易懂的定义(帮助理解不一定正确):在一段业务过程和业务逻辑中你所操作的主要对象就很可能是业务对象的重要组成部分,至于它可能是什么?下文会有介绍。
我们继续聊聊什么是业务对象这个话题,业务对象的侧重点仍然在于描述业务本身,而不包含任何一点的技术上的上下文语义,首先它是一种简单的对真实世界的软件抽象,这种所谓的 “组件” 一般会处于逻辑层。业务对象可以在一个应用中自动的加入一个特定的功能来获得增值效应,让知识复用变为可能。 比如我们要开发一个包含多种货币处理的应用,我们可以使用某个系统中已有的多货币处理功能的业务对象开始开发,使重复的工作大大减少。从这个层面上,业务对象作为组件的定义会非常的清晰。
业务对象的构成?
- 业务对象必须包含行为和状态
- 表达了来自业务域的一个人,地点,事物,或者概念。
- 可以重用
- 业务对象有输入或者输出数据
这里业务对象有别于实体的概念,我理解业务对象可以被 ”实例化“(实际上实例化是变抽象为具体的过程,不应该出现在这里)为一个或者多个实体。如果非要下个定义的话,我认为这里实体和业务对象是互为抽象关系,在某些场景下可以画等号,而在某些场景下则不能。其中最显著的一个区别特征是实体得有唯一标识,业务对象则不必须。
业务对象的分类?
- 实体业务对象:表达人事物或者概念,从业务域中提取的名词,如客户,订单,物品 。
- 过程业务对象:表达一段业务流程或者工作流的任务,通常依赖于实体业务对象,是业务域的动词。
- 事件业务对象:表达系统操作而产生的一些事件。
什么是概念实体?
概念实体是业务对象的实现,通常具有如下特征:
- 概念对象是指企业运作和管理中不可缺少的重要人事物信息。
- 概念实体有唯一身份标识信息
- 概念实体相对独立,并且有属性描述,可以与其它概念实体关联,但是不是丛属关系。
- 概念实体可以实例化
如何识别概念实体?
首先应该对概念实体下一个定义,即什么样的事物可以被认定为概念实体?
- 概念实体是指企业运作和管理中不可缺少的人事物信息,对于概念实体,通常企业会建立相应的流程,组织,IT进行管理,概念实体的OWNER明确且边界清晰。如采购流程,可识别出采购策略,供应商等概念实体。
- 概念实体必须具有唯一标识
- 概念实体相对独立并且有属性描述,状态会随时间变化,但本职不会变化,可与其它概念实体关联,但不是丛属关系,比如员工可能会升迁,调动,但是员工并未发生变化。
- 概念实体可实例化,基础数据,报告数据,一般不认为是概念实体
- 概念实体可以进行收敛合并具体收敛方法为重用已有概念实体,合并不同状态的概念实体(如工单的不同状态可认为是工单),具有想通业务含义不同载体的概念实体(合同电子件,合同原件),具有相同业务含义或业务用途的可进行抽象整合(客户期望和市场情报可整合为机会点)
- 通过已建应用识别。
其次概念实体的识别一般分为如下五个步骤,每个步骤都应有相应的输入输出信息
- 分析与识别概念实体:价值流分析->业务过程和步骤分析->业务能力分析 ->业务对象分析->模型和标准分析
- 整理初稿:初步合并抽象概念实体
- 开发和验证:完整性验证(识别出所有概念实体),合理性验证(优化)和集成性验证(与相关领域概念实体可对接)
- 更新定义与描述: 准确定义概念实体,明确责任人与职责
- 分析差异与刷新:在往逻辑实体的推导中,要分析差异点,提出修改意见或者完善方法。
什么是主数据?维度数据?事务数据?统计数据?观测数据?
- 主数据:主数据是用来描述企业核心业务实体的数据,是企业交易业务的执行主体,是在整个价值链上被重复或共享应用于多个业务流程、跨越多个业务部门和系统、高价值的基础数据。
- 维度数据:指对其他数据进行分类和规范的数据,如国家、地区、货币、品牌、产品类型等通用的数据,具有相对稳定、静态的数据,基本不会变化,往往通过系统配置文件给予规范并固化在信息管理系统中。
- 事务数据:指在业务活动过程中产生的数据,是企业日常经营活动的直接体现,也是围绕主数据实体产生的业务行为和结果型数据,业务活动数据存在于联机事务处理系统中,就有瞬间生成和动态的特点,比如用户详单、订单等
- 统计数据: 是组织在经营分析过程中衡量某一个目标或事物的数据,一般由指标名称、时间和数值等组成。
- 观测数据:指时间序列数据,它是按时间顺序记录的数据列,在同一个数据列中的各个数据必须是同口径的,要求具有可比性。在工业企业中,实时数据是时序数据的一种,如设备运行监测类数据、安全类监测类数据、环境监测类数据。
业务对象与数据对象的区别?
- 面向的人不同,业务对象到数据对象是抽象的过程(收敛),数据对象到业务对象是具象的过程(发散),业务对象的关注点是单据,面向的是业务人员,数据对象面向的是数据库和数据表,面向的是设计人员。
- 映射粒度不同,业务对象是业务领域的概念,如采购订单,对应是事ER图,数据对象是更细粒度的详细的子对象,如订单行和订单头
- 语义不同,业务对象是业务属于在谈的对象,比如库存记账表,可能到了数据库层面就不是叫这个表名了。数据对象存在的表,业务对象中可能不存在。
- 抽象和实现不同,如框架协议和采购订单是2个业务对象,但是数据对象会把两个业务对象放到一张表中。