Нужны инструменты анализа зависимости пакета Java - PullRequest
1 голос
/ 01 июля 2010

Есть ли способ запустить анализ зависимостей пакетов, используя jDepend, задачу ant contrib's verifydesign или любой другой аналогичный инструмент, который использует черные списки вместо белых?строгий (по крайней мере, изначально).Вместо указания пакета А должны зависеть только от В, С и К;пакет B должен зависеть только от Q, W и R;и т.д. для каждого пакета в системе, я хотел бы начать с того, что пакет A не может иметь какой-либо контакт с W и Y, и все, что он делает,хорошо со мной.Затем я мог бы постепенно добавить в полный список ожидаемых зависимостей (A зависит только от B, C, K) для каждого пакета с течением времени, так как все подвергается рефакторингу.1009 *

Ответы [ 3 ]

1 голос
/ 14 августа 2011

Вы можете сделать это с Structure101 Архитектурные диаграммы , поскольку диаграммы могут содержать подмножество вашей кодовой базы.В вашем примере вы могли бы создать 3 ячейки на диаграмме для A, W и Y, поместив W и Y над A на диаграмме (зависимости могут течь только вниз или, по крайней мере, восходящая зависимость считается "нарушением" диаграммы).Помещение W и Y рядом друг с другом означает, что между W и Y не должно быть никаких зависимостей. Если вы не хотите ограничивать зависимости между W и Y (пока), вы можете объединить их в одну ячейку и-зависимости не будут проверены.Правила проверяются автоматически, и вы можете генерировать предупреждения и / или ошибки (прервать сборку, если хотите).И вы можете постепенно добавлять к диаграмме по мере продвижения ваших усилий по рефакторингу ...

1 голос
/ 01 июля 2010

Я могу сделать еще лучше: вы можете выражать такие вещи в AspectJ AOP, чтобы его можно было применять во время выполнения.«AspectJ в действии» показывает вам, как.

0 голосов
/ 13 июня 2014

verifydesign может быть менее строгим в том смысле, что вы можете определить, так сказать, «пачку» и сделать ее более строгой.Ссылка на статью, в которой есть статья о устаревших системах (которые обычно нарушают тонны заданного дизайна).

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

...