1. 什么是架构设计?数据库
架构设计就是一个系统的草图。设计模式
软件架构就是对软件从总体到部分的描述,从开发到运行再到后期扩展的描述,从性能和安全可靠性进行描述。安全
2. 架构设计为了解决什么问题?服务器
解决开发之初,也就是逻辑设计阶段的问题 —— 系统如何开发,如:整个系统融合为一个系统开发,仍是从业务角度将系统拆分为几个独立的子系统。网络
解决即将进入开发时的问题 —— 数据是如何持久化的、数据库如何选型、非数据库文件的存储格式是怎样等像这样的存储方案的肯定。架构
解决开发过程当中的问题 —— 如何保证开发质量、如何分层、代码可扩展性、使用的设计模式、依赖了那些框架、开发语言等。 框架
解决开发完成后的问题,也就是进入运行阶段 —— 如何保证运行期间的质量属性、性能、可伸展性等,主要是系统运行进程的划分,以及进程之间经过线程来通讯。性能
另外,若是系统并不是是单机运行,还需考虑系统的物理部署,系统部署在哪一个服务器上,这些服务器配置性能可否胜任系统的运行,操做系统选型,以及系统部署的网络拓扑图,还有就是保证数据安全的数据备份是怎样设计的。spa
3. 架构设计的五视图法操作系统
咱们刚才从五个不一样的角度知道架构设计须要解决的问题,那么使用五视图法就更加系统的分析设计咱们架构了。
从这幅图里面咱们能够看出架构设计五视图中各个角度须要解决的问题了,而且能够看出他们之间的联系了。
1)物理架构
物理架构的目的是 —— 肯定物理节点和物理节点的拓扑结构;
其中物理节点包括 —— 服务器、PC机、专用机、软件安装部署烧写以及系统软件的选型;
拓扑结构明确物理节点的关系。
2)运行架构
运行架构的目的是 —— 肯定控制流和控制流的组织;
其中控制流包括 —— 进程、线程、服务程序;
控制流组织包括系统的启动与停机、控制流通信、同步与加锁。
3)开发架构
开发架构的目的是 —— 肯定程序单元以及程序单元的组织结构;
其中程序单元包括 —— 源文件、配置文件、程序库、框架、目标单元;
程序单元组织包括project划分、project目录结构、编译依赖关系。
4)逻辑架构
逻辑架构的目的是 —— 职责的划分,并明确其与协做关系;
其中职责的划分注意逻辑的分层、子系统以及关键类的定义;
协做的定义关注接口的定义与协做关系的明确。
5)数据模型
数据架构的目的是 —— 肯定要存储的数据以及存储格式;
其中存储的数据能够是文件、关系数据库、实时数据库;
存储格式包括文件格式、数据库图表。
来源于https://blog.csdn.net/degwei/article/details/51489444,感谢前辈,文章写得很好^ _ ^