系统架构如何设计?

当软件项目的需求确定后,就可以开始系统架构设计了。 架构设计与编写代码不同,需要严格的语法和编程规范。 它没有规范可循,它的存在也是合理的。 适合系统开发和运行的架构才是最合理的系统架构。

系统的架构设计是在业务需求已经明确的前提下进行的。 假设在系统需求分析阶段已经确定了系统的功能和业务范围,并且明确了系统的运行需求。 当上述需求尚未确定时,不宜进行系统架构设计。 在进行系统架构设计之前,需要回到需求分析阶段来完善上述需求。

系统架构只是一些模型图,模型图是人们用来理解系统和进行交流的工具。 这些模型图需要提供给系统相关的利益相关者来理解系统。 系统相关的利益相关者包括项目经理、产品经理、开发人员、系统运维人员、客户、项目投资人等,这些利益相关者有着不同的知识背景,对同一个架构模型图会有不同的认知和理解:如果你展示开发架构模型图给产品经理或者客户,他们肯定看不懂,看不懂; 同样的,如果只向开发者展示逻辑架构图,也无法正确引导开发者搭建开发环境。

因此,架构师在设计系统架构时,需要从系统的不同维度进行设计,以满足系统相关利益相关者理解系统架构的需求。 架构设计模型主要包括逻辑架构、开发架构、数据架构、物理架构和运行架构五种模型图。 一般来说,需要设计的系统架构模型包括三类架构模型图:逻辑架构、开发架构和物理架构。 数据架构模型一般是在数据库中设计的。 运行架构与物理架构基本类似,只是在物理架构中增加了数据流向。 因此,一些系统设计使用物理架构而不是操作架构。

设计逻辑架构模型

逻辑架构模型主要确定系统的功能范围和系统划分。 在设计逻辑架构模型时,可以抓住两个关键点:一是对系统进行逻辑划分,将一个大系统划分为多个子系统;二是对系统进行逻辑划分。 另一个关键点是明确子系统之间的协作和调用关系。

绘制逻辑架构的模型图包括系统流程图和系统结构图:系统流程图描述了系统的子系统、相关文件和数据之间的关系,记录了整个系统的架构; 系统结构图也称为层次图,它以层次的方式从上到下描述系统的功能分解。

下图是人网系统的系统流程图和系统结构图。

开发系统有哪些_开发系统英文_系统开发/

图1 人网系统流程图

开发系统有哪些_系统开发_开发系统英文/

图2 人网系统结构图

上述人网系统流程图和人网系统结构图是根据人网系统需求规格书中给出的功能和业务范围绘制的。

设计开发架构模型

开发架构模型图供开发者查看。 开发架构模型指导开发人员如何构建系统的开发环境。 开发环境包括系统开发框架、开发工具和编程语言的选择、模​​块划分等。下图是人网系统开发架构模型图。

开发系统英文_系统开发_开发系统有哪些/

图3 网络系统开发架构模型图

开发架构模型图显示,技术体系为B/S结构,开发框架为SSM,开发语言为JavaEE。 系统采用三层结构,即表示层、WEB应用层和数据层。 表现层是一个JSP页面,运行在浏览器中,表现层就是MVC的View。 WEB应用层的控制层是MVC的Controller,业务逻辑层是MVC的Service,实体层是MVC的POJO。 数据层由MyBaits数据库开发框架组成。 (Plain Ordinary Java Object其实就是普通的JavaBeans)

设计物理架构模型

物理架构模型面向系统部署人员和运维人员。 主要提供系统的部署环境模型,包括网络环境、硬件环境和软件环境。 下图是系统部署网络环境模型图。

开发系统英文_系统开发_开发系统有哪些/

图4 系统部署网络环境模型图

从上面的网络环境模型图可以看出,系统部署只需要一台主机,并且要求支持HTTP协议和远程桌面协议。 系统可以部署到阿里云或腾讯云。

系统的架构设计主要涉及三个模型图,即逻辑架构模型、开发架构模型和物理架构模型。 逻辑架构模型一般采用系统流程图、系统结构图来建模; 开发架构模型没有标准模型图,可以使用PPT或Visio绘图工具绘制; 物理架构模型主要由网络环境、硬件环境和软件环境组成。