【架构设计】作为架构师你应该掌握的画图技术

简介: 【架构设计】作为架构师你应该掌握的画图技术

1.前言

  • 大家知道,架构的过程其实就是建模的过程,那自然离不开架构图。
  • 那么,我们先来看几个问题。

(1)什么是架构图?

架构图 = 架构 + 图,用图的形式把系统架构展示出来,配上简单的文案,不同的人开不同的架构图,比如业务架构图就是给老板和产品经理看的,技术架构是给研发人员看的,物理架构图是给部署运维的人员看的。

(2)如何判断架构图的好和坏?

  • 业务抽象设计的合理性,是否满足高内聚、低耦合的要求,不能太宽泛,也不能太细粒度
  • 层级划分目标系统边界,自下而上 或 由上而下,一般包括 基础设施、数据层、应用层、用户层四个层次
  • 纵向分层 上层依赖于下层越底层,越是基础服务;横向并列关系,级别相同
  • 理清架构图类型、业务要全面、专业术语一致、图形清晰美观、颜色类型划分合理

(3)什么是【 TOGAF】

  • 全称 The Open Group Architecture Framework 企业架构标准
  • 给企业架构专业人士之间的沟通提供一致性保障,设计上注重灵活性,可用于不同的架构风格。
  • 不同架构视图承载不同的架构设计决策,支持不同的目标和用途


fa9e9169faf446f399e4490eff9aea9b.jpg

2.业务架构图

(1)什么是业务架构图

  • 定义业务战略、企业治理、组织架构和关键业务流程。
  • 是对业务需求的提炼和抽象,使用一套方法论对项目所涉及需求的业务进行业务边界划分
  • 能比较清晰地看到系统的业务全貌,需求分析是否做到位,功能开发是否达到预期目标,都以此为依据

业务架构图中尽量不出现技术的字眼,不同架构图的读者是不同的,确保能看懂。


无技术背景人员可参与实现的讨论,向技术人员描述解决方案核心要做什么,必须实现的关键是什么

(2)怎么去画业务架构图

  • 分层
  • 业务按照层级进行划分,各个层级属于独立的版块,下层为上层提供服务能力支撑。比如:laaS / PaaS / SaaS
  • 分模块
  • 同层级中进行小归类,属于平行关系,可以独立存在
  • 分功能
  • 独立功能划分出来,即业务入口,业务方重点关注的功能点,可以认为是微服务划分

23005911c1ac4838b5a7b2b9a46e13f7.jpg

3.技术架构

(1)什么是技术架构图

  • 应用架构本身只关心需要哪些应用系统,不关心在整个项目中你需要使用哪些技术
  • 技术架构则是实现应用架构的承接方,识别技术需求,进行技术选型,描述技术之间的关系
  • 解决的问题包括
  • 技术层面的分层、开发语言、框架的选择
  • 通信技术、存储技术的选择、非功能性需求的技术选择等


b5a54b330e9e4e679c062c1fb587b08a.jpg

4.数据架构图

  • 描述一个组织逻辑的和物理的数据资产和数据管理资源的结构
  • 从数据视角,表达数据从产生到消费应用的全过程
  • 比如做一个电商实时大屏,数据来源有哪些,经过哪些组件处理,最终存储和应用到哪里
  • 常规里面不加具体的技术实现,但有时会方便沟通,则加入对应的技术实现


ff82d7cbbebd415882a9dfbd5f462422.jpg

5.RUP4+1视图

(1)什么是RUP 4+1

  • 全称Rational Unified Process,中文统一软件开发过程,是一个面向对象画图的方法论
  • 在RUP中采用"4+1"视图模型来描述软件系统的体系结构
  • 包括五种视图:场景视图、开发视图、逻辑视图、物理视图、处理试图

(2)分类

  • 场景视图
  • 也叫用例视图,4+1中的1,是最核心的视图。在UML中通常由用例图表示并不限于使用UML的用例图进行设计,可以使用其他方法。
  • 逻辑视图
  • 描述系统的功能需求,系统给用户提供哪些服务,比如扫码、登录、支付
  • 对系统职责的逐级划分,理清功能需求和系统边界,也叫系统架构、应用架构、技术架构
  • 物理视图
  • 也叫部署视图,部署架构,对这个部署信息进行描述,包括服务器、虚拟机、终端设备分布等
  • 处理视图
  • 流程图,描述系统中的动态信息,最常见的是逻辑架构元素之间的交互关系
  • 比如支付下单的功能是怎末实现的,在UML中通常用时序图和流程图表示
  • 开发视图
  • 描述在开发环境中软件的静态组织结构,关注软件开发环境下实际模块的组织

6.场景视图

场景视图也叫用例视图,4+1中的1,是最核心的是视图,在UML中通常由用例图表示,用例视图并不限于使用UML的用例图进行设计,可以使用其它方法。

用例图主要分3个部分

参与者

代表系统外部与系统发生交互的人或事物

事物可以是一个应用程序或者特殊进程

用例:系统外部可见的一个功能单元,由参与者启动,比如观看课程

参与者与用例的关系

关联:以一条直线相连,比如用户登录系统

归纳(泛化)

指一个父用例可以形成多个子用例,父用例和子用例之间的关系就是泛化关系

泛化关系通过一个三角箭头从子用例指向父用例来表示

箭头表示参与者与参与者之间、用例与用例之间的关系;

账号登录与微信登录,可归纳为登录系统

包含:表示用例与用例之间的关系,用带有“包含”的箭头表示,箭头从基础用例指向包含用例

拓展:用带有“拓展”的箭头表示,由拓展用例指向基础用例,如登录时忘记密码,是可选的,缺少不会影响用例的完整性

7.物理视图

物理视图也叫部署视图,部署架构,对这个部署信息进行描述,包括服务器、虚拟机、终端设备分布等

描述系统软件到物理硬件的映射关系,反映出系统的组件是如何部署到一组可计算机器节点上

用于指导软件系统的部署实施过程,通常要考虑到解决系统的可靠性和可伸缩性要求

没有统一标准格式,核心是清晰列出部署架构,能让运维方能看懂即可

更多是综合的图形工具


da29116859be497c8f7bd5fe633c47c8.jpg

8.开发视图

  • 描述在开发环境中软件的静态组织结构
  • 主要是系统模块的划分和组成,细化到内部包的组成设计,技术开发人员角度看系统的逻辑组成
  • 关注程序包,应用框架,引用的类库、SDK和中间件,以及工程和包的划分规则等,规范、约束开发环境的结构
  • 常规就是 类图,组件图

d9ad6c705e7f48cab7cb920e3e7c666a.jpg

30dc3a4cd5e546989119ea792da84f52.jpg

9.处理视图

  • 描述系统中的动态信息,最常见的是逻辑架构元素之间的交互关系
  • 比如 微信扫码支付下单功能是如何实现的

在UML中通常由时序图和流程图表示

什么是时序图

是一种UML交互图,描述了对象之间传递消息的时间顺序, 用来表示用例中的行为顺序, 是强调消息时间 顺序的交互图; 又名序列图、顺序图

通俗解释:就是交互流程图 (把大象装冰箱分几步)

时序图包括四个元素

对象(Object)

时序图中的对象在交互中扮演的角色就是对象,使用矩形将对象名称包含起来, 名称下有下划线

生命线(Lifeline)

生命线是一条垂直的虚线, 这条虚线表示对象的存在, 在时序图中, 每个对象都有生命线

激活(Activation)

代表时序图中对象执行一项操作的时期, 表示该对象被占用以完成某个任务,当对象处于激活时期, 生命线可以拓宽为矩形

消息(Message)

对象之间的交互是通过相互发消息来实现的,箭头上面标出消息名,一个对象可以请求(要求)另一个对象做某件事件

消息从源对象指向目标对象,消息一旦发送便将控制从源对象转移到目标对象

消息的阅读顺序是【严格自上而下】

消息交互中的【实线+实心箭头:同步请求消息】

消息交互中的【实线+大于号:异步请求消息】

消息交互中的【小于号+虚线:响应返回消息】

自己调用自己的方法:反身消息


177bb226564b40e3b46882d5b2adb88f.jpg

9b2d0d6aa02e40deaa9bdaed773989ef.jpg

目录
打赏
0
0
0
0
60
分享
相关文章
十大主流联邦学习框架:技术特性、架构分析与对比研究
联邦学习(FL)是保障数据隐私的分布式模型训练关键技术。业界开发了多种开源和商业框架,如TensorFlow Federated、PySyft、NVFlare、FATE、Flower等,支持模型训练、数据安全、通信协议等功能。这些框架在灵活性、易用性、安全性和扩展性方面各有特色,适用于不同应用场景。选择合适的框架需综合考虑开源与商业、数据分区支持、安全性、易用性和技术生态集成等因素。联邦学习已在医疗、金融等领域广泛应用,选择适配具体需求的框架对实现最优模型性能至关重要。
448 79
十大主流联邦学习框架:技术特性、架构分析与对比研究
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。
深入解析Tiktokenizer:大语言模型中核心分词技术的原理与架构
Tiktokenizer 是一款现代分词工具,旨在高效、智能地将文本转换为机器可处理的离散单元(token)。它不仅超越了传统的空格分割和正则表达式匹配方法,还结合了上下文感知能力,适应复杂语言结构。Tiktokenizer 的核心特性包括自适应 token 分割、高效编码能力和出色的可扩展性,使其适用于从聊天机器人到大规模文本分析等多种应用场景。通过模块化设计,Tiktokenizer 确保了代码的可重用性和维护性,并在分词精度、处理效率和灵活性方面表现出色。此外,它支持多语言处理、表情符号识别和领域特定文本处理,能够应对各种复杂的文本输入需求。
34 6
深入解析Tiktokenizer:大语言模型中核心分词技术的原理与架构
DeepSeek背后的技术基石:DeepSeekMoE基于专家混合系统的大规模语言模型架构
DeepSeekMoE是一种创新的大规模语言模型架构,融合了专家混合系统(MoE)、多头潜在注意力机制(MLA)和RMSNorm归一化。通过专家共享、动态路由和潜在变量缓存技术,DeepSeekMoE在保持性能的同时,将计算开销降低了40%,显著提升了训练和推理效率。该模型在语言建模、机器翻译和长文本处理等任务中表现出色,具备广泛的应用前景,特别是在计算资源受限的场景下。
496 29
DeepSeek背后的技术基石:DeepSeekMoE基于专家混合系统的大规模语言模型架构
|
3月前
|
使用PaliGemma2构建多模态目标检测系统:从架构设计到性能优化的技术实践指南
本文详细介绍了PaliGemma2模型的微调流程及其在目标检测任务中的应用。PaliGemma2通过整合SigLIP-So400m视觉编码器与Gemma 2系列语言模型,实现了多模态数据的高效处理。文章涵盖了开发环境构建、数据集预处理、模型初始化与配置、数据加载系统实现、模型微调、推理与评估系统以及性能分析与优化策略等内容。特别强调了计算资源优化、训练过程监控和自动化优化流程的重要性,为机器学习工程师和研究人员提供了系统化的技术方案。
239 77
使用PaliGemma2构建多模态目标检测系统:从架构设计到性能优化的技术实践指南
YOLOv11改进策略【模型轻量化】| MoblieNetV3:基于搜索技术和新颖架构设计的轻量型网络模型
YOLOv11改进策略【模型轻量化】| MoblieNetV3:基于搜索技术和新颖架构设计的轻量型网络模型
100 10
YOLOv11改进策略【模型轻量化】| MoblieNetV3:基于搜索技术和新颖架构设计的轻量型网络模型
RT-DETR改进策略【模型轻量化】| MoblieNetV3:基于搜索技术和新颖架构设计的轻量型网络模型
RT-DETR改进策略【模型轻量化】| MoblieNetV3:基于搜索技术和新颖架构设计的轻量型网络模型
36 4
RT-DETR改进策略【模型轻量化】| MoblieNetV3:基于搜索技术和新颖架构设计的轻量型网络模型
社交软件红包技术解密(六):微信红包系统的存储层架构演进实践
微信红包本质是小额资金在用户帐户流转,有发、抢、拆三大步骤。在这个过程中对事务有高要求,所以订单最终要基于传统的RDBMS,这方面是它的强项,最终订单的存储使用互联网行业最通用的MySQL数据库。支持事务、成熟稳定,我们的团队在MySQL上有长期技术积累。但是传统数据库的扩展性有局限,需要通过架构解决。
78 18
转转平台IM系统架构设计与实践(一):整体架构设计
本文描述了转转IM为整个平台提供的支撑能力,给出了系统的整体架构设计,分析了系统架构的特性。
82 10
建筑施工一体化信息管理平台源码,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
智慧工地云平台是专为建筑施工领域打造的一体化信息管理平台,利用大数据、云计算、物联网等技术,实现施工区域各系统数据汇总与可视化管理。平台涵盖人员、设备、物料、环境等关键因素的实时监控与数据分析,提供远程指挥、决策支持等功能,提升工作效率,促进产业信息化发展。系统由PC端、APP移动端及项目、监管、数据屏三大平台组成,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
108 7

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等