Страница полузащищенная
Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

На самом низком уровне программирования , исполняемый код состоит из машинного языка инструкций , поддерживаемых отдельным процессор -typically центрального процессора (ЦП) или графического процессора (GPU). Машинный язык состоит из групп двоичных значений, обозначающих инструкции процессора, которые изменяют состояние компьютера по сравнению с его предыдущим состоянием. Например, инструкция может изменить значение, хранящееся в конкретном месте хранения в компьютере, - эффект, который напрямую не наблюдается для пользователя. Инструкция также может вызывать одну из многих операций ввода или вывода., например, отображение текста на экране компьютера; вызывая изменения состояния, которые должны быть видны пользователю . Процессор выполняет инструкции в том порядке, в котором они предоставлены, если только ему не дана инструкция «перейти» к другой инструкции , или если он не прерван операционной системой. По состоянию на 2015 год большинство персональных компьютеров , смартфонов и серверов имеют процессоры с несколькими исполнительными модулями или несколько процессоров, выполняющих вычисления вместе, и вычисления стали намного более параллельными операциями, чем в прошлом.

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

История

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

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

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

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

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

Типы

Blender Game Engine , бесплатная программа.

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

Цель или область использования

По поставленной цели компьютерное программное обеспечение можно разделить на:

  • Прикладное программное обеспечение,
    которое представляет собой программное обеспечение, использующее компьютерную систему для выполнения специальных функций или предоставления развлекательных функций, выходящих за рамки основных операций самого компьютера. Существует много различных типов прикладного программного обеспечения, потому что спектр задач, которые можно выполнить с помощью современного компьютера, очень велик - см. Список программного обеспечения .
  • Системное программное обеспечение,
    которое представляет собой программное обеспечение для управленияповедением компьютерного оборудования , обеспечивающее основные функции, которые требуются пользователям, или другое программное обеспечение для правильной работы, если оно вообще существует. Системное программное обеспечение также предназначено для обеспечения платформы для запуска прикладного программного обеспечения [11] и включает в себя следующее:
    • Операционные системы,
      которые представляют собой важные наборы программного обеспечения, которые управляют ресурсами и предоставляют общие службы для другого программного обеспечения, которое работает «поверх» их. Контрольные программы , загрузчики , оболочки и оконные системы являются основными частями операционных систем. На практике операционная система поставляется в комплекте с дополнительным программным обеспечением (включая прикладное программное обеспечение), так что пользователь потенциально может выполнять некоторую работу с компьютером, на котором установлена ​​только одна операционная система.
    • Драйверы устройств,
      которые работают или управляют определенным типом устройств, подключенных к компьютеру. Каждому устройству нужен как минимум один соответствующий драйвер устройства; поскольку компьютер обычно имеет как минимум одно устройство ввода и как минимум одно устройство вывода, компьютеру обычно требуется более одного драйвера устройства.
    • Служебные программы,
      представляющие собой компьютерные программы, предназначенные для помощи пользователям в обслуживании и уходе за их компьютерами.
  • Вредоносное программное обеспечение или вредоносное
    ПО, которое разработано для нанесения вреда компьютерам и их выхода из строя. Таким образом, вредоносное ПО нежелательно. Вредоносное ПО тесно связано с компьютерными преступлениями, хотя некоторые вредоносные программы могли быть задуманы как розыгрыши .

Характер или область исполнения

  • Настольные приложения, такие как веб-браузеры и Microsoft Office , а также приложения для смартфонов и планшетов (называемые « приложениями »). (В некоторых сегментах индустрии программного обеспечения наблюдается стремление в определенной степени объединить настольные приложения с мобильными приложениями. Windows 8 и более поздняя версия Ubuntu Touch пытались разрешить использование одного и того же стиля пользовательского интерфейса приложения на настольных компьютерах, ноутбуках и других устройствах. мобильные.)
  • Сценарии JavaScript - это части программного обеспечения, традиционно встраиваемые в веб-страницы , которые запускаются непосредственно внутри веб-браузера при загрузке веб-страницы без необходимости в подключаемом модуле веб-браузера. Программное обеспечение, написанное на других языках программирования, также можно запускать в веб-браузере, если оно переведено на JavaScript или если установлен подключаемый модуль веб-браузера, поддерживающий этот язык; наиболее распространенным примером последнего являются сценарии ActionScript , которые поддерживаются подключаемым модулем Adobe Flash .
  • Серверное программное обеспечение , в том числе:
    • Веб-приложения , которые обычно запускаются на веб-сервере и выводят динамически генерируемые веб-страницы в веб-браузеры, используя, например, PHP , Java , ASP.NET или даже JavaScript, который выполняется на сервере . В наше время они обычно включают в себя некоторый JavaScript, который также запускается в веб-браузере, и в этом случае они обычно частично запускаются на сервере, частично в веб-браузере.
  • Плагины и расширения - это программное обеспечение, которое расширяет или изменяет функциональность другого программного обеспечения и требует, чтобы это программное обеспечение использовалось для работы;
  • Встроенное программное обеспечение находится в виде микропрограмм во встроенных системах , устройствах, предназначенных для одноразового использования или нескольких видов использования, таких как автомобили и телевизоры (хотя некоторые встроенные устройства, такие как беспроводные чипсеты, могут сами быть частью обычной невстроенной компьютерной системы, такой как ПК или смартфон). [12] В контексте встроенной системы иногда нет четкого различия между системным программным обеспечением и прикладным программным обеспечением. Однако на некоторых встроенных системах работают встроенные операционные системы., и в этих системах сохраняется различие между системным программным обеспечением и прикладным программным обеспечением (хотя обычно всегда будет запущено только одно фиксированное приложение).
  • Микрокод - это особый, относительно малоизвестный тип встроенного программного обеспечения, которое сообщает самому процессору , как выполнять машинный код, поэтому на самом деле это более низкий уровень, чем машинный код. Обычно он является собственностью производителя процессора, и все необходимые корректирующие обновления программного обеспечения микрокода предоставляются пользователям (что намного дешевле, чем доставка заменяющего аппаратного обеспечения процессора). Таким образом, обычный программист не ожидал бы, что когда-нибудь столкнется с этим.

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

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

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

Темы

Архитектура

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

  • Программное обеспечение Платформа Платформа включает в себя прошивку , драйверы устройств , в операционную систему , и обычно это графический пользовательский интерфейс , который, в общем, позволяет пользователю взаимодействовать с компьютером и его периферийными устройствами (связанное с ним оборудование). Программное обеспечение платформы часто идет в комплекте с компьютером. На ПК обычно есть возможность изменить программное обеспечение платформы.
  • Прикладное программное обеспечение
    Прикладное программное обеспечение или приложения - это то, о чем думает большинство людей, когда они думают о программном обеспечении. Типичные примеры включают офисные пакеты и видеоигры. Прикладное программное обеспечение часто приобретается отдельно от компьютерного оборудования. Иногда приложения поставляются вместе с компьютером, но это не меняет того факта, что они работают как независимые приложения. Приложения обычно представляют собой независимые от операционной системы программы, хотя часто они адаптированы для конкретных платформ. Большинство пользователей думают о компиляторах, базах данных и другом «системном программном обеспечении» как о приложениях.
  • Программное обеспечение, написанное
    пользователями. Разработка конечных пользователей адаптирует системы к конкретным потребностям пользователей. Пользовательское программное обеспечение включает шаблоны электронных таблиц и шаблоны текстовых редакторов . Даже фильтры электронной почты - это своего рода пользовательское ПО. Пользователи сами создают это программное обеспечение и часто забывают, насколько оно важно. В зависимости от того, насколько грамотно написанное пользователем программное обеспечение было интегрировано в пакеты приложений по умолчанию, многие пользователи могут не осознавать различие между исходными пакетами и тем, что было добавлено коллегами.

Исполнение

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

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

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

Качество программного обеспечения очень важно, особенно для коммерческого и системного программного обеспечения, такого как Microsoft Office , Microsoft Windows и Linux . Если программное обеспечение неисправно (содержит ошибки), оно может удалить работу человека, вывести компьютер из строя и сделать другие неожиданные вещи. Неисправности и ошибки называются « ошибками », которые часто обнаруживаются во время альфа- и бета-тестирования. Программное обеспечение часто также становится жертвой так называемого старения программного обеспечения , прогрессирующего снижения производительности в результате комбинации невидимых ошибок.

Многие ошибки обнаруживаются и устраняются (отлаживаются) посредством тестирования программного обеспечения . Однако тестирование программного обеспечения редко - если вообще когда-либо - устраняет каждую ошибку; некоторые программисты говорят, что «в каждой программе есть хоть одна ошибка» (закон Любарского). [13] В каскадном методе разработки программного обеспечения обычно используются отдельные группы тестирования, но в новых подходах, которые в совокупности называются гибкой разработкой программного обеспечения , разработчики часто проводят все свое собственное тестирование и регулярно демонстрируют программное обеспечение пользователям / клиентам для получения обратной связи. Программное обеспечение можно протестировать с помощью модульного тестирования , регрессионного тестированияи другие методы, которые выполняются вручную или чаще всего автоматически, поскольку объем кода, который нужно протестировать, может быть довольно большим. Например, НАСА имеет чрезвычайно строгие процедуры тестирования программного обеспечения для многих операционных систем и функций связи. Многие операторы НАСА взаимодействуют и идентифицируют друг друга с помощью командных программ. Это позволяет многим людям, работающим в НАСА, проверять и оценивать функциональные системы в целом. Программы, содержащие командное программное обеспечение, значительно упрощают совместную работу аппаратной инженерии и системных операций.

Лицензия

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

Фирменное ПО можно разделить на два типа:

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

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

Патенты

Патенты на программы, как и другие типы патентов, теоретически должны дать изобретателю исключительную, ограниченную по времени лицензию на детальную идею (например, алгоритм) о том, как реализовать часть программного обеспечения или компонент части программного обеспечения. Идеи для полезных вещей, которые может делать программное обеспечение , и требования пользователей, не должны быть патентоспособными, и конкретные реализации (т.е. фактические программные пакеты, реализующие патент) также не должны быть патентоспособными - последние уже защищены авторским правом, как правило, автоматически. Таким образом, патенты на программы должны охватывать среднюю область между требованиями и конкретной реализацией. В некоторых странах требование о том, чтобы заявленное изобретение оказало влияние на физический мир, также может быть частью требований о том, чтобы патент на программное обеспечение считался действительным, хотя, поскольку все полезное программное обеспечение оказывает влияние на физический мир, это требование может быть открыт для обсуждения. Между тем, американский закон об авторском праве применялся к различным аспектам написания программного кода. [14]

Патенты на программы вызывают споры в индустрии программного обеспечения, и многие люди придерживаются разных взглядов на них. Одним из источников разногласий является то, что вышеупомянутое разделение между первоначальными идеями и патентами, похоже, не соблюдается на практике патентными юристами - например, патент на аспектно-ориентированное программирование (АОП), который претендует на права на любыеинструмент программирования, реализующий идею АОП, как бы она ни была реализована. Еще один источник разногласий - это влияние на инновации: многие известные эксперты и компании утверждают, что программное обеспечение - это настолько быстро развивающаяся область, что патенты на программное обеспечение просто создают огромные дополнительные судебные издержки и риски и фактически тормозят инновации. В случае дебатов о патентах на программы за пределами Соединенных Штатов был выдвинут аргумент, что крупные американские корпорации и патентные юристы, вероятно, будут основными бенефициарами разрешения или продолжения разрешения патентов на программы.

Дизайн и реализация

Дизайн и реализация программного обеспечения зависит от сложности программного обеспечения. Например, проектирование и создание Microsoft Word заняло гораздо больше времени, чем проектирование и разработка Microsoft Notepad, потому что последний имеет гораздо больше базовых функций.

Программное обеспечение обычно проектируется и создается (иначе кодируется / пишется / программируется) в интегрированных средах разработки (IDE), таких как Eclipse , IntelliJ и Microsoft Visual Studio, которые могут упростить процесс и компилировать программное обеспечение (если применимо). Как отмечено в другом разделе, программное обеспечение обычно создается поверх существующего программного обеспечения и интерфейса прикладного программирования (API), который предоставляет базовое программное обеспечение, например GTK + , JavaBeans или Swing . Библиотеки (API) можно разделить на категории по их назначению. Например, Spring Framework используется для реализации корпоративных приложений., То Windows Forms библиотека используется для разработки графического пользовательского интерфейса (GUI) приложений , как Microsoft Word и Windows Communication Foundation , используется для разработки веб - сервисов . Когда программа разрабатывается, она полагается на API. Например, настольное приложение Microsoft Windows может вызывать функции API в библиотеке .NET Windows Forms, такие как Form1.Close () и Form1.Show () [15], чтобы закрыть или открыть приложение. Без этих API-интерфейсов программист должен полностью написать эти функции. Такие компании, как Oracle и Microsoftпредоставляют свои собственные API-интерфейсы, поэтому многие приложения пишутся с использованием их программных библиотек, которые обычно содержат множество API-интерфейсов.

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

Компьютерное программное обеспечение имеет особые экономические характеристики, которые отличают его дизайн, создание и распространение от большинства других экономических товаров. [ укажите ] [16] [17]

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

Промышленность и организации

Софтверную индустрию составляют самые разные компании-разработчики программного обеспечения и программисты в мире. Программное обеспечение может быть довольно прибыльной отраслью: Билл Гейтс , соучредитель Microsoft, был самым богатым человеком в мире в 2009 году, во многом благодаря тому, что он владел значительным количеством акций Microsoft, компании, ответственной за Microsoft Windows и Microsoft Office. программные продукты - оба лидера рынка в своих товарных категориях.

Некоммерческие программные организации включают Free Software Foundation , GNU Project и Mozilla Foundation . Организации по стандартизации программного обеспечения, такие как W3C и IETF, разрабатывают рекомендуемые стандарты программного обеспечения, такие как XML , HTTP и HTML , чтобы программное обеспечение могло взаимодействовать через эти стандарты.

Другие известные крупные компании-разработчики программного обеспечения включают Google , IBM , TCS , Infosys , Wipro , HCL Technologies , Oracle , Novell , SAP , Symantec , Adobe Systems , Sidetrade и Corel , в то время как небольшие компании часто предлагают инновации.

Смотрите также

  • Жизненный цикл выпуска программного обеспечения
  • Независимый поставщик программного обеспечения
  • Краткое описание программного обеспечения
  • Управление программными активами
  • Программное обеспечение с открытым исходным кодом

Рекомендации

  1. ^ «Конструкция компилятора» . Архивировано 2 ноября 2013 года.
  2. ^ а б Эванс 2018 , стр. 21.
  3. ^ Fuegi, J .; Фрэнсис, Дж. (2003). «Лавлейс и Бэббидж и создание« заметок » 1843 года » (PDF) . Анналы истории вычислительной техники . 25 (4): 16–26. DOI : 10.1109 / MAHC.2003.1253887 . S2CID 40077111 .  
  4. ^ "Ада Лавлейс удостоена каракули Google" . Хранитель . 10 декабря 2012 . Проверено 25 ноября 2018 года .
  5. ^ Тьюки, Джон Уайлдер (январь 1958). «Преподавание конкретной математики». Американский математический ежемесячник . Тейлор и Фрэнсис, Лтд. / Математическая ассоциация Америки . 65 (1): 1-9, 2. DOI : 10,2307 / 2310294 . ISSN 0002-9890 . JSTOR 2310294 . CODEN AMMYAE . […] Сегодня «программное обеспечение», включающее в себя тщательно спланированные интерпретирующие процедуры, компиляторы и другие аспекты автоматического программирования, по меньшей мере так же важно для современного электронного калькулятора, как и его «оборудование» из ламп, транзисторов, проводов, лент и тому подобного. . […]   
  6. Перейти ↑ Beebe, Nelson HF (22 августа 2017 г.). «Глава I - Целочисленная арифметика». Справочник по математическим вычислениям функций - Программирование с использованием переносимой программной библиотеки MathCW (1-е изд.). Солт-Лейк-Сити, Юта, США: Springer International Publishing AG . С. 969, 1035. DOI : 10.1007 / 978-3-319-64110-2 . ISBN 978-3-319-64109-6. LCCN  2017947446 . S2CID  30244721 .
  7. ^ Шапиро, Фред (2000). «Происхождение термина« Программное обеспечение: данные из архива электронного журнала JSTOR » (PDF) . IEEE Annals of the History of Computing . 22 (2): 69–71. DOI : 10,1109 / mahc.2000.887997 . Архивировано из оригинального (PDF) 5 июня 2003 года . Проверено 25 июня 2013 года .
  8. Леонхардт, Дэвид (28 июля 2000 г.). «Джон Тьюки, 85 лет, статистик; придумал слово« программное обеспечение » » . Нью-Йорк Таймс . Проверено 24 сентября 2012 года .
  9. ^ Никетт, Р. Пол (2006), Softword: Provenance for the Word 'Software , ISBN 1-58922-233-4, заархивировано из оригинала 8 августа 2019 г. , извлечено 18 августа 2019 г.
  10. ^ Кархарт, Ричард (1953). Обзор текущего состояния проблемы электронной надежности (PDF) . Санта-Моника, Калифорния: Rand Corporation . п. 69. […] Напомним из гл. 1.6 что термин персонал был определен как включающий людей, которые непосредственно контактируют с оборудованием, от производства до использования в полевых условиях, т. Е. Людей, которые собирают, проверяют, упаковывают, отправляют, обрабатывают, устанавливают, эксплуатируют и обслуживают электронное оборудование. На любом из этих этапов отказы персонала могут привести к выходу оборудования из строя. Как и в случае с аппаратными факторами, почти нет количественных данных, касающихся этого программного обеспечения или человеческого фактора в надежности: сколько отказов вызвано персоналом, почему они возникают и что можно сделать для устранения ошибок. […]
  11. ^ «Системное программное обеспечение» . Университет Миссисипи. Архивировано из оригинального 30 мая 2001 года.
  12. ^ «Встроенное программное обеспечение - технологии и тенденции» . Компьютерное общество IEEE. Май-июнь 2009 года архивации с оригинала на 28 октября 2013 . Проверено 6 ноября 2013 года .
  13. ^ "Примеры сценариев интеллекта" . 9 мая 2018. Архивировано 6 ноября 2015 года.
  14. Херардо Кон Диас, «Текст в машине: американский закон об авторском праве и многие виды программного обеспечения, 1974–1978», « Технология и культура» 57 (октябрь 2016 г.), 753–79.
  15. ^ «Библиотека MSDN» . Архивировано 11 июня 2010 года . Проверено 14 июня 2010 года .
  16. ^ v. Энгельгардт, Себастьян (2008). «Экономические свойства программного обеспечения» . Йенские документы по экономическим исследованиям . 2 (2008–045). Архивировано 5 января 2016 года.
  17. Перейти ↑ Kaminsky, Dan (1999). «Почему открытый код является оптимальной экономической парадигмой для программного обеспечения» . Архивировано 22 мая 2012 года.

Источники

  • Эванс, Клэр Л. (2018). Широкая группа: Нерассказанная история женщин, которые сделали Интернет . Нью-Йорк: Портфолио / Пингвин. ISBN 9780735211759.

внешняя ссылка

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