五、架构的展示
1.两个要素
架构要展示的两个基本要素是:业务和技术组件。而业务又可分为组件和功能两个层次,技术又可分为基础平台与组件所需提供工件两个部分。
后续所有展示都围绕此二要素。
2.核心视图
由RUP贡献的四个视图是架构展示的核心视图。
逻辑视图(静态类图)
关注功能,不仅包括用户可见的功能,还包括为实现用户功能而必须提供的"辅助功能模块";它们可能是逻辑层、功能模块等。
应映射为业务组件、功能包以及技术工件(分层),以及它们之间关联依赖关系;
开发视图(静态类图)
关注程序包,不仅包括要编写的源程序,还包括可以直接使用的第三方SDK和现成框架、类库,以及开发的系统将运行于其上的系统软件或中间件。
开发视图和逻辑视图之间可能存在一定的映射关系:比如逻辑层一般会映射到多个程序包等。
应映射为具体的SDK和框架等,以及关联依赖关系;注:开发视图应尽可能和逻辑视图一一对应;
处理视图(动态类图)
关注进程、线程、对象等运行时概念,以及相关的并发、同步、通信等问题。
处理视图和开发视图的关系:开发视图一般偏重程序包在编译时期的静态依赖关系,而这些程序运行起来之后会表现为对象、线程、进程,处理视图比较关注的正是这些运行时单元的交互问题。
可映射为状态图和活动图(高层和详细);
物理视图(部署视图)
关注"目标程序及其依赖的运行库和系统软件"最终如何安装或部署到物理机器,以及如何部署机器和网络来配合软件系统的可靠性、可伸缩性等要求。
物理视图和处理视图的关系:处理视图特别关注目标程序的动态执行情况,而物理视图重视目标程序的静态位置问题;物理视图是综合考虑软件系统和整个IT系统相互影响的架构视图。
可映射为组件图,部署说明图;
3.扩展视图
在核心视图,针对于不同受众,还需要提供三个扩展视图。
非功能视图
展示非功能性指标的支持能力。通常针对于技术人员。
基础设施视图
展示架构所采用基础设施,以及它们之间的关系。通常针对于技术人员。
数据视图
关注于数据组织和存储形式。通常针对于DBA,或者需对数据进行定期维护的用户。
4.原则和约束
架构因明确说明本架构采用原则、方法论以及相关约束。
5.技术选型分析
由于架构涉及众多底层技术,也应给出相应的选型分析。