领域建模个人笔记

前言说明:

  1. 无论使用什么业务,业务的总体复杂性不会降低,一个模块的简化势必增加其他模块的复杂性

目录:

  1. 问题
  2. 业务分析发展阶段
  3. 模型特性
  4. 模型的注意事项
  5. 如何建模
  6. 问题解答

内容:

1,问题:

  • 建模目的、作用
  • 业务模型和技术模型不一致
  • 模型经常被推翻
  • 模型可扩展性考虑不足
  • 领域建模是基于业务模型,对业务的不熟悉是主要障碍,缺少统一的领域语言导致团队理解不一致,沟通效率低

2,分析设计发展的三个阶段

  1. 基于数据库:缺点:不了解需求本身导致需求分析不全面,频繁返工
  2. 面向对象的方式:缺点:从产品角度出发,由产品经理规划对象,由于产品只关注实现功能,对于各个对象之间的关系并不关注,导致技术实现频繁修改
  3. 面向模型:使用一种分析设计统一语言将业务、产品、技术等各方达成统一,通过业务的本质就可以把业务的变化点挖掘出来、且有有利于思想达成共识

3,模型特性:

  1. 建模本质是为了将各方的观点使用统一的一种语言(建模语言,比如UML)达成一致,他是捕获事物本质的感觉能力和洞察能力,这样就可以体现未来变化点
  2. 模型表达的是什么?是战略方向,而不是怎么做,怎么去做那就是技术模型了
  3. 模型都是有前提和范围的,例如一个砖头,他有很多的属性,在不同领域突出不同的属性而已,所以模型本身并没有对错,只是对应不同的场景而已
  4. 领域只是表达需求真实世界业务模型,和软件架构无关,所以绘制模型的时候不要把技术放进去

4,模型注意事项:

  1. 领域模型一般是由领域专家来定义的,但是很多公司都是没有这个角色的,因此在接需求的时候就需要产品、技术使用领域建模的方式来达成一致(主要是技术一般很少接触到业务方)。如果在有领域专家的情况下,就变成领域专家、业务方、产品、技术一起来确定模型了
  2. 建模前期应该先出总体流程,负责的领域与外部系统的交互设计出来,具体负责领域的内部应该是自己的关心的;
  3. 面向领域模型设计最常见的表现形式就是UML(注意UML只是一个模型图统称哟),例如:UML状态图可以表达模型的生命周期,可以确定最典型的场景;对象图可以反映各个模型的关系;
    对于软件来说,我们常用UML图有:用例图,状态图。
  4. 建立模型时我们可以通过模型反推业务,根据不同的情况反推模型的可靠性和业务的合理性

5,如何建模:

      场景:

业务方:我想建一个四合院,每间房子使用装修不一样,用途也不一样,有的可能是我们自己住,也有可能是租出去或者卖掉;四合院中心可以住花种草,但是具体功能还没有想好。呐,大致的内容就这些,好啦,你们有什么问题吗?没问题就开始建房子吧!

96c9c735930ee3dd7c03f8116c814f02e9f.jpg

看到我们以上场景,领域专家可以抽几个关键词”四合院“,“用途不一致”,”中心功能可变化“,但是这些内容对于建造一个房子是远远不够的,我们需要向客户获取一些必须的信息

”中心部分种的花、草每个房间是否也可以装饰呢?“,”可以“;

”每个房间的配置都有哪些不同,是否有相同的部分?“,”比如说房间一二都有独立卫生间,三四房间使用的是公共卫生间。他们有共同的部分,比如说都有床“

”如果是出租的房子“,”是否收费规则是一样的,比如说都是季付或月付“,”一样的“

好了,聊到这里,总结一下刚刚上面的信息,我们可以很容易的看出:一个房子下面有很多的房间、一个房子下面会有不同的附属设施(中心部位、卫生间等)、房间也有附属设施(卫生间),附属设施用途可发生变化,比如说中心部分换成了溜冰台或新增自动洒水设置,但是这些最终都是以一个设施的形式存在,所以我们根据以上内容就得到了这样一个模型图

ec410a3b3c8a31159966b78a46cf3e2c432.jpg

这样一个简单的模型图就就建好了;

6,问题解答

  • 建模目的、作用
    答:使用一种分析设计统一语言将业务、产品、技术等各方达成统一,通过业务的本质就可以把业务的变化点挖掘出来、且有有利于思想达成共识
     
  • 业务模型和技术模型不一致
    答:由于领域模型图天生就是基于业务,产品直接根据该模型做产品设计即可;技术也可以做技术设计,由于模型是统一的,那么最终的技术和产品的偏差一般不是很大(偏差不可避免的)
  • 技术方案经常被推翻
    领域建模天生基于业务本质所抽取的模型,模型只要定了,基本技术方案不会有太大变化,除非业务发生变化,这个没有办法解
     
  • 模型可扩展性考虑不足
    从五示例中的模型图,我们很明显可以之后的扩展点是附属项,产品、技术只需要提前预留好接口接口,这也就是领域建模的好处之一,预先就知道业务部分的变化点。
     
  • 领域建模是基于业务模型,对业务的不熟悉是主要障碍,缺少统一的领域语言导致团队理解不一致,沟通效率低
    领域模型就是使用一种分析设计统一语言将业务、产品、技术等各方达成统一的一种模型语言,一般是由领域专家来定义的,但是很多公司都是没有这个角色的,因此在接需求的时候就需要产品、技术使用领域建模的方式来达成一致(主要是技术一般很少接触到业务方)。如果在有领域专家的情况下,就变成领域专家、业务方、产品、技术一起来确定模型了

转载于:https://my.oschina.net/lovexin/blog/3068641

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值