Файл: Используемые концепции, понятия и определения.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 25.04.2023

Просмотров: 77

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

ВВЕДЕНИЕ

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

Объект исследования: специфика состава и практического применения современных высокоуровневых языков разработки программного обеспечения.

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

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

Задачи исследования:

  1. Анализ ключевых аспектов высокоуровневых языков программирования, концепций и парадигм.
  2. Анализ популярных на практике языков программирования высокого уровня.
  3. Обзор преимуществ и особенностей языков программирования Python, С++, Java и C#.
  4. Описание особенностей реализации графического приложения с помощью языка Python.
  5. Описание разрабатываемого проекта приложения и его интерфейсной составляющей.

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

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

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

Обозначены ключевые преимущества и особенности языков Python, C#, C++ и Java, приведены иллюстрации для наглядного отображения концепций архитектурного состава и интерфейса сред разработки данных средств разработки программного обеспечения.

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

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


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

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

ГЛАВА 1. КЛЮЧЕВЫЕ АСПЕКТЫ ВЫСОКОУРОВНЕВЫХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

1.1. Используемые концепции, понятия и определения

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

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

Синтаксис – система правил, которые регламентируют допустимые программные конструкции конкретного ЯП, состоящие из символов алфавита.

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

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

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

Большая часть ЯП опирается на ряд конструкций для манипулирования структурами данных и управления вычислительными процессами.

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

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


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

Главная черта высокоуровневых ЯП - наличие механизмов абстракций, представляющих собой смысловые конструкции, которые описывают различные структуры данных, возможные операции над обрабатываемыми данными.

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

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

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

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

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

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

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

Объектно-ориентированная парадигма

Большая часть современных ЯП высокого уровня поддерживает парадигму ООП [3].

  В области разработки программных систем наиболее развитой и широко используемой, на данный момент, является ООП. Эта парадигма включает следующие элементы (рис. 1) [5]:


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

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

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

На развитие парадигмы ООП существенное значение оказало концептуальные понятия события и компонента [13].

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

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

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

Элементы ООП приведены на рисунке 1.

Рисунок 1 – Элементы ООП

Объектно-ориентированное программирование можно разделить на две главные части.

Первая отражает приемы и стратегии, используемые при проектировании и разработке программ (шаблоны проектирования, методы оптимизации объектного кода и др.) [15].

Вторая описывает существующие структуры программирования, которые доступны в конкретном ЯП на базе использования объектно-ориентированной методологии разработки. Данная часть содержит такие базовые операции [3]:


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

Агенто-ориентированная парадигма

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

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

Основу развитию АОП положила статья И. Шоэма «Агентно-ориентированное программирование», содержащей взгляд на организацию вычислений, которые связаны с взаимодействием в процессе вычислений ряда агентов.

Агент рассматривается как «прозрачный ящик» и происходит моделирование его внутренние переменных (мотивы, обязательства, убеждения, способности к принятию решений). Такие мотивы лежат в основе решений агента, а убеждения определяют возможные логические ограничения на них [13].

Общение агентов происходит с помощью протоколов коммуникации. АОП парадигма должна включать следующие основные компоненты:

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

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

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

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