我想开始使用 DSM,但不知道如何开始。
一个好的依赖矩阵是什么样的,为什么?它是如何工作的?
在这篇博客文章《不费吹灰之力地识别代码结构模式》中,解释了如何使用依赖结构矩阵来识别代码结构模式。屏幕截图是使用工具 NDepend的依赖结构矩阵完成的。这里有一些模式:
分层代码(没有循环的代码,肯定是 DSM 可以一目了然的最酷的东西)
具有依赖循环的代码
高内聚/低耦合
饥饿的来电者
热门被叫方
相互耦合
数据对象
Erik Dörnenburg 给出了我见过的最好的描述,包括一些很好的例子来说明图表的排列如何暴露结构问题。简要地:
按相同顺序列出 X 轴和 Y 轴上的子系统。对角标记一个“O”。依赖于自身的子系统没有多大意义。垂直向下走矩阵。如果该子系统依赖于匹配的水平子系统,则标记 X。
一个好的方法是重新排列子系统以显示可能导致良好重构的模式。
不过,我手边没有。对不起。
DSM 最有价值的功能之一是检测周期,例如项目或包之间的周期。一个循环显示在矩阵的右上角。有关详细信息,请参阅此页面:http: //docs.codehaus.org/display/SONAR/Dependency+Structure+Matrix