聂同学

一个程序员和架构师的实践与思考

架构设计过程的驱动技术(一)

驱动技术是方法论的第一步,是对目标问题进行分割,并分别进行管理跟进的技术。

我们常说“这个问题从何处着手呢?”——驱动技术要做的就是:找到从何着手,跟进着手过程,评估着手效果,归纳着手结论。

具体到架构设计方法论,驱动技术要解决的就是:

  1. 如何将目标系统1分解为可以应对的问题。
  2. 如何跟进应对这些问题的过程。
  3. 如何评价问题被应对的程度。
  4. 如何归纳所有应对结果并形成架构设计。

其中第一条,是区别各驱动技术的要点。也是理解和选择各驱动技术的要点。分解依据不同,跟进、评价、归纳等机制也相应不同。

从这个角度看,架构设计中常见的驱动技术有:

  1. 特征驱动,或者叫需求驱动。分解依据是目标系统的特征。特征驱动是收集筛选系统的特征,并跟进特征的实现措施的驱动技术。经典的架构设计方法论多采用这种驱动技术。

  2. 风险驱动。分解依据是目标系统生命周期中蕴藏的风险。风险驱动是发现生命周期中的风险,并跟进风险的控制措施的驱动技术。风险驱动是“不完备架构设计方法”的主要驱动技术。作为本人团队最常用的驱动技术,前期博客已经做了阐述2

  3. 模式驱动。分解依据是团队积累的架构模式(也包括反模式)。模式驱动是筛选适用的模式,并跟进模式的应用措施的驱动技术。

  4. 直觉驱动。或者说不使用任何驱动技术。当团队处于非常熟悉的领域、平台、技术栈的时候,直觉驱动确实存在。这种情况下架构设计基本已不需要“过程”来管控。不需要过程管控的架构设计是否合理,团队中意见并不一致,个人认为要慎重3

后一篇


  1. 本篇中以新系统架构设计为例,但所谈适合其他架构设计,比如架构重整改进、仅设计一个模块等。

  2. 系列:敏捷的架构设计
    以场景思维辅助风险驱动架构设计

  3. 架构设计不能忽视过程产出

方法论, 架构, 过程

分享 -