摘要

软件架构是从宏观上说明一套软件系统的组成与特性,包括软件可以提供什么样的功能,软件代码的层次结构,软件的部署与网络结构,软件的数据结构,软件的性能特征。上面说到的几个方面就可以用五视图法来表示。五视图法做架构设计的步骤是逻辑架构->数据架构->开发架构->运行架构->物理架构。

一、    五视图介绍

5层架构 5层架构设计_架构设计实战

(一) 逻辑架构设计着重考虑功能需求

系统应当向用户提供什么样的服务,关注点主要是行为或职责的划分。逻辑架构关注的功能,不仅包括用户可见的功能,还应当包括为实现用户功能而必须提供的辅助功能。逻辑架构的静态方面是抽象职责的划分,动态方面是承担不同职责的逻辑单元之间的交互与协作。

(二)开发架构的设计着重考虑开发期质量属性

关注点是在软件开发环境中软件模块的实际组织方式,具体涉及源程序文件、配置文件、源程序包、编译打包后的目标文件、直接使用的第三方SDK/框架/类库、以及开发的系统将运行于其上的系统软件或中间件。

(三)运行架构的设计着重考虑运行期质量属性

关注点是系统的并发与同步等问题,这势必涉及到进程、线程、对象等运行时概念,以及相关的并发、同步、通信等。运行架构的静态方面关注软件系统运行时的单元结构,动态方面关注运行时单元之间的交互机制。

(四)物理架构的设计着重考虑安装和部署需求

关注点是目标程序及其依赖的运行库和系统软件最终如何安装或部署到物理机器,以及如何部署机器和网络来配合软件系统的可靠性、可伸缩性、持续可用性、性能和安全性等要求。

(五)数据架构的设计着重考虑数据需求

关注点是持久化数据的存储方案,不仅包括实体及实体关系数据存储格式,还可能包括数据传递、数据复制、数据同步等策略。

二、    案例分析

基于五视图法的酒店管理系统架构设计可以确定组成软件系统的程序模块和以程序模块为单位、用层次结构表示的软件结构,以及各模块的功能描述和借口描述。

(一) 逻辑架构设计

系统可划分为三个子系统,采购管理子系统、门店管理子系统和客服管理子系统。

5层架构 5层架构设计_架构设计实战_02

子系统都有用户登陆功能块。用户修改信息:指用户可以随时修改自己的信息,特别是用户密码必须经常修改,以防止他人盗用自己的身份操作系统,破坏数据库数据。取回密码:当用户忘了密码时,使用该功能通过简单的回忆获得自己的密码。

5层架构 5层架构设计_架构五视图_03

 
门店管理子系统包含五大模块。

5层架构 5层架构设计_架构设计实战_04

客服管理子系统包括2大功能,分别是:客房预订,会员管理。

5层架构 5层架构设计_架构五视图_05

(二) 开发架构设计

系统采用三层架构模型进行开发,将系统分成三个部分:数据表现层、业务逻辑层和数据处理层。

5层架构 5层架构设计_数据_06

数据表现层负责用户与系统之间的交互,主要表现在将系统的数据按照用户的业务操作按照一定的规则显示在页面上,利用JSP页面技术来实现。在酒店管理中,数据表现层根据用户类别的不同分别展现不同的用户界面和功能,具体分为门店管理员界面、采购管理员界面、客服管理员界面、客人界面。

业务逻辑层主要完成各个子系统之间的通信和交互,以实现系统的业务功能,在本系统分为门店管理、采购管理和客服管理。

数据处理层主要实现系统的数据和数据库之间的交互,利用JSP和JDBC数据库的处理模块实现。

(三) 运行架构设计

5层架构 5层架构设计_架构五视图_07

(四) 物理架构设计

5层架构 5层架构设计_架构设计实战_08

(五) 数据架构设计

5层架构 5层架构设计_5层架构_09

三、    总结

不同的架构视图代表不同的人对软件内部结构的不同看法,对于架构视图的选择和架构视图的数目,视实际的需要决定,并没有所有的软件在设计的时候都需要这5个视图,也不是只有这5个视图,能清晰地表达出系统设计的主要内容即为最优。