首页 > 代码库 > 系统架构师秘籍(三)架构视角和关注点
系统架构师秘籍(三)架构视角和关注点
上次的博文中,我们介绍了一下软件架构的基本概念,接下来我们介绍一下如何来架构一个软件系统。
当我们开始进行系统架构设计的时候,通常会考虑以下几点:
所设计的软件体系结构的主要功能要素是什么。如何将这些要素与其他系统关联。
哪些信息需要存储、管理和展示。
要实现这些功能要素需要什么硬件和软件。
所设计的软件体系结构提供什么样的特性和能力。
开发、测试、支持、培训环境都需要做什么。
考虑上述问题的时候,我们从哪些层面来考虑呢?那就是架构视角和关注点两个层面。
架构视角
架构视角是从一个或多个角度对软件体系架构的各个方面进行关注,它反映了软件体系架构的一个或多个利益相关者的不同关注层面。
要确定一个架构视角通常我们可以从以下几个方面进行关注:
1、利益相关者关注会关注软件体系结构的哪些层面,这里的利益相关者可以划分为一类或一个群体,针对这类成员我们可以从他们的兴趣和专业知识水平进行分析。2、这些利益相关者拥有多少专业的知识和理解力,例如,不同领域的用户虽然不大可能对硬件和软件有太多的了解,但他们对本领域内的知识和业务是非常清楚的。
3、不同的利益相关者可能的关注点不尽相同,而我们要做的就是尽量迎合这些不同利益相关者的关注点,例如,他们关注的软件体系结构的背景等等。
4、对于这些利益相关者,他们并不需要关心过多的体系结构,所以划分出哪些他们需要关注的,对于非技术性的内容,他们更多的关注的是我们能否保证按时完成。
对于架构师,当我们进行架构描述的时候,过多的技术细节会使利益相关者不堪重负,但是技术太少,又会给我们的利益相关者造成一些担忧,所以挑选适当的技术细节对于架构描述来讲非常重要。
关注点
作为一个架构师,站在系统的角度挑选一个合适的关注点进行架构描述是非常不容易的,值得庆幸的是,现在我们不再需要这么做了。在Kruchten对架构师所需要关注的四个关注点:逻辑、物理、流程、扩展进行的介绍中,我们可以使用一整套现成的模版库和模式进行创作和架构了。
一个关注点就是创建一系列的模板,构建一系列的视图和约定,它反映了架构师的观点和方针,利益相关者的关注点以及架构本身的组成部分。架构所反映的关注点能够反映一个架构的相关内容,同时又可以作为同类型的架构创建和架构描述。
定义一种标准的方法,一个标准的语言,用来描述软件体系的不同层面和不同的模型,让利益相关者能够理解任何的架构描述,这样一旦利益相关者熟悉了这些标准,这对于架构一个软件体系结构来说是非常有吸引力的。尽管在实践中,我们还没有达到这种目标,但是我们已经创建除了一些能够被普遍接受的软件体系模型和约定,例如:实体关系模型、UML等这类被广泛接受的语言。
到目前为止我们已经大致了解了,作为架构师,我们要考虑的内容有哪些,但这还远远不够,接下来我们继续讲解其他内容。