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

news/2024/5/20 4:35:39/文章来源:https://blog.csdn.net/weixin_47533244/article/details/127985623

1.前言

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

(1)什么是架构图?

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

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

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

(3)什么是【 TOGAF】

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

在这里插入图片描述

2.业务架构图

(1)什么是业务架构图

  • 定义业务战略、企业治理、组织架构和关键业务流程。

  • 是对业务需求的提炼和抽象,使用一套方法论对项目所涉及需求的业务进行业务边界划分

  • 能比较清晰地看到系统的业务全貌,需求分析是否做到位,功能开发是否达到预期目标,都以此为依据

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

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

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

  • 分层

    • 业务按照层级进行划分,各个层级属于独立的版块,下层为上层提供服务能力支撑。比如:laaS / PaaS / SaaS
  • 分模块

    • 同层级中进行小归类,属于平行关系,可以独立存在
  • 分功能

    • 独立功能划分出来,即业务入口,业务方重点关注的功能点,可以认为是微服务划分

在这里插入图片描述

3.技术架构图

(1)什么是技术架构图

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

在这里插入图片描述

4.数据架构图

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

在这里插入图片描述

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.物理视图

  • 物理视图也叫部署视图,部署架构,对这个部署信息进行描述,包括服务器、虚拟机、终端设备分布等
  • 描述系统软件到物理硬件的映射关系,反映出系统的组件是如何部署到一组可计算机器节点上
  • 用于指导软件系统的部署实施过程,通常要考虑到解决系统的可靠性和可伸缩性要求
  • 没有统一标准格式,核心是清晰列出部署架构,能让运维方能看懂即可
  • 更多是综合的图形工具

在这里插入图片描述

8.开发视图

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

在这里插入图片描述
在这里插入图片描述

9.处理视图

  • 描述系统中的动态信息,最常见的是逻辑架构元素之间的交互关系
  • 比如 微信扫码支付下单功能是如何实现的
  • 在UML中通常由时序图和流程图表示
  • 什么是时序图
    • 是一种UML交互图,描述了对象之间传递消息的时间顺序, 用来表示用例中的行为顺序, 是强调消息时间 顺序的交互图; 又名序列图、顺序图
    • 通俗解释:就是交互流程图 (把大象装冰箱分几步)
    • 时序图包括四个元素
      • 对象(Object)
        • 时序图中的对象在交互中扮演的角色就是对象,使用矩形将对象名称包含起来, 名称下有下划线
      • 生命线(Lifeline)
        • 生命线是一条垂直的虚线, 这条虚线表示对象的存在, 在时序图中, 每个对象都有生命线
      • 激活(Activation)
        • 代表时序图中对象执行一项操作的时期, 表示该对象被占用以完成某个任务,当对象处于激活时期, 生命线可以拓宽为矩形
      • 消息(Message)
        • 对象之间的交互是通过相互发消息来实现的,箭头上面标出消息名,一个对象可以请求(要求)另一个对象做某件事件
        • 消息从源对象指向目标对象,消息一旦发送便将控制从源对象转移到目标对象
        • 消息的阅读顺序是【严格自上而下】
        • 消息交互中的【实线+实心箭头:同步请求消息】
        • 消息交互中的【实线+大于号:异步请求消息】
        • 消息交互中的【小于号+虚线:响应返回消息】
        • 自己调用自己的方法:反身消息
          在这里插入图片描述
          在这里插入图片描述

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

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

相关文章

基于C#的校园闲置物品共享系统的开发和实现(Asp.net+Web)

目 录 摘 要 I Abstract II 第1章 绪论 1 1.1选题背景 1 1.1.1校园闲置物品共享系统的开发背景 1 1.1.2学生闲置物品交易活动的现状 1 1.2 校园闲置物品共享系统的研究方向和内容 1 1.2.1研究方向 1 1.2.2研究内容 2 1.3 校园闲置物品共享系统的设计目标 2 1.4 校园闲置物品共…

多云加速云原生数仓生态,华为与 HashData 联合打造方案

多云的兴起,源于用户应用对于基础设施、云服务功能、安全性等的差异化需求,用户希望根据需求将应用、数据因“云”制宜,实现业务的高度灵活性和高效性。这也直接驱动着云原生数据仓库等一批云原生应用的流行,以及存储等基础设施加…

WR | 水源水耐药基因稳定赋存的关键:以致病菌为“源”,群落构建主导菌为“汇”...

第一作者:武冬通讯作者:David W.Graham、杨凯、谢冰通讯单位:华东师范大学生态与环境科学学院,英国纽卡斯尔大学工程学院文章链接:www.sciencedirect.com/science/article/pii/S0043135422013045- 成果简介 -近日&…

【食品加工技术】第五章 烘烤食品加工技术 笔记

【食品加工技术】第五章 烘烤食品加工技术 笔记5.1 焙烤食品概述烘烤食品的分类按发酵和膨化程度分类安装生产工艺分类烘烤食品的原料面粉糖蛋品乳及乳制品膨松剂烘烤设备常用设备恒温设备常用工具5.2 面包加工工艺和关键技术面包的分类面包的发酵原理面包的工艺流程一次发酵二…

HTML CSS个人网页设计与实现——人物介绍丁真(学生个人网站作业设计)

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

iwebsec靶场 SQL注入漏洞通关笔记6- 宽字节注入

系列文章目录 iwebsec靶场 SQL注入漏洞通关笔记1- 数字型注入_mooyuan的博客-CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记2- 字符型注入(宽字节注入)_mooyuan的博客-CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记3- bool注入(布尔型盲注&#…

【学习笔记38】JavaScript中的本地存储

一、localStorage 浏览器的本地存储(永久存储), 打开浏览器存储上之后, 关闭浏览器, 信息还在语法:window.localStorage.setItem(key, value)注意: value的值必须为字符串key的书写符合见名知意 window.localStorage.setItem(ceshi1, 1111111);window.localStorage.…

制霸GitHub热榜的Spring Cloud Alibaba源码笔记,果然是阿里传出的

7年前面试最常问的并且可以顺利拿到高薪的技能是 Dubbo 3年前面试,只要你简历上有Spring Cloud 项目的相关经验,肯定会打动面试官,现在呢?恐怕简历上有Dubbo和简单的Spring Cloud技术和经验是无法让面试官高看你的。 Spring Cloud Alibaba 近几年在受到国内不少开…

深度学习与总结JVM专辑(三):垃圾回收器—G1(图文+代码)

垃圾收集器G1前言概述停顿时间模型内存布局传统内存布局过时了G1实现的几个关键细节问题铺垫知识:跨代引用铺垫知识:记忆集,卡表,卡页铺垫知识:写屏障插眼往下看G1内存模型分区Region卡片Card堆Heap分代模型分代垃圾收…

TensorRT--学习笔记

官方文档是最权威的TensorRT是可以在NVIDIA各种GPU硬件平台下运行的一个C推理框架。利用Pytorch、TF或者其他框架训练好的模型,可以转化为TensorRT的格式,然后利用TensorRT推理引擎去运行我们这个模型,从而提升这个模型在英伟达GPU上运行的速…

这可能是最权威、最全面的Go语言编码风格规范了!

每种编程语言除了固定的语法之外,都会有属于自己的地道的(idiomatic)写法。其实,自然语言也不例外,你想,你用心想想是不是这样。语言的设计者们希望开发人员都能编写统一风格的地道的代码,这样不仅代码可读性好&#x…

Packet Tracer 实验 - 排除多区域 OSPFv3 故障

地址分配表 设备 接口 IPv6 全局单播地址 IPv6 本地链路地址 默认网关 ISP GigabitEthernet0/0 2001:DB8:C1:1::1/64 FE80::C1 不适用 ASBR GigabitEthernet0/0 2001:DB8:C1:1::2/64 FE80::7 不适用 Serial0/0/0 2001:DB8:A8EA:F0A::1 FE80::7 不适用 S…

JSP学习日记

JSP简述 Java Sever Pages----->Java服务器界面 用于前后端结合 jsp为什么淘汰? 由于JSP的前后端耦合性极高,编写代码非常臃肿。前后端的代码放在一起,所以JSP可以看成是已经被淘汰的技术。 为什么还要学jsp? 由于一些公司…

基于遗传算法的自主式水下潜器路径规划问题附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

MFC编辑框控件属性和用法

目录 一、编辑框的属性 1.want return 2.Multiline 3.滚动条 4.添加完效果 二、初始化编辑框内容 三、复制与退出 四、edit control的值类型 五、思维拓展 一、编辑框的属性 默认情况下编辑框edit control 是可以横向无限输入的 1.want return 支持换行,…

自动化项目倍加福测距仪QSM WCS RS485 与西门子S7 200通信

1、程序流程图 2、WCS位置数据处理流程 第一步:设置S7-200的RS485的通讯波特率19.2kbps,通讯格式(8,1,E); 第二步:PLC向WCS发送请求码: A0A1为0,表示读码器地…

《人月神话》(The Mythical Man-Month)1 看清问题的本质:如果我们想解决问题,就必须试图先去理解它...

第一章 焦油坑(The Tar Pit)史前史中,没有比巨兽在焦油坑中垂死挣扎的场面更令人震撼的了。上帝见证着恐龙、猛犸象、剑齿虎在焦油中挣扎。它们挣扎得越是猛烈,焦油纠缠得越紧,没有任何猛兽足够强壮或具有足够的技巧&a…

【C++数据结构】程序性能分析

程序性能分析 2.1 什么是程序性能 程序性能:所谓程序性能(performance of a program)是指运行这个程序所需要的内存和时间的多少。 性能分析:在性能分析(performance analysis)时,采用分析方…

基于粒子群算法的配电网重构研究matlab程序

基于粒子群算法的配电网重构研究matlab程序 参考文献:基于改进灰狼算法的含分布式电源配电网重构研究 (本文未考虑分布式电源) 摘要:使用基本环矩阵编码的智能优化算法在处理配电网重构问题中,通常使用无序的解空间&a…

玩链子游戏

一 游戏描述 有一条链子,上面有 n 颗钻石,钻石编号为 1~n 。可以对该链子执行两种操作: ① CUT a b c (区间切割操作) 切下从第 a 颗钻石到第 b 颗钻石的链子,把它插在剩余链子的第 c 颗钻石…