【发布时间】:2010-09-01 21:49:07
【问题描述】:
您会如何简单地描述 DSM?
【问题讨论】:
-
为什么不去维基百科查一下呢?
-
好吧,维基百科的文章可能更简单。
-
我一直在寻找开发人员用他们自己的话来说。谢谢。
标签: matrix structure dependencies
您会如何简单地描述 DSM?
【问题讨论】:
标签: matrix structure dependencies
简单来说,DSM 是一种不同于方框和箭头图的视觉方式来表示图形。有趣的是,虽然 boxes and arrows diagram 擅长显示具有几十个节点且没有太多连接的小图(稀疏图),但 DSM 优于 boxes 和箭头图 在显示更大的图表。为此,我们说 DSM 可扩展。缺点是 DSM 不像 方框和箭头图那么直观,并且带有学习曲线。
与方框图和箭头图相比,DSM 尤其擅长使结构模式变得明显。具体来说,在这篇博文Identify Code Structure Patterns at a Glance 中,解释了如何使用依赖结构矩阵来识别代码结构模式。截图是使用工具 NDepend 的Dependency Structure Matrix 完成的。以下是一些模式:
分层代码(没有循环的代码,肯定是 DSM 一眼就能看到的最酷的东西)
具有依赖循环的代码
高内聚/低耦合
饥饿的来电者
受欢迎的被叫者
相互耦合
数据对象
【讨论】:
DSM 背后的基本思想是它以表格形式表示“依赖”或“使用”关系。 Parnas 定义了 A 和 B 之间的“使用”关系,因此当 B“使用”A 时,意味着 B 依赖于 A 的正确操作来实现自己的正确操作。
uses 关系在实际系统中形成一个图。 DSM 是该图的矩阵表示,即所谓的“incidence matrix”,如果组件之间存在使用关系,则标记每个单元格。所以如果一个 DSM D 中有 n 个组件,Di,j = 1 iff j “使用”i.
【讨论】: