Я использовал Lattix для анализа кода C++, .NET, Java и Fortran. Это полезно как для разработки новых приложений, так и для улучшения архитектуры существующего программного обеспечения. Этот инструмент поддерживает прямой импорт .NET dll, классов Java или файлов jar и SQL-соединения. Если вы смотрите на C++ или Fortran, вам понадобится парсер, такой как Klockwork, Understand или Clang. Можно создать текущее обновление для вашего проекта Lattix при каждой сборке программного обеспечения - это позволит вам обновить DSM для постоянного мониторинга архитектуры вашего программного обеспечения.Это может дать вам знать, как меняется ваше программное обеспечение с течением времени, и если какой-либо код нарушает правила, установленные в начале вашего проекта, или если какие-либо правила необходимо изменить и т. Д. Для просмотра существующего программного обеспечения инструмент может быстро разложить системы для вас и определить, где существуют циклические зависимости. Существуют алгоритмы разделения системы на основе близости к другим подсистемам (например, классы) или группированию подсистем на основе шаблонов зависимостей. Это может быть полезно, если вы хотите улучшить архитектуру существующего программного обеспечения и сделать его модульным.
Существует обширная информация о kb.lattix.com - просто зарегистрируйтесь, чтобы читать статьи. Кроме того, я думаю, что они предлагают оценочную версию, которую вы можете изучить, чтобы узнать, будет ли инструмент полезен для вас.
Подробнее о структуре зависимостей. Использование матрицы для определения шаблонов проектирования здесь http://www.ndepend.com/Doc_Matrix.aspx –