• .NET 云原生架构师训练营(对象过程建模)学习笔记


    目录

    • UML
    • OPM
    • OPM优化

    UML

    1997年发布UML标准

    主要域视图主要概念
    结构静态视图类图类、关联、泛化、依赖关系、实现、接口
    用例视图用例图用例、参与者、关联、扩展、包括、用例泛化
    实现视图构件图构件、接口、依赖关系、实现
    部署视图部署图节点、构件、依赖关系、位置
    动态状态机视图状态机图状态、事件、转换、动作
    活动视图活动图状态、活动、完成转换、分叉、结合
    交互图顺序图交互、对象、消息、激活
    协作图协作、交互、协作角色、消息

    UML 用例建模

    图中有多个用例,每个用例有一个参与者,以及一个用例名称

    用例是一个站在使用者的角度,他会在这个系统上做什么事情,这个事情可以称为一个用例

    用户通过这个系统做成了一件事情,这是以目标为导向的,比如用户通过ATM机取钱,那么取钱就称为一个用例

    用例更多的是涉及到用户和系统之间的交互

    为了后期更加详细的设计,需要将用例图拆分为文档

    内容 描述
    用例名称 报名活动
    用例编号
    行为角色 访客、会员
    简要说明 访客只能查看、会员可报名
    前置条件 用户已经通过活动列表进入具体活动介绍页面;用户已经登录
    后置条件 报名按钮显示为:已报名
    流程图

    UML 会使用多种图来展示用例内部详细的过程,但是没办法进行层次缩放,这是使用 UML 做系统设计会存在的问题

    OPM

    Object Process Methodology

    • 系统视角
    • 概念建模
    • 系统分解

    系统视角

    任何系统都可以从两方面来看

    • 结构(静态)
    • 行为(动态)

    概念建模

    在对象和对象之间建立抽象的关系

    过程影响对象

    系统分解

    • 从对象和功能开始建模
    • 对象的状态
    • 用过程链接联系对象

    从对象和功能开始建模

    对象是存在或可能存在的事物

    过程是变换对象的事物

    对象或过程都是一个事物

    举一个导购分享的例子,首先导购生成分享链接会产生一条分享链接,这就是我们所说的对象

    接着点击分享链接,分享链接作为这个过程的输入,点击链接会创建分享关系

    抽取对象的过程中需要注意正方形填的是名词,是一个对象;圆形填的是动词,是一个过程

    过程一定会影响对象,使得对象的状态发生一些改变,或者包括创建和销毁这个对象,同样的,一个对象会作为另外一个过程的输入

    对象的状态

    一段时间内对象可能处于一种状态或者情形

    状态使用圆角矩形,分享链接有两种状态,有效的和无效的,通过状态与过程进行交互,只有链接是有效的才可以点击,如果是无效的需要重新生成

    这个时候我们需要多一个请求分享链接的过程,这个过程与生成分享链接的过程是不可以连接的

    过程与过程之间不可以连接,连接只能发生在一个对象与一个过程之间,所以这个图可能画错了,我们需要调整如下

    状态的检查应该放到点击链接的时候,链接如果是有效的,才会生成分享关系

    链接状态是分享链接的一个属性,通过属性连接(两个三角形中间实心的图标)

    请求分享链接的时候一定有一个导购的对象,分享链接属于导购的一个属性

    分享链接的状态分为已生成和未生成,请求分享链接如果未生成,则需要生成分享链接,双向的

    用过程链接联系对象

    • 过程链接
    • 结构链接
    • 事件链接
    • 行为控制

    过程链接:将一个对象(或其状态)与一个过程联系起来,比如分享链接与请求分享链接的联系

    结构链接:将一个对象与另一个对象(或者一个过程与另一个过程联系起来),比如请求分享链接与点击链接的联系

    过程链接

    主体链接:系统的参与者,用户主导了整个过程,比如导购和请求分享链接的联系,客户和点击链接的联系

    手段(支持)链接:提供手段和支持,比如链接提供器和生成链接的联系

    两者的区别是一类是主体对象,一类是支持对象

    变换链接:过程就是用来改变对象的状态,影响一个对象的状态或者吸收一个对象,比如分享链接和生成链接的联系

    过程链接只能建立再对象和过程上

    结构链接

    结构链接是建立在对象与对象之间,过程与过程之间,它们之间往往拥有一种持久的关系,属性、继承、组成等等

    • 结构关系
    • 组成关系

    属性:分享链接是导购的属性,链接状态是分享链接的属性,通过属性连接建立联系

    继承:零售客户和分销商客户继承客户,浏览器点击和APP点击继承点击链接

    事件链接

    在结构/过程链接之上添加 e 标注,代表是偶发的

    Server 支持请求响应这件事情是偶发的,并不是一直有的,所以可以加上e标注

    行为控制
    • 布尔对象
    • 条件 if
    • 或(OR)/ 与(XOR)

    布尔对象:建立在支持对象之上,但是会有一个判断,比如我们获取链接的时候会有一个判断,如果没有链接则生成链接,有链接则返回

    条件 if:和事件链接相似,比如在链接状态有效的时候创建分享关系,添加 c 标注,无效的时候异常退出

    或(OR)/ 与(XOR):或表示走一个或者多个都可以,亦或表示只能走一个,比如在是否有链接的两个选项中间加两条弧线,表示只能选一个;如果是或则画一条弧线

    过程链接与结构链接集合

    OPM优化

    • 抽象与细化
    • 过程与判定
    • 复杂度管理

    抽象与细化

    抽象与细节之间会有一个继承关系,导购继承用户,分享链接抽象为推广

    员工,客户也可以导购;展示二维码也可以作为一种分享链接

    过程与判定

    很多时候没办法确定是一个对象还是一个过程,最简单的方式就是根据是动词还是名词判断,以及根据过程有没有改变对象的状态判断

    复杂度管理

    • 状态显示与状态隐藏
    • 展开与折叠(放大与缩小)
    • 端口折叠

    状态显示与状态隐藏

    人为的控制是否要显示状态,比如链接状态

    展开与折叠(放大与缩小)

    把图画的层次高一点则简单易懂,画的层次毕竟低一点则复杂一些,但是表现会更加清晰,可以对它们进行切割

    如果把分享放大,则可以在里面画更加细节的过程,同时可以在获取链接里面再画更加细节的过程

    我们也可以在多张图中进行缩放,比如获取链接放到第二个图中

    端口折叠

    比如在是否有链接的条件 if 可以折叠起来,直接在外部通过两个端口有和无来和其他对象过程建立链接

    作业

    尝试把自己之前那个系统架构图里面的过程进入展下,一直向下到不可分割的原子级别(可以到某个类级别)

    课程链接

    https://appsqsyiqlk5791.h5.xiaoeknow.com/v1/course/video/v_5f39bdb8e4b01187873136cf?type=2

    知识共享许可协议

    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

    欢迎转载、使用、重新发布,但务必保留文章署名 郑子铭 (包含链接: http://www.cnblogs.com/MingsonZheng/ ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。

    如有任何疑问,请与我联系 (MingsonZheng@outlook.com) 。

  • 相关阅读:
    linux---网络管理
    linux---Vim使用方法大全
    virtualenv离线创建虚拟环境
    python迭代器生成器进阶
    python函数对象
    Django等框架模板渲染中使用Vue控制数据
    django渲染模板与vue的语法冲突解决
    Linux网络抓包
    WSGI Server(uwsgi原理)
    python日志logging模块
  • 原文地址:https://www.cnblogs.com/MingsonZheng/p/15725780.html
Copyright © 2020-2023  润新知