写点什么

数字化转型与架构 - 架构设计篇|建模之“静态”模型

作者:数字随行
  • 2023-08-22
    北京
  • 本文字数:1459 字

    阅读完需:约 5 分钟

数字化转型与架构-架构设计篇|建模之“静态”模型

  谈到建模,大家常常会想到复杂高深的数学建模。然而,建模方法在各行各业都可以发挥作用,帮助我们深入的理解、分析并解决问题。

  著名科学家钱学森先生说:“模型就是通过对问题现象的分解,利用我们考虑得来的原理吸收一切主要的因素,略去一切不主要的因素,所创造出来的一副图画……”。

  建模本身是一个简化事物的过程,因此不同的模型只能呈现现实世界的某一个侧面。我们所处的世界是一个四维空间(时空三维+时间维度),所有事物都随着时间的变化而不断的变化。模型作为一张静态图表,它只能展现事物在某一时刻的画面。IT 系统模型同样如此,它以不同的视角描述系统中业务的联系以及系统自身的运转方式。IT 系统模型并不是孤立存在,它与业务模相辅相成,共同完成从现实到代码的转换。

模型映射示意图

  在上图中的 IT 系统模型分为两类。左侧为“静态”模型,右侧为“动态”模型,“静态”模型描述场景的某个瞬间片段,“动态”模型描述一个事物或多个事物随时间变化产生的变化及相互的影响。下面介绍“静态”模型的三个图表:用例图、时序图和逻辑流程图。

用例图

  用例图用于表示系统功能和用户之间的交互及边界,主要包含以下三个元素。

  用例(Use Case)用椭圆形表示一个系统的功能,用于描述系统如何响应外部的请求。在没有业务建模指引的情况下,IT 人员和业务人员通常先穷举出所有能想到的用例,再把这个功能分类组合到一起。

  参与者(Actor)用火柴棍小人表示功能的具体使用者。参与者可以是一类角色或者一个具体的用户,还可以是一个外部系统。

  关联关系(Association)用箭头线条表示用例和参与者之间的关系。明确了每个功能的使用者,我们就可以进一步分析请求的动机和时机。

  用例建模过程非常简单,很像头脑风暴过程中大家不断列举解决方法的过程。但是这也说明 IT 人员一开始很难从全局业务视角观察问题,需要从单点开始逐步探索出业务的全貌。

购物功能用例示意图

时序图

  时序图是一种表示多个独立对象之间交互顺序的“二维图”。

  时序图中横向维度是一个个独立的对象(角色、系统、类等任意粒度的元素)。纵向维度是时间轴,每个对象都向下绘制一条自己的“生命线”。生命线是一条条垂直向下的虚线。

  对象之间通过消息进行通信和交互,消息可以是同步(发送者等待接收者响应结果,再继续执行)或者异步的(发送后不等待对方处理结果,继续执行)。对象也可以给自己发消息,描述对象内部的行为。注意,此处的消息只是作为一种执行动作的名词描述,不特指 IT 系统中向消息系统发消息。

  图像从上至下表达交互的先后次序,从一个对象开始请求到另一个对象返回结果是一次完整的交互。在结果返回前,响应请求的对象一直处在被请求对象占用的激活状态。由于交互过程中包含同步、异步消息两类操作,从时序图中也可以明显观察出二者占用对象生命周期的差异。

提交订单时序示意图

逻辑流程图

  逻辑流程图描述业务处理过程中的操作逻辑。

  逻辑流程图与交互时序图非常相似,但各自又有不同的侧重点。交互时序图重点在多个不同对象之间如何协作处理同一个事务。然而,逻辑流程图只描述此事务中某一个对象的处理步骤。交互时序图只描述业务处理,逻辑流程图不仅有业务处理的操作描述,更要包含 IT 操作的描述,例如:数据如何存储、数据参数验证、系统异常处理等。

逻辑流程示意图

  模型本没有“动静”之分,但代码是“死的”,程序运行起来是“活的”。“静态”模型描述了代码应该如何去执行操作。“动态”模型关注程序运行时,事务是如何变化及相互之间的影响。下篇文章我们将介绍两个“动态”模型。

发布于: 刚刚阅读数: 3
用户头像

数字随行

关注

数字随行,共同探索数字化时代的无限可能。 2018-04-26 加入

分享数字技术、实践方法及思考感悟,探索技术的本质和发展趋势。

评论

发布
暂无评论
数字化转型与架构-架构设计篇|建模之“静态”模型_数字化转型_数字随行_InfoQ写作社区