1

无论如何,是否可以使用 jDepend、ant contrib 的 verifydesign 任务或任何其他使用黑名单而不是白名单的类似工具来运行包依赖性分析?

也就是说,我想远不那么严格(至少在最初)。而不是指定包 A 必须只依赖于 B、C 和 K;包 B 必须只依赖于 Q、W 和 R;等等,对于系统中的每一个包,我想首先说:包A绝对不能和W和Y有任何联系,它做的任何事情我都可以。随着时间的推移,随着时间的推移,我可以逐渐添加每个包的预期依赖项的完整列表(A 仅依赖于 B、C、K)。

那么是否有工具可以做到这一点?

4

3 回答 3

1

您可以使用 Structure101架构图来做到这一点,因为这些图可以包含您的代码库的一个子集。在您的示例中,您可以在图表中为 A、W 和 Y 创建 3 个单元格,将 W 和 Y 放在图表中的 A 上方(依赖项只能向下流动,或者至少向上的依赖项被认为是图表的“违规” )。将 W 和 Y 并排放置在 A 上方表示 W 和 Y 之间不应该有依赖关系。如果您不想限制 W 和 Y 之间的依赖关系(还),您可以将它们合并到一个单元格中并相互- 将不检查依赖项。规则会自动检查,您可以生成警告和/或错误(如果需要,可以中断构建)。随着重构工作的进行,您可以逐渐添加到图表中......

于 2011-08-14T16:04:54.507 回答
1

我可以做得更好:您可以在 AspectJ AOP 中表达这样的事情,以便可以在运行时强制执行。“AspectJ In Action”向您展示了如何操作。

于 2010-07-01T19:26:04.827 回答
0

verifydesign 可以不那么严格,因为您可以定义一个“wad”并使其越来越严格。一篇文章的链接,其中有一篇关于遗留系统的文章(这通常违反了大量的预期设计)。

http://www.devx.com/opensource/Article/33729/0/page/4

于 2014-06-12T20:43:39.627 回答