Windows 10

Визуальное программирование используется в. Визуальные логические формулы

Визуальное программирование используется в. Визуальные логические формулы

Развитие любой организации в сфере бизнеса, основанного на разработке программного обеспечения, зависит от количества проданных ею лицензий (прав на использование созданной интеллектуальной собственности). Как убедить потенциального пользователя купить новую версию программы? Очень просто - добавить к названию продукта "мудреные" красивые названия типа: "визуальное", "виртуальное", "распределенное" и т.д. Большинство пользователей смутно понимают их реальное значение, но с удовольствием покупают новое программное обеспечение.

Что означает слово "визуальное"? Что скрывается за термином визуальное программирование? На практике большинство людей вкладывают в этот термин совершенно другое понятие. В качестве примеров обычно приводят средства разработки программного обеспечения Visual Basic и Delphi. На самом деле эти средства не осуществляют визуальное построение программного обеспечения, а позволяют визуализировать процесс построения интерфейса. Сама программа - код функций и процедур, взаимодействующих с интерфейсом программы, "пишется" в обычном текстовом редакторе - усовершенствованном варианте командной строки. Поэтому о визуальном программировании в данном случае вести речь нельзя. В чем же тогда заключается визуальное программирование? Разобраться в понятии термина визуального программирования можно только поняв назначение термина "визуализация".

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

Визуализировать можно интерфейсы программного обеспечения. Можно и нужно. Это позволяет упростить "общение" программного продукта с пользователем. Изображения на элементах интерфейса (внешнего вида программного обеспечения) позволяют пользователю интуитивно разбираться в назначении этих элементов.

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

Возможно, именно наличие визуальных средств построения интерфейсов в Visual Basic и Delphi, а также создаваемое ими визуальное программное обеспечение закрепили за ними термин "визуальное программирование". Безусловно, существует много других аналогичных продуктов (Visual C++, Borland C++ начиная с версии 4, Symantec Visual Cafe, "сишный" вариант Delphi - C++ Builder и др.), но они не смогли завоевать такой популярности, как Visual Basic и Delphi. Именно благодаря любимому детищу Билла Гейтса - Visual Basic, мир узнал о возможности визуального построения интерфейсов программ для Windows. Затем появился Delphi. Если Visual Basic целиком ориентируется на построение программ с визуальными интерфейсами, то Delphi ориентируется на работу с базами данных. Последние годы ходят мифы, что Basic - язык для начинающих. "Начинающие" восприняли Basic как панацею от компьютерных бед...

Есть еще один способ доказать, почему в Visual Basic и Delphi осуществляют только визуальное построение интерфейса программы, а не самого кода. Определяющими элементами процесса визуализации являются:

  1. Визуализируемая модель - модель, которая подвергается отображению с целью возможности изменения ее структуры или ее параметров (либо параметров ее отдельных частей).
  2. Окно инструментов (Toolbox) - окно, содержащее набор элементов, из которых строится визуальная модель. Обычно элементы разделяются по их назначению на отдельные группы, размещающиеся на отдельных закладках окна инструментов.
  3. Окно свойств (Propertybox) - окно, в котором отображаются параметры (свойства) выбранного элемента визуальной модели. Термин "свойство" пришел из объектно-ориентированного программирования и обозначает параметр объекта (элемента).

Визуализируемой моделью в Visual Basic и Delphi является окно (форма, диалог) Windows, а не код программы.

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

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

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

Для роботов и DSP уже фактически брендовой является среда DSP Robotics Flowstone , в области веба мы можем наблюдать огромное количество CMS, а если говорить о конструкторе, то лучший и популярный — британский Serif Web Plus , в звуковых технологиях очень много продукции создается в Synth Edit и Synth Maker , разработка игр сейчас переживает очередную революцию, при этом интерактивные мультимедийные приложения можно легко и быстро создавать в Scirra Construct, Multimedia Fusion и так далее. При этом обратите внимание на то, что мы назвали ниши, в которых десять лет назад требовались серьезные программисты.

В принципе, фактически все сейчас смещается в сторону (VPL). Ранее мы отдельный тренд визуального программирования — сильно-визуальные языки, а теперь мы уделим наше и ваше внимание более классическим, а также узкоспециализированным средам этого течения программирования.

DSP Robotics Flowstone

HiAsm Studio

Пожалуй, одна из самых популярных (и универсальных!) программ такого рода (несмотря на название, она не имеет прямого отношения к ассемблеру, хотя её возможности более низкоуровневые по сравнению с аналогичными разработками). На ней вы можете создать даже свой собственный игровой движок. Это бесплатная среда разработки win32-приложений, PHP, html и js-скриптов и страниц, а так же приложений для КПК на базе Windows Mobile .

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

Базовый пакет, поставляющийся вместе со средой, позволяет разрабатывать небольшие Windows-приложения с использованием любых стандартных ActiveX-компонентов Интернета, баз данных, графики (GDI и OpenGL), широких мультимедиа возможностей (звука), и многого другого, а так же менее интересные фоновые программы, апплеты панели управления, библиотеки DLL и прочее.

Я не буду здесь останавливаться на ней подробно, так как об этой среде написано ну очень много. Чтение я рекомендую начать вот с этих двух качественных источников: и ; кроме того доступно по HiAsm . Лично для меня эта среда наиболее симпатична и удобна из всех сегодня рассмотренных (может быть это следствие огромной коллекции качественных ActiveX накопленных мною за пару лет обычного программирования на Visual Studio ?).

О программировании «без программирования»

В этом подразделе статьи хочется остановить внимание на двух недостатках, которые в тех же игровых конструкторах уже начинают достигать своего апогея.

Во-первых, программирование с помощью мыши... Думаю, что на этом моменте стоит заострить особое внимание, потому как стиль программирования в Scirra Construct, Game Develop и нескольких подобных решений наталкивает на спорные мысли. И именно он сейчас начинает распространяться на широкий спектр приложений, например, нечто подобное уже можно увидеть в нескольких новых IDE.

Во-первых, событийный редактор без выхода на код... Что это такое? Допустим, вы хотите написать условие, «если a=1 , то b=2 ». Опишем, как это делается в Construct (этот фрагмент текста за утомительностью можно и не читать). Сначала создаем глобальную переменную, а именно в окне проекта, кликаем правой кнопкой мыши над Global Variables... Add Global Variable... в появившемся окне указываем имя. Чтобы создать b производим идентичную цепочку действий.

Затем переходим на страницу событий Event Sheet Editor , создаем там новое событие, появляется окно, в котором мы выбираем System , появляется новое окно, находим там Compare Global Variable , щёлкаем, видим новое окно, выбираем из комбобокса «a», условие Equal to, указываем в окошке цифру 1. Нажимаем ОК. Условие появилось в окошке события строкой Is global variable ’a’ Equal to 1 . Напротив нее находится окно действий, кликаем на New Action , появляется окно, в нем выбираем System, кликаем, появляется следующее окно находим там Global Variables -> Set Value , нажимаем Next и в следующем окне выбираем из комбобокса «b» и вписываем двойку. Нажимаем ОК.

И как вам последовательность действий для создания простого условия!?

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


При визуальном программировании редакторы кода заменены на редакторы событий, но смысл не меняется

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

Чем больше элементов содержит файл проекта, тем больше будет требовать от ресурсов ПК

Во-первых, работа с ним. А в игровых конструкторах и еще паче — ваш исполняемый файл строится по подобию того же файла проекта. Например, вы создали один уровень либо одну страницу мультимедийного приложения и при запуске исполняемого файла программа будет занимать N памяти RAM и VRAM. Затем создаете второй уровень или сцену с другим контентом. Запускаете программу, и хотя находитесь на первой сцене, она занимает N+M памяти, то есть, подгружаются все внутренние данные. Таким образом, по мере роста проекта можно запросто столкнуться с Out of Memory .

Большинство подобных конструкторов для неопытных пользователей предлагает единственное средство — разделение данных на внешние и внутренние, и в тех же Construct Classic, Game Develop и многих других это указывается неявно. А в менее продуманных «поделках» так и вообще все грузится во внутренние ресурсы.

В результате получаются тяжелые *.exe-файлы, огромные файлы проектов, замедляются процессы сохранения, отладки, компиляции. А простейшая игра типа Arcanoid будет занимать у вас столько же ресурсов, как и Starcraft2 , чем, в принципе, уже никого не удивишь.

Подытожим

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

Мы уже не раз были свидетелями того, как обычные пользовательские приложения превращались в глобальные популярные среды. Достаточно привести в пример Adobe Flash . Поэтому относиться несерьезно к тем же Scirra Construct или Game Maker все-таки не стоит — еще неизвестно, что выстрелит в итоге. Например, еще пару лет назад очень выгодно смотрелась среда для создания интерактивных мультимедийных приложений Multimedia Builder (я писал о ней в сравнении с почти полным аналогом — NeoBook ), которая по своим возможностям и одновременно простоте и сейчас затыкает за пояс огромное количество конструкторов и новоявленных IDE. Но программа так и не получила массовой поддержки, в результате чего ее разработка была свернута. Какая причина?

На мой взгляд, очень много в Multimedia Builder (MMB) было новаторского и самостоятельного. Тот же Flash , на этапе разработки в Macromedia, изначально базировался на принципе GUI от Photoshop, на нем же построен и описанный нами выше Serif WebPlus . Flowstone также заимствовала очень многое из популярных конструкторов прошлого, в SynthEdit взят за основу принцип графического построения, известный еще с середины 90-х, Scirra Construct взял лучшее из имеющегося на рынке. То есть, везде можно наблюдать преемственность технологий. Никаких революций уже давно не происходит. А конкуренция во всех сферах сейчас очень серьезная, например, как вам визуального программирования в интернете? Про два более традиционно-десктопных монстра визуального программирования и я уже ранее писал в этом блоге достаточно подробно.

Визуальное программирование - одна из технологий в современном программировании

Визуальное программирование (от лат. visualis - зрительный) - это технология программирования, предусматривающая создание приложений с помощью наглядных средств.

К визуальному программированию можно отнести также Rapid Application Development (RAD) - быструю разработку программ. RAD - технология программирования, обеспечивающая ускоренную разработку и модификацию приложений за счет использования объектно-ориентированного и визуального программирования.

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

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

Так, например, фирма IBM наиболее полно реализовала концепцию визуального программирования в среде VisualAge Smalltalk.

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

VisualAge представляет собой объектно-ориентированное средство разработки, включающее набор визуальных интерактивных инструментов, библиотеку готовых компонент и набор средств для построения клиент-серверной среды.

Поддержка графического интерфейса, предоставляемая готовыми компонентами, отвечает CUA (Common User Access) спецификациям и содержит ряд расширений для организации гибкого ввода-вывода в сложных формах и таблицах. Библиотека готовых компонент предоставляет также поддержку устройств мультимедиа, коммуникаций через протоколы APPC, TCP/IP, NetBIOS, программных интерфейсов CICS External Call Interface, EHLLAPI, Message Queue Interface (MQI), работу с реляционными базами данных семейств DB2, Oracle, Sybase и многое другое.

Фирма Microsoft, разрабатывая концепцию.NET Framework, создала Visual Studio.NET Enterprise Architect 2003, в которой реализовала все последние достижения в области программирования и в частности, в технологии визуального программирования.

Visual Studio.NET - полная многоязычная среда разработки для платформы Microsoft.NET. Visual Studio.NET предоставляет набор технологий, упрощающих создание, развертывание и последующее усовершенствование безопасных, масштабируемых и высокодоступных веб-приложений и веб-служб XML.

Фирма Borland Software Corporation традиционно развивает интегрированную среду программирования, имеющую несомненный успех на рынке профессиональных программных продуктов. Эта среда всегда поддерживала методы визуального программирования, предлагала разработчику мощные библиотеки, интерактивные мастера-построители, готовые элементы графического интерфейса. На сегодняшний день Borland Developer Studio - программный продукт от Borland Software Corporation, представляющий собой среду быстрой разработки приложений (RAD) для платформ Win32 и.NET на языках Delphi (Object Pascal), C++ и C#.

Еще один пакет от фирмы Borland - Delphi Enterprise Edition 7.0. Этот пакет обеспечивает поддержку новейших перспективных технологий Веб-служб, включает предварительную версию средств работы с Microsoft.NET Framework.

При помощи пакета Delphi 7 разработчики, использующие Delphi, могут приобрести навыки программирования для.NET, готовить свои приложения к работе под управлением.NET, не теряя при этом имеющихся наработок и навыков работы на платформе Windows. Среда разработки Delphi 7 - это проектирование; развертывание архитектуры, управляемой моделью (MDA); интегрирующее моделирование, разработка и развертывание приложений и систем электронного бизнеса для платформы Windows.

Фирма Borland Software Corporation является первой компанией, открывшей независимый путь к.NET с Delphi 7, межплатформенной средой быстрой разработки приложений (RAD) для платформы Windows. Характерной чертой Delphi 7 является возможность разработки и развертывания корпоративных приложений. Это позволяет разработчикам создавать корпоративные приложения, от концепции к готовому продукту, еще быстрее с использованием нового UML™-дизайнера и технологии Model Driven Architecture™ (MDA™).

Мы рассмотрели роль и место визуального программирования в области современного программирования. Теперь перейдем к рассмотрению конкретных приемов и методов, относящихся к визуальному программированию. Рассмотрим использование компонентов и приемов визуального программирования в рамках Visual Studio.NET Framework фирмы Microsoft.

Основы визуального программирования

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

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

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

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

Возможно, именно наличие визуальных средств построения интерфейсов в таких языках, как Microsoft Visual Basic и Delphi, а также создаваемые с помощью этих языков визуальные программные интерфейсы, закрепили за ними термин "визуальное программирование". Безусловно, существует много других аналогичных продуктов (Visual C++, Borland C++ начиная с версии 4, Symantec Visual Cafe, C++ Builder и др.), но они не смогли завоевать такой популярности, как Visual Basic и Delphi. Именно благодаря Visual Basic, мир узнал о возможности визуального построения интерфейсов программ для Windows.

В Visual Basic и Delphi выполняется визуальное построение интерфейса программы, но не самого кода. Определяющими элементами процесса визуализации являются:

  • Визуализируемая модель - модель, которая подвергается отображению с целью возможности изменения ее структуры или ее параметров (либо параметров ее отдельных частей).

  • Окно инструментов (ToolBox) - окно, содержащее набор элементов, из которых строится визуальная модель. Обычно элементы разделяются по их назначению на отдельные группы, размещающиеся на отдельных закладках окна инструментов.

  • Окно свойств (PropertyBox) - окно, в котором отображаются параметры (свойства) выбранного элемента визуальной модели. Термин "свойство" пришел из объектно-ориентированного программирования и обозначает параметр объекта (элемента).
  • Визуализируемой моделью в Visual Basic и Delphi является окно (форма, диалог) Windows, а не код программы.

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

    В качестве возможного варианта реализации такой визуальной разработки кода программы можно рассматривать табличную форму записи макросов в Microsoft Access (рис.8.1). В этом случае визуализируемая модель - макрос-программа управления данными в базе данных или управления процессом отображения данных. Команды макроса находятся в разных строчках записи макроса. Окно свойств находится непосредственно под списком команд. Окна инструментов в привычном виде нет, но оно реализовано в виде раскрывающегося списка с командами, т.е. в каждой строке записи макроса в отдельности имеется возможность выбора или смены текущей команды макроса. Это и есть визуализированная форма записи программы.

    Рис.8.1. Визуализация разработки кода программы

    Присоединение модуля, созданного средствами визуального программирования выполняется также визуальными средствами - в режиме конструирования (рис.8.2).

    Рис.8.2. Средства визуального программирования

    Другим примером визуализации создания кода программы может служить процесс создания макро программ в Microsoft Excel (рис.8.3).

    Рис.8.3. Диалог MS Excel при автоматической записи действий пользователя

    Визуализируемой моделью в данном случае является рабочий лист Excel, в котором программист выполняет действия по обработке данных. Программный код пишется автоматически в фоновом режиме, при этом происходит описание в операторах языка VBA (Visual Basic for Application) всех визуальных действий пользователя.

    Окно свойств Properties присутствуют, но не в самом рабочем листе, а в среде VBA (рис.8.4). Окно инструментов при выборе объекта Module выключается, но в случае редактирования программного кода для каждого программного объекта появляется раскрывающийся список со свойствами, методами и событиями, т.е. в каждой строке записи макроса в отдельности имеется возможность выбора или смены текущей команды макроса.

    Пример получаемой программы, вызов которой в рабочем листе Excel можно организовать по командной кнопке или непосредственно по имени записанного макроса, приведен на рис.8.4.

    Рис.8.4. Результат автоматической записи программного кода как протокола действий пользователя

    Применение визуального программирования при построении интерфейса приложения в Visual Studio.Net

    Visual Studio.NET - это универсальная среда разработки всех типов приложений на базе.NET и на основе единого визуального интерфейса. Платформа.NET Framework представляет собой набор объектов и планов (blueprints, то есть описание объектов), созданных корпорацией Microsoft для разработки приложений (Windows и Internet). Большая коллекция визуальных объектов позволяет конструировать различные элементы управления: Надпись, Надпись с гиперссылкой, Кнопку, Поле, Флажок и многие другие. Все эти элементы располагаются на панели инструментов (рис.8.5). Настройка свойств элементов выполняется с помощью списка свойств.

    Элементы управления, как и все другие объекты среды.NET, реализованы в виде классов в определенном пространстве имен, в данном случае - System.Windows.Forms.

    Рис.8.5. Визуальное программирование средствами Visual Studio.NET

    Методы элементов программируются пользователем "вручную", но и тут имеются визуальные помощники: после двойного щелчка по элементу управления в конструкторе автоматически открывается окно редактора кода и автоматически пишется заголовок процедуры обработки события. Боле того, после набора имени объекта автоматически появляется список свойств и методов объекта (рис.8.6). Таким образом, процесс написания программного кода также частично визуализирован.

    Рис.8.6. Визуализация свойств и методов объекта

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

    Отдельный класс Dialog в.NET не предусмотрен. Диалоговое окно - это форма (рис.8.7.), обладающая некоторыми специальными характеристиками. Программирование диалоговых окон, как и многих других стандартных компонент, в Visual Studio поддерживается визуальными средствами программировании (рис.8.8).

    Рис.8.7. Пример стандартного диалога

    Рис.8.8. Программирование стандартных элементов средствами Visual Studio

    Концепция.NET Framework и Visual Studio.NET предоставляют в распоряжение программистов огромную библиотеку объектов, ускоряющую процесс разработки приложений. Многие объекты в этой библиотеке имеют визуальное представление и дают возможность назначения свойств объекта в режиме конструирования с помощью окна Properties или диалогов с мастером-построителем.

    Выводы

    Визуальное программирование предусматривает создание приложений с помощью наглядных средств.

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

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

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

    Визуальные средства поддержки программирования в Visual Studio.NET превращают программистов в разработчиков Windows и Internet приложений.

    Вопросы для самопроверки

    1. В чем принципиальное отличие визуального программирования от любого другого программирования?
    2. Возможно, ли средствами визуального программирования создать законченное программное приложение?
    3. Какие достоинства и недостатки присущи визуальному программированию?
    4. Какие языки программирования поддерживают визуальный стиль программирования?
    5. В каких средах программирования реализован визуальный стиль программирования?
    6. Какие фирмы-разработчики пакетов программирования имеют наиболее удачные решения для визуального программирования?
    7. Можно ли сказать, что визуальное программирование - это построение графического интерфейса пользователя?
    8. Какие элементы процесса визуализации вы можете перечислить?
    9. Что такое "визуализируемая модель"?
    10. Приведите примеры визуального программирования в известных вам программных средах.

    Литература

    1. Гарнаев Ф.Ю. Самоучитель Visual Studio.NET 2003.- СПб.: БХВ-Петербург, 2005.- 688.с.: ил.
    2. Подлин Ш. Освой самостоятельно программирование для Micrsoft Excel 2000. Пер. с англ.: Уч. Пос. - М.: Издательский дом "Вильямс", 2006. - 304 с.: ил.- Парал. тит. англ.
    3. Харитонова И.А., Михеева В.Д. Microsoft ACCESS 2000: Разработка приложений. - СПб.: БХВ-Петербург, 2004. - 832 с.: ил.

    Сергей СОКОЛОВ, БГУИР

    Развитие любой организации в сфере бизнеса, основанного на разработке программного обеспечения, зависит от количества проданных ею лицензий (прав на использование созданной интеллектуальной собственности). Как убедить потенциального пользователя купить новую версию программы?

    Очень просто - добавить к названию продукта "мудреные" красивые названия типа: "визуальное", "виртуальное", "распределенное" и т.д. Большинство пользователей смутно понимают их реальное значение, но с удовольствием покупают новое программное обеспечение.

    Что означает слово "визуальное"? Что скрывается за термином визуальное программирование? На практике большинство людей вкладывают в этот термин совершенно другое понятие. В качестве примеров обычно приводят средства разработки программного обеспечения Visual Basic и Delphi.

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

    Разобраться в понятии термина визуального программирования можно только поняв назначение термина "визуализация".

    Визуализация - это процесс графического отображения сложных процессов (в данном случае построения) на экране компьютера в виде графических примитивов (графических фигур). Визуализировать можно абсолютно любые процессы: управления, построения, рисования и т.д. Вы можете не подозревать, что простейший вариант визуализации - линейка прогресса (прямоугольник, процент заполнения которого прямо пропорционален прогрессу выполнения какой-либо операции). Глядя на нее, вы можете четко оценить оставшийся объем невыполненных операций.

    Однако если вы выводите значение прогресса в виде числа со знаком процента - вы лишь отображаете текущее значение, и здесь нет никакой визуализации.

    Визуализировать можно интерфейсы программного обеспечения. Можно и нужно. Это позволяет упростить "общение" программного продукта с пользователем. Изображения на элементах интерфейса (внешнего вида программного обеспечения) позволяют пользователю интуитивно разбираться в назначении этих элементов.

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

    Данная кнопка имитирует поведение обычной кнопки на пульте управления любого прибора. Ее можно "нажимать" как настоящую. Возможно, именно наличие визуальных средств построения интерфейсов в Visual Basic и Delphi, а также создаваемое ими визуальное программное обеспечение закрепили за ними термин "визуальное программирование". Безусловно, существует много других аналогичных продуктов (Visual C++, Borland C++ начиная с версии 4, Symantec Visual Cafe, "сишный" вариант Delphi - C++ Builder и др.), но они не смогли завоевать такой популярности, как Visual Basic и Delphi.

    Именно благодаря любимому детищу Билла Гейтса - Visual Basic, мир узнал о возможности визуального построения интерфейсов программ для Windows. Затем появился Delphi. Если Visual Basic целиком ориентируется на построение программ с визуальными интерфейсами, то Delphi ориентируется на работу с базами данных. Последние годы ходят мифы, что Basic - язык для начинающих. "Начинающие" восприняли Basic как панацею от компьютерных бед...

    Есть еще один способ доказать, почему в Visual Basic и Delphi осуществляют только визуальное построение интерфейса программы, а не самого кода. Определяющими элементами процесса визуализации являются:

    Визуализируемая модель - модель, которая подвергается отображению с целью возможности изменения ее структуры или ее параметров (либо параметров ее отдельных частей).

    Окно инструментов (Toolbox) - окно, содержащее набор элементов, из которых строится визуальная модель. Обычно элементы разделяются по их назначению на отдельные группы, размещающиеся на отдельных закладках окна инструментов. Окно свойств (Propertybox) - окно, в котором отображаются параметры (свойства) выбранного элемента визуальной модели. Термин "свойство" пришел из объектно-ориентированного программирования и обозначает параметр объекта (элемента).

    Визуализируемой моделью в Visual Basic и Delphi является окно (форма, диалог) Windows, а не код программы.

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

    Тогда параметры операторов и функций программы можно будет настраивать при помощи окна свойств (Propertybox). А сами операторы и функции будут храниться в списковой форме (табличной форме).

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

    Это и есть визуализированная форма записи программы. В одном из диалогов с Митасовым Андреем (ООО "Интелпарт") мы коснулись вопросов реализации алгоритмической мультиязычности (КВ №45 за 1999). Интересен факт, что этот вопрос и визуальное программирование связаны между собой.

    Визуализированная форма записи программ обладает максимальной гибкостью и переносимостью. Преобразовать табличную форму записи в любой известный язык программирования является "делом техники".

    С выходом версии ЛИРА-САПР 2018 в цепочке BIM появился новый гибкий инструмент - система визуального программирования, позволяющая выполнять параметрическое моделирование зданий и сооружений произвольной формы. Данная система является представителем технологий нового поколения для создания моделей конструкций и представляет собой графический редактор алгоритмов (последовательности действий), который использует инструменты моделирования САПФИР-3D. Новая система демонстрирует современный тренд развития технологий создания моделей: эволюция от текстового файла, графической среды и до визуального программирования.

    Создание 3D модели моста в Сапфире при помощи нодов

    Результатом работы Генератора является готовая 3D модель, состоящая из базовых объектов САПФИР-3D: колонн, балок, стен, плит, свай, ферм, поверхностей, нагрузок, граничных условий и других объектов. В тандеме Генератор и САПФИР-3D дают нам возможность использовать точный параметрический контроль над моделью с последующим ее экспортом в ЛИРА-САПР для дальнейшего расчета.


    Создание 3D модели смотровой башни в Сапфире при помощи нодов

    Что же такое визуальное программирование? Это способ создания алгоритма путем управления графическими объектами вместо написания текста. То есть для работы с такой системой нет необходимости обладать навыками программирования или быть знакомым со структурой программного кода.

    Графические объекты в Генераторе представлены в виде нодов и связей между ними. Ноды изображаются в виде прямоугольников и бывают двух типов: те, которые хранят данные и те, которые выполняют действия. Данные между нодами передаются посредством связей.

    Пользовательский интерфейс Генератора представлен в виде ленты и рабочей области-холста, на котором и происходит создание графической последовательности действий. Палитра нодов разделена на вкладки по тематической направленности: модели, геометрия, преобразования, параметры и сервисы.


    Ноды в Сапфире

    Вся геометрия, которая генерируется при использовании различных нодов Генератора, будет отображаться в графическом окне САПФИР-3D.

    Исходными данными для построения таких графических алгоритмов могут служить геометрические примитивы САПФИР-3D (точки, линии, поверхности).


    Создание 3D модели здания в Сапфире при помощи нодов

    Генератор является гибким инструментом в цепочке BIM. В качестве исходных данных он может использовать информацию из других САПР:

    • 3D формы (поверхности) в формате *.obj;
    • геометрические примитивы в формате *.dxf (точки, линии, полилинии, контуры).

    При изменении исходных данных в других САПР (редактирование формы поверхности или корректировка dxf файла) выполняется автоматическое обновление модели в Генераторе.


    Создание 3D модели здания в Сапфире при помощи нодов и dxf файла

    Созданный сценарий (набор нодов) можно сохранять в библиотеку для последующего использования.

    Для более продвинутых пользователей в рамках системы САПФИР-Генератор также реализован редактор скриптов, который позволяет писать свои ноды с новой спецификой работы.