【可实战】被测系统业务架构、系统架构、技术架构、数据流、业务逻辑分析

一、为什么要学习

  1. 更深的理解业务逻辑(公司是做什么的?它最重要的商务决策是什么?它里面的数据流是怎么做的?有哪些业务场景?考验你对这家公司、对所负责业务的熟悉程度。公司背后服务器用什么软件搭建的?用的什么技术?)
  2. 更好的梳理业务用例(更好的覆盖用例。总共有多少种业务流?用户分多少类?有多少种排列组合?)
  3. 更好的与研发运维进行跨部门协同(在出问题时,能提供一些支持)

二、架构分析示例

(一)开源项目 LiteMall 系统架构

官网(详细架构说明):https://github.com/linlinjava/litemall

  • 角色与数据
  • 用户产品
  • 前端技术栈
  • 后端技术栈
  • 数据存储

在这里插入图片描述

(二)开源项目 Mall 的系统架构

mall官网(详细架构说明):https://github.com/macrozheng/mall

  • 角色与数据
  • 用户产品
  • 前端技术栈
  • 后端技术栈
  • 服务治理技术栈
  • 监控技术栈
  • 大数据处理技术栈
  • 数据存储
  • 持续集成/持续交付/DevOps

    在这里插入图片描述

三、如何快速了解一家公司的架构

(一)业务流程:

  • 商业模式(大到公司,小到部门,怎么盈利,作用是什么)
  • 业务数据:角色、资源、数据
  • 业务流程:角色、行为、数据的集成关系

(二)系统架构(业务在技术上的具体落地):

  • 架构角色与技术栈(某个架构上的角色和它具体的技术实现):
    • 网关:apache/nginx/f5/
    • 应用开发:spring boot/spring cloud/
    • 通讯协议:dubbo/http/pb
    • 数据处理:hadoop/spark/flink
    • 数据存储:redis/mysql/oracle/redis/es
    • 文档存储:mongodb/hbase/neo4j
  • 部署架构(调用链):架构角色之间的集成关系

四、画架构的工具——统一建模语言 UML

(一)测试用的比较多的图

1、用例图:商业模式、业务角色。分析角色与资源

【举例】抖音分为消费者角色-刷视频、评论、点赞;输出者角色-发视频、进行直播、提供各种服务的人;管理员等
【作用】用例图能够很好的梳理这些角色分别有什么样的能力、行为,以及它们之间的协作是什么样的
【实例1】梳理业务流程(一般由产品经理产出)
在这里插入图片描述

2、时序图:业务流程、调用关系。分析数据流

【描述】更细粒度的对上面角色集成关系的描述
【举例】登录流程、密码找回、注册(各种功能不同的数据、不同的分支走向)
【作用】会非常有助于理解业务流程:输入、依赖、输出(可以使用时序图分析数据流)
在这里插入图片描述

3、部署图:系统架构与集成关系

【描述】哪些是数据库,哪些是文件,哪些是视频处理的各种架构(视频分析、视频处理的各种架构角色),架构角色之间是怎么进行调用的就使用部署图

4、活动图:分析业务逻辑

【描述】整个系统可以看成一个大型的树形结构,用户的操作可以理解为一个系统行为上的穿梭(覆盖分支、覆盖路径)
【作用】通过活动图可以更好的分析出来一个业务逻辑,可以把一个业务线上的一个业务架构理解的比较透彻(它的可能的行为,有多少种分支条件)
在这里插入图片描述

4.1 思维导图:分析功能点 (活动图的另一种实现方式)

【作用】对业务流程、数据分类去进行一个很好的管理
在这里插入图片描述

(二)推荐工具

1.plantuml(**通过编程绘制)

通过编程来帮忙绘制这些图

2.yed(*架构师比较喜欢用)

架构师会比较喜欢使用,更易用的visio

3.draw.io(在线画图)

用的比较多,可以在线画各种流程图,UML图

4.processon(*在线画图)

用的比较多,可以在线画各种流程图,UML图

5.visio(又重又大,小白用的多,工程师用的少)

又重又大,超级难用,对于小白来说比较好用,小白用的比较多,工程师用的比较少,一般是入门的时候用的比较多

使用思维导图分析功能点

使用时序图分析数据流

使用活动图分析测试用例

测试用例设计总结
使用用例图分析角色与资源
使用思维导图分析功能点
使用时序图分析数据流
使用活动图分析业务逻辑

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/264935.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高性能API云原生网关 APISIX安装与配置指南

Apache APISIX是Apache软件基金会下的顶级项目,由API7.ai开发并捐赠。它是一个高性能的云原生API网关,具有动态、实时等特点。 APISIX网关可作为所有业务的流量入口,为用户提供了丰富的功能,包括动态路由、动态上游、动态证书、A…

【C语言基础】:操作符详解(一)

文章目录 操作符详解1. 操作符的分类2. 二进制和进制转换2.1 什么是二进制、八进制、十进制、十六进制2.1.1 二进制和进制转换2.1.2 二进制转十进制2.2.3 二进制转八进制2.2.4 二进制转十六进制 3. 源码、反码、补码4. 移位操作符4.1 左移操作符4.2 右移操作符 5. 位操作符&…

神经网络系列---激活函数

文章目录 激活函数Sigmoid 激活函数Tanh激活函数ReLU激活函数Leaky ReLU激活函数Parametric ReLU激活函数 (自适应Leaky ReLU激活函数)ELU激活函数SeLU激活函数Softmax 激活函数Swish 激活函数Maxout激活函数Softplus激活函数 激活函数 一般来说&#xf…

Unity零基础到进阶 | Unity中的 RectTransformUtility 方法整理汇总

Unity零基础到进阶 ☀️| RectTransformUtility 方法整理汇总一、RectTransformUtility 官方文档1.1 RectTransformUtility.CalculateRelativeRectTransformBounds(重)1.2 RectTransformUtility.FlipLayoutAxes1.3 RectTransformUtility.FlipLayoutOnAxi…

python:xml.etree.ElementTree 读 Freeplane.mm文件,生成测试案例.csv文件

Freeplane 是一款基于 Java 的开源软件,继承 Freemind 的思维导图工具软件,它扩展了知识管理功能,在 Freemind 上增加了一些额外的功能,比如数学公式、节点属性面板等。 强大的节点功能,不仅仅节点的种类很多&#xf…

XSS原理和攻防

Cross Site Scripting:跨站脚本攻击 用户提交的数据中可以构造恶意代码,并且执行,从而实现窃取用户信息等攻击 攻击: 防御: 1.对输入进行过滤,对输出进行编码 2.cookie设置http-only

Nest.js权限管理系统开发(八)jwt登录

安装相关依赖 虽然仅使用nestjs/jwt就能实现身份验证的功能,但是使用passport能在更高层次上提供更多便利。Passport 拥有丰富的 strategies 生态系统,实现了各种身份验证机制。虽然概念简单,但你可以选择的 Passport 策略集非常丰富且种类繁…

(HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕

一、电路接法 电路接法参照江科大视频。 二、相关代码及文件 说明:代码采用hal库,通过修改江科大代码实现。仅OLED.c文件关于引脚定义作了hal库修改,并将宏定义OLED_W_SCL(x)、OLED_W_SDA(x)作了相关修改。 1、OLED.c void OLED_I2C_Init(voi…

自动化行业文件数据\资料防泄密软件——天锐绿盾|@德人合科技

天锐绿盾是一款自动化行业文件数据防泄密软件,由德人合科技提供。该软件采用动态加解密技术,能够有效防止公司内部数据泄密,同时支持各种文件格式加密,如CAD、OFFICE、PDF、图纸等。 PC端:https://isite.baidu.com/sit…

项目管理工具git

git 1. git介绍1.1. 版本控制系统 2. 创建本地版本库2.1 概念2.2 操作步骤 3. 修改文件4. 练习: 添加一个本地项目到仓库5. 添加远程仓库5.1 添加远程仓库5.2 本地仓库同步到远程仓库5.3 克隆远程仓库到本地5.4 SSH设置 6. 分支管理6.1 创建分支6.2 切换分支6.3 合并分支6.4 解…

5.2 Ajax 数据爬取实战

目录 1. 实战内容 2、Ajax 分析 3、爬取内容 4、存入MySQL 数据库 4.1 创建相关表 4.2 数据插入表中 5、总代码与结果 1. 实战内容 爬取Scrape | Movie的所有电影详情页的电影名、类别、时长、上映地及时间、简介、评分,并将这些内容存入MySQL数据库中。 2、…

8.qt5使用opencv的库函数打开图片

1.配置opencv动态库的环境变量 2.在创建的qt工程中加入如下opencv代码,具体代码如下: 使用opencv库函数显示图片

c语言经典测试题4

1.题1 #include <stdio.h>//没有break的话&#xff0c;输入什么都会往下一直执行下去&#xff0c;而且default在最后就会全都执行 int main() {char c;int v0 0, v1 0, v2 0;do{switch (c getchar())// 输入ADescriptor{casea:caseA:casee:caseE:casei:caseI:caseo:…

数据结构2月21日

双向链表: func函数&#xff1a; #include <stdio.h> #include <stdlib.h> …

Springboot中如何记录好日志

Springboot中如何记录日志 日志体系整体介绍 日志一直在系统中占据这十分重要的地位&#xff0c;他是我们在系统发生故障时用来排查问题的利器&#xff0c;也是我们做操作审计的重要依据。那么如何记录好日志呢&#xff1f;选择什么框架来记录日志&#xff0c;是不是日志打越…

LeetCode142. 环形链表 II刷题详解

今天力扣刷到了一个特别有意思的题目&#xff0c;于是就写了下面的题解来加深以下理解。 142. 环形链表 II - 力扣&#xff08;LeetCode&#xff09; 这个可以分为两大步去写&#xff0c;首先要判断链表是否有环&#xff0c;然后如果有环就去找到环的入口&#xff0c;没有环返…

Vue源码系列讲解——生命周期篇【七】(模板编译阶段)

目录 1. 前言 2. 模板编译阶段分析 2.1 两种$mount方法对比 2.2 完整版的vm.$mount方法分析 3. 总结 1. 前言 前几篇文章中我们介绍了生命周期的初始化阶段&#xff0c;我们知道&#xff0c;在初始化阶段各项工作做完之后调用了vm.$mount方法&#xff0c;该方法的调用标志…

Vue + Echarts页面内存占用高问题解决

Vue Echarts页面内存占用高问题解决 1.问题描述 目前使用的是Vue2 Echarts4.x的组合&#xff0c;页面如下所示。 就是一个类似于神策的数据看板页面&#xff0c;左侧是一个导航栏&#xff0c;右侧看板页面中包含很多个报表图片&#xff0c;其中报表页面中对Echarts图表进…

Excel的中高级用法

单元格格式&#xff0c;根据数值的正负分配不同的颜色和↑ ↓ 根据数值正负分配颜色 2-7 [蓝色]#,##0;[红色]-#,##0 分配颜色的基础上&#xff0c;根据正负加↑和↓ 2↑-7↓ 其实就是在上面颜色的代码基础上加个 向上的符号↑&#xff0c;或向下的符号↓ [蓝色]#,##0↑;[红色…

Python算法题集_图论(课程表)

Python算法题集_课程表 题207&#xff1a;课程表1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【循环递归全算】2) 改进版一【循环递归缓存】3) 改进版二【循环递归缓存反向计算】4) 改进版三【迭代剥离计数器检测】 4. 最优算法5. 相关资源 本…