系统架构师秘籍(三)架构视角和关注点

上次的博文中,我们介绍了一下软件架构的基本概念,接下来我们介绍一下如何来架构一个软件系统。

当我们开始进行系统架构设计的时候,通常会考虑以下几点:

所设计的软件体系结构的主要功能要素是什么。

如何将这些要素与其他系统关联。

哪些信息需要存储、管理和展示。

要实现这些功能要素需要什么硬件和软件。

所设计的软件体系结构提供什么样的特性和能力。

开发、测试、支持、培训环境都需要做什么。

考虑上述问题的时候,我们从哪些层面来考虑呢?那就是架构视角和关注点两个层面。

架构视角

架构视角是从一个或多个角度对软件体系架构的各个方面进行关注,它反映了软件体系架构的一个或多个利益相关者的不同关注层面。

要确定一个架构视角通常我们可以从以下几个方面进行关注:

1、利益相关者关注会关注软件体系结构的哪些层面,这里的利益相关者可以划分为一类或一个群体,针对这类成员我们可以从他们的兴趣和专业知识水平进行分析。

2、这些利益相关者拥有多少专业的知识和理解力,例如,不同领域的用户虽然不大可能对硬件和软件有太多的了解,但他们对本领域内的知识和业务是非常清楚的。

3、不同的利益相关者可能的关注点不尽相同,而我们要做的就是尽量迎合这些不同利益相关者的关注点,例如,他们关注的软件体系结构的背景等等。

4、对于这些利益相关者,他们并不需要关心过多的体系结构,所以划分出哪些他们需要关注的,对于非技术性的内容,他们更多的关注的是我们能否保证按时完成。

对于架构师,当我们进行架构描述的时候,过多的技术细节会使利益相关者不堪重负,但是技术太少,又会给我们的利益相关者造成一些担忧,所以挑选适当的技术细节对于架构描述来讲非常重要。

关注点

作为一个架构师,站在系统的角度挑选一个合适的关注点进行架构描述是非常不容易的,值得庆幸的是,现在我们不再需要这么做了。在Kruchten对架构师所需要关注的四个关注点:逻辑、物理、流程、扩展进行的介绍中,我们可以使用一整套现成的模版库和模式进行创作和架构了。

一个关注点就是创建一系列的模板,构建一系列的视图和约定,它反映了架构师的观点和方针,利益相关者的关注点以及架构本身的组成部分。架构所反映的关注点能够反映一个架构的相关内容,同时又可以作为同类型的架构创建和架构描述。

定义一种标准的方法,一个标准的语言,用来描述软件体系的不同层面和不同的模型,让利益相关者能够理解任何的架构描述,这样一旦利益相关者熟悉了这些标准,这对于架构一个软件体系结构来说是非常有吸引力的。尽管在实践中,我们还没有达到这种目标,但是我们已经创建除了一些能够被普遍接受的软件体系模型和约定,例如:实体关系模型、UML等这类被广泛接受的语言。

到目前为止我们已经大致了解了,作为架构师,我们要考虑的内容有哪些,但这还远远不够,接下来我们继续讲解其他内容。

系统架构师秘籍(三)架构视角和关注点,布布扣,bubuko.com

时间: 2024-08-09 19:52:43

系统架构师秘籍(三)架构视角和关注点的相关文章

系统架构师秘籍(一)软件架构

当我们在讨论软件系统架构的一些概念的时候,经常会借助一些其他学科(如造船.建筑等)的概念进行描述.例如当我们讨论"架构"这个概念的时候,我们就会借助微处理器的内部结构.机器的内部结构.组织网络.软件架构和其他许多东西进行对比和理解.今天主要介绍一下软件架构.架构元素.架构描述和一些其他相关内容. 什么是软件架构 在现在社会中到处都可以看到计算机的身影,不仅仅是数据中心的桌面上,甚至在汽车.洗衣机和信用卡上.这些计算机无论体积大或小.结构简单或者复杂,所有的计算机都是由三个基本组成部分:

系统架构师秘籍(二)软件架构- 续

上次的文章中,我们简单描述了一下软件架构的概念,接下来我们描述一下软件架构中的具体细节. 软件架构 所谓软件元素,即指组成软件系统的一个最基本的模块.一个软件元素的特性在很大程度上取决于系统的类型,以及你考虑和选取软件元素的背景和关注点.程序Lib库,子系统,可部署的颗粒或者控件(如企业级Java Bean,ActiveX 控件等),可重用的软件产品(如数据库管理系统),全部的应用程序都可以称为一个软件系统的软件元素,它取决于软件系统的构建. 一个软件元素所拥有的特点如下: 一个明确的界定的责任

阿里P7架构师:通往架构师路上的经验总结

困扰架构师日常问题 架构师应不应该写代码为什么别人的系统总是那么烂成为架构师最困难的门槛是什么?如何更高效的学习?面对目前流行的技术不知如何下手?一家公司待久了,过得很安逸,但跳槽时面试碰壁?觉得现在的技术基础感觉到很扎实,但就是自己的技术提升不上?觉得自己很牛B,一般需求都能搞定,但是所学的知识点没有系统化,很难在技术领域继续突破?现在觉得自己技术还可以,但就是薪资涨不上去? 以上这几点,做为开发人员的你们,有遇到过么?有为自己想过么?有细心仔细的去解决过这些问题么?有深刻的想过么?虽然这几个

架构师之路->架构师思维的培养

公司的CMS(综合赋码管理系统)是WINFORM的CS架构.这套系统的架构师换了3届,到现在已经几年没有架构师了.本来入职时,岗位目标就是这个“自动化架构师”. 后来和领导达成共识先争取成为储备架构师,因为架构首先是为业务服务的,而工控行业有许多特别的地方,不是普通的软件技术堆叠就能做出优秀的工控软件的.原来以为已经有十多年经验了,CS没有啥搞头了.实际上最近近半年的学习,发现真的是需要活到老学到老:不要轻易以为小领域就容易成为专家,其实是经常遇到瓶颈的.拿自己来说十几年做了无数项目,未必每次技

Android架构师之路-架构师的决策

android架构师之路-架构师的决策 内涵+造型:可能大部分人对这个内涵和造型不是很理解,在这里我可以给大家举个生动的例子:相信很多人都有自己的汽车, 我们总结汽车有哪些属性和功能,这些都是内涵,大自然中的每个对象都有自己的内涵(人有手有脚,还可以跑),然后我们 将这些内涵放入指定的造型中,类似模版,比如java语言如果定义一个class的时候,必须在作用域(大括号内部)指定属性和 函数,这个class的定义规范就是一个造型,然后我们将汽车这个内涵按照class的规范定义一个汽车class,那

一线架构师第三部分——细化架构

架构师的工作是领导团队的开发,但很多情况下,架构师是坐镇帷帐之中而决胜千里之外的,拥有千里的运筹能力或许就是能让项目团队一路走向成功的重要因素.对于架构师来说需求分析.分割层次.对象建模这些都是他们的拿手好戏,而在架构师对项目的需求进行合理架构后,就能得到一个初步的概念模型. 概念模型是投标.售前.市场宣传等工作的强有力的支持,一个良好的模型能有效的帮助项目整体的前期搭建与后续优化,所以这也是为什么架构师如此重要. 概念模型作为架构师的必修课,实际上架构师还需要一门重要的“辅修课”——细化架构和

资深首席架构师眼中的架构应该是怎样的?

“架构的视角每个人都不一样,这位在eBay.携程.唯品会等平台型互联网公司都工作过的老司机就以平台架构视角和大家分享架构心得体会.一家之言,欢迎讨论. 本文首发于InfoQ垂直公众号「聊聊架构」,ID:archtime. 我对架构定义的理解 大概在7~8年前,我曾经有一个美国对口的架构师导师,他对我讲架构其实是发现利益相关者(stakeholder),然后解决他们的关注点(concerns),后来我读到一本书<软件系统架构:使用视点和视角与利益相关者合作>,里面提到的理念也是这样说:系统架构的

图解:在资深架构师眼中的架构应该是怎样的?

我对架构定义的理解 大概在7~8年前,我曾经有一个美国对口的架构师导师,他对我讲架构其实是发现利益相关者(stakeholder),然后解决他们的关注点(concerns),后来我读到一本书<软件系统架构:使用视点和视角与利益相关者合作>,里面提到的理念也是这样说:系统架构的目标是解决利益相关者的关注点. 这是从那本书里头的一张截图,我之前公司分享架构定义常常用这张图,架构是这样定义的: 每个系统都有一个架构 架构由架构元素以及相互之间的关系构成 系统是为了满足利益相关者(stakeholde

Android架构师之路-架构到代码的演练

从EIT造型-->code 架构师的工作: 主要任务:架构师(强龙)遵循EIT造型,分出E .I .T三个要素 强龙掌控:--成产面,强龙掌控I,外包就不会失控 --系统面,E为控制点,通过I来驱动T. 套用商业用词:框架和插件,通过不同的术语表达同样的意思. E是控制点,通过I来驱动T E+I = 框架(Framework) T = 插件(Plugin) 分工模式: 架构师做EIT设计,强龙做框架,地头蛇配插件. 区分插件和配件: