业务模型统一描述

12-09-04 wangcity
              

我认为,任何业务可以描述为:

1,时间,

2,场景(上下文),

3,角色(party),

4,主题(事件启动,事件源、动机),

5,行为(事件步骤,含中间状态),

6,结果(状态持久化)

结合DDD和CQRS,应该很好理解,也比较完整。

其中比较关注的是,面向主题的这个因素,这样可以让事件启动,独立于角色(party),边界划分更为清晰。

如果能用上述的6个方面进行描述,那么所谓的统一语言就可以统一了。

wangcity,2012-09-04

              

9
wangcity
2012-09-04 17:40

由,时间,参与者(角色),主题,可以确定唯一性

由中间状态可以控制无需时刻的一致性的事务。

将最终持久化看成是一个中间状态的特定时间点,统一看待。

banq
2012-09-05 09:43

不错,统一语言其实早就存在,只不过朴素的被动存在,比如数据库术语就是目前用得最广的统一语言,最后迫使业务人员也要学习数据库知识,关系数据库变成万能模板。

统一语言统一的是业务语言和技术语言,并能把他们的理解统一映射起来,否则技术人员觉得业务很难实现,业务人员也会在细节中迷失方向。

细节决定成败,也能让人迷失方向,包括通往成功的方向。

UML也是一种统一语言,BDD也是,包括倡导统一语言的ddd,它的实体和值对象也是一种统一语言,统一语言其实是统一思想。

统一语言是不是和DSL语言 Domain-Specific Languages有某种关系?

[该贴被banq于2012-09-05 10:11修改过]

wangcity
2012-09-05 10:19

一,两个世界

客观世界

主观世界

客观世界:是包含真实的业务和软件。

这是独立,客观存在的。

例如,没有任何软件,业务也是可以做的。写软件的人假如死了,软件也是客观存在的。假如比尔盖茨死了,windows依然存在。

主观世界:头脑中的世界,包括:业务人员的头脑中的业务模型,开发人员(架构师)脑中的需求模型(软件的模型)

因为软件并不是1:1的去复制出一个虚拟的业务,而是从业务中抽取出,过滤出一部分需要由软件支撑的部分来进行开发,所以,业务的范围大于软件的范围。

也即是说:

业务模型-》(抽取,过滤,设计,转换)-》需求模型

模型是主观世界的客观表达。

所以,业务模型,需求模型,就分别是商业分析师、业务人员和架构师、开发工程师们头脑中主观思维的表达,并通过模型进行记录,形成一个客观存在的表达形式。

正所谓,口说无凭,立字为据。

wangcity
2012-09-05 10:29

在从业务模型到需求模型的转换过程中

如果业务人员(客户和商业分析师)的表达,不够精确,不能传达100%完整的,正确的信息给架构师,那么,架构师的设计,肯定也是错误的。

之前,采用的例如,UML的用例图,BPMN商业流程图等,虽然可以在一定程度上达到效果,但是因为,UML的用例图对人的要求较高,所以很少有人能把用例图画对的。BPMN商业流程图,也容易出现,对流程,子流程,步骤,活动等判断不一致的地方。

同时,在软件基本上都是采用OO语言开发实现的,OO的本质,就是模拟客观世界。客观世界肯定采用的不是贫血模型。如果客观世界是贫血模型,那就得存在上帝,上帝指挥一切运转。

5Go 1 2 3 4 ... 5 下一页