绘制软件架构图的主要原因之一是在软件设计过程中交流思想,就像你会在建筑项目前期看到草拟的蓝图。
在我定期举办的训练班上,我会要求各个小组设计一个简单的金融风险系统 ,这是其中一堂课上完成的一张架构图的照片。除了解决方案,这张图本身在我所见中也相当典型,它展示了一个概念性设计而不是技术细节。
问人们为什么他们的图不展示任何技术决策,得到的反应多种多样:
- “[金融风险系统]的解决方案很简单,可以用任何技术构建”;
- “我们不想把一种解决方案强加给开发者”;
- “这属于实现细节”;
- “我们遵循‘最后责任时刻’原则”。