有人可以向我展示一个好的依赖矩阵是什么样子并说明原因吗?
我想开始使用 DSM,但不知道如何开始。
一个好的依赖矩阵是什么样的?为什么?它是如何运作的?
I would like to start using DSM, but not sure how to get started.
What does a good dependency matrix look like and why? How does it work?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
在这篇博文中毫不费力地识别代码结构模式 解释了如何使用依赖结构矩阵来识别代码结构模式。屏幕截图是使用 NDepend 工具的依赖结构矩阵完成的。以下是一些模式:
分层代码(没有循环的代码,当然是 DSM 可以一目了然地向您展示的最酷的东西)
具有依赖循环的代码
高内聚/低耦合
饥饿的来电
热门被呼叫者
相互耦合
数据对象
On this blog post Identify Code Structure Patterns with No Effort it is explained how to use a Dependency Structure Matrix to identify Code Structure Patterns. The screenshots are done with the Dependency Structure Matrix of the tool NDepend. Here are a few patterns:
Layered code (code with no cycle, certainly the coolest thing that a DSM can show you at a glance)
Code with dependency cycles
High Cohesion / Low-Coupling
Hungry Caller
Popular Callee
Mutual Coupling
Data Object
Erik Dörnenburg 给出了我见过的最好的描述,包括一些图表的排列如何揭示结构问题的好例子。简而言之:
行
Erik Dörnenburg gives the best description I've seen, including some good examples of how arrangements of the graph can expose structural issues. Briefly:
以相同的顺序在 X 轴和 Y 轴上列出子系统。
对角线标记“O”。子系统不依赖于自身
很有意义。垂直向下移动矩阵。如果该子系统
取决于匹配的水平子系统,标记一个 X。
一个好的子系统会重新排列子系统以显示可能的模式
导致良好的重构。
不过我手边没有一个。对不起。
List the subsystems on the X and Y axis in the same order.
Mark an "O" diagonally. Subsystems depending on themselves doesn't
make much sense. Go vertically down the matrix. If that subsystem
depends on the matching horizontal subsystem, mark an X.
A good one rearranges the subsystems to show patterns that might
lead to a good refactoring.
I don't have one handy, though. Sorry.
DSM 最有价值的功能之一是检测周期,例如项目或包之间的周期。矩阵的右上角显示一个循环。
有关更多详细信息,请参阅此页面: http://docs.codehaus.org/display /SONAR/依赖+结构+矩阵
One of the most valuable feature of a DSM is to detect cycles, for example between projects or packages. A cycle is displayed in the top-right side of the matrix.
See this page for more details : http://docs.codehaus.org/display/SONAR/Dependency+Structure+Matrix