其他分享
首页 > 其他分享> > 数据仓库系列(20):问题空间建模

数据仓库系列(20):问题空间建模

作者:互联网

(一)前言1:数据仓库开发中法制的重要性

楚王急召太子。楚国之法,车不得至于茆门。天雨,廷中有潦,太子遂驱车至于茆门。廷理曰:“车不得至茆门,非法也。”太子曰:“王召急,不得须无潦。”遂驱之。廷理举殳而击其马,败其驾。 太子入为王泣曰:“廷中多潦,驱车至茆门,廷理曰非法也,举殳击臣马,败臣驾,王必诛之。王曰:  “前有老主而不瑜,后有储主而不属,矜矣。是真吾守法之臣也。而开后门出太子:“勿复过。”    (选自《韩非子》)
引申到数据开发中:即使遇到组织之间职责不清晰的事情,我们根据这些方法论和判断标准来做决策,因为这样,所有人的动机都是去做正确的事情,大家更容易没有私心,因为我们都成了护“法”者,这样我们就更容易产出对组织最有利的结果。

(二)前言2:数据仓库开发中的架构原则

1. 什么是架构:(1)职责明确的模块或组件;(2)组件的关联关系要明确;(3)指导原则和约束。

2. 架构的层级:(1)产品功能架构;(2)业务概念架构;(3)应用逻辑架构;(4)实现层架构(物理架构、基础设施)。

3. 架构推导方法论:(1)业务概念架构(问题空间、领域模型);(2)应用逻辑架构(建模方法);(3)实现层架构(数据仓库)。

(三)前言3:领域建模

1. 领域建模的目标:根据模型的属性与属性值,确定模型之间的相互关系。

2. 领域职责划分:原则是组织的效率和收益,同时考虑未来的发展,确定谁做这个任务。

3. 边界划分原则:依据GRASP方法,即创建者、高内聚、低耦合、信息专家、纯虚构与间接。

4. 领域建模方法:用例集+方法论=领域建模,通过收集用例来推导模型、属性、关系的分析和抽象。

(四)GRASP方法介绍

GRASP方法是问题空间建模中常见的方法,总体原则是按照职责进行划分,现在进行分别的介绍:

1. 创建者:谁负责模型的生产;

2. 高内聚:分配一个职责,根据职责的相关程度和集中程度,使之保持高内聚;

3. 低耦合:分配一个职责,根据依赖其他域或者模型强弱程度的度量,使得保持低耦合度,降低依赖,提高重用度;

4. 信息专家:如果某个类拥有完成某个职责所需要的所有信息,那么这个职责就应该分配给这个类来实现;

5. 纯虚构:将一组高内聚的职责分配给一个虚构的或者处理方便的类,它并不是问题域的概念,而是虚构的概念,以达到支持高内聚低耦合的目的;

6. 间接:当我们不知道将职责分配给何种模型的时候,可以将职责分配给中介模型。

(五)改动成本的重要性

例子1:

平台能力和各业务的逻辑是耦合在一起,一个功能研发10天,全网回归测试弄一下需要15天,谁也不知道这个改动对整个系统带来的影响有多大。

例子2:

AliExpress在几年前最初形成卖家和店铺的概念的时候, 没有把卖家和店铺这两个概念分割开来,导致几乎所有的地方需要引用到店铺的情形都使用了SellerID。

边界清晰,耦合就低,内聚高,各种改动带来的成本就低。

(六)问题空间建模例子

(七)模型出问题的原因

1. 用例不完善
2. 不可控制因素:
    (1)没有系统化方法论
    (2)方法论的实践的有问题,推导出来的模型有问题
    (3)推导出来的模型没有问题,但是时间太短,只能用最简单的方案,这种情况是我们遇到的最多的情况,所以这种情况,我们要考虑:

我们在战略上要确定正确的模型是什么样子的,在战术上我们要研讨,短期怎么走,中期怎么走,最终能达到战略目标。在面对时间短,资源不够的情况下,我们还是需要研究正确的战略方向,并研讨战术路径,确保临时方法也是可以向最终目标靠拢的。但同时,避免瀑布思维的倾向,为完成详尽或“正确”的领域模型而进行大量的建模工作,这些方式应该避免,这种过量的建模工作反而会导致分析停滞,这种投入几乎不会有什么回报。 

(八)总结

1. 立法,护法。

2. 前文提到的这些纲领和其中的细节是保障整个组织是一个法制的组织的基础。大家都遵从法的制约,整个组织的效能会提升很多。

3. 当然法不宜过严,过细,也不能没有,目前我所遇到的问题是我们的意识中没有法,于是变成了人治,那就会为了利益出现各种说辞和标准,于是才需要裁判。

4. 考虑工时:有时立马就做最正确的事情代价是非常高昂的,所以不能过度设计,以保证最大的投入产出比以及后续维护成本。

晓阳的数据小站 发布了19 篇原创文章 · 获赞 0 · 访问量 851 私信 关注

标签:20,职责,模型,数据仓库,建模,领域建模,内聚,架构
来源: https://blog.csdn.net/gaixiaoyang123/article/details/104097499