- 4+1 视图模型概况
视图、开发视图、场景视图来描述软件体系结构。每一个视图只关心系统的一个侧面,5 个试图
结合在一起才能反映系统的软件体系结构的全部内容。如下图:
- 逻辑视图(Logic View )
系统分解成一系列的功能抽象、功能分解与功能分析,这些主要来自问题领域(Problem Definition)。
在面向对象技术中,通过抽象、封装、继承,可以用对象模型来代表逻辑视图,可以用类图(Class
Diagram)来描述逻辑视图。如下图:
构件(Components):类、类服务、参数化类、类层次
连接件(Connectors):关联、包含聚集、使用、继承、实例化
- 开发视图(Development/Module View)
员, 方便后续的设计与实现。它通过系统输入输出关系的模型图和子系统图来描述。要考虑软
件的内部需求:开发的难易程度、重用的可能性,通用性,局限性等等。开发视图的风格通常是
层次结构,层次越低,通用性越好(底层库:Java SDK,图像处理软件包)。如下图: 构件:模块、
子系统、层 连接件:参照相关性、模块/过程调用
- 进程视图
员,方便后续性能测试。强调并发性、分布性、集成性、鲁棒性(容错)、可扩充性、吞吐量等。
定义逻辑视图中的各个类的具体操作是在哪一个线程(Thread)中被执行。
如下图: 构件:进程、简化进程、循环进程
连接件:未指定,消息、远程过程调用(RPC)、双向消息、事件广播
- 物理视图
等问题。主要考虑如何把软件映射到硬件上,也要考虑系统性能、规模、可靠性等。可以与进程
视图一起映射。如下图:
构件:处理器、计算机、其它设备
连接件:通信协议等
- 场景(Scenarios)
内的构件关系,也可以描述不同视图间的构件关系。文本、图形表示皆可。