Файл: История и развитие методологии объектно -ориентированного программирования. Сферы применения.pdf

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

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

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

Добавлен: 04.04.2023

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

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

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

Введение

Программирование в привычном его понимании появилось в первой половине XX века. Первые его идеи высказал ещё Чарльз Бэббидж (1792-1871), которого по праву считают отцом компьютера. Он не знал о транзисторах, микросхемах и мониторах, но достаточно точно описал основные принципы, на которых будут строится все вычислительные машины. Развила идею графиня Ада Лавлейс (1815-1852). Её место в истории до сих пор вызывает немало споров, но одно абсолютно точно – именно Ада фактически стала первым известным программистом. Благодаря её трудам стало понятно, что путь к эффективному использованию машин – алгоритмы, описанные в коде.[3]

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

• машинные;

• машинно-ориентированные (ассемблеры);

• машинно-независимые (языки высокого уровня). [1]

В свою очередь языки высокого уровня так же делятся на два больших класса – процедурные и непроцедурные.

При разработке современного программного обеспечения широко применяется метод объектно-ориентированного программирования, основанный на применении непроцедурных языков

Объект исследования: история, развитие и методология объектно-ориентированного программирования.

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

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

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

  1. Выделить основные этапы развития программирования;
  2. Рассмотреть историю развития объектно-ориентированного программирования;
  3. Раскрыть суть методологии объектно-ориентированного программирования;
  4. Рассмотреть основные принципы объектно-ориентированного программирования;
  5. Провести анализ применения различных языков объектно-ориентированного программирования;
  6. Выделить плюсы и минусы объектно-ориентированного программирования

Глава 1. История развития программирования

1.1 Исторические аспекты появления и развития программирования

Программирование - в широком смысле представляет собой все технические операции, необходимые для создания программы, включая анализ требований и все стадии разработки и реализации программы. В узком смысле - это кодирование и тестирование программы в рамках некоторого конкретного проекта. [1]

При формулировании понятия «программирование» следует выделить понятие компьютер – это некая машина, способная выполнять различные действия в соответствии с заложенной в нее программой. Именно программа определяет возможность полезного применения ЭВМ, без нее она остается практически ненужной грудой «железа» — проводов, микросхем, пластмассы. Благодаря возможности менять исполняемые программы, закладываемые в память машины без изменения ее электронной схемы, мы получаем удивительное и не характерное для ранее созданных человеком машин свойство — универсальность, то есть способность одной и той же машины выполнять разные функции.[4]

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

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

В 1938 году немецкий инженер Конрад Цузе построил Z1 — первую из трех модификаций своей вычислительной машины. Элементной базой служили списанные с телефонной станции реле — фактически, машина была электромеханической. Программа должна была задаваться с помощью ленты с отверстиями — перфоленты. Однако Цузе, как и леди Лавлейс за век до него, увлекла идея создания универсальной машины, способной решать задачи не только вычислительные, но и из других областей. Он назвал свой проект логической машиной. Но к сожалению она, как и аналитическая машина Бэббиджа, так и не была построена.[7]


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

В начале 50-х годов XX века были созданы языки программирования, которые называются ассемблерами. Вместо одних только нулей и единиц программисты теперь могли пользоваться операторами (MOV, ADD, SUB и т. д.), которые были похожи на слова английского языка. Для преобразования текста программы на ассемблере в понятный компьютеру машинный код использовался компилятор, который загружался в оперативную память ЭВМ. Программы на ассемблере были также машинно-зависимыми, т. е. ассемблеры для различных процессоров существенно различались между собой.[6]

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

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

В 1959 г. создан язык COBOL (Common Business Oriented Language – стандартный язык для делового применения). Предназначался для коммерческих приложений, обрабатывающих большие объемы нечисловых данных.[5]

В 1964 г. Разработан язык BASIC. Первоначально работа велась только в режиме интерактивной (диалоговой) интерпретации. В смысле строгости и стройности является антиподом языка Pascal. Несмотря на это, Basic очень популярен, в особенности на ПК. Существует множество его диалектов, несовместимых между собой. Современные диалекты Basic’а весьма развиты и мало чем напоминают своего предка.

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

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

Первым языком, в котором нашли свое выражение идеи построения программ на основе данных и объектов стал язык Simula 67. Концепции, заложенные в языке Simula получили свое развитие в серии языков Smalltalk-72,-74,-76,-80, а также в языках C++ и Objective C. При внесении объектно-ориентированного подхода в язык Pascal появился язык Object Pascal.


В 90-х годах компания Sun представила миру язык Java, как воплощение идеи платформенной независимости и наиболее полную реализацию концепций объектно-ориентированного программирования, положенных в основу языков Simula 67, Smalltalk, C++. [4]

Объектно-ориентированное программирование, разработанное в середине 1970-х гг. Б. Керниганом и Д. Риччи и реализованное в объектно-ориентированных версиях языков C и Pascal, представляет собой отображение объектов реального мира, их свойств (атрибутов) и связей между ними при помощи специальных структур данных.[7]

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

Выделяют следующие этапы развития языков программирования высокого уровня: −

Языки первого поколения (1954−1958)

• FORTRAN 1 Математические формулы

• ALGOL-58 Математические формулы − Языки второго поколения (1959−1961)

• FORTRAN II Подпрограммы

• ALGOL-60 Блочная структура, типы данных

• COBOL Описание данных, работа с файлами

• LISP Обработка списков, указатели, сборка мусора − Языки третьего поколения (1962−1970)

• PL/I FORTRAN+ALGOL+COBOL

• Pascal Простой наследник ALGOL-60

• Simula Классы, абстракция данных − Разрыв преемственности (1970−1980)

• C Эффективный высокоуровневый язык

• FORTRAN 77 Блочная структура, типы данных − Бум ООП (1980−1990)

• Smalltalk 80 Чисто объектно-ориентированный язык

• C++ С + Simula

• Ada83 Строгая типизация; сильное влияние Pascal − Появление инфраструктур (1990−…)

• Java Блочная структура, типы данных

• Python Объектно-ориентированный язык сценариев

• Visual C# Конкурент языка Java для среды Microsoft .NET(http://glebradchenko.susu.ru/courses/bachelor/oop/OOP-PrePrint.pdf)

В основу всех видов программирования положены программные объекты, которые объединяли данные и методы их обработки.

• Язык С++ является прямым потомком алгоритмического языка С;

• Язык Object Pascal разработан на основе алгоритмического языка Pascal. После создания интегрированной среды разработки система программирования получила название Delphi;


• Язык Visual Basic создан корпорацией Microsoft на основе языка QBasic.

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

Языки 2-го поколения сделали акцент на алгоритмических абстракциях, что приблизило разработчиков к предметной области. Появилась процедурная абстракция, которая позволила описать абстрактные программные функции в виде подпрограмм. [9]

На 3-е поколение языков программирования влияние оказало то, что стоимость аппаратного обеспечения резко упала, при этом, производительность экспоненциально росла. Языки поддерживали абстракцию данных и появилась возможность описывать свои собственные типы данных. В 1970-е годы было создано несколько тысяч языков программирования для решения конкретных задач, но практически все из них исчезли. Осталось только несколько известных сейчас языков, которые прошли проверку временем.[7]

1.2 Исторические этапы развития объектно-ориентированного программирования

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

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

С момента появления первых электронно-вычислительных машин

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