Введение

Визуализация программного обеспечения или визуализация программного обеспечения относится к визуализации информации и связанных с программными системами - либо архитектуры его исходного кода или метрики их поведения во время выполнения - и их процесса разработки с помощью статических, интерактивных или анимированных 2D или 3D визуальных представлений их структуры, исполнения, поведения и эволюции.

Цели

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

Типы

Инструменты визуализации программного обеспечения могут использоваться для визуализации исходного кода и дефектов качества во время разработки программного обеспечения и мероприятий по техническому обслуживанию. Существуют различные подходы к отображению исходного кода на визуальное представление, например, с помощью программных карт. Их цель включает, например, автоматическое обнаружение и визуализацию дефектов качества в объектно-ориентированных программных системах и услугах. Обычно они визуализируют прямую связь класса и его методов с другими классами в программной системе и отмечают потенциальные дефекты качества. Еще одним преимуществом является поддержка визуальной навигации через программную систему. Для визуализации программного обеспечения используется более или менее специализированное программное обеспечение для рисования графиков. Небольшой опрос 2003 года исследователей, работающих в области обратной инженерии и обслуживания программного обеспечения, показал, что использовалось большое разнообразие инструментов визуализации, включая пакеты для рисования графиков общего назначения, такие как GraphViz и GraphEd, UML-инструменты, такие как Rational Rose и Borland Together, и более специализированные инструменты, такие как Визуализация компиляторных графиков (VCG) и Rigi. Диапазон инструментов UML, которые могут выступать в качестве визуализатора с помощью обратной инженерии источника, отнюдь не мал; в книге 2007 года отмечается, что помимо двух вышеупомянутых инструментов, ESS Model, BlueJ и Fujaba также имеют эту возможность, и что Fujaba также может идентифицировать шаблоны проектирования.