软件架构设计之理论篇

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

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

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

       软件架构设计之理论篇_第1张图片

 

 

       

软件架构设计之理论篇_第2张图片

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

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

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

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

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

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

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

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

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

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

软件架构设计之理论篇_第3张图片

 

你可能感兴趣的:(架构设计)