您好,登录后才能下订单哦!
初学架构设计的第一步:需求、愿景与架构
了解<需求>、<愿景>与<架构>三者的关系。也就是<需求分析>、<观想愿景>与<架构设计>三者的关系。
一、需求(Requirements)分析:
这通常是由目前面临的问题(Problem)所引发出来的。着重于现实问题和条件的分析,然后寻求解决问题的方法、技术和资源。就系统开发人员来说,需求主要有两种:用户需求和系统需求。一般而言,人们通常会把它看成是系统开发时必须满足的<限制>(Constraint),也是要达成的<目标>(Goal)。
(视频课程,请点击上图)
二、观想愿景(Vision):
由于需求非常贴近现实,若直接拿来当作<目标>的话,常有见招拆招或见树不见林的缺点。甚至,会有<短视而缺乏远见>之嫌。于是,透过观想愿景来汇集更多视角、扩大视野、产生洞见,成为系统开发的理想目标。一般而言,带来重大革新的公司(如苹果)都会提出一个愿景(Vision),告诉人们应该去追求的事物。苹果公司的前首席设计师布鲁诺(R. Brunner)说道:“通常,伟大产品的成功之道并不是从草图和定义开始的,而是以一个点子(想法)开始,形成一条切实可行的路;然后对此不断开发和经营,这是一个战略性的过程。”
(视频课程,请点击上图)
三、架构(Architecture)设计:
需求分析从现实(Reality)出发,不但找出问题,并且厘清它的现实条件和限制。观想愿景则指引出我们的方向和目标(Goal)。架构设计就从这个目标出发,以终为始,从愿景映射到现实(Mapping from vision toreality)。恰好与需求分析是相反的视角,两者互补而相成,殊途而同归,才能得出一条从现实通往目标之路(或蓝图),这就是所谓的架构(Architecture)了。
两者互补:需求分析偏重<分>,架构设计偏重<合>
<分>的另一面是<合>。需求分析注重于<分>,另一面是架构设计注重于<合>。许多人误认为,架构设计是要寻觅系统的共通性和不变性。其实,这是需求<分析>的工作;而不是架构<设计>的工作。在人们展开对事物(或系统)的分析(Analysis)过程中,自然而然会对其分析结果进行抽象,抽出万变不离其<宗>,把此宗视为不变的序(Order)或本质(Essence),就会得到系统的共通性和不变性了。如下图:
需求分析与架构设计是两个不同视角,互补而相成,所以架构师必须兼顾两个视角,才能完成一个优质的架构(蓝图)。架构是独一无二的,架构设计是追求独特性的、气象万千的、与众不同的崭新组合。
苹果乔布斯说:“创造无非就是把事物联结起来。即若是非凡的创造通常也不过是对已有事物进行的新组合和关联而已。”
在《7 Brains:怎样拥有达芬奇(De Vinci)的7种天才》一书里,作者写道:“能不能看出事物的关系和模式,并做出不寻常的组合和关联,乃是创造力的核心要素。”
例如在飞机行业里,架构师的愿景是把一群各自「不会飞」的组件(如轮胎、引擎、机翼、机尾、油箱等),以精致架构将它们巧妙地组<合>起来,竟然整体就飞起来了。如下图:
从愿景出发,架构师心中先有<合>的目标,才来做分的动作。分离出很多接口,依据接口来组合出许多新奇的产品。
例如肯德基餐厅卖炸鸡,肯德基是客人来之前大师傅先做分(庖丁解鸡),等客人来了才由柜台的小弟×××迅速组合,如下图:
如果您想更进一步培养架构师的丰富素养,就请您参阅我(高焕堂)的书籍:《思考软件、创新设计:A段架构师的思考技术》(北京.电子工业出版社)。
相關文章:
1. 两种观点兼顾的架构设计方法
~ End ~
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。