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

2024-02-27 19:36

本文主要是介绍【可实战】被测系统业务架构、系统架构、技术架构、数据流、业务逻辑分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、为什么要学习

  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.chinasem.cn/article/753384

相关文章

关于MyISAM和InnoDB对比分析

《关于MyISAM和InnoDB对比分析》:本文主要介绍关于MyISAM和InnoDB对比分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录开篇:从交通规则看存储引擎选择理解存储引擎的基本概念技术原理对比1. 事务支持:ACID的守护者2. 锁机制:并发控制的艺

Mac系统下卸载JAVA和JDK的步骤

《Mac系统下卸载JAVA和JDK的步骤》JDK是Java语言的软件开发工具包,它提供了开发和运行Java应用程序所需的工具、库和资源,:本文主要介绍Mac系统下卸载JAVA和JDK的相关资料,需... 目录1. 卸载系统自带的 Java 版本检查当前 Java 版本通过命令卸载系统 Java2. 卸载自定

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Python主动抛出异常的各种用法和场景分析

《Python主动抛出异常的各种用法和场景分析》在Python中,我们不仅可以捕获和处理异常,还可以主动抛出异常,也就是以类的方式自定义错误的类型和提示信息,这在编程中非常有用,下面我将详细解释主动抛... 目录一、为什么要主动抛出异常?二、基本语法:raise关键字基本示例三、raise的多种用法1. 抛

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

github打不开的问题分析及解决

《github打不开的问题分析及解决》:本文主要介绍github打不开的问题分析及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、找到github.com域名解析的ip地址二、找到github.global.ssl.fastly.net网址解析的ip地址三

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

Mysql的主从同步/复制的原理分析

《Mysql的主从同步/复制的原理分析》:本文主要介绍Mysql的主从同步/复制的原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录为什么要主从同步?mysql主从同步架构有哪些?Mysql主从复制的原理/整体流程级联复制架构为什么好?Mysql主从复制注意

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技