Я нахожу себя визуальным человеком, и иногда легче узнать что-то, если я смогу рисовать диаграмму/изображения из него. Мой вопрос заключается в том, какой инструмент я использую, если я хочу визуально отобразить структуру программирования (например .net) и посмотреть взаимосвязь между всеми объектами (такими как классы и члены).Какой инструмент я использую, если я хочу визуально отобразить структуру программирования и посмотреть взаимосвязь между всеми объектами?
ответ
Приличным первым вырезанием может быть простой сценарий PERL для анализа зависимостей, а затем для передачи данных на Graphviz для визуализации.
Я не уверен, что вы спрашиваете только о .NET или других фреймворках, мой опыт в основном связан с Java, но я уверен, что аналогичные инструменты существуют для .NET.
На уровне классов вы можете получить автоматически сгенерированную визуализацию с использованием инструментов UML, которые обычно могут преобразовывать исходный код в диаграмму. Netbeans является бесплатным и имеет функции Java source to UML reverse engineering.
Диаграммы классов, однако, очень низкие, они рассказывают вам немного (непосредственно) о более крупных архитектурных темах. В этот момент такие инструменты, как Structure101, могут быть полезны при обнаружении архитектурных свойств, которые вы не понимали. Они имеют пробную версию и могут также работать с C и C++.
Вы можете попробовать NDepend. Отличные Scott Hanselman discusses it more here. Тонны визуальных форматов зависимостей тоже. Похоже, что это только для .NET.
Я нахожу, что doxygen полезен для генерации всех видов информации о зависимости, когда сталкивается с новым проектом. По-видимому, он обрабатывает «C++, C, Java, Objective-C, Python, IDL (Corba и Microsoft flavors), Fortran, VHDL, PHP, C# и до некоторой степени D». Он использует Graphviz для создания графических диаграмм зависимостей. Вы можете включить полный исходный код с гиперссылками из всего, что было признано. Если вам повезет, там будет какая-то документация, которую doxygen понимает уже там. Затем вы можете быстро перемещаться по коду, узнавая, каковы все отношения.
Я второй комментарий Doxygen от Ника. Я использую Doxygen для C# .NET и генерирует диаграммы классов, диаграммы наследования и т. Д. Вот informative blog post.
Инструмент NDepend предлагает как интерактивные Dependency Graph, так и интерактивные Dependency Matrix. Кроме того, инструмент интегрирован в VisualStudio 2012, 2010 и 2008 Отказ от ответственности: Я один из разработчиков инструмента
ли вам нужно проявлять Call Graph, Coupling Graph, Inheritance Graph, Dependency Graph, very large Graph, Dependency Cycles и выявляет более , NDepend будет генерировать некоторые визуальные диаграммы. Вот несколько скриншотов:
- 1. Как проверить, какой инструмент слияния я использую?
- 2. Взаимосвязь между объектами
- 3. Какова взаимосвязь между объектами JavaScript и HTML
- 4. Word Ladder, Javascript: Какой алгоритм и структуру данных я использую?
- 5. CoreData Взаимосвязь между объектами и атрибутами
- 6. Взаимосвязь между объектами не сохраняется
- 7. Я использую структуру MVC некорректно?
- 8. какой gcc я использую?
- 9. Как визуально знать, какую форму я хочу?
- 10. Какой субдомен я подтверждаю, если я не использую www?
- 11. Должен ли я распоряжаться всеми одноразовыми объектами?
- 12. Неважно, какой аудиопоток я использую?
- 13. Какой инструмент визуально отображает существующие веб-сайты?
- 14. Какой синтаксис я использую, если я хочу подтвердить, что пользователь находится на определенной странице?
- 15. Удалить взаимосвязь между объектами с помощью HQL
- 16. Какой архитектурный образец я использую?
- 17. Как объяснить взаимосвязь между этими двумя объектами?
- 18. Какой глобальный gitignore я использую?
- 19. Rails - сложная взаимосвязь данных между объектами
- 20. Я использую Xcode, и я хочу сделать кнопку случайным образом
- 21. Какой язык я использую для своего проекта?
- 22. Какой протокол я использую? RTSP?
- 23. Я хочу отобразить активное окно
- 24. Какой кандидат ICE я использую и почему?
- 25. Какую структуру данных я использую здесь?
- 26. Какой стоп-лист я использую?
- 27. Брус Получить HTML посмотреть, как я хочу
- 28. Какой редактор JSON я использую в Eclipse?
- 29. Если я хочу запустить Nginx и Django, какой лучший метод?
- 30. Я использую GN_MUSIC_SDK_IOS для распознавания аудио, и я хочу отобразить эту песню в itunes.