Какой инструмент мне использовать, если я хочу визуально отобразить структуру программирования и увидеть взаимосвязь между всеми объектами?

Я нахожу себя визуальным человеком, и иногда мне легче чему-то научиться, если я могу рисовать из этого диаграммы / картинки. Мой вопрос в том, какой инструмент использовать, если я хочу визуально отобразить структуру программирования (например .net) и увидеть взаимосвязь между всеми сущностями (такими как классы и члены).

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
0
456
6

Ответы 6

Хорошим первым шагом может быть написание простого сценария PERL для анализа зависимостей, а затем передача этих данных в Графвиз для визуализации.

Я не уверен, что вы спрашиваете только о .NET или других фреймворках, мой опыт в основном связан с Java, но я уверен, что аналогичные инструменты существуют для .NET.

На уровне классов вы можете получить автоматически сгенерированную визуализацию с помощью инструментов UML, которые обычно могут преобразовывать исходный код в диаграмму. Netbeans является бесплатным и имеет функции Исходный код Java для обратного проектирования UML.

Диаграммы классов, однако, очень низкоуровневые, они мало (прямо) говорят вам о более крупных архитектурных темах. В этот момент такие инструменты, как Структура101, могут оказаться ценными при обнаружении архитектурных свойств, о существовании которых вы даже не подозревали. У них есть пробная версия, а также они могут работать с C и C++.

Вы можете попробовать NDepend. Великолепный Скотт Хансельман обсуждает это подробнее здесь. Тонны форматов визуальных зависимостей. Похоже, это только для .NET.

Я считаю, что доксиген полезен для генерации всех видов информации о зависимостях при столкновении с новым проектом. Очевидно, он обрабатывает "C++, C, Java, Objective-C, Python, IDL (разновидности Corba и Microsoft), Fortran, VHDL, PHP, C# и в некоторой степени D". Он использует Graphviz для создания графических диаграмм зависимостей. Вы можете включить полный исходный код с гиперссылками на все, что было распознано. Если вам повезет, там будет некоторая документация, которую doxygen уже понимает. Затем вы можете быстро перемещаться по коду, изучая все взаимосвязи.

Я поддерживаю комментарий Ника к Doxygen. Я использую Doxygen для C# .NET, и он генерирует диаграммы классов, диаграммы наследования и т. д. Вот информативный пост в блоге.

Инструмент NDepend предлагает как интерактивный График зависимости, так и интерактивный Матрица зависимостей. Также инструмент интегрирован в VisualStudio 2012, 2010 и 2008. Отказ от ответственности: я один из разработчиков инструмента

Если вам нужно показать График звонков, График связи, График наследования, График зависимости, очень большой график, pinpoints Циклы зависимости и другие, NDepend сгенерирует несколько визуальных диаграмм. Вот несколько скриншотов:

Другие вопросы по теме