如果把系统视为多维对象,那么UML的类图、序列图、状态图、用例图等就是在不同的维度上对系统建立的视图。这种视图除了维度的差别,在同一维度下还有层次(粒度)的差别,比如:package diagram是比class diagram更高层次(更粗粒度)的视图。系统是多维次多层次的,相应的系统分析也是有维次与层次的。
目前社区流行一种通过剖析底层机制来分析事物的方法。剖析底层机制本身并没有错,只是千万不要认为把底层机制分析清楚了就掌握了事物的本质。因为,从浅处讲,往往底层机制恰好是可以有多种不同实现的,它是非本质的可变的,而高层抽象是更本质的相对稳定的。从深处讲,按系统多维次多层次的观点,正如把类图画得再完美也不过是程序的静态结构特征,程序的动态特征还需要序列图等来体现;底层机制属于实现维,而接口规范维是与之正交的。所以,单纯的底层机制剖析虽然貌似深入,其实犹如“盲人摸象”只执一端而已。我提倡探索底层机制,不过我更提倡首先建立系统的观念,才不至于在深入研究的时候迷失方向。