软件架构 "4+1" 视图模型

1995年,Philippe Kruchten在《IEEE Software》上发表了题为《The 4+1 View Model of Architecture》的论文,引发了业界的极大关注。ios

论文原文:http://www.cs.ubc.ca/~gregor/teaching/papers/4+1view-architecture.pdf架构

翻译:http://www.ibm.com/developerworks/cn/rational/r-4p1-view/并发

引言

咱们已经看到在许多文章和书籍中,做者欲使用单张视图来捕捉全部的系统架构要点。经过仔细地观察这些图例中的方框和箭头,不难发现做者努力地在单一视图中表达超过其表达限度的蓝图。方框是表明运行的程序吗?或者是表明源代码的程序块吗?或是物理计算机吗?或仅仅是逻辑功能的分组吗?箭头是表示编译时的依赖关系吗?或者是控制流吗?或是数据流吗?一般它表明了许多事物。是否架构只须要单个的架构样式?有时软件架构的缺陷源于过早地划分软件或过度的强调软件开发的单个方面:数据工程、运行效率、开发策略和团队组织等。有时架构并不能解决全部"客户"(或者说"风险承担人",USC 的命名)所关注的问题。许多做者都说起了这个问题:Garlan & Shaw 1、CMU 的 Abowd & Allen、SEI 的 Clements。做为补充,咱们建议使用多个并发的视图来组织软件架构的描述,每一个视图仅用来描述一个特定的所关注的方面的集合分布式

架构模型

软件架构用来处理软件高层次结构的设计和实施。它以精心选择的形式将若干结构元素进行装配,从而知足系统主要功能和性能需求,并知足其余非功能性需求,如可靠性、可伸缩性、可移植性和可用性。Perry 和 Wolfe 使用一个精确的公式来表达,该公式由 Boehm 作了进一步修改:性能

软件架构 = {元素,形式,关系/约束}spa

软件架构涉及到抽象、分解和组合、风格和美学。咱们用由多个视图或视角组成的模型来描述它。为了最终处理大型的、富有挑战性的架构,该模型包含五个主要的视图(请对照图 1):翻译

  • 逻辑视图(Logical View),设计的对象模型(使用面向对象的设计方法时)。
  • 过程视图(Process View),捕捉设计的并发和同步特征。
  • 物理视图(Physical View),描述了软件到硬件的映射,反映了分布式特性。
  • 开发视图(Development View),描述了在开发环境中软件的静态组织结构。

架构的描述,即所作的各类决定,能够围绕着这四个视图来组织,而后由一些用例 (use cases)或场景(scenarios)来讲明,从而造成了第五个视图。正如将看到的,实际上软件架构部分从这些场景演进而来,将在下文中讨论。设计

 

后来,Philippe Kruchten加入Rational,他的4+1视图方法演变为著名的、为许多架构师所熟知的“RUP 4+1视图方法”(以下图所示)。对象

 

 

http://www.uml.org.cn/zjjs/200910264.aspblog

相关文章
相关标签/搜索