架构设计之4+1视图模型

架构设计

架构设计是重某一视角或不同的抽象层面对系统进行表述,描述了从不用角度应该重点关注的方面和应该省略的无关的实体。

每个软件系统都有很多个角色要参与进来:用户、开发人员、MDE、SE、系统集成人员、项目经理等。

如果通过一张架构设计图来呈现所有的内容,并提供给所有参与者的话,会造成表达混乱,参与者无法理解的问题。因此可以将架构设计图分成4+1个角度进行分别描述,尽可能的只给对应参与者提供他需要关注的内容。

 

4+1视图

 

逻辑视图(Logical view),主要是整个系统的抽象结构表述,用来描述系统的功能需求,关注系统提供给最终用户的功能,不涉及具体的编译及输出和部署。在逻辑视图中,系统分解成一系列的功能抽象、功能分解与功能分析,这些主要来自问题领域(Problem Definition)。

通常在UML中用类图,交互图,时序图来表述,类似与我们采用OOA的对象模型。

构件(Components):类、类服务、参数化类、类层次;

连接件(Connectors):关联、包含聚集、使用、继承、实例化

 

运行视图(Process view)运行视图关注系统动态运行时,主要是进程以及相关的并发、同步、通信等问题。服务于系统集成人员,方便后续性能测试。运行视图和实现视图的关系:实现视图一般偏重程序包在编译时期的静态依赖关系,而这些程序运行起来之后会表现为对象、线程、进程,运行视图比较关注的正是这些运行时单元的交互问题,在UML中通常用活动图表述。

构件:进程、简化进程、循环进程

连接件:未指定,消息、远程过程调用(RPC)、双向消息、事件广播

 

部署视图(deployment view )部署视图关注软件的物流拓扑结构,以及如何部署机器和网络来配合软件系统的可靠性、可伸缩性等要求。部署视图服务于系统工程师人员。部署视图和运行视图的关系:运行视图特别关注目标程序的动态执行情况,而部署视图重视目标程序的静态位置问题;部署视图是综合考虑软件系统和整个IT系统相互影响的架构视图。

构件:处理器、计算机、其它设备

连接件:通信协议等

 

实现视图(implementation view),描述软件在开发环境下的静态组织,从程序实现人员的角度透视系统。实现视图关注程序包,不仅包括要编写的源程序,还包括可以直接使用的第三方SDK和现成框架、类库,以及开发的系统将运行于其上的系统软件或中间件, 在UML中用组件图,包图来表述。实现视图和逻辑视图之间可能存在一定的映射关系:比如逻辑层一般会映射到多个程序包等。

构件:模块、子系统、层

连接件:参照相关性、模块/过程调用

 

用例视图(Use Cases View),用例视图是指“4+1”中的“1”,服务于最终用户,用于刻画构件之间的相互关系,将四个视图有机地联系起来,可以描述一个特定的视图内的构件关系,也可以描述不同视图间的构件关系。为整个技术架构的上下文环境。可以通过用例文本,UML(用例图)表述。

你可能感兴趣的:(架构设计之4+1视图模型)