Эволюция программного обеспечения

№111-1,

физико-математические науки

В этой статье будет рассмотрена история развития программного обеспечения и рассмотрены основные пути развития программного обеспечения.

Похожие материалы

Введение

Для того чтобы разобраться в эволюции ПО надо узнать что обозначает слово, которое лежит в основе ПО, а именно слово «Программа».

С греческого языка это слово можно буквально перевести как пред-запись, программа это предварительное описание некоторых предстоящих событий или действий компьютера. Программное Обеспечение (ПО) — программа/ы, которые используются для управления персонального компьютера. В IT сфере ПО часто называют словом «софт» для сокращения и упрощения произношения, а родоначальником данного сокращения является английское слово «software».

Развитие программного обеспечения

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

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

Их можно обрисовать в виде Аппаратного и Программного обеспечения.

Аппаратное обеспечение ( hardware — аппаратное обеспечение. включает в себя все физические части компьютера, но не включает информацию (данные) , которые он хранит и обрабатывает, и программное обеспечение, которое им управляет.

Программное обеспечение (англ. soft wareпрограммное обеспечение, сокращенно «ПО») включает в себе компьютерные программы и данные, предназначенные для решения определённого круга задач и хранящиеся на машинных носителях. Программное обеспечение представляет собой либо данные для использования в других программах, либо алгоритм, реализованный в виде последовательности инструкций для процессора.

Первый разработчик ПО

Весь софт создаётся программистами на различных языках программирования, которые предназначены для записи ПО. Самым первым программистом считается Ада Лавлейс, дочь знаменитого поэта, лорда Джорджа Байрона. В 1843 она перевела лекцию британского изобретателя Чарльза Беббиджа о созданной им вычислительной машине которую тот прочитал в университете Турина с итальянского языка на английский, при переводе текста лекции Ада Лавлейс дополнила его своими подробными комментариями, которые по объему в три раза превышали текст лекции.

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

Первые компьютеры и их устройство

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

Первым программируемым ПК считается Компьютер z3 созданный в 1943 году немецким ученым Конрадом Цузе.

В период с 1943 по 1945 год Конрадом Цузе для его компьютера был разработан и первый язык программирования Plankalkul, однако из-за второй мировой войны он так и не был реализован.

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

Эволюция написания ПО

В 50-х годах потребность в компьютерных программах возросла и они стали значительно длиннее поэтому они получили распространение ПО: сборщики программы, которые были названы ассемблерами.

Они позволили сделать программы понятнее, однако такие программы все еще зависели от центрального процессора ПК.

В 1954 году началась разработка первого языка программирования высокого уровня ”Фортран”, его 1 работающая версия была реализована в 1957 году. Языки программирования высокого уровня стали настоящим прорывом. То как работают ПО практически перестало зависеть от аппаратного обеспечения компьютера, в то же время сами языки программирования стали имитировать естественные разговорные языки. Таким образом коды программ значительно сократились, а запоминать язык программирования стало значительно проще.

Компьютерные программы имели следующие составляющие:

Первая часть — это данные, они могут храниться на компьютере или задаваться пользователем ПО.

Вторая часть — это модель обработки данных, то есть описание способы их обработки.

Третья часть — это пользовательский интерфейс, совокупность правил обмена информацией между пользователем и ПО.

История изменений составляющих компьютерных программ.

Сложность ПО постепенно увеличивалась, в итоге их стало сложно понимать даже самим программистом, поэтому в конце 60-х годов была разработана “парадигма структурного программирования” и её родоначальником стал нидерландский программист Эдсгер Дейстра. В 1968 году он опубликовал свое письмо” Оператор “go-to” “считается вредным. В этом письме он призвал программистов отказаться от использования в программах оператора безусловного перехода. Что же это значит. Программа представляет собой набор инструкций для управления компьютером, эти инструкции обычно выполняются в том порядке в котором они записаны, с помощью оператора безусловного перехода, программист может продолжить исполнение софта с любой инструкции, не обязательно со следующей такие программы было сложно читать.

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

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

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

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

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

Позже на смену текстовому интерфейсу пришел привычный нам графический пользовательский интерфейс, команды компьютеру стали отдаваться с помощью различных элементов управления, например кнопок, полей ввода, ползунков и других. Эти элементы управления активируются с помощью мыши и клавиатуры и обычно достаточно просты и интуитивно понятны. Были сформулированы некоторые требования к пользовательским интерфейсом программ, например такие, как “дружественность”, “дружественным” интерфейсом называется такой пользовательский интерфейс через который пользователь может максимально быстро научиться работать с программой допуская при этом минимальное количество ошибок. Так как сегодня пользователи компьютерных программ это обычные люди, при написании программ обычно учитывается возможность каких-либо ошибок со стороны пользователя.

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

Возможные ветви эволюции ПО

Основными тенденциями развития программного обеспечения являются:

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

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

Список литературы

  1. https://lawbooks.news/informatika_961/tendentsii-razvitiya-programmnogo-61880.html
  2. http://kompcheb.ru/evolyutsiya-programmnogo-obespecheniya.html
  3. https://studfile.net/preview/3939235/page:2/
  4. http://www.benran.ru/SEM/Sb_11/sbornik/doc_260.pdf
  5. https://docplayer.ru/46650644-Evolyuciya-programmnogo-obespecheniya.html
  6. http://www.computer-museum.ru/histsoft/lebedprg.htm