Файл: История и развитие методологии объектно-ориентированного программирования. Сферы применения (ОСНОВНЫЕ ПОНЯТИЯ О ПРОГРАММИРОВАНИИ, ПАРАДИГМЫ ПРОГРАММИРОВАНИЯ).pdf
Добавлен: 30.03.2023
Просмотров: 280
Скачиваний: 2
ВВЕДЕНИЕ
В течение нескольких последних десятилетий современные вычислительные, а также информационные технологии развивались чрезвычайно быстрыми темпами. При этом языки программирования (ЯП) также усовершенствовались значительными шагами.
Стоит отметить, что использование с каждым годом более мощных персональных компьютеров (сокращенно ПК) дало жизнь сложным и очень объемным программам, что освещали одновременно все новые проблемы в непосредственном направлении разработки ПО.
Еще в конце 1970-х гг. такие языки, как С, Pascal, помогали человечеству вступить в стадию развития так называемого структурного и императивного программирования, что нуждалось в то время в наведении в указанной области порядка.
Язык С поспособствовал и предоставил для разработчиков инструменты, что крайне необходимы для реализации так называемого структурного типа программирования, обеспечил создание быстро функционирующих и компактных программных продуктов, а также дал возможность адресации для разного рода аппаратных и технических ресурсов (к примеру, получил возможность управления накопителями).
Все такие свойства помогли ЯП под названием С в 1980-е гг.в доминировать над семи другими языками программирования.
Актуальность предоставляемой работы состоит факте невозможности применения императивных ЯП или иных подходов, которые полностью исчерпали себя в плане формирования логики программы, а современная разработка ПО при помощи ООП была и остается одной с самых популярных парадигм в нынешнее время.
Цель написания курсовой работы – рассмотрение современных ЯП объектно-ориентированного направления, а также описание их истории, приименения и направлений развития.
Исходя с поставленной цели выделяются такие задачи:
– описать основные понятия для теории ЯП;
– рассмотреть историю возникновения ООП;
- определить основные принципы ООП;
- описать ЯП высокого уровня, которые поддерживают ООП;
- рассмотреть сферы применения ООП на конкретном примере.
Объект работы – теория ЯП.
Предмет работы – языки ООП.
С каждым годом развития вычислительная техника применяла более усовершенствованные ЯП, что исследовались и создавались самыми разными учеными: Динматном К.А. [6], С. Лафорте, [13], З. Дейтелстом [17].
1.ОСНОВНЫЕ ПОНЯТИЯ О ПРОГРАММИРОВАНИИ, ПАРАДИГМЫ ПРОГРАММИРОВАНИЯ
Понятие о ЯП, их становление
До недавнего времени полностью все профессиональные программисты свои программные продукты реализовывали при применении структурной или процедурной парадигмы программирования.
При перманентном увеличении объемов обрабатываемой информации, ростом многих требований разного рода пользователей непосредственно к написанию программных продуктов значительно начали возрастать объемы вспомогательных программных модулей и других составных частей разрабатываемого ПО.
Вследствие постоянной борьбы непосредственно с проблемой большой сложности процесса разработки программных кодов были созданы более новые концепции проектирования ПО, а именно следующие:
– объектно-ориентированное программирование (ООП);
– унифицированный язык UML;
– специализированные средства по разработке современного ПО.
Стоит отметить, что в некоторых программистов часто возникает логический вопрос: почему ООП начало быть приоритетным при разработке большинства программы и другими языками программирования?
Заметим, что ООП также имеет возможность предложить совершенно новый мощный механизм для решения проблем, которые появляются при создании сложных программ.
Вместо рассмотрения программы в качестве какого-то набора последовательно реализуемых установок, для ООП программный код продукта представляется как совокупность некоторых основных объектов, имеющих сходные свойства, разные наборы соответствующих действий.
Унифицированный язык, который предназначается для моделирования логики выполнения программы (UML) – это не что иное, чем графическое представление имеющегося алгоритма при применении ООП (рисунок 1).
Рисунок 1 – Образец UML-диаграммы
По классическому определению, UML считается графическим языком, что содержит множество диаграмм, что помогаю специалистам создавать даже самые сложные алгоритмы в сфере системного анализа, а разработчикам – легко выяснять принципы написания кода.
UML является мощнейшим инструментом, что дает возможность сделать программирование еще более эффективным, легким.
Стоит отметить, что каждое новое средство при реализации главных элементов диаграмм UML излагаются именно в том месте, где оно становится полезным для использования принципов ООП. [18]
К примеру, применение диаграммы классов на языке UML может изучаться одновременно с таким понятием, как взаимодействия различных классов.
Рассмотрим этапы развития языков программирования.
Этап 1. 60-е гг. 20 века – расцвет ЯП высокого уровня.
60-е годы 20 века ознаменованы бурным развитием ЯП высокого уровня [5]:
– Кобол;
– Фортран;
– Алгол.
Simula – это первый в мире язык программирования, который поддерживал парадигму ООП.
Однако, надежда на решение с помощью указанных ЯП всех проблем разработки больших программ, к сожалению, не оправдалась.
Все дело в том, что при повышении мощности компьютеров и непосредственного накопления опыта программирования в языках высокого уровня намного быстрыми темпами начала расти сложность задач, подлежащих решению на ПК.
В результате этого обнаружилась очень серьёзная ограниченность ЯП.
Этап 2. 1970-е гг. – зарождение технологии программирования.
В начале 1970-х было создано три языка, роль которых в современном развитии программирования переоценить очень тяжело:
– Паскаль;
– С;
– SmallTalk.
Эта великая тройка ЯП дала путёвку в жизнь таким важнейшим направлениям: [19]
– структурному (Паскаль);
– системному (C);
– ООП (Smalltalk).
Она также определила и различные языковые ветви, которые имеют непохожий синтаксис и существенно отличающейся культурой применения языка программирования.
Зародилась и стала развиваться интенсивно технология программирования: при этом обоснование и широкое распространение нисходящей разработки и структурного программирования, усовершенствование типов данных, а также модульного программирования, исследование разных проблем обеспечения надёжности, мобильности программ, разработка методики управления, появление средств поддержки средств программирования.
Этап 3. 1980-е годы – использование персональных компьютеров.
Были разработаны такие ЯП:
– Basic;
– Objective-C;
– С++ и другие.
С появлением ОС DOS программисты стали перед сложным выбором между неэффективным, но продуктивным Basic и эффективным, но непродуктивным ассемблером.
При этом начался бум микрокомпьютеров, трансляторы для распространённых ЯП (Паскаля, С, Бейсика) оперативно были оптимизированы под слабые системы.
Этап 4.1990-е гг. – всеобщая информатизация всех направлений деятельности.
С появлением ОС Windows кризис повторился, но уже на новом уровне. А именно, приходилось выбирать между очень мощным, но требующим разных специальных знаний С++, а также простым (в основном, визуальным), но ограниченным Visual Basic.
В 1990-е годы начался по сей день продолжающийся решающий этап компьютеризации и информатизации общества.
Постоянно растущая сложность задач для информатизации поставила ребром вопросы о скорости, а также надёжности разрабатываемых программных продуктов. [17]
При этом компьютерная индустрия ответила на данный вызов развитием объектно-ориентированных инструментов программирования:
– 1994 год - Sun Microsystems выпустила ЯП Java, который использовал ООП;
– 1995 год – компания Borland выпускает революционное по тем временам объектно-ориентированное средство Delphi;
– 1997 год – ЯП PHP стал поддерживать принцип объектно-ориентированного синтаксиса.
Этап 5. 21-век – повсеместное развитие Интернет и сетевых технологий.
В 2000-х гг. сетевые технологии, а также сеть Интернет вошла прочно в обиход даже очень отдаленных от вычислительной тематики областей деятельности.
С начала развитие информационных технологий (ИТ) и их проникновение приобрело в обычную жизнь лавинообразный характер. Такое возникновение можно условно разделять на 2 направления:
– макро;
– микро.
Тенденция объединять самую различную функциональность только в одном устройстве имеет название "конвергенция". [13]
При этом, программируемой стала даже традиционная бытовая техника: стиральные, швейные машины, телевизоры, микроволновые печи, холодильники.
Так что пользователями ПК стали даже домохозяйки, что зачастую даже и не догадывались об этом.
Непосредственное производство встраиваемых систем со временем потребовало развития ЯП и для программирования систем наряду с использованием кроссплатформенных компиляторов стал использоваться интерпретируемый язык Java.
Парадигмы языков программирования
Постоянно перед началом написания каждого нового типа программного продукта разработчикам было очевидно, что указанные подходы не являются полностью удачными.[11]
Рассматриваемая проблема заключалась прежде всего в непропорциональном росте показателей сложности процесса проектирования самых программных кодов в сравнении с значительным ростом программных требований к ним.
Наверняка является правильным утверждение о том, что совершенные программы часто относятся, без преувеличения, к очень сложным продуктам человеческой деятельности.
Однако, несмотря даже на уровень избыточной уровня сложности, такие программы содержать нередко ошибки, и хорошо, что они являются не значительными.
Поскольку иногда серьезные ошибки в программах потенциально вызывают большой материальный ущерб (например, ошибки в банковских расчетах), а иногда могут угрожать жизни людей.[7]
Парадигма программирования считается принципом, подходом, моделью конструирования программного проекта, реализации процесса структурирования составных частей.
При этом в нынешнем программировании различают следующие подходы:
– структурный;
– функциональный;
– шаблонный;
– процедурный;
– модульный;
– объектно-ориентированный.
К примеру, под понятием структурного программирования понимается методология проектирования ПО, что предложена еще в 70-х гг. 20 века Дейкстрой.[1]
По рассматриваемой методологии любая программа может быть представлена с помощью структуры, которая состоит из 3 базовых блоков (рисунок 2):
Рисунок 2 – Составные части алгоритмов
Под понятием функционального подхода к программированию понимается глава математики, где весь описываемый процесс вычисления и преобразования кода трактуется как вычисление параметров с помощью некоторой функций.
Процедурное программирование является парадигмой программирования, которая базируется на концепции вызова одной с некоторых процедур.
Объектно-ориентированное программирование является подходом программирования, что основан непосредственно на представлении области программирования качестве системы взаимосвязанных компонентов.[14]
В результате рассмотрения первого раздела курсовой работы подробно выполнена характеристика и базовые этапы становления процесса разработки программ и понятий, что связаны с возникновением ЯП, кратно рассмотрены типы ЯП по имеющейся парадигме программирования.
2. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ МЕТОД НАПИСАНИЯ ПРОГРАММ
2.1. История развития ООП
Термины «объектно-» и «ориентированный» в современном смысле этих слов появились в MIT в конце 1950 начале 1960 годов. В среде специалистов по искусственному интеллекту термин «объект» мог относиться к идентифицированным элементам (атомы Lisp) со свойствами (атрибутами). Алан Кэй позже писал, что понимание внутреннего устройства Лиспа оказало серьезное влияние на его мышление в 1966 г. Другим ранним примером ООП в MIT был Sketchpad созданный ИваномСазерлендом в 1960-61. В глоссарии подготовленного в 1963 г. технического отчета, основанного на его диссертации о Sketchpad, Сазерленд определяет понятия «объект» и «экземпляр» с концепцией классов на основе «мастера» или «определения», хотя все эти термины относились к графическому представлению объектов.