初学架构设计的第一步:需求、愿景与架构

    

     了解<需求>、<愿景>与<架构>三者的关系。也就是<需求分析>、<观想愿景>与<架构设计>三者的关系。 


一、需求(Requirements)分析:

    这通常是由目前面临的问题(Problem)所引发出来的。着重于现实问题和条件的分析,然后寻求解决问题的方法、技术和资源。就系统开发人员来说,需求主要有两种:用户需求和系统需求。一般而言,人们通常会把它看成是系统开发时必须满足的<限制>(Constraint),也是要达成的<目标>(Goal)


     wKiom1Yqm1bBD1NUAAFJw9ANiRw256.jpg

     (视频课程,请点击上图)


二、观想愿景(Vision):

    由于需求非常贴近现实,若直接拿来当作<目标>的话,常有见招拆招或见树不见林的缺点。甚至,会有<短视而缺乏远见>之嫌。于是,透过观想愿景来汇集更多视角、扩大视野、产生洞见,成为系统开发的理想目标。一般而言,带来重大革新的公司(如苹果)都会提出一个愿景(Vision),告诉人们应该去追求的事物。苹果公司的前首席设计师布鲁诺(R. Brunner)说道:“通常,伟大产品的成功之道并不是从草图和定义开始的,而是以一个点子(想法)开始,形成一条切实可行的路;然后对此不断开发和经营,这是一个战略性的过程。

       wKioL1YqnSLAiA9GAAEk20mVUDE137.jpg 

       (视频课程,请点击上图)


三、架构(Architecture)设计:

  • 需求分析从现实(Reality)出发,不但找出问题,并且厘清它的现实条件和限制。观想愿景则指引出我们的方向和目标(Goal)。架构设计就从这个目标出发,以终为始,从愿景映射到现实(Mapping from vision toreality)。恰好与需求分析是相反的视角,两者互补而相成,殊途而同归,才能得出一条从现实通往目标之路(或蓝图),这就是所谓的架构(Architecture)了。


    两者互补:需求分析偏重<分>,架构设计偏重<合>

  • <>另一面<>需求分析注重于<>,另一面是架构设计注重于<>许多人误认为,架构设计是要寻觅系统的共通性和不变性。其实,这是需求<分析>的工作;而不是架构<设计>的工作。在人们展开对事物(或系统)的分析(Analysis)过程中,自然而然会对其分析结果进行抽象,抽出万变不离其<>,把此宗视为不变的序(Order)或本质(Essence),就会得到系统的共通性和不变性了。如下图:

         wKioL1Yq1OSCUpOSAABr6-bHLI0061.jpg

         

  • 需求分析与架构设计是两个不同视角,互补而相成,所以架构师必须兼顾两个视角,才能完成一个优质的架构(蓝图)架构是独一无二的,架构设计是追求独特性的、气象万千的、与众不同的崭新组合。

  • 苹果乔布斯说创造无非就是把事物联结起来。即若是非凡的创通常也不过是对已有事物进行的新组合和关联而已。

  • 在《7 Brains:怎样拥有达芬奇(De Vinci)的7种天才》一书里,作者写道:能不能看出事物的关系和模式,并做出不寻常的组合和关联,乃是创造力的核心要素。

  • 例如在飞机行业里,架构师的愿景是把一群各自「不会飞」的组件(如轮胎、引擎、机翼、机尾、油箱等),以精致架构将它们巧妙地组<>起来,竟然整体就飞起来了。如下图:

         wKiom1Yq1omiTUzWAACeGzmXa_8194.jpg

  • 从愿景出发,架构师心中先有<>的目标,才来做分的动作。分离出很多接口,依据接口来组合出许多新奇的产品。

  • 例如肯德基餐厅卖炸鸡,肯德基是客人来之前大师傅先做分(庖丁解鸡),等客人来了才由柜台的小弟×××迅速组合,如下图:

         wKioL1Yq2XjRrJ3oAADx-qCKC_k510.jpg

      

相關文章:

    1. 两种观点兼顾的架构设计方法


~ End ~