Программное обеспечение

Материал из Циклопедии
Перейти к навигации Перейти к поиску

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

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

История[править]

Схема (алгоритм) того, что могло бы стать первой частью программного обеспечения, была написана Адой Лавлейс в 19 веке для планируемой аналитической машины. Она создала доказательства, чтобы показать, как машина вычисляет числа Бернулли. Из-за доказательств и алгоритма она считается первым программистом.[1][2]

Первая теория программного обеспечения — до создания компьютеров в том виде, в каком мы их знаем сегодня, — была предложена Аланом Тьюрингом в его эссе 1935 года «О вычислимых числах» с приложением к Entscheidungsproblem (проблеме решения).

В конечном итоге это привело к созданию академических областей информатики и разработке программного обеспечения; оба направления изучают программное обеспечение и его создание. Информатика — это теоретическое исследование компьютеров и программного обеспечения (эссе Тьюринга является примером информатики), тогда как программная инженерия — это применение инженерии и разработки программного обеспечения.

Однако до 1946 года программное обеспечение еще не было программами, хранящимися в памяти цифровых компьютеров с сохраненными программами, как мы это понимаем сейчас. Вместо этого первые электронные вычислительные устройства были переделаны, чтобы «перепрограммировать» их.

В 2000 году Фред Шапиро, библиотекарь Йельской школы права, опубликовал письмо, в котором говорилось, что статья Джона Уайлдера Тьюки 1958 года «Преподавание конкретной математики»[3][4] содержала самое раннее известное использование термина «программное обеспечение», найденное во время поиска в электронных архивах JSTOR, предшествующим цитированию OED на два года[5]. Это привело к тому, что многие приписали Тьюки создание этого термина, особенно в некрологах, опубликованных в том же году. В 1995 году Поль Никетт утверждал, что первоначально он ввел термин в обращение в октябре 1953 года, но не смог найти никаких документов, подтверждающих его утверждение. Самая ранняя известная публикация термина «программное обеспечение» в инженерном контексте была опубликована в августе 1953 года Ричардом Кархартом в исследовательском меморандуме Rand Corporation[6].

Типы[править]

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

  • Системное программное обеспечение обеспечивает работу оборудования и компьютерной системы как единого целого. Включает операционные системы, драйверы устройств, средства диагностики, серверы, оконные системы и др. Назначение системного программного обеспечения — отграничить насколько возможно программиста, что пишет прикладные программы, от деталей конкретной компьютерной системы, особенностей подсистемы памяти, тех или иных устройств — принтеров, дисплеев, клавиатур и т. д.
    • Другими словами, системные программы выполняют различные вспомогательные функции, например, создание копий используемой информации, выдачу справочной информации о компьютере, проверку работоспособности устройств компьютера и т. п. К системному ПО относятся:
  1. операционные системы (эта программа загружается в ОЗУ при включении компьютера)
  2. программы — оболочки (обеспечивают более удобный и наглядный способ общения с компьютером, чем с помощью командной строки DOS, например, Norton Commander)
  3. операционные оболочки — интерфейсные системы, которые используются для создания графических интерфейсов, мультипрограммирования и.т.
  4. Драйверы (программы, предназначенные для управления портами периферийных устройств, обычно загружаются в оперативную память при запуске компьютера)
  5. утилиты (вспомогательные или служебные программы, которые представляют пользователю ряд дополнительных услуг) К утилитам относятся:
  6. диспетчеры файлов или файловые менеджеры
  7. средства динамического сжатия данных (позволяют увеличить количество информации на диске за счет её динамического сжатия)
  8. средства просмотра и воспроизведения
  9. средства диагностики; средства контроля позволяют проверить конфигурацию компьютера и проверить работоспособность устройств компьютера, прежде всего жестких дисков
  10. средства коммуникаций (коммуникационные программы) предназначены для организации обмена информацией между компьютерами
  11. средства обеспечения компьютерной безопасности (резервное копирование, антивирусное ПО). Необходимо отметить, что часть утилит входит в состав операционной системы, а другая часть функционирует автономно. Большая часть общего (системного) ПО входит в состав ОС. Часть общего ПО входит в состав самого компьютера (часть программ ОС и контролирующих тестов записана в ПЗУ или ППЗУ, установленных на системной плате). Часть общего ПО относится к автономными программам и поставляется отдельно.
  • Средства программирования охватывают устройства, помогающие программисту создавать программы на различных языках программирования более удобным способом. Включают текстовые редакторы, компиляторы, интерпретаторы, компоновщики, дебаггеры и т. д. Интегрированная среда программирования сочетает эти устройства в программном пакете, обычно заменяя управление с командной строки графическим интерфейсом пользователя.
  • Прикладные программы позволяют пользователю выполнять одну или несколько определенных, не связанных с компьютером, задач. Обычный обиход включает автоматизацию промышленности, программы для бизнеса, образовательные программы, медицинские программы, базы данных и компьютерные игры. Почти каждое проявление человеческой деятельности теперь использует некую форму прикладной программы.
    • Пакеты прикладных программ — это система программ, которые по сфере применения делятся на проблемно — ориентированные, пакеты общего назначения и интегрированные пакеты. Современные интегрированные пакеты содержат до пяти функциональных компонентов: тестовый и табличный процессор, СУБД, графический редактор, телекоммуникационные средства.

К прикладному ПО, например, относятся:

  1. Комплект офисных приложений MS OFFICE
  2. Бухгалтерские системы
  3. Финансовые аналитические системы
  4. Интегрированные пакеты делопроизводства
  5. CAD — системы (системы автоматизированного проектирования)
  6. Редакторы HTML или Web — редакторы
  7. Браузеры — средства просмотра Web — страниц
  8. Графические редакторы
  9. Экспертные системы

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

См. также[править]

Источники[править]

  1. (2003) «Lovelace & Babbage and the creation of the 1843 'notes'». Annals of the History of Computing 25 (4): 16–26. DOI:10.1109/MAHC.2003.1253887.
  2. Ada Lovelace honoured by Google doodle (декабрь 2012 года).
  3. (January 1958) «The Teaching of Concrete Mathematics». American Mathematical Monthly (Taylor & Francis, Ltd. / Mathematical Association of America) 65 (1): 1–9, 2. DOI:10.2307/2310294. ISSN 0002-9890. Шаблон:CODEN. “[…] Today the «software» comprising the carefully planned interpretive routines, compilers, and other aspects of automative programming are at least as important to the modern electronic calculator as its «hardware» of tubes, transistors, wires, tapes, and the like. […]”
  4. Chapter I - Integer arithmetic // The Mathematical-Function Computation Handbook - Programming Using the MathCW Portable Software Library. — 1. — Salt Lake City, UT, USA: Springer International Publishing AG. — P. 969, 1035. — ISBN 978-3-319-64109-6.
  5. (2000) «Origin of the Term Software: Evidence from the JSTOR Electronic Journal Archive». IEEE Annals of the History of Computing 22 (2): 69–71. DOI:10.1109/mahc.2000.887997.
  6. A survey of the current status of the electronic reliability problem. — Santa Monica, CA: Rand Corporation.