4551
правка
Irina (обсуждение | вклад) |
Irina (обсуждение | вклад) |
||
Строка 26: | Строка 26: | ||
Инструменты визуализации программного обеспечения должны быть способны анимировать ''не только «игрушечные» программы'', но и весьма сложные алгоритмические коды, и тестировать их поведение на больших наборах данных. К сожалению, даже системам, предназначенным для больших информационных пространств, нередко недостает продуманных механизмов навигации и методов | Инструменты визуализации программного обеспечения должны быть способны анимировать ''не только «игрушечные» программы'', но и весьма сложные алгоритмические коды, и тестировать их поведение на больших наборах данных. К сожалению, даже системам, предназначенным для больших информационных пространств, нередко недостает продуманных механизмов навигации и методов обхода узких мест процесса отображения. Задача устранения этого типа ограничений пока остается нерешенной. | ||
Передовые отладчики в незначительной степени используют преимущества современных графических дисплеев, даже если речь идет о коммерческих средах разработки программных приложений. Тем не менее, инструменты визуализации программ могут оказаться исключительно полезными для решения таких задач, как поиск «утечек памяти», нахождение причин аномального поведения программ и оценка эффективности. В частности, среды, обеспечивающие интерпретируемое исполнение, более пригодны для интеграции расширенных возможностей для поддержки отладки и мониторинга эффективности работы программ, и многие современные системы стремятся охватить это направление исследований. | Передовые отладчики в незначительной степени используют преимущества современных графических дисплеев, даже если речь идет о коммерческих средах разработки программных приложений. Тем не менее, инструменты визуализации программ могут оказаться исключительно полезными для решения таких задач, как поиск «утечек памяти», нахождение причин аномального поведения программ и оценка эффективности. В частности, среды, обеспечивающие интерпретируемое исполнение, более пригодны для интеграции расширенных возможностей для поддержки ''отладки и мониторинга эффективности работы программ'', и многие современные системы стремятся охватить это направление исследований. | ||
'''Техника''' | '''Техника''' | ||
Важнейшим аспектом визуализации динамического поведения выполняемой программы является способ его перевода в графические абстракции. Существуют два основных подхода привязки визуализаций к коду: | Важнейшим аспектом визуализации динамического поведения выполняемой программы является способ его перевода в графические абстракции. Существуют два основных подхода привязки визуализаций к коду: подход на основе событий и подход на основе отображения состояний. | ||
'''Визуализация на основе событий''' | '''Визуализация на основе событий''' | ||
Естественный подход к анимации алгоритмов заключается в аннотировании алгоритмического кода вызовами подпрограмм визуализации. Первый этап | Естественный подход к анимации алгоритмов заключается в аннотировании алгоритмического кода вызовами подпрограмм визуализации. Первый этап состоит в определении конкретных действий, выполняемых алгоритмом и представляющих интерес с точки зрения визуализации. Такие действия обычно называются ''интересующими событиями''. К примеру, в алгоритме сортировки перестановка двух элементов может считаться интересующим событием. Второй этап заключается в соединении интересующего события с модификацией графического изображения. Сцены анимации можно определить путем настройки подходящих процедур визуализации, управляющих состоянием графической системы в соответствии с актуальными параметрами, генерируемыми конкретным событием. Либо эти процедуры визуализации могут просто записывать журнал событий в файл для их визуализации по окончании выполнения программы. Вызовы подпрограмм визуализации обычно выполняются посредством аннотирования исходного алгоритмического кода в точках, в которых происходят интересующие события. Это можно выполнить вручную либо при помощи специализированных редакторов. Примерами наборов инструментов для реализации подхода на основе событий могут служить Polka [ ] и GeoWin, тип данных C++, способный легко связываться с важнейшими алгоритмическими библиотеками программных модулей – такими как CGAL [ ] и LED A [19]. | ||
правка