Научная статья на тему 'ПРОЕКТИРОВАНИЕ И РАЗРАБОТКА ПРИЛОЖЕНИЯ ДЛЯ ВИЗУАЛЬНОГО ПРОГРАММИРОВАНИЯ'

ПРОЕКТИРОВАНИЕ И РАЗРАБОТКА ПРИЛОЖЕНИЯ ДЛЯ ВИЗУАЛЬНОГО ПРОГРАММИРОВАНИЯ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
120
17
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АЛГОРИТМЫ / ПРОЦЕССЫ / СХЕМЫ / ВИЗУАЛЬНОЕ ПРОГРАММИРВОАНИЕ / ПРОБЛЕМНО-ОРИЕНТИРОВАННЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ / ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Якутин Андрей Михайлович, Корягин Сергей Викторович

Данная статья посвящена проектированию и разработке приложения для создания сценариев различных процессов, доступное пользователю, не владеющего навыками программирования, с простым в освоении и интуитивно понятным интерфейсом. Упомянуты схожие разработки, предложена графическая интерпретация. Представлена базовая инструкция формирования моделей на проектируемом языке. Рассмотрены примеры построения моделей, иллюстрирующие функциональные возможности преложенного автрами проблемено-ориентированного языка.This article is devoted to the design and development of an application for creating scenarios of various processes, accessible to a user who does not have programming skills, with an easy-to-learn and intuitive interface. Examples of model construction illustrating the functionality of the problem-oriented language proposed by the authors are considered.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Якутин Андрей Михайлович, Корягин Сергей Викторович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «ПРОЕКТИРОВАНИЕ И РАЗРАБОТКА ПРИЛОЖЕНИЯ ДЛЯ ВИЗУАЛЬНОГО ПРОГРАММИРОВАНИЯ»

УДК 004

Информационные технологии

Якутин Андрей Михайлович, магистрант, РТУ МИРЭА, Россия, Москва Корягин Сергей Викторович, кандидат технических наук, доцент кафедры «Управление и моделирование систем» МГУПИ. «РТУ МИРЭА»

ПРОЕКТИРОВАНИЕ И РАЗРАБОТКА ПРИЛОЖЕНИЯ ДЛЯ ВИЗУАЛЬНОГО ПРОГРАММИРОВАНИЯ

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

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

Annotation: This article is devoted to the design and development of an application for creating scenarios of various processes, accessible to a user who does not have programming skills, with an easy-to-learn and intuitive interface. Examples of model construction illustrating the functionality of the problem-oriented language proposed by the authors are considered.

Keywords: algorithms, processes, schemes, visual programming, problem-oriented programming languages, artificial intelligence.

Введение

Исторически сложилось, что алгоритмы в программах записываются в виде исходных текстов. Почти никто не ставит в сомнение, что текст - это и есть лучшее средство для представления алгоритмов. Алгоритм кодируется внутри функций на языке программирования. Для тех, кто хочет разобраться в алгоритме с высоты птичьего полета, предусмотрен псевдокод. Однако с текстом есть серьезные проблемы. Дело в том, что человек не оптимизирован под сплошной текст. Человек оптимизирован на восприятие графики. Исходя из этого, логично было бы составлять алгоритмы в графическом виде. Существует несколько средств визуального программирования, на основе которых возможна реализация собственных специальных решений. К ним можно отнести такие среды, как Scratch, Snap! и Blockly. В данных средах создание программ осуществляется путем правильной расстановки блоков перетаскиванием (drag-and-drop) таким образом, чтобы получилась целостная и функционирующая логическая конструкция. Scratch - это объектно-ориентированная визуальная среда программирования, прежде всего предназначенная для обучения программированию школьников. Snap! -расширенная реализация среды Scratch. Среда Snap! реализована на языке JavaScript и работает в браузере. Blockly от Google представляет собой библиотеку, написанную на JavaScript, и предназначенную для встраивания в качестве визуального редактора в вебприложения, работающие через браузер, и приложения под операционные системы Android и iOS.Правила языка по созданию диаграмм разрабатывались с учетом требований эргономики, то есть изначально оптимизировались для восприятия алгоритмов человеком с использованием технологий компьютерной графики. Приложение рассчитано на создание программ, которые можно было бы просматривать как модели, содержащие код на текстовом языке. Следует отметить, что данные среды обладают избыточным функционалом и требуют довольно большой доработки под необходимые нам задачи. В связи с этим, разумным является разработка собственного средства визуального программирования.

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

Описание языка

Архитектура приложения (Рисунок 1) является клиентсерверной, где на сервере выполняется обработка данных, исполнение планов и оценка состояния здания, а клиент показывает состояние системы и управляет планами.

глот.

Рисунок 1 - Архитектура приложения, включающая клиент и сервер

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

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

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

Визуальный алгоритмический язык состоит из следующих компонент, представленных на Рисунке 2:

Рисунок 2 - а) Стартовая икона, б) Икона действия, в) Икона развилки, г) Икона «Конец»

1) Стартовая икона. Изображается окружностью зеленого цвета и означает какое-либо событие/ происшествие (Рисунок 2 а). Является началом действия.

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

в)

г)

3) Икона развилки. Изображается в виде ромба и представляют точки принятия решений в процессе (Рисунок 2 в). С помощью «развилки» организуется ветвление и синхронизация потоков управления в модели процесса.

4) Икона «Конец». Изображается окружностью красного цвета с выраженной оконтовкой и означает конец выполнения процесса (Рисунок 2 г).

Пример работы

С помощью компонент построили два процесса: «Обед» «Телефон» и описали выполнение алгоритмов (Рисунок 3, 4). Далее проверили на валидацию, если она успешна, то будет сгенерирован текстовый файл. Примеры

Рисунок 3 - Пример процесса «Обед»

Пример текстового файла процесса «Обед», созданный редактором:

print ('Обед') while True: print(Tbi голодный?') string = input()

if string == 'Нет':

рпП:('Иди работай') break

elif string == 'Да': рпп^'Съешь бутерброд') else:

рпп^'Ошибка')

Звонит телефон

О

Телефон найден?

Номер

г

Найди телефон

< / / г Нет

Да

Нет

? /

Ответить на звонок

1

Сбросить звонок

Положить телефон

О

Рисунок 4 - Пример процесса «Телефон» Пример текстового файла процесса «Телефон», созданный редактором:

print('Звонит телефон') while True:

print('Телефон найден?') string = input()

if string == 'Нет':

print('Ищи телефон') elif string == 'Да':

print('Номер определился?') break else: print('Ошибка') continue

while True: word = input() if word == 'Нет':

print('сбросить звонок') break elif word == 'Да':

рпП:('Ответить на звонок') рпП:('Сбросить звонок') break else:

print('Ошибка') continue print('Положить телефон')

Вывод

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

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

Библиографический список:

1. Коробов П.Н. Математическое программирование и моделирование экономических процессов: Рек. УМО МО РФ в кач. учебника для вузов. -3-е изд., перераб. и доп.-СПб.: Изд-во ДНК, 2006.-375 с.:ил.-(Классическое образование). Библиогр: с. 360-362ISBN 5-901562-60-7:232.88 519.8.

2. Корягин С.В., Ильмухин С.В., Цыпленков С.В. "Система непрерывного моделирования" М., Вестник МГУПИ, 2013.

3. Scratch: https://scratch.mit.edu [Электронный ресурс].

4. Snap!: https://scratch.mit.edu [Электронный ресурс].

5. Blockly: https://developers.google.com/blockly/ [Электронный ресурс].

6. А.М. Караева, «Проблемно-ориентированные языки в программировании», 2017 г. Международная научно-практическая конференция «Научные исследования: векторы развития».

7. В.Ш. Кауфман, «Языки программирования. Концепции и принципы», 2011 г. ДМК Пресс, 2-е издание.

8. Альфред В. Ахо, Джон Э. Хопкрофт, Джеффри Д. Ульман. Структуры данных и алгоритмы. - М.: Издательский дом «Вильямс», 2008.

9. В.Л. Рвачов, А.Н. Шевченко, «Проблемно-ориентированные языки и системы для инженерных расчетов», 1988 г. Издательство «Тэхника».

10. Молчанов А.Ю. Системное программное обеспечение: учебник для вузов - 3-е изд.- СПб.: Питер, 2010. - 400 с.: ил. - ISBN 978-5-49807-153-4.

i Надоели баннеры? Вы всегда можете отключить рекламу.