Визуализация графа зависимостей в CodeScoring 06.03.2023 15:38
Начиная с версии 2023.6.0, в CodeScoring доступен новый способ взаимодействия с графом зависимостей в виде интерактивной визуализации. Мы переосмыслили опыт аналогичных инструментов, переложили его на самые частые сценарии использования наших клиентов и постарались сделать действительно универсальный авторский инструмент.
Так выглядит интерактивная визуализация графа зависимостей в CodeScoring
Open Source зависимости программных проектов представляют собой граф — это структура, в которой отдельные компоненты выступают узлами, а связи между ними представлены в виде ребер. Удобная и полезная визуализация графа — сложная задача, которую разные инструменты решают по-разному.
Примеры реализаций можно найти в таких инструментах как GraphViz, NDepend и Dependency Track. К сожалению, большинство решений имеют известные недостатки: хаотичность распределения узлов, недостаточная информация о компонентах, отсутствие акцентов на безопасности, ограниченные возможности управления и фильтрации.
Примеры реализаций можно найти в таких инструментах как GraphViz, NDepend и Dependency Track. К сожалению, большинство решений имеют известные недостатки: хаотичность распределения узлов, недостаточная информация о компонентах, отсутствие акцентов на безопасности, ограниченные возможности управления и фильтрации.
Так выглядит визуализация графа в других системах
Хорошая визуализация помогает увидеть структуру зависимостей в проекте целиком, дать представление о взаимосвязях, помочь оценить потенциальные риски и быстро предоставить нужный срез информации.
Поэтому при разработке нашей концепции мы сделали фокус на упорядоченности, возможности фильтрации и быстром доступе к информации. Ключевые особенности нашей интерактивной визуализации графа зависимостей:
1. Чёткое разделение зависимостей по уровню вложенности
2. Подсветка уязвимых компонентов
3. Отсутствие ненужного дублирования узлов
4. Отображение пути привлечения компоненты в продукт
5. Вывод главной информации о компоненте: версия, окружение, технология и количество уязвимостей
6. Фильтры с выбором окружения, технологии и уровня критичности уязвимостей
Поэтому при разработке нашей концепции мы сделали фокус на упорядоченности, возможности фильтрации и быстром доступе к информации. Ключевые особенности нашей интерактивной визуализации графа зависимостей:
1. Чёткое разделение зависимостей по уровню вложенности
2. Подсветка уязвимых компонентов
3. Отсутствие ненужного дублирования узлов
4. Отображение пути привлечения компоненты в продукт
5. Вывод главной информации о компоненте: версия, окружение, технология и количество уязвимостей
6. Фильтры с выбором окружения, технологии и уровня критичности уязвимостей
Ниже вы можете посмотреть на применение графа в динамике.
Путь попадания уязвимости в точку сборки
Понимание общей структуры проекта с несколькими языками и фильтрация узлов