业务对象建模

发布日期:
2024-04-28

浏览次数:

在一个项目中,业务对象建模通过静态的表现形式来描述对业务领域的思考成果。在业务对象建模的产出物中展示了与业务领域相关的重要实体、关系和属性,但它是静态的,因为它并没有表达这些对象随时间而变化的过程。

关于业务对象建模

下面是一个业务对象模型图的示例。在这个业务对象模型图中,展示了实体(图中方框)和关系(图中的线条)。

业务对象建模

“业务对象建模”这个专业术语存在叫法不一致的现象,它可能被称为“领域对象建模”或者是“概念对象建模”。业务对象建模和企业建模、企业架构的概念不同,企业建模或企业架构的范围是整个企业,包含了许多不同的视角,而业务对象模型仅限于当前项目所涉及的领域。

业务对象模型展示了组织中使用的主要数据项(实体),以及管理这些实体之间关系的业务规则。

业务对象建模对业务分析师来说意义重大,可以带来很多好处。通过业务对象建模可以更好地理解组织内部系统中存储和使用的数据,以及组织内创建、使用和删除这些数据的业务规则。

一些业务分析师可能并不愿意接受使用数据建模这种方式,他们认为这项工作更应该是系统分析师和开发人员的职责,但我并不这么认为。业务分析师是与业务关系最密切的角色,他们应该比开发人员更了解数据和数据的使用方式。

正如“实体关系模型”这个术语名称中所描述的,它包含两个基本组件:实体和关系。实体是“系统中最值得关注的东西,表示系统存储了哪些数据”。

“实体”也称为“业务对象”,《BIZBOK》给出了业务对象的定义:

表达的是一个活跃在业务领域中的事物,至少包含它的业务名称和定义、属性、行为、关系以及约束等,例如,实体可表达一个人、一个地点或一个概念。

实体(业务对象)的示例,它可以是:

物理视角 - 例如:汽车

概念视角 - 例如:汽车车身类型

活动视角 - 例如:汽车维修服务

关系是实体与实体之间的连接或关联。例如,汽车实体中的一个实例可以与多个服务实体中的实例相关。“乌鸦脚”表示关系的“基数”或“度”。

除了基数之外,我们还可以在模型中定义关系的选择性。例如,服务必须与汽车相关,但汽车不必与服务相关,这个关系就是可选的。仔细思考一下,这显然是正确的,因为新的汽车可能还没有进行过任何服务。

如果我们进一步思考一下汽车和服务之间的关系,我们会意识到它们的关系实际上更像是多对多的。

业务对象建模的历史

业务对象建模起源于很多技术性的知识领域,包括逻辑和物理数据模型。大多数人谈论到数据库相关技术的时候,会认为这些技术在设计关系型数据库管理系统(RDBMS)时使用。

在过去的二十年中,也出现了“类模型(Class Model)”和“对象模型(Object Model)”,它们不仅展示了对象的静态视图,还展示了功能视图。如果忽略掉类模型在功能方面的表达,那么,数据模型和类模型的表示法虽然不同,但都可以用于表示实体及属性之间的关系。

文章开头显示的示例是一个没有表示任何“方法”(编程语言中描述功能的元素)的类模型。

业务对象建模的好处

业务对象模型从不同的视角展示一个被关注的业务领域。无论它是不是一个好的技术,都可以通过业务对象模型从不同的视角来回答业务领域相关的问题,也可以将它作为一种分析工具,提出更多的问题,促进对所研究业务领域的更深入理解。

它可以提供一些问题和答案,作为对其他视角(例如,用例模型或任何功能视图)中所表达内容的反馈。为了促进对业务的理解,它通常可以在不同的模型之间切换使用。

它在指导后续更加详细的设计工作中非常有用,例如,它可以指导数据字典(和物理数据模型)的设计。在设计页面、报告或与其他系统的接口时,又可以参考这个数据字典。

业务对象建模的原则/方法

在设计业务对象模型时,可以参考一些设计原则:

使业务可以被理解;

尽可能使用团队熟悉的术语。注意,业务中使用的术语往往有歧义,可能包含多种含义。在这种情况下,针对每一种不同的含义,都需要定义一个辨识度高的名词和实体;

建立业务词汇表;

这样有助于解决双重含义识别的问题,确保利益相关方之间达成一致。

保持简单,从核心实体和关系开始;

在实体及其关系存在争议时,可以设计一些属性,促进对实体本质的理解。

在向利益相关方展示业务对象模型的时候,会面临一个挑战,对一些并不熟悉抽象视图的人来说,会有一些恐惧和无法接受的心理。这个问题很好解决,“没必要向利益相关方展示类模型”。

业务对象模型可以仅作为你自己在构建和思考问题时使用的工具。例如,在你确认业务理解的过程中,业务对象模型上的所有关系都可以变成一句话或一个问题。

客户通常会有多个订单吗?

您是否有客户从来不下订单?如果有,为什么?

什么时候使用业务对象建模

这种方法对新兴项目尤为合适,如果这些项目还没有模型,你可以开始推进使用业务对象建模。

当然,这种方法并不适用于那些以功能为主且很少对数据进行操作的项目,更适用于那些实体或类很多,并且交互关系很复杂的项目。

在对现有系统进行一些少量改造的项目中,这个方法的用处也不大,除非,这个项目的文档非常陈旧,需要对系统进行分析和理解的时候,也可以使用业务对象建模这个方法。

结论 

总之,业务对象建模应该是你兵器库中用于业务分析的一种技术工具。

在研究业务问题的时候,它可以提供一个不同的视角,有助于提高对业务的理解,并且在后续更加详细的业务分析工作中(例如设计一个报告),业务对象建模是必不可少的。

你应该始终从关键实体和关系的高阶视图着手展开工作,并且确保每一个实体都没有歧义或双重含义。