Файл: Основные понятия объектно-ориентированного программирования (Обзор специфики становления языков для разработки программных продуктов).pdf
Добавлен: 29.03.2023
Просмотров: 406
Скачиваний: 4
СОДЕРЖАНИЕ
ГЛАВА 1. ОБЗОР ЯЗЫКОВ РАЗРАБОТКИ И ОБЪЕКТНО-ОРИЕНТИРОВАННОЙ КОНЦЕПЦИИ ПРОГРАММИРОВАНИЯ
1.1. Обзор специфики становления языков для разработки программных продуктов
1.2. Особенности парадигмы объектно-ориентированного создания программных приложений
ГЛАВА 2. АНАЛИЗ ВОЗМОЖНОСТЕЙ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ С ПОДДЕРЖКОЙ ООП ПАРАДИГМЫ
2.1. Специфика и возможности использования ЯП Python
2.2. Специфика и возможности использования ЯП Ruby
2.3. Специфика и возможности использования ЯП Java
ГЛАВА 3. РАЗРАБОТКА ПРИКЛАДНОГО ПРОГРАММНОГО ПРИЛОЖЕНИЯ НА ОБЪЕКТНО-ОРИЕНТИРОВАННОМ ЯП
3.1. Разработка и описание проекта программы
3.2. Разработка форм интерфейса и описание порядка работы пользователя с программой
ВВЕДЕНИЕ
Актуальность темы исследования заключается в применении системного подхода для изучения ключевых аспектов, теоретических основ и практических особенностей использования существующих языков программирования высокого уровня, которые имплементируют объектно-ориентированную парадигму (ООП) создания программных приложений. Среди большого числа актуальных языков на рынке необходимо выявить те из них, которые имеют наиболее значительные возможности и перспективы развития для дальнейшего использования в рамках практических кейсов. Проведение анализа данной предметной тематики позволит осуществлять рациональный выбор языков и технологий разработки программных продуктов в различных сферах человеческой деятельности, с учетом характерных особенностей и преимуществ рассмотренных языков программирования на базе применения ООП.
Объект исследования: ключевые особенности построения принципов ООП.
Предмет исследования: возможности использования языка программирования высокого уровня Java с учетом концепции ООП.
Цель работы заключается в расширении, закреплении и систематизации знаний по изучаемой дисциплине, путем осуществления системного анализа наиболее популярных на практике ООП высокоуровневых языков разработки программных продуктов посредством изучения основных принципов функционирования и использования языка Java..
Задачи исследования:
- Обзор языков разработки и объектно-ориентированной концепций программирования.
- Обзор специфики становления языков для разработки программных продуктов.
- Анализ возможностей языков программирования с поддержкой ООП парадигмы.
- Разработка прикладного программного приложения на объектно-ориентированном языке программирования.
- Разработка и описание проекта программы, форм интерфейса и описание порядка работы пользователя с программой.
В первом разделе курсовой работы проведен обзор языков разработки и объектно-ориентированной концепций программирования. Приведены результаты исследования специфики становления языков для разработки программных продуктов, обозначены основные исторические этапы и даны ключевые определения в специфике языков программирования. Рассмотрены особенности парадигмы объектно-ориентированного создания программных приложений, принципы инкапсуляции, наследования и полиморфизма. Во втором разделе курсовой работы проанализированы возможности языков программирования с поддержкой ООП парадигмы, а также приведено описание специфических особенностей соответствующих интегрированных сред разработки для данных ЯП. Описаны языки Python, Java и Ruby, приведены их функциональные преимущества и достоинства практического использования. Третий раздел данной курсовой работы отражает результаты разработки прикладного программного приложения на объектно-ориентированном языке Java с использованием среды разработки Netbeans. Разработан и описан проект программы с помощью использования нотаций языка моделирования UML. Разработаны формы интерфейса и описан порядок работы пользователя с созданным ПО.
В рамках данной работы было рассмотрено 20 литературных источников по языкам программирования, наиболее полезными из которых стали труды И.А. Веренинова, В.А. Камаева, Р. Лафоре, П.Б. Хорева и ряда других.
ГЛАВА 1. ОБЗОР ЯЗЫКОВ РАЗРАБОТКИ И ОБЪЕКТНО-ОРИЕНТИРОВАННОЙ КОНЦЕПЦИИ ПРОГРАММИРОВАНИЯ
1.1. Обзор специфики становления языков для разработки программных продуктов
Разработка программ представляет собой довольно сложный процесс, главной целью которого является создание и дальнейшее совершенствование (сопровождение) программного кода, обладающего высоким уровнем надежности и качества.
Средства разработки ПО представляют собой некоторую совокупность приемов, методик, подходов, методов, а также инструментальных программных приложений (компиляторы, библиотеки, модули), используемые разработчиком ПО для написания функционального кода программы, удовлетворяющего поставленным требованиям.
Языки программирования (ЯП) - формальные знаковые системы, предназначенные для записи компьютерных программ.
ЯП, посредством поддерживаемых технологий, определяют набор различных лексических, семантических и синтаксических принципов и правил, позволяющих определить интерфейс программы и поддерживаемые в ней действия пользователя.
Первые технические идеи, которые привели к разработке вычислительных цифровых машин, сформированы еще в начале 20-х годов девятнадцатого века Бэббиджем [13].
Главной была мысль о возможности предварительной фиксации перечня операций вычислительной машины для дальнейшей реализации вычислений в автоматическом режиме, т.е. в виде программы.
В конце 40-х годов 20 века машинный код являлся, фактически, единственным способом организации взаимодействия человека-пользователя с ЭВМ.
Важнейшим достижением разработчиков ЯП тех времен являлась реализация алгоритмов и механизмов использования ЭВМ для автоматической интерпретации ЯП в машинный код.
С начала 60-х годов ХХ века популярность ЯП начинает стремительно возрастать и общий прогресс в разработке методов и средств программирования с использованием ЭВМ набирается все большие обороты. При этом, вследствие развития технологий постоянно уменьшается использование подхода к написанию программ в машинных командах [3].
Первым из научно-прикладных языков стал, который был разработан командой программистов из молодой фирмы IBM. С данного языка наступает эра развития и совершенствования ЯП высокого уровня .
Все существующие современные языки программирования часто классифицируют по таким поколениям[7]:
– первое поколение: применение на ЭВМ первого поколения с машинно–ориентированным использованием и ручным процессом управлением памятью;
– второе поколение: применение автокодов или мнемонических символов для представления команд программы;
– третье поколение: языки программирования высокого уровня общего типа и назначения, которые использовались в первую очередь для разработки и реализации пакетов прикладных программ в нужной предметной области (Паскаль, Бейсик, Си);
– четвертое поколение: высокоуровневые языки программирования, использованные для разработки специализированных прикладных программ и приложений, которые поддерживали механизмы использования систем управления базами данных.
– пятое поколение: объектно–ориентированные, декларативные и визуальные высокоуровневые языки программирования. Данные языки применяются в настоящее время и используются для разработки клиент-серверных приложений, мобильных систем и распределенных веб-ресурсов. Примерами таких языков являются Си++, Java, C#, Visual Basic, Delphi [14].
Иерархическая классификация ЯП по разным критериям приведена на рисунке 1.
Рисунок 1 – Классификация ЯП по разным критериям
В настоящее время в среде разработчиков принято утверждать, что языки высокоуровневого программирования, имеющие прямой доступ непосредственно к памяти и имеют различные вставки кода на ассемблере, являются ЯП с достаточно низким уровнем абстракции, что не всегда удобно [17].
Визуализация статистики тенденции изменения популярности языков программирования на с 2002 по 2018 год приведена на рисунке 2.
Процентная доля языка C# постепенно снижается, а использование на рынке обработки данных и искусственного интеллекта языка Python все больше увеличивается, во многом за счет активной интеграции библиотек и фреймворков.
Язык мобильной разработки Kotlin существенно растет благодаря поддержке его использовании компанией Google в качестве полноценного языка для разработки в Android.
Рисунок 2 – Тенденция популярности языков программирования в 2002-2018 годах
На сегодняшний день Java остается наиболее популярным языком, однако его доля использования постепенно сокращается. Это во многом обусловлено развитием новых JVM языков и технологий. JavaScript демонстрирует тенденции роста, но они все менее выражены [21].
1.2. Особенности парадигмы объектно-ориентированного создания программных приложений
Большая часть современных ЯП высокого уровня поддерживает парадигму ООП.
Объектно-ориентированное программирование (ООП) — это методика организации программного кода на основании группировки и представления его в виде объектов, являющихся отдельными элементами, включающими свои функции (методы) и информацию (поля) [1].
ООП значительно упрощает группировку и классификацию отдельных фрагментов информации вместе с регулярно используемыми действиями и функциями, которые непосредственно связанны с данной информацией [3].
ООП появилась посредством развития идеологии функционально-процедурного программирования, в которой не было четкой связи между данными, процедурами и функциями, их вызов осуществлялся в ручную, а обработка передавалась посредством операторов типа goto [5].
На развитие парадигмы ООП существенное значение оказало концептуальные понятия события и компонента.
В области создания программных продуктов и систем наиболее часто применяемой является именно ООП парадигма, т.к. она включает в свой состав следующие этапы:
- анализ, позволяющий проводить исследования существующих требований клиента к рассматриваемой системе в форме большого числа взаимодействующих между собой абстракций;
- проектирование, необходимо для объединения системы обозначений и нотаций с декомпозиционным подходом при планировании объектов сущностей;
- конструирование, представляет собой итерационный процесс написания программного кода, осуществляющего реализацию нужных функций на базе ООП ЯП [17].
Объектно-ориентированное программирование можно разделить на две главные части: проектная и системная.
Первая отражает приемы и стратегии, используемые при проектировании и разработке программ (шаблоны проектирования, методы оптимизации объектного кода и др.).
Вторая описывает существующие структуры программирования, которые доступны в конкретном ЯП на базе использования объектно-ориентированной методологии разработки. Данная часть содержит такие базовые операции [18]:
- определение структур классов;
- создание обычных методов, методов доступа и полей объекта;
- создание перечисляемых структур;
- имплементация возможностей интерфейсов;
- регулирование доступа к методам, классам, полям и методам доступа;
- создание полей и методов статического характера;
- наследование, полиморфизм, инкапсуляция, в том числе и динамическое переопределение классовых элементов.
Ключевыми терминами в ООП являются классы и объекты. Класс представляет собой формализованный, в рамках синтаксиса используемого языка программирования в составленном пространстве имен, исходный код абстрактного (неинициализированной при создании) объекта (сущности). Класс предназначен для детального описания структуры устройства объекта, т.е. это некий каркас [3].
Отношения между классами и объектами приведены на рисунке 3.
Рисунок 3 – Отношения между классами и объектами концепции ООП
При этом, когда создается объект, принято считать что он является экземпляром класса, который его описывает.
Такие элементы объединяются в унитарный элемент-объект. Ключевыми преимуществами, при этом, являются: упрощение в отслеживании значений переменных, т.к. их становиться меньше и они классифицированы между собой; гибкость группировки связанных функций; структурная организация программного приложения согласно концепции объектов, близкой к представлению реального мира.
Инкапсуляция – принцип ООП, который заключается в осуществлении объединения данных и методов, которые находятся в рамках одного класса, за счет чего достигается сокрытие детали реализации логики класса от пользователя [4].
Иллюстрация принципа инкапсуляции данных в концепции ООП приведена на рисунке 4.
Рисунок 4 – Иллюстрация принципа инкапсуляции данных в концепции ООП
Часто программистами на практике применяется метод организации доступа к свойствам класса лишь посредством использования его открытых методов, что позволяет осуществлять валидацию значений всех полей. Это целесообразно, т.к. непосредственное обращение к свойствам класса отслеживать технически трудоемко, что влечет за собой возможные присваивания некорректных значений уже на этапе выполнения разработанной программы.