分享

系统架构图怎么画

 slimfeng 2019-01-10

软件架构是一种无法以简单的一维方式进行说明的复杂实体。 -Paul Clements 《软件架构编档》


根据不同的受众,比如用户、客户、开发人员、测试人员、运维人员,需要从各自工作的角度去理解和使用架构。所以回答这个问题,需要首先了解这幅架构图画出来是给谁看,你想从那个维度去入手。
确定了这个问题之后,再来了解架构视图有哪些维度和组成要素:
1. 架构视图
最经典的当属4+1视图:
逻辑视图
开发视图
过程视图
物理视图
场景视图
4+1视图提出后,业界也有其它的观点提出,诸如SEI(模块视图、组建和连接件视图、分配视图)、西门子4种视图(概念、模块、代码、执行视图)、以及RM-ODP(企业视图、信息视图、计算视图、工程师图)等。
常见的视图除了上述4+1视图外还包括:数据视图、安全视图、实现视图等。


2. 了解架构视图的四要素
图示化主要元素和元素之间的关系
具有明确的图例、定义和说明元素
每个元素具备明确的接口和行为规范
设计原理和设计决策的信息


3. 简单说一下几个视图针对的角色和维度:
逻辑视图一般针对客户、用户、业务人员、开发组织,主要从系统的功能元素、以及它们的接口、职责、交互维度入手。主要元素包括系统、子系统、功能模块、子功能模块、接口等。


开发视图一般针对开发和测试相关人员,主要描述系统如何开发实现;主要元素包括描述系统的分层、分区、框架、系统通用服务、业务通用服务、类和接口、系统平台和大基础框架。用途是知道开发设计和实现。


物理视图一般针对系统运维人员、集成人员,它是系统逻辑组件到物理节点的映射,节点与节点间的物理网络配置等,主要关注非功能性需求,诸如性能(吞吐量)、可伸缩性、可靠性,可用性等,从而得出相关的物理部署结构图。


4. 了解这些,确定了你的受众和切入的维度后,你就可以决定你要用什么样的视图和视图组合来表达你的内容,挑选一个你得心应手的工具去实施就可以了。

在我看来,用白板和团队一起画出来是一件极美的好玩的事情。


方法:

用剥洋葱的方法,一层一层来
第一层:客户端,服务器
第二层:客户端:可以用什么技术实现
服务器:根据业务需求,需要怎样的服务器结构(比如,登录服务器、业务逻辑服务器(根据业务需求,可以拆分不同的业务逻辑服务器,数据库服务器(是否需要缓存服务器,根据业务需求来)))
第三层:想清楚 每个服务器实现什么样的业务需求,客户端与服务器如何通信,服务器与服务器之间如何通信,用户数据与业务数据如何挂钩,数据存储与读取如何实现、用哪款数据库(单独还是几种数据库相配合,关系型还是非关系型,需不需要redis这种内存数据库做部分数据的缓存),客户端与服务端通信网络协议用什么(tcp还是udp),服务端之间通信网络协议用什么,数据库需不需要主从备份等等。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多