第3章 Pre-architecture总论
凡是预则立,不预则废。 -- 孔子,《礼记.中庸》
业内对架构的讨论沿用了传统思路:如果知道了系统需求,就可以此系统构建架构,这种观点是缺乏远见的...... -- Len.Bass 《软件实践架构(第2版)》
架构设计对系统成败非常关键,那么,什么对架构设计的成败非常关键呢?
功能需求、质量属性及约束共同决定了架构,对这3类需求的把握是否到位、设计是否对路,是架构设计成败的关键所在!
然而,业界的现状却是:
- “架构师就是技术高手”的声音充耳不绝,我们常错误地认为“架构师不必懂需求”。例如,许多不知道业务级需求、用户级需求、开发级需求包含的具体内容,更不懂功能、质量、约束对架构设计的影响如何大相径庭。
- 只有少数经验深厚的架构师在“拿到”需求之后,会基于业务背景、系统规模、技术趋势、开发团队现状等现实情况,对需求进行理性的、有针对性的权衡、取舍、补充、而在方法一级,
Pre-architecture
阶段基本是空白的。
期望能够在方法一级为“Pre-architecture
阶段”提供较明确的指导。
核心的“四步法”:
- 需求结构化
- 分析约束影响
- 确定关键质量
- 确定关键功能