4 + 1架构视图

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

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

1995年Philippe Kruchten在IEEE 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 ""