错与对并不是绝对的

《一线架构师时间指南》-Refined Architecture阶段

什么是Refined Architecture?

    Refined Architecture是相对于Conceptual Architecture而言的,它们是架构设计的两个层次,分别对应于“概念级"解决方案和“规约级”解决方案。须要注意的是, Refined Architecture属于架构设计。

    

 

 

 实际意义 

    多视图方法有两个方面的实际意义:
        利于思考(因为分而治之的思维方式)。
        便于交流(因为在一定程度上分离了涉众关注点)。

业界现状 

    1.误认为多视图是oo方法分支

        将多视图方法经常被误认为是oo方法的分支。其实,无论是oo方法,还是结构化
方法,都远未涵盖架构设计的全部。所以,只具有oo技能对架构师而言是不够的。

    2.误将“视图”当成“阶段”

        对架构设计方法而言,区分阶段和视图的概念是非常重要和必要的。

    3.RUP4+1视图

        

 

 

 

        RUP 4+1视图方法有几个重要特点:
            重视OO方法。
            Use Case驱动。
            强调模型的重要性。

    4.SEL 3视图

        SEL中包含三类视图:

            模块视图。

            组件-连接器视图

            分配视图。

            

 

 

        SEI3视图方法没有RUP 4+1视图方法影响大

实践要领

    五视图方法:

        逻辑视图。

        开发视图。

        运行视图。

        物理视图。

        数据视图。

        

        五个视图各有其“思维立足点”,分别是:
            职责划分(逻辑视图)。
            程序单元组织(开发视图)。
            控制流组织(运行视图)。
            物理节点安排(物理视图)。
            持久化设计(数据视图)。

    每个视图,一组技术关注点

        

        因为其每个视图都是从特定角度规划系统的分割与交互,都是(架构的定义)“组件+交互”的一种体现。

 

逻辑架构

    划分子系统的3种必用策略

        就划分子系统这个架构师必做的工作而言,其实践策略可归纳为3种:
            分层的细化。
            分区的引入。
            机制的提取。

    分层的细化

        

 

 

    分层的引入

      为了支持选代开发,逻辑架构设计中必须(注意是必须)引入分区。分区是一种单元, 它位于某个层的内部,其粒度比层要小。一旦架构师针对每个层进行了分区设计,“ 深度优先”式的迭代开发就非常自然。

    机制的提取

        基于接口(和抽象类)的协作是机制,基于具体类的协作则算不上机制。

        

 

 

         

    架构设计关注点分离原理图

        

    分层的细化、分区的引入、机制的提取这3种划分子系统手段之间的关系:它们处在思维的3个维度上。
    首先,分层和机制位于不同的维度:职责维及通用维

        

 

    是否引入分区,设计所“覆盖”的Scope是完全相同的。原因是层的粒度较大,而层内部引入的分区的粒度更小,便于组合出一个个功能(支持迭代开发)。这是第三维:粒度。

        

 

    分层的细化、分区的引入,机制的提取这3个手段不是相互替代的关系,而是相辅相成的关系。

    划分子系统的四个重要原则

        分层的细化、分区的引入、机制的提取这3种策略背后的4个通用设计原则:
            职责不同的单元划归不同子系统。
            通用性不同的单 元划归不同子系统。
            需要不同开发技能的单元划归不同子系统。
            兼顾工作量的相对均衡,进一步切分太大的子系统。

            

逻辑架构设计的整体思维套路 

    整体思路:质疑驱动的逻辑架构设计

        要点如下:
            质疑驱动。
            结构设计和行为设计相分离。

            

 

     过程串联

        质疑驱动的逻辑架构设计整体思路,是从运用分层的细化、分区的引入、机制的提取进行子系统划分开始的。
            

         找到某功能的参与单元

         

        协作完成功能

            

 

 

 

 

 

         

     

     

 

        

posted on 2020-04-10 11:28  错与对并不是绝对的  阅读(143)  评论(0编辑  收藏  举报

导航