做好软件系统设计的5个步骤

发现现在自己在做系统设计的时候确实是会按照一个套路去做,这个套路就是:

系统设计的目的 -> 系统设计的目标 -> 围绕目标的核心设计 -> 围绕核心设计形成的设计原则 -> 各子系统,模块的详细设计。

1. 目的-确定的方向

是指做这个系统设计的目的到底是什么,很多人在做系统设计时,是搞不清为什么要做一个新系统的设计,或者为什么要做一个系统的重构 / 演进的设计,如果搞不清楚这个目的,后面的系统设计上是很容易形成偏差的,导致本来是为了解决一个问题,要去做新的系统或重构 / 升级旧的系统,但最后完全脱离了初心。

另外,还有很重要的一点是,一个大架构师是需要给很多人讲解系统设计的,只有理解并讲清了系统设计的目的,团队才能更好的去实现。

2. 目标-可度量性

围绕上面的目的,能不能形成一些可衡量的目标,从而确保最终系统实现和最初的目的不要出现太大的偏差,相信很多人都经历过最终的系统实现和系统设计偏差极大的现象,主要的原因基本都是没有制定衡量系统设计的目标,并在系统设计上让系统能透出这些目标的情况。

3. 核心设计

这步最重要的就是通过设计如何去实现上面的目标,这个环节中技术的专业、视野、全面的考虑、权衡取舍的主观原则、解题的思路,这是形成最后的核心设计的关键。

在核心设计的这个阶段中,会产生一些新的衡量设计最后实现情况的目标,这些也都要增加到系统设计中,确保最后的实现和设计的偏差度是可视的。

4. 设计原则

有了上面的核心设计后,可以真正的形成一些设计原则,确保后面的子系统 / 模块的详细设计中能够遵循,并在详细设计中体现出来,这样才能让整个大的系统设计的一致性。

5. 各子系统 / 模块的详细设计

这个部分我倒觉得难度不会太大,毕竟有了前面的铺垫,就是解好一个更小范围的题,程序员群体在解题能力上通常是不错的,所以我一直觉得数学功底好是程序员的基本,数学就是典型的解题的学科。

6. Reference


CategoryDesign