在上篇文章《软件架构设计之思想篇》中,Relax君通过盖房子做了一个类比,聊到了在进行架构设计中我们该从哪些方面去考虑,文中提到了系统、子系统、层次结构、组件、模块、接口和部署等等这样一些抽象的字眼,那大家有没有再深层次的考虑这样的一个问题,就是我们如何将我们考虑的这些点展现出来呢?作为一名架构师,你设计的架构其实是要给很多人看的,包括公司领导、产品、开发、测试和运维,那么你该如何把你设计的架构展示给别人呢? 这就是Relax君今天想跟大家聊的内容。大家还是不妨先花个两三分钟好好想一想这个问题。

相信很多小伙伴都已经知道了,答案就是图。所以今天Relax君其实聊的主要就是架构设计中的那些图。

架构设计理论上一般划分五种视图,即逻辑架构视图、开发架构视图、运行架构视图、物理架构视图和运行架构视图。5种架构视图的内容和关系可以看下面两张图:

从图中可以看到,五种视图涵盖了逻辑层次划分、接口定义、开发代码组织结构、运行性能设计、运维部署以及数据存储等方方面面。

在Relax君的实际架构设计工作中,逻辑架构视图和物理架构视图考虑得最多,开发架构视图中的代码组织结构,运行架构视图的多线程高并发以及数据架构视图中的数据持久化和存储,主要是作为关键技术点进行分析的,这一点其实是跟所处行业有关。

除了上面的五种视图以外,Relax君还想跟大家聊一下另外一种图,就是UML图,UML包含很多种图,Relax君就不在这里一一介绍了,Relax君只谈一下自己实际工作中经常用到的五种UML图---类图、构件图、部署图、用例图和序列图

类图主要是描述一个类的结构,类是面向对象一个概念,在c语言这种面向过程的语言中,其实也可以按模块的不同功能使用类图来描述这个模块的.c文件和.h文件。

构件图也可以叫组件图,个人觉得跟上面5图中的逻辑架构视图有点像,主要就是描述系统可以划分的逻辑层次,每个层次包含哪些组件以及子系统包含哪些逻辑层次等等这些内容。

部署图其实跟上面5图中的物理架构视图有点像,描述的是系统的位置跟硬件形态。

用例图描述的是系统的输入活动以及系统的自身任务,比如用户会对系统进行什么样的配置操作等等。

序列图其实就是针对用例图的输入活动,系统中的各个组件针对这个输入如何协同工作,相关组件的一个处理流程的描述。

好了,软件架构设计中的那些图,Relax君今天就聊到这儿,由于都是理论知识,所以可能不是很好理解,不过不要着急,理论是用于指导具体实践的,所以后面Relax君会结合今天聊的这些理论知识来谈一个具体的架构设计的案例,相信大家就能很好的理解了。

我是Relax聊技术(微信号: Relax_Tech),一个专注于分享程序员优质技术资源的公众号。微信搜索Relax技术或者扫描下方二维码关注我吧。

软件架构设计之理论篇相关推荐

  1. 前端组件设计之理论篇

    前端组件设计之理论篇 前言 一.什么是前端组件 二.组件设计原则 1.单一职责 2.封装 3.组合 4.复用 5.富有意义 6.可测试 三.总结 前言 什么是前端组件?对于一个前端开发人员来说再熟悉不 ...

  2. 重构,改善既有代码的设计(理论篇)

    文章目录 前言 重构是什么? 谈谈定义 何时重构? 常用重构手法 提炼函数(Extract Method) 以查询取代临时元素(Replace Temp with Query) 分解条件表达式(Dec ...

  3. 领域驱动设计-原理心得篇

    "最初我给本文起的标题是<领域驱动设计-理论入门篇>,但是文中掺杂了太多的个人理解,入门篇就显得太官方了,为了避免错误的理解把读者带偏,所以改成<领域驱动设计-理论心得篇& ...

  4. 【系统架构设计师】软考高级职称,一次通过,倾尽所有,看完这篇就够了,论软件架构设计的重要性、本篇论文“未通过考试”,供分析参考

    [系统架构设计师]软考高级职称,一次通过,倾尽所有,看完这篇就够了,学习方法和技巧这里全都有. 论软件架构设计的重要性.本篇论文未通过考试(不合格),供分析参考. 目录 摘要 正文 结尾 摘要 201 ...

  5. 理论篇如何学习硬件设计

    不懂硬件的人,会觉得硬件高深莫测,"为什么他改几个电阻.电容就调出来,我弄个半天没搞定?","噢,靠的是经验",但是经验又是什么呢?不能形容,反正就是不明觉厉. ...

  6. 理论篇一: 如何设计游戏棋牌平台 - 服务端 - 简介

    大家好,今天开始我将会为大家带来(如何设计棋牌游戏平台)系列的理论的文章. 既然说到理论篇,后面就一定会为大家带来实战篇. 整个系列下来时间会持续比较长,我将会与我的前端合作伙伴进行一个联合作战的方式 ...

  7. SAP那些事-理论篇-11-SAP核心设计逻辑

    如果您觉得这篇文章对你所有帮助的话,您的顺手点赞和转发将是对作者持续发文的重要动力,您的支持和鼓励很重要! 所有文章在公众号"MZ信息化咨询杂谈"同步更新! 郑重声明:本博客所发文 ...

  8. 软件架构设计(第2版)——程序员向架构师转型必备

    软件架构设计(第2版)--程序员向架构师转型必备 温昱 著 ISBN 978-7-121-17087-4 2012年7月出版 定价:39.00元 16开 256页 宣传语:本书内容务实.技能梳理清晰, ...

  9. 架构风格与基于网络的软件架构设计

    原文链接 https://blog.csdn.net/on_1y/article/details/60358117 架构风格与基于网络的软件架构设计 如今许多服务都采用了 RESTful API, 而 ...

最新文章

  1. 首场见习挑战赛倒计时3天!20000元奖学金瓜分就等你了!
  2. 5添加一块盘_win系统,Linux系统,重装系统后,添加盘简易教程
  3. UVA-673-栈-水题
  4. c语言综合性实验数字益智游戏排行榜,C语言综合性实验报告1.doc
  5. 本年度最成功科技IPO企业之一:Twilio股票一月暴涨167%
  6. various,variable,varied,different, diverse的区别
  7. 解决dpdk中出现IOMMU not found的问题
  8. div中定义局部变量_中高级前端必须要了解的--JS中的内存管理
  9. 横空出世,比Visio快10倍的画图工具来了
  10. 信息化建设中的IT规划精要
  11. viper4android fx原理,ViPer4android. FX顶级音效!
  12. 微信小助手 mac版功能
  13. c 程序语言的溢出错误,C语言中溢出错误分析和防范
  14. 软考高级 2022年11月信息系统项目管理师
  15. 插画手绘培训,“安利25周年”插画主题创作:畅游RichJay的创业之旅!【信念篇】
  16. python row函数_Python extmath.row_norms方法代码示例
  17. 追梦算法网----团队数量
  18. 《匆匆那年》每一集的标题
  19. 基于LSTM实现乐器声音音频识别
  20. 基于 Marvell 88Q2112 车载以太网 物理层收发器

热门文章

  1. flash swf 文件宽高修改
  2. mac上操作koala
  3. 整合营销案例—从点到面的突破
  4. 路由器断网如何配置上网
  5. 摘至《齐国力教授养生保健知识讲座》
  6. ios 自己服务器 苹果支付_iOS游戏开发二:苹果内支付的流程(In-App Purchases)
  7. 腾讯的网站如何检测到你的 QQ 已经登录?
  8. root用户和文件权限
  9. python graphviz安装
  10. 【图论训练】深海探险【DFS】