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

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

相关文章

Python中的Walrus运算符分析示例详解

《Python中的Walrus运算符分析示例详解》Python中的Walrus运算符(:=)是Python3.8引入的一个新特性,允许在表达式中同时赋值和返回值,它的核心作用是减少重复计算,提升代码简... 目录1. 在循环中避免重复计算2. 在条件判断中同时赋值变量3. 在列表推导式或字典推导式中简化逻辑

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

Python列表去重的4种核心方法与实战指南详解

《Python列表去重的4种核心方法与实战指南详解》在Python开发中,处理列表数据时经常需要去除重复元素,本文将详细介绍4种最实用的列表去重方法,有需要的小伙伴可以根据自己的需要进行选择... 目录方法1:集合(set)去重法(最快速)方法2:顺序遍历法(保持顺序)方法3:副本删除法(原地修改)方法4:

在Spring Boot中浅尝内存泄漏的实战记录

《在SpringBoot中浅尝内存泄漏的实战记录》本文给大家分享在SpringBoot中浅尝内存泄漏的实战记录,结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录使用静态集合持有对象引用,阻止GC回收关键点:可执行代码:验证:1,运行程序(启动时添加JVM参数限制堆大小):2,访问 htt

Python 迭代器和生成器概念及场景分析

《Python迭代器和生成器概念及场景分析》yield是Python中实现惰性计算和协程的核心工具,结合send()、throw()、close()等方法,能够构建高效、灵活的数据流和控制流模型,这... 目录迭代器的介绍自定义迭代器省略的迭代器生产器的介绍yield的普通用法yield的高级用法yidle

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

kotlin中const 和val的区别及使用场景分析

《kotlin中const和val的区别及使用场景分析》在Kotlin中,const和val都是用来声明常量的,但它们的使用场景和功能有所不同,下面给大家介绍kotlin中const和val的区别,... 目录kotlin中const 和val的区别1. val:2. const:二 代码示例1 Java