敏捷开发对软件架构设计产生了一定的影响,让人产生敏捷开发中"轻架构设计"的印象。文章就笔者经验,和大家一起讨论一下敏捷中的架构设计这个话题。 # G1 Y% K2 ~; ]; q% w
首先,笔者认为敏捷开发是一种软件过程方法和工具,敏捷开发本身并不能代表架构设计。这就好比建筑架构设计和建筑工程管理之间的差别一样,两者是建筑的两个方面。相同的软件行业也是类似的情况,软件架构设计描述的是事物本身,而敏捷开发描述的是创建这个事物的过程。所以敏捷开发和架构是没有直接替代关系的两个范畴。% |, e: q! f' v
但敏捷开发后,架构设计(内容和形式上)还是有了一定程度的变化。
3 X0 E9 @' y3 U7 Q3 W7 Z& i( P1. 敏捷开发中架构设计的方式
# A% @' L0 j2 U1 M这里的架构设计方式,指什么时候进行架构设计,并以什么样的方式进行架构设计,如Iteration中新需求引入时,重构的方式,Code is Design的方式等。! Z" C( n# {" Q5 C% p/ f( _# E* K! D/ d
下图描述了敏捷开发前和后架构方式:8 y6 m) |/ n6 m1 Q* f/ d' c1 |