聂同学

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

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

模式驱动不是一种顶层的驱动技术。因为架构模式本身,严格来讲并不是对目标系统本身的分解(而特征和风险则是)。如果说得完整一点,应该是:“为了实现xx特征(或者控制xx风险),我们应用xx模式。”。所以模式驱动其实是在特征驱动或风险驱动之后接着应用的驱动技术。但实际很多情况下,团队只要稍微知道要设计的系统的类型,脑中已经冒出了许多模式,后续也是依据这些模式的应用来跟进,可以说淡化了原有的顶层驱动技术。

由于不是顶层驱动技术,模式驱动很难验证最终解决了问题,比如不能说:“由于我们使用了xx、yy、zz模式,所以我们能完成XX系统。”反过来,对于顶层的驱动技术,就可以说:“由于我们实现了所有典型的特征,所以我们能实现XX系统”,或者,“由于我们遏制了所有(发现了的)风险,所有我们能完成XX系统”。所以如果使用模式驱动,应该要回过头来,借助顶层驱动技术来验证问题的解决。从这个意义上来讲,可以说模式驱动是被顶层驱动嵌套使用的。

特征驱动和风险驱动分解问题时,也会频繁使用模式思维,但这不是模式驱动。比如说特征驱动,整理系统的质量需求的时候,我们常常使用一个“质量需求检查表”。其中列举了特定类型系统常见的质量需求。我们对此一一检视,判别目标系统是否有此需求。这是典型的模式思维。但这里的模式不是架构设计模式,这里也不是将目标系统分解为模式进行跟进。所以不是模式驱动的架构设计。

方法论, 架构, 过程

分享 -