2.2
图表与模型阅读指南
[对后续文档内容中所用到的建模语言(例如UML)、表格(例如目标-场景-决策表)等进行说明。]
3. 架构设计目标
[功能、质量、约束,一个都不能少。]
3.1 关键功能
[对架构设计至关重要的功能,包括如下4类:核心功能、必做功能、高风险功能、独特功能。所谓独特功能,指这个功能覆盖了上述3类功能没有涉及到的职责。]
3.2
关键质量属性
[人之所以痛苦,很多时候是因为追求错误的东西。下图是确定关键质量的5大原则的整体思路图。]
Page 5 of 18
Version: <1.0> Date: < yyyy-mm-dd > [创造性地提出约束需求的4大类型,这是一种极为实用的分类方式。特别是业务需求对架构设计而言是一种约束的观点,解决了很多架构师的现实困惑。下图标明了4类约束在“需求层次-需求方面矩阵”中的位置,可以帮助我们理解产生约束需求的根源。]
4. 架构设计原则
[投标时经常讲“架构设计原则”,但到了《架构文档》,这些着眼大局的考虑却“丢了”。推荐的本文档模板,认为应当把它们“找回来”。]
4.1 架构设计原则
[着重描述重大的权衡取舍考虑。]
4.2
备选架构设计方案及被否原因
[在概念架构一级,对备选架构设计方案进行描述,并阐述它们未被采用的原因。这有利于团队了解当前架构设计方案的来龙去脉,提高团队对当前架构设计方案的认可度。]
4.3
架构设计对后续工作的限制(详设,部署等)
[架构设计不仅应该包含“指导”,也应该包含重要的“限制”。例如,一份只是说明“性能和可扩展性都重要”的《架构文档》,实际上忽视了“可扩展性和性能之间存在的矛盾关系”。此时,最有效的办法就是在《架构文档》中明确说明“任何提升可扩展性的架构设计和详细设计,都应通过架构团队的评审才能引入,以确保性能目标不受重大影响”。]
5. 逻辑架构视图
[关注点:此架构设计视图的关注点是职责划分。]
Page 6 of 18
[参考:任何复杂系统的架构设计都不是一蹴而就的,所以架构师需要理性思维过程的指导。针对逻辑架构设计这个关键环节,《一线架构师实践指南》一书给出了2条建议:一是“以质疑驱动的螺旋思维”,二是相对分离地考虑“结构方面的切分”和“行为方面的定义”。下图所示即为推荐的逻辑架构设计理性思维过程。]
5.1
职责划分与职责确定
[内容:将系统切分成更小的单元,并明确这些单元的职责。具体而言,职责单元可以是层、子系统、模块、关键类等。]
[意义:一句话,职责划分不合理,功能和质量都会受到影响。也就是说,功能需求和质量需求无一不和职责划分相关:一方面,每个功能都是由一条职责协作链完成的;另一方面,职责划分方式也影响着质量,于是需要职责模型针对特定质量属性要求做出相应调整和优化。很多人认为架构设计就是职责划分的艺术,虽略显片面,但足以表明职责划分的重要性。] [参考:基于对业界大量案例的研究,梳理出了“模块划分的3种必用手段”,如下图所示,更多内容可参考《一线架构师实践指南》一书。]
Page 7 of 18
5.2
接口设计与协作机制
[内容:本节描述接口的定义,以及协作的方式和规范。]
[意义:恰恰是因为有了各模块之间“未来合作的契约”,分头开发各模块才有了基本保证。] [参考:推荐利用“包-接口”图,来识别接口。下图为一个“包-接口”图的示例。]
Page 8 of 18
相关推荐: