Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Программные средства создания клиентских программ (Теоретические аспекты клиентских программ)

ВВЕДЕНИЕ

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

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

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

Цель исследования – изучить программные средства создания клиентских программ.

Для решения данной цели были сформулированы следующие задачи:

1. Исследовать понятие и назначение клиентских программ.

2. Выделить основные виды клиентских программ.

3. Изучить языки программирования.

4. Провести обзор программных продуктов для создания клиентских программ.

4. Сравнить программные продукты для создания клиентских программ.

Структура исследования определяется поставленными задачами. Работа состоит из введения, двух глав, заключения.

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

При работе использовалась научная и учебная литература по изучаемому вопросу.

1 Теоретические аспекты клиентских программ

1.1 Понятие и назначение клиентских программ

Клиентской называется часть приложения, с которой напрямую взаимодействует конечный пользователь. Это может быть либо приобретенное компанией серийное коммерческое программное обеспечение, либо прикладная программа, разработанная внутри компании с помощью инструментальных средств третьих фирм[1].

Наличие клиентских приложений способствует упрощению работы конечного пользователя базы данных. От него скрыты объекты базы данных, содержащие реальную информацию, программный код, а также происходящие внутри нее события. Современные технологии делают работу с прикладными программами для конечного пользователя более интуитивной: они дают ему возможность сосредоточится на выполнении своих прямых обязанностей и, тем самым, способствуют повышению производительности его труда[2].

Как известно, технология «клиент-сервер» предполагает обслуживание клиента только по его запросу, тот же самый принцип справедлив и для PKI. Клиентское программное обеспечение (ПО) пользователя должно запрашивать сервисы сертификации и обрабатывать информацию об аннулированных сертификатах, понимать истории ключей и отслеживать своевременное обновление или восстановление ключей, анализировать необходимость проставления меток времени[3]. Клиентскому ПО необходимо распознавать идентификаторы политики применения сертификатов, вовремя определять статус сертификата и правильно выполнять обработку пути сертификации.

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

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

Имеются и многие другие разнообразные задачи, решить которые можно только со стороны конечного пользователя. Кроме того, для их выполнения зачастую требуются специализированные программы и объекты, такие как графические редакторы и 3D-элементы. Не стоит забывать и про необходимость в некоторых ситуациях таких услуг, как математический анализ[6].

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

  1. Предпочтение отдается полной автономности программного продукта. Другими словами, особую ценность приобретают те средства, которые не требуют постоянного контроля со стороны администратора.
  2. Защищенность клиентской части программного средства от возможной попытки взлома злоумышленниками[7].

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

Типичным примером клиентского приложения является браузер, с помощью которого вы заходите на сайты. Во-первых, вам нужно понимать архитектуру взаимодействия клиент-сервер. Во-вторых, вам нужно знать, что и клиентские программы, и серверные могут взаимодействовать на одном и том же компьютере[8].

В общем случае клиентское приложение – это приложение, отправляющее запросы серверу с целью получения той или иной информации. Термин клиент в области IT чаще всего применяется именно к приложениям. Если говорить о сфере веб, то мы уже упоминали о браузерах, которые отправляют серверу специальные HTTP сообщения, которые получили название HTTP запрос, серверы в свою очередь отправляют клиенту сообщения, которые называются HTTP ответы[9].

Запросы клиента содержат специальные HTTP методы, которые позволяют указать серверу на то, как он должен обрабатывать запрос (некоторые запросы позволяют получить информацию с сервера, некоторые удалить информацию, а некоторые записать, всё зависит от метода). HTTP сервер, отправляя ответ, сообщает клиенту о том, как он понял запрос при помощи специальных кодов состояния[10].

Если говорить про MySQL сервер, то у него есть клиент, который позволяет выполнять SQL запросы к базе данных из командой строки (это специальное приложение), а также есть клиент с графическим интерфейсом, который позволяет управлять базами данных при помощи мышки. В качестве сервера, к которому делают запросы браузеры, можно привести пример сервера Apache. Если же вас интересуют готовые сборки серверов для веб-разработки, то можно порекомендовать: локальный веб-сервер AMPPS и российскую сборку Denwer[11].

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

1.2 Основные виды клиентских программ

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

Компонент клиентской стороны PKI может быть:

  • относительно большим («толстый» клиент), выполняющим большую часть операционной работы PKI, в том числе обработку путей сертификации и валидацию;
  • относительно небольшим («тонкий» клиент), просто вызывающим внешние серверы для выполнения PKI-функций;
  • Java-апплетом или аналогичным мобильным кодом, при необходимости загружаемым в режиме реального времени, а затем удаляемым после завершения работы вызывающего приложения (подобного web-браузеру);
  • динамически подключаемой библиотекой (Dynamically Linked Library - DLL) или аналогичной, которая размещается резидентно на клиентской платформе[13].

Существует много возможностей реализации и вызова клиентского ПО, но главным требованием является независимость этого компонента от приложений, использующих PKI[14].

Каждый компонент, чтобы быть частью PKI, должен удовлетворять критерию безопасности. Этот критерий характеризует необходимый для целей бизнеса уровень защищенности в пределах допустимого уровня риска[15]. Механизмы безопасности, обеспечивающие заданный уровень защищенности, обычно подразделяют на механизмы защиты аппаратных средств, компьютерной платформы, сети и приложений. PKI-совместимые приложения не позволяют обеспечить полную безопасность корпоративной сети и должны быть дополнены другими средствами защиты, например, межсетевыми экранами, сервисами аутентифицируемых имен (службами имен) и строгим контролем администратора сети.

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

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

Разработка позволяет работать сразу нескольким пользователям. Даже при отсутствии соединения с сервером (в некоторых случаях, зависит от программы), он может продолжать работать с локальными сохраненными копиями баз, а обмениваться информацией после появления связи[17].

Но обширные функции продукта несовместимы с политикой безопасности, а его цена очень высокая. Работая с ним, появляются трудности, касающиеся удаленной работы с данными. Их сложно обновлять, согласовывать с другими пользователями. К тому же эти сведения уже бывают неактуальными. Установить толстый клиент не всегда просто, часто может потребоваться помощь специалиста. Обычно сложность заключается не столько в установке, сколько в правильной настройке[18].

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

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

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

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

На компьютере пользователя запускается только оболочка, все остальные данные хранятся и обрабатываются на сервере. Таким образом достигается высокая скорость работы на слабых ПК, а также обеспечивается высокая защита информации[21].

Сервер хранит все программы, приложения, данные. На нем же осуществляются вычисления. Толстый клиент по загрузке бывает локальным и сетевым. Управление осуществляется:

  • удаленно, на расстоянии;
  • локально через специальные приложения;
  • централизованно – при выборе клиента и задании настроек.

Веб-клиент. Это не обособленная разработка, а технология, при помощи которой можно заходить в программу через браузер, введя в строчке адрес нужного сервера. Для его функционирования нужно заранее «развернуть» веб-сервер. Чаще всего используется платформой 1С, соответствующей требованиям тонкого клиента. Версия привлекательна тем, что для ее функционирования на оборудовании устанавливать ничего не требуется, она поддерживается всеми распространенными браузерами[22].

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

Главное отличие между толстым и тонким клиентом заключается в том, что тонкий клиент большую часть расчетов осуществляет на сервере. Толстый использует рабочее пользовательское место. Все отличия актуальны для всех приложений, в том числе 1С[23]. Другие отличия:

  1. Толстая версия возникла давно, и некоторое время она была единственным пакетом услуг. Тонкая разработка внедрилась недавно, и она кардинально отличается от другого продукта.
  2. Тонкий клиент не выдвигает особенных требований к линии связи, поскольку обмен данных с сервером происходит в небольшом объеме.
  3. Чтобы инсталлировать, загрузить и настроить обновления для толстой версии, понадобится вызвать квалифицированного специалиста. Это связано с тем, что пакет подразумевает использование большого объем ПО. С инсталляцией и установкой тонкого приложения справится продвинутый пользователь.
  4. Устанавливать тонкую разработку нужно в том случае, если сотрудник часто находится в разъездах или трудится удаленно, из другого города на ноутбуке или иной технике[24].
  5. Пакет, работающий в тонком режиме, имеет меньше требований к линии связи, что совсем не противоречит полному использованию системы. Но если несколько сотрудников в одно и то же время будут потреблять резервы сервера, могут появиться проблемы в системе.
  6. Для обновления тонкого приложения не требуется вмешательства сотрудника, она обновляется в автоматическом режиме. Для толстой версии их придется скачать с официальной страницы.
  7. С тонким пакетом можно совершать операции через интернет.
  8. Толстое приложение без перерывов функционирует только на аппаратуре с высокой мощностью при обеспечении стабильного канала связи, предоставляя сотруднику свободу действий.
  9. Если бухгалтерия и другие сотрудники работают в стационарном режиме, то рекомендовано применять толстую версию, подсоединив высокомощные устройства к локальной сети[25].

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

Чтобы расширить функционал продукта, его утолщают – прибавляют возможность работать в автономном режиме, сохраняя функционирование с терминалом. При внедрении в разработку жесткого диска, она перестает называться тонкой, и превращается в универсальную[26].

Сейчас чаще всего используется клиент-серверный вариант. Некоторый объем работы осуществляется на сервере, а другой – на компьютере пользователя. Распределение способствует снижению нагрузки на аппаратуру и оптимизации функционирования всей системы[27]. Если предприятие оснащено современной техникой объединенной в локальную сеть, то рекомендуется сделать выбор в пользу толстой разработки. Работая с базой посредством интернета, применяя маломощные компьютеры и мобильные, лучше установить тонкий вариант. Простые в эксплуатации программы являются достойными конкурентами западным аналогам. Приложения популярны и востребованы в России.

2 Основные программные средства для создания клиентских программ

2.1 Языки программирования для создания клиентских программ

Языки программирования – один из самых значимых инструментов в разработке клиентских программ. Правильный выбор языка для разрабатываемого приложения – важное условие успеха разработки и достижения непрерывной интеграции или постоянной поддержки[28].

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

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

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

Существующие языки программирования принято разделять на серверные и клиентские. Сервер являет собой компьютер, на котором находятся файлы сайта. Клиент - это сам пользователь, а если быть точнее, то браузер, установленный на ПК. Подавая запрос к серверу, он выступает в роли клиента[31].

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

К тому же браузер слишком ранней версии может не поддерживать язык или версию языка, на котором программа написана. Но тут, правда, стоит сказать, что случается это довольно редко, так как обновляются ЯВП не так уж и часто[32].

Программный код скрипта, созданного на клиентском ЯВП, может просмотреть кто угодно, например, щёлкнув правой кнопкой мыши на странице и выбрав в контекстном меню пункт «Просмотр кода страницы» или подобный ему (в зависимости от браузера)[33].

Самыми распространенными клиентскими языками являются: JavaScript и VisualBasicScript (VBS).

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

Клиентские языки программирования обладают значительными преимуществами, среди которых отсутствие необходимости отправления документа для последующей обработки на удаленном сервере. Это положительно сказывается на скорости чтения скрипта, сокращает трафик, нагрузку на сервер и денежные средства. Также это снимает необходимость использования дополнительного софта, отвечающего за обработку скриптов. С этим в полной мере способен справится браузер. За пользование серверными языками хостер взимает определенную плату в то время, как клиентские доступны на бесплатной основе[34].

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

Особенности клиентского языка[36]:

  • Клиентские языки обрабатываются на компьютере клиента и не требуют отправки документа на удаленный сервер для его последующей обработки;
  • Работают значительно быстрее;
  • Высокий уровень нагрузки на клиенте;
  • Результаты обработки разнятся в зависимости от версии браузера;
  • Могут не поддерживаться клиентом;
  • Сведения не сохраняются на сервере[37].

Самым большим плюсом клиентских языков программирования является то, что нет необходимости отправлять веб-документ  для обработки на сервер. Эта особенность значительно повышает скорость чтения скрипта. Уменьшается трафик, что экономит деньги и снижается нагрузка на сервер. Так же нет надобности ставить дополнительное программное обеспечение для обработки скриптов, т.к. их обрабатывают браузеры[38].

Недостатки клиентских языков программирования также вытекают из особенностей. Разные браузеры могут интерпретировать скрипты, исходя из своих индивидуальных предпочтений. Поэтому, результаты показа одних и тех же документов могут отличаться. Хотя, последнее время работа различных браузеров всё более унифицируется. Так же к недостаткам можно отнести и открытость кода таких языков для пользователей[39].

Далее изучим основные языки программирования.

1. Golang, язык программирования, более известный просто как Go, – относительно новый язык, представленный широкой аудитории в 2009 году. Он появился в то время, когда начало возрастать значение разработки и эксплуатации приложений.

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

Вероятно, единственный недостаток Go заключается в том, что этот язык еще молодой, и пока с ним не знакомы многие специалисты. Некоторым инженерам по разработке и эксплуатации приложений придется потратить время на освоение языка[40].

2. Python существует с 1980-х и к настоящему времени уже широко известен. Как язык сценариев он довольно удобен для таких задач, как управление инфраструктурой. Но не следует недооценивать Python и как язык программирования приложений. Благодаря обширным библиотекам общедоступных модулей Python можно быстро приступить к решению задачи и не писать самостоятельно лишнего программного кода[41].

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

Наконец, Python, вероятно, является одним из универсальных языков. Это адаптируемый язык, который сегодня используется везде, от Интернета вещей (IoT) до обработки объемных данных. Можно с уверенностью утверждать, что развитие Python будет продолжаться, чтобы удовлетворить любые потребности программистов в области разработки и эксплуатации приложений в будущем[42].

3. Ruby. Управление инфраструктурой, вероятно, главная область применения Ruby, но, как и Python, этот кросс-платформенный язык можно успешно применять для самых разнообразных задач[43].

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

Наконец, Ruby обеспечивает очень гибкий подход к программированию. В отличие от некоторых других языков, при работе с Ruby не предусмотрен какой-либо определенный подход к проектированию кода. При желании язык можно использовать для процедурного программирования, но можно и составить потоки Ruby для выполнения через интерпретатор. Это объектно-ориентированный язык, но его не обязательно использовать таким образом[44].

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

5. Scala. Авторы Scala постарались взять все лучшее из Java, отказавшись от неудачных компонентов. Scala – объектно-ориентированный язык, что упрощает создание модульной базы программного кода. Код Scala обычно гораздо чище и компактнее, чем Java, поэтому нескольким разработчиком проще работать над одним проектом. А благодаря возможности импорта классов и библиотек Java в приложения Scala, при необходимости вы можете воспользоваться огромной библиотекой функций Java.

Производительность Scala в целом не намного выше, чем Java. Это, вероятно, основной недостаток Scala. Еще один изъян: для запуска приложений Scala необходима среда исполнения Java[46].

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

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

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

Си не проектировался как объектно-ориентированный язык, поэтому для проектирования модульного программного кода он не подойдет. Для этой цели предпочтителен родственный язык, C++[48].

2.2 Обзор программных продуктов для создания клиентских программ

Средства разработки программ – это специальные программы для создания программ.

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

Однако программное обеспечение становилось всё сложнее, создавать его в машинных кодах становилось всё более долго и неудобно, поэтому программисты начали облегчать себе жизнь[49].

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

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

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

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

Основные инструменты, которые входят почти во все современные средства разработки, перечислены ниже:

  1. Редактор исходного кода. Это текстовый редактор, который от обычных редакторов отличается возможностью подсветки синтаксиса. Подсветка синтаксиса - это выделение ключевых слов и других важных элементов языка программирования цветом и/или шрифтом. Конечно, для создания программ можно использовать и обычный текстовый редактор.
  2. Компилятор (или интерпретатор). Специальная программа, которая преобразует исходные коды в готовую программу - исполняемый файл. В операционных системах Windows такой файл обычно имеет расширение EXE.
  3. Отладчик. Это специальная программа, которая помогает искать ошибки в исходных кодах[52].

Для создания программы достаточно редактора исходного кода и компилятора. Конечно, отладчик тоже не помешает. Кроме того, в современных средствах разработки есть немало других полезных инструментов, которые используются редко, но всё-же могут пригодиться[53].

Далее изучим основные программные средства для разработки клиентских программ.

1. Visual Studio – мощная среда для разработки приложений, включающая в себя широкий набор функциональных инструментов. Поддерживает все популярные языки, среди которых: C++, JavaScript, Visual Basic, AJAX, Python, TypeScript и так далее. Содержит средства статического анализа исходного кода и его комплексной отладки[54].

Здесь можно создавать программное обеспечение под операционные системы Windows, Linux, Mac OS и для мобильных устройств под управлением Android и iOS. Доступна совместная работа над одним проектом с разных компьютеров в режиме реального времени.

Главные преимущества:

  • Большое количество функций;
  • Наличие отладчика для JS;
  • Поддержка нескольких мониторов;
  • Использование сплит-окон XML и CSS;
  • Удобная регулировка рабочей области;
  • Продвинутый конструктор и редактор кода;
  • Простой и интуитивно понятный интерфейс на русском языке;
  • Возможность разрабатывать графические элементы Windows Forms;
  • Регулярные автообновления от официального сайта Майкрософт[55].

2. IntelliJ IDEA – отличается наличием самых мощных инструментов для создания коммерческих, мобильных и веб-приложений. Получает регулярные обновления от сайта разработчиков. Имеется в своём арсенале полезные средства анализа качества и автодополнения кода[56].

В список совместимых языков входят: JS, Java, HTML, Groovy, CSS, XML, ActionScript, Scala, CoffeeScript, Perl5, Erlang, Fantom, Lua, OCaml, GLSL, Haskell и многие другие. Присутствует поддержка таких серверов приложений, как WebLogic, Virgo, GlassFish, WebSphere, Tomcat, TomEE, JBoss, Resin, Jetty, Geronimo. Доступна работа с базами данных и SQL-файлами[57].

Основные возможности:

  • Удаленный доступ к вашим проектам;
  • Встроенный дизайнер интерфейса для Swing;
  • Профессиональная разработка Андроид-приложений;
  • Позволяет создать программу и протестировать её;
  • Удобные подсказки для имен параметров и типов значений;
  • Поддержка всех последних технологий и фреймворков Java;
  • Функция предварительного просмотра во всплывающем окне;
  • Работает с современными платформами Windows, Android, iOS и т.д.
  • Интеграция с системами управления Perforce, Git, Team Foundation Server, Subversion, CSV, ClearCase, Visual SourceSafe, Mercurial[58].

3. HiAsm – современный конструктор приложений с богатым набором функций. Вы сможете легко и быстро сделать программу, даже без наличия высокого уровня знаний тех или иных языков. Использование софта не вызывает нареканий. Присутствует русскоязычная локализация и удобный подсказчик[59].

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

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

Ключевые достоинства программы HiAsm:

  • Кроссплатформенность;
  • Удобные средства управления;
  • Позволяет создать игру в 2D и 3D;
  • Функция коллективной работы над проектом;
  • Отправка ваших схем по электронной почте;
  • Качественная визуальная среда программирования;
  • Доступно рисование собственных GUI-элементов;
  • Возможность расширения путем установки дополнительных пакетов;
  • Широкий выбор форм, цветов и стилей для интерфейса разрабатываемого софта[61].

4. Game Editor – бесплатная программа для создания игр и приложений на различные платформы, включая Виндовс, Линукс, а также Handheld PC, Pocket PC/Windows Mobile. Однако для запуска готовых проектов на ПК потребуется библиотека  Java Runtime Environment[62].

В процессе разработки, вы сможете пользоваться набором различных игровых объектов, каждому из них можно задать поведение, которое будет зависеть от того или иного события. Стоит отметить встроенную библиотеку, содержащую всевозможные анимации, текстуры и модели. К своим проектам можно добавлять графические элементы и музыкальное сопровождение в форматах Ogg Vorbis, WAV, MID, MOD, S3M, IT и XM[63].

Небольшим недостатком утилиты, является интерфейс на английском языке. С другой стороны - присутствует удобный подсказчик, понятный даже новичка. Кроме того, бесплатная версия софта не потребует от вас специальных знаний по разработке скриптов или программных кодов. Для тех же, кто обладает навыками скриптинга и желает продавать свои проекты в онлайн-маркетах, существует Express-версия за 99 дол. США[64].

Особенности Гейм Эдитор:

  • Предельно простое меню;
  • Позволяет создавать игры в 2D;
  • Обладает открытым исходным кодом;
  • Возможность редактировать поведение объектов;
  • Последняя версия работает с экранами высокого разрешения;
  • Быстрая компиляция одного и того же проекта для разных устройств;
  • Добавление файлов в формате JPEG, GIF, PNG, BMP, XPM, TIFF, PCX, XCF, TGA[65].

5. Arduino IDE позволит разработать программу для управления автоматическими устройствами, такими как: светодиоды, реле, микроконтроллеры или электромоторы. Содержит опции экспорта, сохранения, поиска и замены скетчей. Присутствует продвинутый компилятор и модуль для загрузки новых прошивок платы[66].

Преимущества бесплатной среды Ардуино:

  • Изучение кода на языке C++;
  • Наличие удобного главного меню;
  • Развитые средства прошивки робототехники и автоматики;
  • Высокая скорость установки программы (скетча) в устройства;
  • Возможность работать с несколькими проектами одновременно;
  • Полная совместимость с любыми видами плат Arduino;
  • Совместимость с Max/MSP, Macromedia Flash, SuperCollider, Pure Data;
  • Большое количество справочной информации и примеров для новичков[67].

6. Turbo Pascal от компании Borland – интегрированная среда разработки ПО для DOS и Windows ОС на известном языке Паскаль. Включает в себя компилятор, отладчик, командную строку и встроенную систему библиотек. Специально для начинающих программистов, имеется контекстная справка, позволяющая изучать язык без обращения к сторонним источникам.

Сильные стороны:

  • Отличается высокой скоростью компиляции;
  • Работа программы в обычном и защищенном режиме;
  • Подключение дополнительных модулей и библиотек;
  • Доступно использование вставок на языке ассемблера[68].

Visual Studio и IntelliJ IDEA – самые мощные и многофункциональные средства, благодаря которым можно создавать мобильные и компьютерные программы. Поддерживают фактически все распространенные языки программирования, работают с большинством современных ОС. 

Turbo Pascal позволит создавать простенькие программы, является неплохим вариантом для стартового обучения, потому как легок в освоении и содержит хороший раздел со справкой. Ранее Free Pascal даже преподавали в школах, где следующим этапом было программирование на Delphi[69].

Arduino IDE необходимо выбрать тем, кто хочет без особых хлопот загружать скетчи в платы Ардуино. Учитывая тот факт, что платы включают в себя пару десятков контактов, вы сможете подключать к ним разнообразные компоненты, к примеру: датчики, светодиоды, лампочки, моторы и даже магнитные дверные замки, электрочайники, роутеры и многое другое. Так вот, разработанное вами приложение будет управлять всеми этими устройствами по заданному алгоритму[70].

Вместе с Game Editor, можно быстро создать игру на компьютер. Интегрированный в программу набор разнообразных текстур и моделей, сделает творческий процесс простым и комфортным. Также поддерживает добавление изображений и звуков. Идентичные возможности вы найдете в более продвинутом и функционально развитом конструкторе HiAsm, представляющем собой лёгкую, быструю и удобную среду разработки. Кроме того, web-версия данного инструмента позволит работать над вашими проектами фактически с любого устройства и из любого браузера. А главное для многих преимущество в использовании таких утилит – нет необходимости знать языки программирования[71].

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

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

Для того чтобы выбрать наиболее оптимальное программное средство, необходимо провести сравнительный анализ. Оценку программных средств для разработки начнем с общих данных, таблица 1.

Таблица 1 – Сравнение общих данных программных средств для разработки клиентских программ[73]

Критерии

Visual Studio

IntelliJ IDEA

HiAsm

Game Editor

Arduino IDE

Turbo Pascal

Наличия русского языка

+

-

+

-

+

-

Лицензия

бесплатно

бесплатно

бесплатно

бесплатно

бесплатно

бесплатно

Удобство интерфейса

9

8

8

7

9

7

Как видно из таблицы 1, не у всех программных средств есть русский язык. Русский язык есть только у Visual Studio, HiAsm, Arduino IDE. Все программные средства распространяются бесплатно. По удобству интерфейсу наилучшие позиции занимают Visual Studio и Arduino IDE. Хуже всех по удобству интерфейсу Game Editor и Turbo Pascal.

В таблице 2 представлено сравнение программных средств основных функций.

Таблица 2 – Сравнение основных функций программных средств для разработки клиентских программ[74]

Критерии

Visual Studio

IntelliJ IDEA

HiAsm

Game Editor

Arduino IDE

Turbo Pascal

Редактор событий

+

+

+

+

+

-

Тестирование программ

+

+

+

+

+

+

Инструмент комплексной отладки

+

+

+

+

+

+

Библиотека текстур и моделей

+

+

+

+

-

-

Статический анализ исходного кода

+

+

+

+

+

+

Сравнивая основные функции, можно сделать вывод, что Visual Studio, IntelliJ IDEA, HiAsm обладает всеми функциями. Наихудшим функционалом обладает Turbo Pascal.

В таблице 3 представлено сравнение программных средств дополнительных возможностей для разработки приложений.

Таблица 3 – Сравнение дополнительных возможностей программных средств для разработки клиентских программ[75]

Критерии

Visual Studio

IntelliJ IDEA

HiAsm

Game Editor

Arduino IDE

Turbo Pascal

Создание игр

+

+

+

+

-

+

Использование сплит-окон

+

+

+

-

+

+

Совместный режим работы

+

+

+

+

+

-

Встроенные наборы анимации

+

+

+

+

-

-

Загрузка медиа файлов в проект

+

+

+

+

-

-

Всеми дополнительными возможностями обладают такие программы как Visual Studio, IntelliJ IDEA, HiAsm. Ограниченный набор дополнительных возможностей имеет Turbo Pascal. В таблице 4 представлено сравнение программных средств по платформам.

Таблица 4 – Сравнение программных средств для разработки клиентских программ по платформам[76]

Критерии

Visual Studio

IntelliJ IDEA

HiAsm

Game Editor

Arduino IDE

Turbo Pascal

Windows

+

+

+

+

-

+

Linux

+

+

+

+

-

-

Mac OS

+

+

+

-

-

-

Android

+

+

-

-

-

-

Оценивая программные средства по платформам, можно сделать вывод, что для всех платформ можно применить такие программы как Visual Studio, IntelliJ IDEA. Проведя сравнение программных средств по данным критериям, наилучшим средством разработки можно признать Visual Studio.

ЗАКЛЮЧЕНИЕ

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

Для решения данной цели были решены следующие задачи:

1. Исследовано понятие и назначение клиентских программ.

2. Выделены основные виды клиентских программ.

3. Изучены языки программирования.

4. Проведен обзор программных продуктов для создания клиентских программ.

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

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

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

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

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

Средства разработки программ – это специальные программы для создания программ. В процессе работы были исследованы следующие программы для разработки клиентских приложения: Visual Studio, IntelliJ IDEA, HiAsm, Game Editor, Arduino IDE, Turbo Pascal. Далее был проведен сравнительный анализ. Проведя сравнение программных средств по выбранным критериям, наилучшим средством разработки можно признать Visual Studio.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

  1. Авдошин С. М. Информатика и ИКТ/ С.М. Авдошин, Р.З. Ахметсафина, О.В. Максименкова. – М.: Просвещение, 2018. – 252 с.
  2. Баранцова А.С. Информационные системы и программные средства для их создания/А.С. Баранцова // Материалы VIII Международной студенческой научной конференции «Студенческий научный форум» – 2017. – № 4. – С.23.
  3. Блюмин А.М. Проектирование систем информационного, консультационного и инновационного обслуживания: учебное пособие / А. М. Блюмин, Л. Т. Печеная, Н. А. Феоктистов. – СПб.: Дашков и К, 2017. – 352 с.
  4. Бобров А. Н. Проблемы выбора языка программирования в школьном курсе информатики /А.Н. Бобров // Молодой ученый. – 2017. – №24. – С. 61-64.
  5. Гниденко И. Г. Технология разработки программного обеспечения : учебное пособие для среднего профессионального образования / И. Г. Гниденко, Ф. Ф. Павлов, Д. Ю. Федоров. – М. : Юрайт, 2019. – 235 с.
  6. Гниденко И. Г. Технологии и методы программирования : учебное пособие для прикладного бакалавриата / И. Г. Гниденко, Ф. Ф. Павлов, Д. Ю. Федоров. – М. : Юрайт, 2019. – 235 с.
  7. Дейт К.Дж. Введение в системы баз данных /К.Дж. Дейт – М.: ДМК, 2018. – 762 с.
  8. Зыков С. В. Программирование : учебник и практикум для академического бакалавриата / С. В. Зыков. – М. : Юрайт, 2019. – 320 с.
  9. Казанский А. А. Объектно-ориентированный анализ и программирование на visual basic 2013 : учебник для среднего профессионального образования / А. А. Казанский. – М. : Юрайт, 2019. – 290 с.
  10. Казанский А. А. Программирование на visual C# 2013 : учебное пособие для среднего профессионального образования / А. А. Казанский. – М. : Юрайт, 2019. – 191 с.
  11. Камер Э. Д. Сети TCP/IP. Том 3. Разработка приложений типа клиент/сервер для Linux/POSIX/Э.Д. Камер – М.: Вильямс, -СПб-Киев, 2017. – 576 с.
  12. Кудрина Е. В. Основы алгоритмизации и программирования на языке C# : учебное пособие для бакалавриата и специалитета / Е. В. Кудрина, М. В. Огнева. – М.: Юрайт, 2019. – 322 с.
  13. Когаловский М. Р. Перспективные технологии информационных систем/М.Р. Когаловский. – М.: ДМК Пресс; Компания АйТи, 2016. – 288 с.
  14. Левушкин А. В. Основные современные языки программирования/ А.В. Левушкин, М.К. Турчанинов, А.А. Жиганов, В.В. Ермолаева // Молодой ученый. – 2018. – №25. – С. 96-98.
  15. Насретдинов И.Р. Обзор российского рынка программных продуктов /И.Р. Насретдинов // Международный студенческий научный вестник. – 2016. – № 4-5. – С. 6-9.
  16. Программы для создания программ на компьютере. URL: http://softcatalog.info/ru/obzor/programmy-dlya-sozdaniya-programm-na-kompyutere (дата обращения: 07.11.2019).
  17. Тузовский А. Ф. Объектно-ориентированное программирование : учебное пособие для прикладного бакалавриата / А. Ф. Тузовский. – М.: Юрайт, 2019. – 206 с.
  18. Хомоненко А.Д. Базы данных /А.Д. Хомоненко, В.М. Цыганков – Спб.: БХВ-Петербург, 2017. – 678 с.
  19. Черпаков И. В. Основы программирования : учебник и практикум для прикладного бакалавриата / И. В. Черпаков. – М. : Юрайт, 2019. – 219 с.

  1. Авдошин С. М. Информатика и ИКТ/ С.М. Авдошин, Р.З. Ахметсафина, О.В. Максименкова. – М.: Просвещение, 2018. – 252 с.

  2. Бобров А. Н. Проблемы выбора языка программирования в школьном курсе информатики /А.Н. Бобров // Молодой ученый. – 2017. – №24. – С. 61-64.

  3. Когаловский М. Р. Перспективные технологии информационных систем/М.Р. Когаловский. – М.: ДМК Пресс; Компания АйТи, 2016. – 288 с.

  4. Гниденко И. Г. Технологии и методы программирования : учебное пособие для прикладного бакалавриата / И. Г. Гниденко, Ф. Ф. Павлов, Д. Ю. Федоров. – М. : Юрайт, 2019. – 235 с.

  5. Черпаков И. В. Основы программирования : учебник и практикум для прикладного бакалавриата / И. В. Черпаков. – М. : Юрайт, 2019. – 219 с.

  6. Камер Э. Д. Сети TCP/IP. Том 3. Разработка приложений типа клиент/сервер для Linux/POSIX/Э.Д. Камер – М.: Вильямс, -СПб-Киев, 2017. – 576 с.

  7. Тузовский А. Ф. Объектно-ориентированное программирование : учебное пособие для прикладного бакалавриата / А. Ф. Тузовский. – М.: Юрайт, 2019. – 206 с.

  8. Когаловский М. Р. Перспективные технологии информационных систем/М.Р. Когаловский. – М.: ДМК Пресс; Компания АйТи, 2016. – 288 с.

  9. Зыков С. В. Программирование : учебник и практикум для академического бакалавриата / С. В. Зыков. – М. : Юрайт, 2019. – 320 с.

  10. Зыков С. В. Программирование : учебник и практикум для академического бакалавриата / С. В. Зыков. – М. : Юрайт, 2019. – 320 с.

  11. Дейт К.Дж. Введение в системы баз данных /К.Дж. Дейт – М.: ДМК, 2018. – 762 с.

  12. Камер Э. Д. Сети TCP/IP. Том 3. Разработка приложений типа клиент/сервер для Linux/POSIX/Э.Д. Камер – М.: Вильямс, -СПб-Киев, 2017. – 576 с.

  13. Левушкин А. В. Основные современные языки программирования/ А.В. Левушкин, М.К. Турчанинов, А.А. Жиганов, В.В. Ермолаева // Молодой ученый. – 2018. – №25. – С. 96-98.

  14. Зыков С. В. Программирование : учебник и практикум для академического бакалавриата / С. В. Зыков. – М. : Юрайт, 2019. – 320 с.

  15. Камер Э. Д. Сети TCP/IP. Том 3. Разработка приложений типа клиент/сервер для Linux/POSIX/Э.Д. Камер – М.: Вильямс, -СПб-Киев, 2017. – 576 с.

  16. Гниденко И. Г. Технология разработки программного обеспечения : учебное пособие для среднего профессионального образования / И. Г. Гниденко, Ф. Ф. Павлов, Д. Ю. Федоров. – М. : Юрайт, 2019. – 235 с.

  17. Баранцова А.С. Информационные системы и программные средства для их создания/А.С. Баранцова // Материалы VIII Международной студенческой научной конференции «Студенческий научный форум» – 2017. – № 4. – С.23.

  18. Левушкин А. В. Основные современные языки программирования/ А.В. Левушкин, М.К. Турчанинов, А.А. Жиганов, В.В. Ермолаева // Молодой ученый. – 2018. – №25. – С. 96-98.

  19. Гниденко И. Г. Технология разработки программного обеспечения : учебное пособие для среднего профессионального образования / И. Г. Гниденко, Ф. Ф. Павлов, Д. Ю. Федоров. – М. : Юрайт, 2019. – 235 с.

  20. Авдошин С. М. Информатика и ИКТ/ С.М. Авдошин, Р.З. Ахметсафина, О.В. Максименкова. – М.: Просвещение, 2018. – 252 с.

  21. Бобров А. Н. Проблемы выбора языка программирования в школьном курсе информатики /А.Н. Бобров // Молодой ученый. – 2017. – №24. – С. 61-64.

  22. Баранцова А.С. Информационные системы и программные средства для их создания/А.С. Баранцова // Материалы VIII Международной студенческой научной конференции «Студенческий научный форум» – 2017. – № 4. – С.23.

  23. Зыков С. В. Программирование : учебник и практикум для академического бакалавриата / С. В. Зыков. – М. : Юрайт, 2019. – 320 с.

  24. Камер Э. Д. Сети TCP/IP. Том 3. Разработка приложений типа клиент/сервер для Linux/POSIX/Э.Д. Камер – М.: Вильямс, -СПб-Киев, 2017. – 576 с.

  25. Зыков С. В. Программирование : учебник и практикум для академического бакалавриата / С. В. Зыков. – М. : Юрайт, 2019. – 320 с.

  26. Левушкин А. В. Основные современные языки программирования/ А.В. Левушкин, М.К. Турчанинов, А.А. Жиганов, В.В. Ермолаева // Молодой ученый. – 2018. – №25. – С. 96-98.

  27. Гниденко И. Г. Технология разработки программного обеспечения : учебное пособие для среднего профессионального образования / И. Г. Гниденко, Ф. Ф. Павлов, Д. Ю. Федоров. – М. : Юрайт, 2019. – 235 с.

  28. Левушкин А. В. Основные современные языки программирования/ А.В. Левушкин, М.К. Турчанинов, А.А. Жиганов, В.В. Ермолаева // Молодой ученый. – 2018. – №25. – С. 96-98.

  29. Авдошин С. М. Информатика и ИКТ/ С.М. Авдошин, Р.З. Ахметсафина, О.В. Максименкова. – М.: Просвещение, 2018. – 252 с.

  30. Бобров А. Н. Проблемы выбора языка программирования в школьном курсе информатики /А.Н. Бобров // Молодой ученый. – 2017. – №24. – С. 61-64.

  31. Гниденко И. Г. Технологии и методы программирования : учебное пособие для прикладного бакалавриата / И. Г. Гниденко, Ф. Ф. Павлов, Д. Ю. Федоров. – М. : Юрайт, 2019. – 235 с.

  32. Баранцова А.С. Информационные системы и программные средства для их создания/А.С. Баранцова // Материалы VIII Международной студенческой научной конференции «Студенческий научный форум» – 2017. – № 4. – С.23.

  33. Казанский, А. А. Объектно-ориентированный анализ и программирование на visual basic 2013 : учебник для среднего профессионального образования / А. А. Казанский. – М. : Юрайт, 2019. – 290 с.

  34. Зыков С. В. Программирование : учебник и практикум для академического бакалавриата / С. В. Зыков. – М. : Юрайт, 2019. – 320 с.

  35. Камер Э. Д. Сети TCP/IP. Том 3. Разработка приложений типа клиент/сервер для Linux/POSIX/Э.Д. Камер – М.: Вильямс, -СПб-Киев, 2017. – 576 с.

  36. Бобров А. Н. Проблемы выбора языка программирования в школьном курсе информатики /А.Н. Бобров // Молодой ученый. – 2017. – №24. – С. 61-64.

  37. Гниденко И. Г. Технология разработки программного обеспечения : учебное пособие для среднего профессионального образования / И. Г. Гниденко, Ф. Ф. Павлов, Д. Ю. Федоров. – М. : Юрайт, 2019. – 235 с.

  38. Авдошин С. М. Информатика и ИКТ/ С.М. Авдошин, Р.З. Ахметсафина, О.В. Максименкова. – М.: Просвещение, 2018. – 252 с.

  39. Левушкин А. В. Основные современные языки программирования/ А.В. Левушкин, М.К. Турчанинов, А.А. Жиганов, В.В. Ермолаева // Молодой ученый. – 2018. – №25. – С. 96-98.

  40. Гниденко И. Г. Технологии и методы программирования : учебное пособие для прикладного бакалавриата / И. Г. Гниденко, Ф. Ф. Павлов, Д. Ю. Федоров. – М. : Юрайт, 2019. – 235 с.

  41. Казанский, А. А. Объектно-ориентированный анализ и программирование на visual basic 2013 : учебник для среднего профессионального образования / А. А. Казанский. – М. : Юрайт, 2019. – 290 с.

  42. Зыков С. В. Программирование : учебник и практикум для академического бакалавриата / С. В. Зыков. – М. : Юрайт, 2019. – 320 с.

  43. Кудрина Е. В. Основы алгоритмизации и программирования на языке C# : учебное пособие для бакалавриата и специалитета / Е. В. Кудрина, М. В. Огнева. – М.: Юрайт, 2019. – 322 с.

  44. Гниденко И. Г. Технология разработки программного обеспечения : учебное пособие для среднего профессионального образования / И. Г. Гниденко, Ф. Ф. Павлов, Д. Ю. Федоров. – М. : Юрайт, 2019. – 235 с.

  45. Баранцова А.С. Информационные системы и программные средства для их создания/А.С. Баранцова // Материалы VIII Международной студенческой научной конференции «Студенческий научный форум» – 2017. – № 4. – С.23.

  46. Левушкин А. В. Основные современные языки программирования/ А.В. Левушкин, М.К. Турчанинов, А.А. Жиганов, В.В. Ермолаева // Молодой ученый. – 2018. – №25. – С. 96-98.

  47. Кудрина Е. В. Основы алгоритмизации и программирования на языке C# : учебное пособие для бакалавриата и специалитета / Е. В. Кудрина, М. В. Огнева. – М.: Юрайт, 2019. – 322 с.

  48. Камер Э. Д. Сети TCP/IP. Том 3. Разработка приложений типа клиент/сервер для Linux/POSIX/Э.Д. Камер – М.: Вильямс, -СПб-Киев, 2017. – 576 с.

  49. Левушкин А. В. Основные современные языки программирования/ А.В. Левушкин, М.К. Турчанинов, А.А. Жиганов, В.В. Ермолаева // Молодой ученый. – 2018. – №25. – С. 96-98.

  50. Зыков С. В. Программирование : учебник и практикум для академического бакалавриата / С. В. Зыков. – М. : Юрайт, 2019. – 320 с.

  51. Авдошин С. М. Информатика и ИКТ/ С.М. Авдошин, Р.З. Ахметсафина, О.В. Максименкова. – М.: Просвещение, 2018. – 252 с.

  52. Гниденко И. Г. Технологии и методы программирования : учебное пособие для прикладного бакалавриата / И. Г. Гниденко, Ф. Ф. Павлов, Д. Ю. Федоров. – М. : Юрайт, 2019. – 235 с.

  53. Авдошин С. М. Информатика и ИКТ/ С.М. Авдошин, Р.З. Ахметсафина, О.В. Максименкова. – М.: Просвещение, 2018. – 252 с.

  54. Кудрина Е. В. Основы алгоритмизации и программирования на языке C# : учебное пособие для бакалавриата и специалитета / Е. В. Кудрина, М. В. Огнева. – М.: Юрайт, 2019. – 322 с.

  55. Казанский, А. А. Объектно-ориентированный анализ и программирование на visual basic 2013 : учебник для среднего профессионального образования / А. А. Казанский. – М. : Юрайт, 2019. – 290 с.

  56. Камер Э. Д. Сети TCP/IP. Том 3. Разработка приложений типа клиент/сервер для Linux/POSIX/Э.Д. Камер – М.: Вильямс, -СПб-Киев, 2017. – 576 с.

  57. Когаловский М. Р. Перспективные технологии информационных систем/М.Р. Когаловский. – М.: ДМК Пресс; Компания АйТи, 2016. – 288 с.

  58. Тузовский А. Ф. Объектно-ориентированное программирование : учебное пособие для прикладного бакалавриата / А. Ф. Тузовский. – М.: Юрайт, 2019. – 206 с.

  59. Казанский, А. А. Объектно-ориентированный анализ и программирование на visual basic 2013 : учебник для среднего профессионального образования / А. А. Казанский. – М. : Юрайт, 2019. – 290 с.

  60. Насретдинов И.Р. Обзор российского рынка программных продуктов /И.Р. Насретдинов // Международный студенческий научный вестник. – 2016. – № 4-5. – С. 6-9.

  61. Когаловский М. Р. Перспективные технологии информационных систем/М.Р. Когаловский. – М.: ДМК Пресс; Компания АйТи, 2016. – 288 с.

  62. Насретдинов И.Р. Обзор российского рынка программных продуктов /И.Р. Насретдинов // Международный студенческий научный вестник. – 2016. – № 4-5. – С. 6-9.

  63. Гниденко И. Г. Технологии и методы программирования : учебное пособие для прикладного бакалавриата / И. Г. Гниденко, Ф. Ф. Павлов, Д. Ю. Федоров. – М. : Юрайт, 2019. – 235 с.

  64. Черпаков И. В. Основы программирования : учебник и практикум для прикладного бакалавриата / И. В. Черпаков. – М. : Юрайт, 2019. – 219 с.

  65. Тузовский А. Ф. Объектно-ориентированное программирование : учебное пособие для прикладного бакалавриата / А. Ф. Тузовский. – М.: Юрайт, 2019. – 206 с.

  66. Насретдинов И.Р. Обзор российского рынка программных продуктов /И.Р. Насретдинов // Международный студенческий научный вестник. – 2016. – № 4-5. – С. 6-9.

  67. Тузовский А. Ф. Объектно-ориентированное программирование : учебное пособие для прикладного бакалавриата / А. Ф. Тузовский. – М.: Юрайт, 2019. – 206 с.

  68. Насретдинов И.Р. Обзор российского рынка программных продуктов /И.Р. Насретдинов // Международный студенческий научный вестник. – 2016. – № 4-5. – С. 6-9.

  69. Когаловский М. Р. Перспективные технологии информационных систем/М.Р. Когаловский. – М.: ДМК Пресс; Компания АйТи, 2016. – 288 с.

  70. Тузовский А. Ф. Объектно-ориентированное программирование : учебное пособие для прикладного бакалавриата / А. Ф. Тузовский. – М.: Юрайт, 2019. – 206 с.

  71. Зыков С. В. Программирование : учебник и практикум для академического бакалавриата / С. В. Зыков. – М. : Юрайт, 2019. – 320 с.

  72. Насретдинов И.Р. Обзор российского рынка программных продуктов /И.Р. Насретдинов // Международный студенческий научный вестник. – 2016. – № 4-5. – С. 6-9.

  73. Программы для создания программ на компьютере. URL: http://softcatalog.info/ru/obzor/programmy-dlya-sozdaniya-programm-na-kompyutere (дата обращения: 07.11.2019).

  74. Там же.

  75. Программы для создания программ на компьютере. URL: http://softcatalog.info/ru/obzor/programmy-dlya-sozdaniya-programm-na-kompyutere (дата обращения: 07.11.2019).

  76. Там же.