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

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

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

История

Схема ( алгоритм ) того, что будет первым программным обеспечением, была написана Ада Лавлейс в 19-м веке для запланированного аналитического двигателя. Однако ни Analytical Engine, ни какое-либо программное обеспечение для него не было создано.

Первая теория программного обеспечения (до создания современных компьютеров) была предложена Аланом Тьюрингом в его эссе, опубликованном в 1936 году

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

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

Инструменты программирования

Программный инструмент — это также программное обеспечение в форме программ или веб-приложений, которые разработчики программного обеспечения (также называемые программистами или разработчиками программного обеспечения) используют для создания, отладки, обслуживания (т.е. улучшения или ремонта).

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

Архитектура

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

Программное обеспечение платформы

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

Пользовательское программное обеспечение

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

Выполнение

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

Передача данных обычно происходит из одного места хранения в другое. Иногда это включает перемещение данных между памятью и регистрами, которые обеспечивают быстрый доступ к данным в ЦП . Передача данных, особенно больших объемов, может быть дорогостоящей. Иногда этого можно избежать, используя вместо этого « указатели данных». Расчеты включают в себя простые операции, такие как увеличение значения переменного элемента данных. Более сложные вычисления могут включать много операций.

Качество и надежность

Качество программного обеспечения очень важно, особенно для коммерческого и системного программного обеспечения, такого как Microsoft Office , Microsoft Windows и Linux . Например, сбой программного обеспечения может привести к сбою компьютера.

Программное обеспечение также часто является жертвой так называемого старения, постепенного снижения производительности в результате сочетания невидимых ошибок. Многие ошибки обнаруживаются и устраняются (отлаживаются) во время тестирования программного обеспечения. Однако тестирование программного обеспечения редко — если вообще когда-либо — устраняет каждую ошибку. Некоторые программисты говорят, что «в каждой протестированной программе есть как минимум еще одна ошибка» (закон Любарского).

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

Типы программного обеспечения

Программное обеспечение разделено в соответствии с его назначением:

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

Концепция системного программного обеспечения намного шире, чем операционные системы . Он также включает серверное программное обеспечение и любое программное обеспечение, с которым пользователь не имеет прямого контакта.
.