一.定义与目的
ANSI / IEEE 1471-2000是对软件密集型系统的架构进行描述的标准;
其目标在于:便于体系结构的表达与交流,并通过体系结构要素及其实践标准化,奠定质量与成本的基础。
什么是密集型系统呢?
1471中的框架标准,主要是针对密集型系统(software-intensive 也称作增强型软件),是指软件对于整个系统的设计、构建、部署和评估有重要影响的任何系统。
视图:是指从相关的关注点的角度来看整个系统的表示。
视点:则是构造和使用视图的约定规范。是一种模式和模板。
他们的关系是:view是表达系统架构在viewpoint中所定义的关注点的表达,而viewpoint是定义了一种语言或方法来描述这些view。他们就类似viewpoint探照灯和人们通过探照灯点亮而看到的view。
二.分层及说明
1.分为5层
第一层:Mission
第二层:Environment,System,Architecture
第三层:Stakeholder,Architectural Description,Rationale
第四层:Concern,Viewpoint,View
第五层:Library Viewpoint,Model
2.详细说明
第1层:Mission(任务)
系统的存在是为了在某种环境里履行1个或多个任务。一个任务(mission)是指一种使用或操作,是一个系统想要满足由一个或多名利益相关者的目标
第二层: System/Environment/Architecture
System, 翻译成中文就是系统。具体的定义是:一系列组件,组织在一起,相互作用从而完成一个或者一些特殊的功能。
Environment:系统不可能单独存在,它总是存在在一个环境之中。我们将系统范围之外的东西,对系统有影响,有交互的客观存在定义为环境(Environment).有时也称为系统的上下文(context)。
Architecture:系统架构。每个系统有一个架构。无论你是有意设计而形成,或者自发形成。
第三层:System stakeholder/AD/Rationale
stakeholder:系统利益攸关方(An individual, team, or organization with interests in, or concerns relative to, a system)。一个系统有一个到多个利益攸关方。
Architectural Description:简称为AD。直译为系统描述。一个系统架构,有一个系统描述和它对应。系统描述是由stakeholder来识别出来并整理成文。
Rationale:从字典上查下来的含义是:基本原理,根本原因。那么在架构描述文件中要出现那些“基本原理”和“根本原因”呢?个人以为:
在设计软件架构时,我们做了许多取舍,选择。我们需要列出之所以选择A而不是B的理由;
架构设计是如何满足功能性需求和非功能性需求。
第四层:Concern/Viewpoint/View
Concern:翻译成中文是关心点,关注点。concern是和stakeholder联系在一起。利益攸关方有一个或多个concern。通常不同的利益攸关方其关注点不尽相同。有时甚至是矛盾的。
Viewpoint:我将它直译成观察点。就是你站在什么地方来看这个系统。不同的stakeholder可能有不同的concern,从而导致不同的观察点。
View:我将它直译成视图。就是stakeholder站在某个观察点,他看到系统是个什么样子。视图和观察点一一对应。
第五层:Library Viewpoint/Model
Library Viewpoint:就是一个库,库中存放了前人正对各种系统,各种不同的stakeholder,各种不同的concern,总结出来的观察点。这样可以方便后人来参考使用。
Model:直译成模型。就是用来表达视图的方法。直白地说,就是系统中各种元素是如何组织在一起发挥作用。我们用图形化的表示把你看到的东西表达出来。
3.换个角度来理解
任何一个系统(System)是为了达成某些利益相关者(Stakeholder)的某些人物(Mission),在特定环境(Enviroment)中构建的。每一个系统都有一个架构(Architecture)。
架构(Architecture)是对所有利益相关者的关注点(Concern)的响应和回答,通过架构描述(Architecture Description)来说明。每一个利益相关人都有各自的关注点。这些关注点是指对其重要的,与系统的开发、运营或其它方面相关的利益。
架构描述(Architecture Description)本质上是多视图的。每一个视图(View)是从一个特定的视点(Viewpoint)来表述架构的某一个独立的方面。试图用一个单一的视图来覆盖所有的关注点当然是最好的,但实际上这种表述方式将很难理解。
视点(Viewpoint)的选择,基于要解决哪些利益相关人的哪些关注点。它决定了用来创建视图的语言、符号和模型等,以及任何与创建视图相关的建模方法或者分析技术。
一个视图(View)包括一个或者多个架构模型(Model),一个模型也可能参与多个视图。模型较文本的表述的好处在于,可以更容易的可视化、检查、分析、管理和集成。