Инструмент анализа архитектуры Lattix - PullRequest
4 голосов
/ 28 апреля 2009

Я сталкивался с Lattix для анализа архитектуры путем исследования кода. Он поддерживает C / C ++, Java, .Net и т. Д. Можно определить определенные правила для поддержки определенной архитектуры. Инструмент может помечать любые нарушения во время сборки.

Кто-нибудь использовал этот или любой другой подобный инструмент? Я вижу некоторые преимущества этого инструмента в разработке, но не уверен, что этот инструмент должен иметь?

Ответы [ 4 ]

1 голос
/ 13 мая 2010

Мы используем Lattix и NDepends для отслеживания зависимостей наших сборок.

Оба инструмента поддерживают статическую визуализацию зависимостей между сборками и классами через матрицу структуры зависимостей (DSM). DSM дает вам возможность показать архитектуру вашего приложения. Например, если вы используете наслоение, это должно быть видно в DSM. Циклические зависимости также будут видны в DSM.

Хорошее практическое введение можно найти в OOPSLA05-dsm.pdf

NDepends определенно предназначается для .Net и имеет Интеграцию Visual Studio. Lattix также может создавать DSM для других языков. Оба поддерживают интеграцию сборки, которая позволяет вам создавать правила в вашей сборке для предотвращения неправильных зависимостей.

Просто попробуйте оба инструмента и посмотрите, соответствует ли сгенерированный DSM тому, что вы ожидали. Проверьте циклические зависимости и посмотрите, есть ли недопустимые зависимости. Например, пользовательский интерфейс, который напрямую использует уровень доступа к данным, а не бизнес-уровень.

0 голосов
/ 14 августа 2013

Я использовал Lattix для анализа кода C ++, .NET, Java и Fortran. Это полезно как для разработки новых приложений, так и для улучшения архитектуры существующего программного обеспечения. Инструмент поддерживает прямой импорт DLL-библиотек .NET, классов Java или файлов JAR, а также соединения SQL. Если вы смотрите на C ++ или Fortran, то вам понадобится такой синтаксический анализатор, как Klockwork, Understand или Clang. Можно настроить постоянное обновление вашего проекта Lattix с каждой сборкой программного обеспечения - это обеспечит наличие обновленного DSM для постоянного мониторинга архитектуры вашего программного обеспечения. Это может дать вам знать, как ваше программное обеспечение меняется с течением времени, и если какой-либо код нарушает правила, которые вы установили в начале разработки, или если какие-либо правила необходимо изменить и т. Д. Для просмотра существующего программного обеспечения инструмент может быстро разложить Система для вас и определить, где существуют циклические зависимости. Существуют алгоритмы для разделения системы на основе близости к другим подсистемам (например, классам) или группировки подсистем на основе шаблонов зависимостей. Это может быть полезно, если вы хотите улучшить архитектуру существующего программного обеспечения и сделать его модульным.

На сайте kb.lattix.com вы найдете много информации - просто подпишитесь, чтобы прочитать статьи. Кроме того, я думаю, что они предлагают ознакомительную версию, которую вы можете изучить, чтобы увидеть, будет ли этот инструмент полезным для вас.

0 голосов
/ 13 октября 2010

Ну, инструмент выглядит отлично и прекрасно работает, когда представлен.
После этого, ну, все те инструменты, которые делают реверс-инжиниринг (по моему опыту с несколькими версиями Rational Rose, StarUML, Sparx (лучшая), Understand) из C ++, ну ... возникают проблемы. Я понимаю, почему - код на C ++ более сложный и менее упорядоченный, чем C #, имеет ссылки на библиотеки, модули и COM и т. Д.
В нашем реальном проекте его (на основе базы данных Understand) реверс-инжиниринг был немедленно и полностью заморожен (я имею в виду hard-reset-freezed).
Может быть, нам нужно запустить его на WS или сервере.
Может быть, это было Пойми 'ошибка.
После сброса он стал очень медленным, когда его матрицы открыли ~ 200 модулей ниже. Ну, я никогда не говорил, что наш проект хорошо развит, верно. Мы надеялись исследовать это, чтобы сделать это лучше. Я все еще верю, что это может быть очень полезно в долгосрочной перспективе (если ваша компания согласилась оплачивать чеки на непрерывную переделку), но, поскольку все эти инструменты лучше начинать с нуля и постоянно использовать их постоянно. NB. Мы пытались использовать его с bsc (база данных Microsoft), но он также не удался.

0 голосов
/ 22 сентября 2009

NDepend - это очень полный инструмент для анализа архитектуры программного обеспечения для .Net программ. Этот вид инструмента очень удобен для отслеживания зависимостей и измерения различных показателей кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...