软件架构之 Refined Architecture阶段

     Refined Architecture阶段是架构设计的阶段,在学习了这一阶段的内容之后,我认为这个阶段的核心就是分而治之,并且离不开多视图的方法。种优秀的多视图方法,应该能够比较完善地覆盖架构设计的各项工作内容,且将每项工作内容明确地、有理有据地、一目了然地划归到不同架构视图中去。

 

 RUP 4+1视图-重视OO方法,Use Case驱动,强调模型的重要性

 

     “4”是架构设计,“+1”是驱动元素

 

  RUP的五种视图:

   1、用例图-定义用户的需求和系统的功能,为整个技术架构的上线文环境

用例图通常是软件开发的起始点,完善的用例图可以展示出系统的全部功能。

   2. 逻辑视图-用类的方式实现用例视图的内部逻辑结构

逻辑视图重点描述行为,属于需求分析阶段与开发人员沟通的建模

   3. 开发视图-关注程序包,源程序的目录

   4. 处理视图-处理视图关注进程、线程、对象等运行时概念,以及相关的并发、同步、通信等问题

   5.物理视图-关注软件的物流拓扑结,以及如何部署机器和网络来配合软件系统的可靠性、可伸缩性等要求

  

 

 

 

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

     

他们的价值以及他们之间的关系就像不同科的医生,不同的医生对人体有着不同的视图。尽管这些视图不同,并且有着较大的差异,但他们呢都具有内在的相关性,共同描述了整体的结构。

视图不是阶段

看似复杂的5中视图,每种视图都是从特定的角度规划系统的分割与交互,都是架构定义的“组件”+“交互”的体现,每种视图都相当于一个组件,这些视图之后又相互联系,进行交互。从“繁”中提炼出“简”。 

    

    逻辑架构

       划分子系统策略可归纳为 3 种:
            分层的细化
            分区的引入
            机制的提取
   分层的细化

     

 

 分层是最常用的架构模式,在初期,所有的系统架构都要进行分层,“分层细化”是划分子系统的比用策略之一。

     分区的引入

    因为需要有一个一个具体的功能,对每个功能进行完整的定义、设计、编码和测试,所以引入分区就是必要的。

    分区是一个单元,位于某个层的内部,但比层小,对每一层进行分区设计。

    机制的提取

    机制是一个设计的灵魂所在,机制就是预先定义好的,能够完成预期目标的,基于抽象角色的协做方式。

    不仅包括协作关系,还包括了协作流程。

    三种手段位于不同的维度,相辅相成

     

 

   分层的细化、分区的引入、机制的提取这3种策略背后的4个通用设计原则

     职责不同的单元划归不同子系统。
     通用性不同的单元划归不同子系统。
     需要不同开发技能的单元划归不同子系统。
     兼顾工作量的相对均衡,进一步切分太大的子系统。

  

我们在架构过程中,要坚持每个模块和子系统之间是相互协作而进行的,直接接口设计,无视协作需要而定义的接口很难顺畅的被其他模块或子系统使用。

结构设计与行为设计相分离。

 

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

 

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

 

    架构设计不是一蹴而就。需求对架构设计有“驱动”作用,不断设计中间成果->质疑中间成果->不断调整完善细化中间成果->继续质疑->继续完善…

   划分子系统,设计逻辑架构过程

        根据当前理解划分(从概念架构开始)

        找到某功能的参与单元(运用三手段进行子系统划分)

        让它们协作完成功能(职责协作)

        质疑并推进设计的深入(定义包-接口图)

 

 

 

 

 

 

 

 

   

   

posted on 2020-04-10 11:35  方木Fengl  阅读(292)  评论(0编辑  收藏  举报

导航