方法/步骤软件项目的需求确定后,就可以开始系统的架构设计了。架构设计不同于编写代码,需要遵循严格的语法和编程规范。它没有规范可循,它的存在是合理的。适合系统开发和运行的架构才是最合理的系统架构。
系统的架构设计是在业务需求明确的前提下进行的。假设在系统需求分析阶段已经确定了系统的功能和业务范围,也明确了系统的运行需求。在上述需求尚未确定的情况下,不适合进行系统架构设计,需要回到需求分析阶段,完善上述需求后再进行系统架构设计。
系统架构只是一些模型图,是人们理解系统和交流的工具。这些模型图需要提供给系统利益相关者来了解系统,包括项目经理、产品经理、开发人员、系统运维人员、客户、项目投资人等等。这些利益相关者有不同的知识背景,对同一个架构模型图有不同的认知和理解:如果你把开发架构模型图拿给产品经理或者客户看,他们肯定看不懂或者理解不了;同理,如果只把逻辑架构图展示给开发人员,也无法正确引导开发人员搭建开发环境。
因此,在设计系统架构时,架构师需要从系统的不同维度进行设计,以满足系统涉众理解系统架构的需求。架构设计模型主要包括五个模型图:逻辑架构、开发架构、数据架构、物理架构和操作架构。一般来说,需要设计的系统架构模型有三种:逻辑架构、开发架构和物理架构。数据架构模型一般设计在数据库中,运行架构与物理架构基本相似,只是在物理架构上增加了数据流方向,所以有些系统设计使用物理架构而不是运行架构。
设计逻辑架构模型
逻辑架构模型主要是确定系统的功能范围和系统划分。在设计逻辑架构模型时,可以把握两个关键点:一个关键点是对系统进行逻辑划分,将一个大系统划分为多个子系统;另一个重点是明确子系统之间的协作和调用关系。
逻辑架构模型图包括系统流程图和系统结构图。系统流程图描述了系统的子系统、相关文件和数据之间的关系,记录了整个系统的架构。系统结构图,也称为层次图,以层次化的方式描述系统自上而下的功能分解。
下图分别是网络系统的系统流程图和系统结构图。
以上网络系统流程图和结构图是根据网络系统需求说明书中给出的功能和业务范围绘制的。
设计和开发架构模型
开发架构模型图是给开发者看的,开发架构模型指导开发者如何构造系统的开发环境。开发环境包括系统开发框架的选择、开发工具和编程语言、模块划分等。下图是网络系统开发架构的模型图。
开发架构模型图显示技术体系为B/S结构,开发框架为SSM,开发语言为JavaEE。系统采用三层结构,即表示层、WEB应用层和数据层。表示层是JSP页面,运行在浏览器中,表示层是MVC视图。WEB应用层的控制层是MVC的控制器,业务逻辑层是MVC的服务,实体层是MVC的POJO。数据层由MyBaits数据库开发框架组成。
设计物理架构模型
物理架构模型面向系统部署人员和运维人员,主要给出系统的部署环境模型,包括网络环境、硬件环境和软件环境。下图是系统部署网络环境的模型图。
从上面的网络环境模型图可以看出,系统部署只需要一台主机,需要支持HTTP协议和远程桌面协议。系统可以部署到阿里云或者腾讯云。
系统的架构设计主要涉及三个模型图,即逻辑架构模型、开发架构模型和物理架构模型。逻辑架构模型一般用系统流程图和系统结构图建模;开发架构模型没有标准的模型图,可以用PPT或Visio绘图工具绘制。物理架构模型主要由网络环境、硬件和软件环境组成。