Визуализация и пользовательские интерфейсы

М.А. Затевахин
С.Петербург, 2002

                                         
Основной задачей программирования
являтся создание правильных,
а не эффективных программ.

Д. ван Тассел.

Визуализация результатов вычислительного эксперимента является необходимым условием его эффективности. Действительно, обычным результатом современного вычислительного эксперимента является большое количество различным образом структурированных данных. Их анализ методом просмотра обычной текстовой информации представляется делом совершенно нереальным, поэтому уже давно для этих целей применяются различные методы их графического представления. Как показывает опыт, только использование подобных методов позволяет достаточно быстро проанализировать результаты и сделать выводы об их адекватности поставленной задаче, качестве и точности полученного решения, обнаружить различные алгоритмические, программные, а иногда и аппаратные ошибки.

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

Действительно, несмотря на существенный прогресс в методах программирования ошибки при вводе исходной информации до сих пор являются одной из основных причин непроизводительной траты машинного времени. Поэтому средства контроля и раннего обнаружения таких ошибок являются непременными атрибутами хорошо организованной программной системы. К этим средствам, наряду со средствами визуализации, относятся и пользовательские интерфейсы.

И еще. Время квалифицированного программиста стоит гораздо дороже машинного. По крайней мере для него лично. А до сих пор можно видеть, как исходные данные вводятся вводятся путем исправлений параметров в исходном тексте программы и ее перекомпиляции. А затем автор много дней анализирует результаты многодневного прогона, чтобы найти, в каком же месте он задел локтем клавиатуру в процессе редактирования. Сам видел.

Первая часть предлагаемого курса посвящена основам визуализации результатов вычислительного эксперимента. В ней действительно изложены основы. В настоящее время существует большое количество пакетов визуализации, однако общие методы работы с ними всегда одни и те же: необходимо изобразить массивы чисел в виде кривых или поверхностей, причем таким образом, чтобы сразу увидеть то, что Вы хотите видеть.

Рассмотрены примеры визуализации с использованием двух пакетов: GnuPlot'а - стандартного пакета, входящего в состав Linux, и Tecplot'а - более развитой системы визаулизации. Хотя Tecplot и не явялется самым мощным из существующих пакетов, но на его примере можно хорошо проиллюстрировать некоторые возможности профессиональных пакетов, дорогих и имеющих поэтому ограниченное распространение.
Курс носит ознакомительный характер и ограничивается рассмотрением основных понятий и методов построения графиков функций одной и двух переменных.

Несмотря на наличие большого числа различных пакетов визуализации многте программисты до сих пор продолжают писать GUI для своих программ сами. Причина этого достаточно проста: в каждой конкретной задаче много своих конкретных особенностей, и зачастую проще написать свою программу, чем настраивать всевозможные макросы, AddOn'ы, PlugIn'ы и т.п. программ общего назначения. Ведь основное назначение средств визуализации: получить ответ на свой вопрос как можно быстрее и яснее, а что именно для этого нужно, знает только разработчик конкретной системы. И тогда на этом этапе возникает вопрос о средствах разработки. В каждой конкретной системе всегда много таких средств. Здесь рассмотрено лишь одно - JFC Swing. Основные причины для такого выбора две:

Для разработчика эти два плюса значат совсем не мало.
Ну и конечно продукт свободный.

Итак:

left [Все курсы]