什么是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个通用设计原则:
职责不同的单元划归不同子系统。
通用性不同的单 元划归不同子系统。
需要不同开发技能的单元划归不同子系统。
兼顾工作量的相对均衡,进一步切分太大的子系统。
逻辑架构设计的整体思维套路
整体思路:质疑驱动的逻辑架构设计
要点如下:
质疑驱动。
结构设计和行为设计相分离。
过程串联
质疑驱动的逻辑架构设计整体思路,是从运用分层的细化、分区的引入、机制的提取进行子系统划分开始的。
找到某功能的参与单元
协作完成功能