Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
печать2.doc
Скачиваний:
4
Добавлен:
21.09.2019
Размер:
338.94 Кб
Скачать

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

ГРАФИТ

HiAsm

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

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

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

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

Тренд современности – попытка по возможности уменьшить участие человека в написании программы.

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

Идея визуального (графического) программирования сводится к тому, что написание программы в виде текста заменяется в том или ином масштабе ее изображением в виде графической диаграммы. «Я нарисовал программу».

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

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

В этой связи возникают трудности в определении понятия визуального программирования. Встречаются следующие определения:

-Графическое программирование – «Использование графических средств разработки и визуальной метафоры при создании программного обеспечения» (Microsoft);

-«Программирование, предусматривающее создание приложений с помощью наглядных средств»;

-«Графический язык программирования – любой язык программирования, в котором программы задаются путем графического манипулирования элементами взамен текстового манипулирования ими» (Википедия);

-«Визуальное программирование – программирование, в котором для передачи семантики используется более чем одно измерение» (М. Барнет).

Псевдографика

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

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

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

Одна из основных проблем, встающая перед программистом – неосязаемость предмета деятельности. Человек живет в материальном мире, ему непросто иметь дело с «виртуальными информационными объектами», какими являются программы. Их нельзя потрогать, понюхать, взвесить, повернуть.

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

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

Человеческая культура «визуально ориентирована», достаточно упомянуть фотографии, кино, телевидение, чертежи, дорожные знаки.

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

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

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

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

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

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

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

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

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

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

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

По мнению преподавателя, за графическим программированием будущее.

Классификация средств графического программирования.

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

-языки, описывающие данные (статические (структура БД), динамические аспекты (поток данных));

Графические языки программирования

Описывающие поток управления

Описывающие структуры данных

Описывающие потоки данных

Описывающие данные

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

Для Бурана с помощью системы ГРАФИТ-ФЛОКС были разработаны алгоритмы и программы для модуля космического аппарата.

Инструмент предметного анализа

BPMN

BPEL

ARIS

UML и другие.

- Для этапа проектирования программной системы и ее документирования

UML 1.0

UML 1.5

UML 2.0

ГОСТ

- графические языки программирования

умеют генерировать исполняемый код.

или интерпретируемые графические языки

Графический язык ориентирован на описание структур программных систем.

Класс графических языков – поведение (протекание) графических процессов.

на конечных автоматах

МЭК 611131

Примеры:

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

VISUAL

GUI

WIMP

Можно взять потянуть кнопочку и сделать текстовую строку и т.д.

Visual Basic

Delphi

Visual Studio

Net Beans

C++ Builder

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

Visual Age IBM – позволяет профессиональным разработчикам строить клиентские части прикладных систем со сложным графическим интерфейсом, проектировать логику работы приложений с доступом к локальным и удаленным ресурсам.

- ОО средство разработки

Visuaj Age for Smalltalk

Visual Age for Java

Visual Age for Fortran

Visual Age for C++

Visual Age реализует принципы построения приложения из готовых частей (деталей).

В Visual Age деталь («part») – законченный программный объект с описанным внешним интерфейсом, устанавливающим свойства деталей.

2 вида деталей:

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

Кнопки, поля ввода и т.д.

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

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

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

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

Внешний интерфейс обладает следующими свойствами:

- атрибуты – данные, к которым имеют доступ другие детали. Описывают сущность и состояние детали.

- события – сигналы, посылаемые деталью для уведомления об изменении ее состояния.

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

- связи – определяют то, каким образом детали взаимодействуют друг с другом.

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

ТИПЫ СВЯЗЕЙ:

- Атрибут – атрибут (соединяет 2 задания данных так, чтобы при изменении одного изменялось другое).

- Событие – действие (при наступлении события инициируется действие).

- Событие – скрипт (запуск встроенной программы при наступлении события).

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

Связи изображаются стрелками.

Данный подход в Visual Age содержит концепцию визуального ОО программирования.

Детали – объекты со свойствами инкапсуляции, наследования и изоморфизма.

Передача методов, данных и событий в системе HiAsm.

ПС и графический язык разработали в РФ. Немаловажным достоинством является бесплатность. Программы для наших платформ зависят от пакета, установленного для разработки. Имеются пакеты FPC, Web, Fas (генерирует программы на Ассемблере), Pocket PC (создает приложения для портативных компьютеров и мобильных телефонов).

Qt – платформа

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

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

HiAsm строится полностью визуально.

Элементы программы переносятся с помощью ниши. Построение алгоритмов программ осуществляется путем соединения элементов линиями.

Семантическим значением является ориентация. Линия связи могут идти исключительно от правой стороны одного элемента к левой стороне другого элемента или от нижней стороны одного к верхней стороне другого. В отдельных случаях возможно замкнуть элемент связями на себе. Некоторые элементы могут быть составными (включить несколько других или же иметь измененное количество «точек»).

«точка» - «порт»

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

Не все элементы имеют все разновидности точек входа.

У кнопки – события и метод, у надписи – метод и свойство, у модуля – все разновидности точек входа.

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

Линии связи представляют собой изображение потоков данных, событий, вызовов методов объекта. HiAsm можно считать комбинированной и более развитой; как правило, после выполнения компонентом метода результат выдается в поток вместе с событием. Большинство методов компонента проверяет поток на наличие данных перед выполнением. Если данные есть и фрагмент совпадает с необходимым, то данные используются.

Можно создавать новые компоненты.

Возможность вставки программного текста на Java, Visual Basic или на базовом языке пакета.

Можно редактировать текст на Паскале.

Имеются средства визуальной отладки.

- Языки, ориентированные на состояние

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

SDL – автоматный

Основные компоненты:

  1. статические (система, блок, процесс, процедура).

  2. графические средства описания способов взаимодействия (возможно с параметрами).

  3. поведение (у каждого процесса имеется набор состояний, находясь в которых, процесс реагирует на события).

  4. средства описания данных

А.Н. Терехов – на основе SDL разработал REAL (автоматическая технология разработки программ).

SFC – Sequential Function Chart

Стандарт МЭК61131

Программирование промышленных контроллеров

START

level high

level low

Motor On

N/Motor_on

Motor Of

N/Motor_on

START

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

ISO 5807.85

ГОСТ 19.003-80

ГОСТ 19.701-90

- процесс

- предопределенный процесс

- решение

- разветвление

- слияние

- границы цикла