架构设计图是一种设计架构、描述架构的核心手段和方法。通过架构视图作为分而治之的手段,使架构师可以分别专注于架构的不同方面、相对独立分析和设计不同子问题。软件架构设计之细化架构设计提供两种设计方法,如下图所示:
2视图设计方法
在多种架构视图中,最常用的是逻辑架构视图和物理架构视图,采用二者进行细化架构设计称为2视图设计方法。
软件的逻辑架构规定了软件系统是由哪些逻辑元素组成的,以及这些逻辑元素之间的关系。具体而言,组成软件系统的逻辑元素可以是逻辑层、功能子系统、模块。
软件的物理架构规定了组成软件系统的物理元素,这些物理元素之间的关系,以及它们部署到硬件上的策略。
逻辑架构视图和物理架构视图两个视图的设计交替进行、迭代展开。逻辑职责的划分逐步清晰,促进了物理分布设计;反之亦然。
5视图设计方法
和2视图方法相比,5视图方法适合更大型的软件,它更全面地覆盖了架构设计的各个方面。架构师可以站在5个不同的“思维立足点”、分而治之、分别设计,具体方法描述如下:
逻辑视图设计是面向对象或结构化,目标是设计职责划分和职责间协作,例如分模块、分层、划分垂直功能子系统,为模块、层、子系统定义接口。开发视图设计是面向文件,目标是设计程序单元和程序单元组织,例如,开发语言选型、应用程序框架选择、编译依赖关系等。运行视图设计是面向控制流,目标是设计控制流和控制流组织,例如,多进程技术、多线程技术、中断服务程序等物理视图设计是面向节点,目标是设计物理节点和物理节点拓扑,例如,PC机、服务器、单片机的机型与拓扑连接等数据视图设计是面向表或文件,目标是设计数据存储格式和持久化设计,例如,关系数据库、实时数据库、文件等。