软件架构的5视图法

5视图法可以帮助软件架构师以不同的视角对软件的各个方面的属性:功能需求,约束,运行期质量属性,开发期质量属性。

1、  逻辑架构:逻辑架构关注功能,不仅包括用户可见的功能,还包括为实现用户功能而必须提供的“辅助功能模块”——。

2、  开发架构:开发架构关注程序包,不仅包括要编写的源程序,还包括可以直接使用的第三方SDK 和现场框架、类库,以及开发的系统将运行于其上的系统软件或中间件。关注编译时刻的静态依赖关系。

3、  运行架构:运行架构关注进程、线程、对象等运行时概念,以及相关的并发,同步,通信等问题。运行架构关注运行期间各个单元的交互。

4、  物理架构:物理架构关注“目标程序及其依赖的运行库和系统软件”最终如何安装或部署到物理机器,以及如何部署机器和网络来配合软件系统的可靠性,可伸缩性等要求。

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

 

开发的策略。

 

1、逻辑架构的设计着重考虑功能需求——系统应该向用户提供什么样的服务。

架构视图

着重考虑

关注点

工具

逻辑架构

功能需求——系统应答向用户提供什么样的服务

行为和职责的划分

UML :静态——包图,类图,对象图;动态——序列图,协作图,状态图,活动图。

开发架构

开发期的质量属性——可扩展性,可重用性,可移植性,易理解性,易测试性

软件开发环境中软件模块实际组织方式——具体涉及源程序文件,配置文件,源程序包,编译后的目标文件和第三方库文件

UML:包图,类图,组件图

运行架构

运行期质量属性——性能,可伸缩性,持续可用性,安全性

系统的并发和同步,涉及进程和线程技术

UML:包图类图对象图来说明运行时的关键的概念;序列图,协作图等来描述交互机制。

物理架构

安装和部署的需求——包括计算机,网络,硬件设施情况,以及如何部署

软件单元如何映射到硬件,以及硬件相关的可靠性,可伸缩性,性能和安全性等

UML:部署图,组件图

数据架构

数据需求

持久化数据的组织,数据传递,数据复制和数据同步策略

E-R图

每种架构视图都包含动态方面和静态方面

对于架构视图的选择和架构视图的数目,可以根据实际的需要决定,并不是所有的架构设计要使用全部的架构视图,也不是所有的架构视图只有5 个——根据具体的需要可以增加,这里只是作者概况的最常见的 5 种视图。

之所以采用架构设计的视图法,这和软件需求的复杂性有关。 软件架构师必须明确区分功能需求,约束,运行期质量属性和开发期质量属性等不同种类的需求,这些需求对架构设计的影响是截然不同。基于五视图的架构设计在一定程度上将各类需求分别对待,通过不同的架构设计视图分别满足它们,从而确保重要的需求一一被满足。


 

posted @ 2013-10-14 21:33  盗草人  阅读(1225)  评论(0编辑  收藏  举报