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

一、为什么要学习

  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.mzph.cn/news/706798.shtml

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

相关文章

小程序框架(概念、工作原理、发展及应用)

引言 移动应用的普及使得用户对于轻量级、即时可用的应用程序需求越来越迫切。在这个背景下,小程序应运而生,成为一种无需下载安装、即点即用的应用形式,为用户提供了更便捷的体验。小程序的快速发展离不开强大的开发支持,而小程…

Cypher语句查询neo4j数据库教程

文章目录 Cypher介绍执行Cypher语句查询总结 Cypher介绍 NodeMatcher和RelationshipMatcher能够表达的匹配条件相对简单,更加复杂的查询还是需要用Cypher语句来表达。 Py2neo本身支持执行Cypher语句的执行,可以将复杂的查询写成Cypher语句,…

ubuntu20下使用 torchviz可视化计算图

安装 torchviz: pip install torchviz示例代码:下面是一个简单的示例代码,展示如何使用 torchviz 可视化计算图: python import torch from torchviz import make_dot# 创建一个简单的模型 model torch.nn.Sequential(torch.nn…

40+个适合高中生探索的计算机科学研究思路课题

作为一名对计算机科学感兴趣的高中生,应该如何提升对这个学科的的认知呢?进行研究就是一个不错的选择,通过研究,你可以加深对这个领域的理解,获得宝贵的技能,并为社会做出贡献! 研究经验可以…

【办公类-21-05】20240227单个word按“段落数”拆分多个Word(成果汇编 只有段落文字 1拆5)

作品展示 背景需求 前文对一套带有段落文字和表格的word进行13份拆分 【办公类-21-04】20240227单个word按“段落数”拆分多个Word(三级育婴师操作参考题目1拆13份)-CSDN博客文章浏览阅读293次,点赞8次,收藏3次。【办公类-21-04…

Qt中控件pushbutton的使用

pushbutton控件的使用 pushbutton生成的方式 ①纯代码生成:通过代码实现pushbutton控件所有的属性,不推荐; ②纯UI界面生成:通过拖动工具栏中已有的pushbutton控件进行实现,但一些属性设置上,纯UI界面操作…

电商数据分析10——电商行业中的用户画像构建与数据分析应用

目录 写在开头1. 用户画像的概念和重要性1.1 用户画像定义1.2 用户画像在电商中的应用价值 2. 构建用户画像的数据分析方法2.1 数据收集与处理2.2 关键特征提取和用户分类2.3 用户行为和偏好分析 3. 用户画像在电商营销中的应用案例3.1 个性化推荐系统3.1.1 背景介绍3.1.2 问题…

【六袆-Golang】Golang:安装与配置Delve进行Go语言Debug调试

安装与配置Delve进行Go语言Debug调试 一、Delve简介二、win-安装Delve三、使用Delve调试Go程序[命令行的方式]四、使用Golang调试程序 Golang开发工具系列:安装与配置Delve进行Go语言Debug调试 摘要: 开发环境中安装和配置Delve,一个强大的G…

高通 AI Hub 上手指南

文章介绍 2月26日,高通在2024年世界移动通信大会(MWC2024)上发布高通AI Hub, AI Hub 简化了AI 模型部署到边缘设备的过程。可以利用AI-hub云端托管 Qualcomm 设备上,在几分钟内完成模型的优化、验证和部署。本文以Pyto…

RV32/64 特权架构 - 特权模式与指令

RV32/64 特权架构 - 特权模式与指令 1 特权模式2 特权指令2.1 mret(从机器模式返回到先前的模式)2.2 sret(从监管模式返回到先前的模式)2.3 wfi(等待中断)2.4 sfence.vma(内存屏障) …

idea 更新maven java版本变化

今天遇到个问题就是&#xff0c;点击maven的reload&#xff0c;会导致setting 里的java compiler 版本变化 这里的话&#xff0c;应该是settings.xml文件里面的这个限定死了&#xff0c;修改一下或者去掉就可以了 <profile><id>JDK-1.8</id><activatio…

华为OD机试真题-靠谱的车-2023年OD统一考试(C卷)---Python3-开源

题目&#xff1a; 考察内容&#xff1a; 思维转化&#xff0c;进制转化&#xff0c;9进制转为10进制&#xff0c;在4的位置1&#xff0c;需要判断是否大于4 代码&#xff1a; """ 题目分析&#xff1a; 9进制转化为10进制23-25 39-50 399-500输入&#xff1a…

06 基于单位脉冲信号的信号合成与分解

各位看官&#xff0c;大家好&#xff01;本讲为《数字信号处理理论篇》06 基于单位脉冲信号的信号合成与分解。&#xff08;特别提示&#xff1a;课程内容为由浅入深的特性&#xff0c;而且前后对照&#xff0c;不要跳跃观看&#xff0c;请按照文章或视频顺序进行观看。 笔者今…

排序算法--堆排序

堆排序的时间复杂度是O&#xff08;N*logN&#xff09;&#xff0c;优于选择排序O&#xff08;N^2&#xff09; 一、堆 1.堆的概念&#xff1a;堆一般指的是二叉堆&#xff0c;顾名思义&#xff0c;二叉堆是完全二叉树或者近似完全二 2.堆的性质&#xff1a;①完全二叉树 ②每…

MySQL基本数据类型

目录 一&#xff0c;各类型特点 1.1.整数 1.2.实数&#xff08;带有小数点&#xff09; 1.3.TEXT、BLOB 时间1.4.日期 1.5.选择标识符 一&#xff0c;各类型特点 1.1.整数 TINYINT 8位 &#xff08;-128 - 127&#xff09;SMALLINT 16位 &#xff08;-32768 - 32767&am…

数据结构(C语言)代码实现(九)——迷宫探路表达式求值

目录 参考资料 迷宫探路 顺序栈头文件SqStack.h 顺序栈函数实现SqStack.cpp 迷宫探路主函数 表达式求值 链式顺序栈头文件LinkStack.h 链式顺序栈函数实现LinkStack.cpp 表达式求值主函数 测试结果 参考资料 数据结构严蔚敏版 2021-9-22【数据结构/严蔚敏】【顺序…

istio学习记录——VirtualService详解

上一篇使用VirtualService进行了简单的流量控制&#xff0c;并通过Gateway将流量导入到了集群内。这一篇将更加深入的介绍 VirtualService。 k8s中有service&#xff0c;service能够对流量进行负载均衡&#xff0c;那为什么istio又引入了VirtualService呢&#xff0c;因为serv…

wsl2挂载识别U盘中的内容

&#xff08;1&#xff09;wsl2中识别U盘&#xff0c;访问U盘 U盘插入电脑后&#xff0c;WSL并不会识别出U盘&#xff0c;如果想要在WSL中使用或查看U盘文件&#xff0c;需要挂载USB设备。 1、首先建一个文件夹用来挂载USB设备里文件的文件夹&#xff1a; sudo mkdir /mnt/e…

android stdio环境搭建

android stdio环境搭建 Jdk环境搭建 1. 准备Jdk,这边已经准备好了jdk1.8.0,该文件直接使用即可 2. 系统变量添加 %JAVA_HOME%\bin JAVA_HOME 3. 系统变量&#xff0c;Path路径添加 4. 添加完成后&#xff0c;输入命令javac / java -version&#xff0c;验证环境是否搭建…

贪心算法练习day2

删除字符 1.题目及要求 2.解题思路 1&#xff09;初始化最小字母为‘Z’&#xff0c;确保任何字母都能与之比较 2&#xff09;遍历单词&#xff0c;找到当前未删除字母中的最小字母 3&#xff09;获取当前位置的字母 current word.charAt(i)&#xff1b; 4&#xff09;删…