4 + 1架构视图

复杂的软件系统需要从多个维度分别定义相应的架构视图。每个架构视图:

  • 面向一类特定的涉众(Stakeholder
  • 建模一种类型的组件,以及它们之间的关系
  • 解决一种类型的关注点

1995年Philippe KruchtenIEEE Software上发表论文The 4+1 View Model of Architecture,正式提出软件架构的4+1视图,最终被RUP采纳,现在已成为架构设计的事实上的结构标准。

4+1_Architectural_View_Model

1. 逻辑视图

  • 对系统进行面向对象的分解
  • 面向终端用户
  • 建模软件的功能组件(类、包等)以及功能组件之间的关系
  • 解决功能关注点

logical-view

2. 开发视图

  • 对系统进行子系统分解
  • 面向开发者/项目经理/产品经理
  • 建模开发组件(模块、子系统等)以及它们之间的关系
  • 解决软件的组织、重用、可移植性等关注点

3. 物理视图(部署视图)

  • 映射软件组件到硬件节点
  • 面向系统设计师/部署工程师
  • 建模系统部署的硬件节点(服务器、路由器等)以及它们之间的关系
  • 解决可伸缩性、性能、可用性等关注点

physical-view

4. 进程视图

  • 对系统进行进程分解
  • 面向系统设计师/集成工程师
  • 建模任务组件(进程和线程)以及它们之间的关系
  • 解决性能、可用性、容错性,数据完整性等关注点

process-view

5. 场景视图(用例视图)

  • 将一切集成到一起
  • 遴选在架构方面有重要意义的少数用例
  • 穿越所有的视图和层,调用所有的软件基础设施
  • 作为架构可用性的证明
  • 作为其余用例开发的示例

senario-view

6. 总结

视图 逻辑 进程 开发 物理 场景
组件 类(Class) 任务(Task) 模块,子系统 硬件节点(Node) 步骤,脚本
连接器 关联、继承、聚合等 消息传递、广播、RPC等 编译依赖,with子句,包含关系 通信媒介、LAN、WAN、总线等等
容器 进程 子系统(类库) 物理子系统 Web
涉众 终端用户 系统设计师,集成工程师 开发者,项目经理,产品经理 系统设计师 终端用户,开发者
关注点 功能 性能、可用性、容错性,数据完整性 组织、重用、可移植性、产品线 可伸缩性、性能、可用性 可理解性

results matching ""

    No results matching ""