Файл: Основные понятия объектно-ориентированного программирования».pdf
Добавлен: 03.04.2023
Просмотров: 325
Скачиваний: 2
ВВЕДЕНИЕ
Актуальность темы - сложность современного программного обеспечения требует от разработчиков владения наиболее перспективными технологиями его создания. Одной из таких технологий на настоящий момент является объектно-ориентированное программирование (ООП).
Расцвет объектно-ориентированных технологий совпал с началом применения Интернета в качестве платформы для бизнеса, развлечений и медицины. [6]
Предмет исследования – изучение основных понятий объектно-ориентированного программирования.
Цель работы – рассмотреть основные понятия объектно-ориентированного программирования.
Для достижения поставленной цели необходимо решить следующие задачи:
1. Рассмотреть основные понятия программирования.
2. Описать история возникновения объектно-ориентированной парадигмы программирования.
3. Описать последовательность разработки программ на объектно-ориентированном языке программирования.
4. Описать основные понятия объектно-ориентированного программирования.
5. Обобщить знания по объектно-ориентированным языкам программирования
7. Показать пример разработки программы на объектно-ориентированном языке программирования.
Тема курсовой работы широко освещена в работах в работах зарубежных и российских авторов: Д. Кнут, Иванова Г.С., Климов А., Культин Н., Майо Дж., Макконнелл С. , Мацяшек, Лешек А., Лионг, Орлов, С. А., Цилькер, Б.
Основным источником литературы являются книги, написанные для программистов [1],[2],[5],[6], как для новичков [7], так и для профессионалов [8], [9], выпущенные издательствами, специализирующимися на выпуске технической литературы. Особое внимание в источниках литературы уделяется электронным источникам компаний разработчиков языка[16]
Структура работы. Курсовая работа выполнена на 43 листах, содержит 34 рисунка.
Курсовая работа состоит из введения, трех глав, заключения, списка использованной литературы и приложения.
.
1. ОБЩИЕ ВОПРОСЫ ПРОГРАММИРОВАНИЯ
Программирование – представляет собой процесс создания компьютерных программ.
Никлаус Вирт, в своем известном выражении так высказался о программировании: «Программы = алгоритмы + структуры данных»[1] [10]. Исходя из этого можно выделить следующие ключевые задачи, которые следует изучить, чтобы стать хорошим программистом: научиться использовать алгоритмы и структуры данных.
В основе программирование лежит язык программирования, на котором записываются инструкции однозначно понятные компьютером. Специалист в области IT-технологий должен разбираться в следующих вопросах:
- Знать профессиональное программирование (Рисунок 1) , т.е. иметь представление о современных методиках программирования, хорошо разбираться в декомпозиции задач и т.д;
Рисунок 1 - Профессиональное программирование
- Знать теорию программирования (Рисунок 2) - т.е. иметь представление об алгоритмах, задачах и вычислителях[2] [10];
Рисунок 2 – Теория программирования
- Знать математические основы программирования (Рисунок 3) – т.е. обладать знаниями в высшей, дискретной математике, уметь применять на практике теорию алгоритмов, методы математического моделирования и т.д[3] [5].
Рисунок 3 - Математические основы программирования
1.1. Языки программирования и их классификация
Язык программирования - это формальный язык, предназначенный для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, определяющих внешний вид программы и действия, выполняемые исполнителем (обычно компьютером) под его контролем[4] [3].
Все языки программирования имеют похожий набор лексических единиц, к ним относят:
1) строчные и заглавные буквы алфавитов (основной латиница и любой другой национальный язык),
2) числа,
3) знаки операций
4) Знаки скобок
5) символы подчеркивания _ и пробел,
6) специальные символы.
Рисунок 4 – Лексические правила
Синтаксические правила (Рисунок 5) - описывают структуру программ независимо от содержания. Синтаксис языка противоположен его семантике.
Рисунок 5 – Пример синтаксического правила для языка программирования Паскаль
Семантические правила языка программирования отражают смысловое значение команд языка. Логически фрагмента кода изображенного на рисунке 6 выполняют одно и то же, результаты их работы идентичны. В то же время семантически это два разных цикла[5] [7].
Рисунок 6 – Пример семантического выражения
Работа над концепцией языков программирования велась задолго до повеления первых компьютеров. Но с периода изобретения первых программируемых компьютеров начался взрыв в разработки различных языков программирования и сейчас общее количество языков программирования приблизилось к восьми тысячам.
Начиная с 50-х годов 20 века, то есть с момента появления первой вычислительной машины, количество языков программирования постоянно увеличивается. Со временем некоторые языки развиваются, приобретая новые функции являясь востребованными, другие утрачивают свою актуальность и представляют на сегодняшний день только чисто теоретический интерес. Это во многом связано с такими факторами, как[6] [4]:
- Наличие среды программирования;
- Простота обслуживания и тестирования программ;
- Стоимость разработки с использованием конкретного языка программирования;
- Применение объектно-ориентированного подхода.
Единой классификации языков программирования на сегодняшний день не существуют. Языки программирования могут быть классифицированы в соответствии с различными критериями. Классификация языка программирования с течением времени может быть пересмотрена, успешные языки могут преодолеть первоначальные идеи и изменить статус.
Если рассматривать одну из множества классификаций языков программирования, то - по способу получения результата выделяют[7] [8] (Рисунок 7):
- Процедурные (императивные) - сборка модулей на основе функций ;
- декларативные (функциональные и логические) - ближе по духу к математике, что позволяет описать желаемые свойства, но не выписывая конкретные шаги для их достижения.;
- объектно-ориентированные – основные понятия: класс, наследования, полиморфизм, методы, абстрактные типы данных.
Рисунок 7 - Классификация языков программирования по степени ориентации на класс задач
1.2. История появления объектно-ориентированной парадигмы программирования
Появление первых компьютеров ознаменовало новый этап в развитии компьютерных технологий. Казалось, что достаточно разработать последовательность элементарных действий, каждая из которых может быть преобразована в понятные компьютерные команды, и любая вычислительная задача будет решена. Эта идея долгое время доминировала над процессом разработки программного обеспечения[8] [3].
Эта методология была основана на идее процедурного программирования. Отправной точкой в этой методологии было понятие алгоритма. Алгоритм - это способ решения вычислительных и других задач, описывающий последовательность действий, которые компьютер должен выполнять для достижения желаемой цели. (Рисунок 8)
С течением времени задачи, которые решаются, становятся все более сложными, а программы, которые выполняются, увеличиваются по размеру. Программа разделяются на более мелкие фрагменты. Основой такого разбиения была процедура, в которой отдельные части программы представляют собой набор действий для решения одной или нескольких задач.
Рисунок 8– Процедурное программирование
Дальнейшее увеличение количества программных систем способствовало новому взгляду на процесс разработки программного обеспечения и написанию кода, который стал известен как методология структурированного программирования[9] (Рисунок 9).
Рисунок 9 – Структурное программирование
Во второй половине 1980-х годов появилась новая методология программирования, которая смогла решить все сложные проблемы (увеличение объемов кода, постоянное изменение требований клиентов, повышение надежности программного обеспечения). Он стал называться методологией объектно-ориентированного программирования (ООП)[10] [6].
Прагматика необходима для разработки программных систем. При формулировании целей, связанных объектов и концепций реального мира, относящихся к создаваемой системе (Рисунок 10) в объектно-ориентированном подходе, эти объекты и концепции заменяются моделями, т. е определенными формальными структурами.
Рисунок 10– Объектно-ориентированное программирование
Семантика (смысл программы с точки зрения производительности ее компьютера) и прагматика (смысл программы с точки зрения ее членов). Простота модели по отношению к реальному объекту позволяет сделать ее формальной. Это упрощает как разработку и модели исследования (анализ) и их реализации на компьютере.
Объектно-ориентированный подход к программированию имеет следующие достоинства по отношению к разрабатываемому программному обеспечению:
- Снижение сложности разработки;
- повышение надежности продукта;
- изоляция изменений;
- повторное использование кода
1.3. Современные подходы к разработке объектно-ориентированной программы
На практике принято выделять следующие популярные подходы к разработке кода:
- Waterfall — традиционный подход к разработки программных приложений.
- RUP (Rational Unified Process) — рациональный подход к разработки программных приложений.
- Agile — общая методология гибкой разработки программных приложений.
- Spiral — спиральный подход к разработки программных приложений.
- Scrum — концепция работы в условиях сорванных сроков и идеологического кризиса.
Рассмотрим некоторые модели более подробно:
1. «Waterfall Model» (каскадная модель или «водопад») [11][14]
Одна из самых первых методологий разработки программного кода, представляет последовательный подход к созданию программ, где все фазы проходятся друг за другом по одному разу.
В модели Waterfall (Рисунок 11) легко управлять проектом. Из-за своей жесткости, разработка идет быстро, затраты и время предопределены. Спиральная модель является классическим примером применения стратегии эволюционного проектирования. Модель основана на лучших свойствах классического жизненного цикла и прототипировани. Модель определяет четыре действия, представленные четырьмя квадрантами спирали[12][14]
- Планирование - определение целей, вариантов и ограничений.
- Анализ рисков - анализ рисков и идентификация / выбор рисков.
- Проектирование - это разработка продукта следующего уровня.
- Оценка - оценка клиента текущих результатов проекта.
Рисунок 11 – Этапы разработки программного обеспечения, согласно спиральной модели
2. Scrum - «экстремальное программирование» (Рисунок 12) -способность развиваться в постоянно меняющейся среде. Вот некоторые особенности[13][11]
- Планирование процесса разработки.
- Высокая частота выпусков.
- Контакт с клиентом.
- Коллективная ответственность.
Рисунок 12 – Методология Scrum
Спиральная модель является наиболее распространенной в настоящее время. Наиболее известными из ее вариантов являются RUP (Rational Unified Process) от Rational и MSF (Microsoft Solution Framework). Язык моделирования - UML (Unified Modeling Language). Предполагается, что создание системы должно выполняться итеративно, перемещаясь по спирали и проходя через те же этапы, чтобы уточнить характеристики будущего продукта на каждом шагу.