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

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

Програ́ммное обеспе́чение (допустимо также произношение обеспече́ние ) ( ПО ) — программа или множество программ, используемых для управления компьютером ( ISO/IEC 26514:2008 ) .

Имеются и другие определения из международных и российских стандартов:

  • совокупность программ системы обработки информации и программных документов , необходимых для эксплуатации этих программ ( ГОСТ 19781-90 );
  • все или часть программ, процедур, правил и соответствующей документации системы обработки информации ( ISO/IEC 2382-1:1993 ) ;
  • компьютерные программы, процедуры и, возможно, соответствующая документация и данные, относящиеся к функционированию компьютерной системы ( IEEE Std 829—2008 ) .

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

Академические области, изучающие программное обеспечение, — это информатика и программная инженерия .

В компьютерном сленге часто используется слово « софт », произошедшее от английского слова « software », которое в этом смысле впервые применил в статье журнала American Mathematical Monthly математик из Принстонского университета Джон Тьюки в 1958 году .

История

Предыстория. Зарождение программирования

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

Первая теория, касающаяся программного обеспечения, была предложена английским математиком Аланом Тьюрингом в 1936 году в эссе «On computable numbers with an application to the Entscheidungsproblem» («О вычислимых числах с приложением к проблеме разрешения ») . Он создал так называемую машину Тьюринга , математическую модель абстрактной машины, способной выполнять последовательности рудиментарных операций, которые переводят машину из одного фиксированного состояния в другое. Главная идея заключалась в математическом доказательстве факта, что любое наперёд заданное состояние системы может быть всегда достигнуто последовательным выполнением конечного набора элементарных команд (программы) из фиксированного набора команд.

Первые электронно-вычислительные машины 1940—1950-х годов перепрограммировались путём переключения тумблеров и переподключения кабелей, что требовало глубокого понимания их внутреннего устройства. К таким машинам, в частности, относился ENIAC (который, впрочем, впоследствии модифицировали, чтобы он мог, по крайней мере частично, программироваться с помощью перфокарт ) .

Важным шагом в сторону современных компьютеров был переход к архитектуре Джона фон Неймана , впервые воплощённой в Великобритании , в разработанном под руководством и при участии Алана Тьюринга компьютере, известном как Марк I . Первая программа, хранимая в памяти компьютера, была запущена на нём 21 июня 1941 года. Для облегчения программирования этой машины Тьюринг придумал систему сокращённого кодирования, в которой для представления двоичного машинного кода использовалась последовательность телетайпных символов, выводимых на перфоленту .

Один из сотрудников Тьюринга, Джон Мочли , став позднее (вместе с Джоном Преспером Эккертом ) руководителем и основателем компании Eckert–Mauchly Computer Corporation , разработавшей такие ЭВМ , как BINAC и UNIVAC , поручил своим сотрудникам создать транслятор алгебраических формул. Хотя эта амбициозная цель в 1940-х годах и не была достигнута, под руководством Мочли был разработан так называемый « Краткий код », в котором операции и переменные кодировались двухсимвольными сочетаниями. Краткий код был реализован с помощью интерпретатора . Грейс Хоппер , работая с начала 1950-х годов над набором математических подпрограмм для UNIVAC I , изобрела программу- компоновщик « », которая по заданному идентификатору осуществляла выборку нужной подпрограммы из библиотеки , хранящейся на магнитной ленте , и записывала её в отведённое место оперативной памяти .

В 1950-е годы появились первые высокоуровневые языки программирования, Джон Бэкус разработал FORTRAN , а Грейс Хоппер COBOL . Подобные разработки значительно упростили написание прикладного программного обеспечения, которое писала тогда каждая фирма, приобретающая вычислительную машину .

В начале 1950-х годов понятие программного обеспечения ещё не сложилось. Так не говорилось о нём ничего в вышедшей в январе 1952 года в журнале Fortune статье «Office Robots», описывавшем компьютеры Univac. Хотя в статье уже рассказывается о компьютере как об универсальном устройстве, процесс программирования в этой статье был анахронически описан как «переключение тумблеров» . Однако к середине 50-х годов уже вполне сложилась разработка программного обеспечения на заказ , хотя сам термин «программное обеспечение» ещё не использовался, тогда говорили просто о « программировании на заказ » или « программистском обслуживании » . Первой программной фирмой стала компания System Development Corporation , созданная в 1956 году на базе принадлежащей правительству США фирме RAND Corporation . На этом этапе заказчиками программного обеспечения (уникального и не тиражируемого) были крупные корпорации и государственные структуры, и стоимость в один миллион долларов за программу не была чем-то необычным .

Ранняя история. Корпоративное ПО

Сам термин «программное обеспечение» вошёл в широкий обиход с начала 1960-х годов, когда стало актуальным разграничение команд, управляющих компьютером, и его физических компонентов — аппаратного обеспечения . Тогда же и началось становление индустрии программного обеспечения , как самостоятельной отрасли . Первой компанией по разработке ПО стала основанная в 1959 году и с начальным капиталом в 100 долларов. Первыми клиентами CSC и появившихся вслед за нею софтверных компаний были сверхкрупные корпорации и государственные организации, вроде NASA , и фирма продолжала работать на рынке заказного ПО, как и другие первые программистские частные стартапы , такие как (CUC) .

Первыми самостоятельно выпущенными программными продуктами, не поставляемыми в комплекте с компьютерным оборудованием, были выпущенный фирмой Applied Data Research в 1965 году генератор компьютерной документации , автоматически рисующий блок-схемы , и транслятор языка программирования , разработанный в 1960—1967 годах в Informatics, Inc. Становление рынка корпоративного программного обеспечения тесно связано с появлением семейства компьютеров IBM System/360 . Достаточно массовые, относительно недорогие вычислительные машины, совместимые друг с другом на уровне программного кода, открыли дорогу тиражируемому программному обеспечению .

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

В ноябре 1966 года журнал Business Week впервые обратился к теме индустрии программного обеспечения. Статья называлась «Software Gap — A Growing Crisis for Computers» и рассказывала как о перспективности этого бизнеса, так и о кризисе, связанном с нехваткой программистов . Типичные программные продукты того времени служили для автоматизации общих для бизнеса задач, таких, как или автоматизации бизнес-процессов таких предприятий среднего бизнеса, как или коммерческий банк . Стоимость такого ПО, как правило, была между пятью и ста тысячами долларов .

Персональные компьютеры и программное обеспечение для массового потребителя

Появление в 1970-х годах первых персональных компьютеров (таких, как Альтаир 8800 ) создало предпосылки и для зарождения массового рынка программного обеспечения. Изначально программы для персональных компьютеров распространялись в «коробочной» форме через торговые центры или и имели цену 100—500 долларов США .

Знаковыми для зарождающего массового рынка программного обеспечения стали такие продукты, как электронная таблица VisiCalc , идея которой пришла Дэниелу Бриклину , когда тот, будучи выпускником MIT и инженером-программистом в DEC , посещал курсы в Гарвардской школе бизнеса и хотел облегчить себе утомительные финансовые расчёты , и текстовый процессор , разработку которого начал , тщательно изучив потребности рынка . О VisiCalc впервые заговорили, как о killer application , то есть компьютерном приложении, которое самим фактом своего существования доказывает нужность (и, зачастую, необходимость покупки) платформы, для которой реализована такая программа. Для VisiCalc и WordStar такой платформой стали персональные компьютеры, которые благодаря ним из богатой игрушки для гиков стали рабочим инструментом. С них началась микрокомпьютерная революция , а у этих программ появились конкуренты: электронные таблицы SuperCalc , Lotus 1-2-3 , система управления базами данных dBase II , текстовый процессор WordPerfect и др. Текстовые процессоры, электронные таблицы, системы управления базами данных, а также графические редакторы вскоре стали основными продуктами рынка программного обеспечения для персональных компьютеров .

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

Классификация ПО

Подходы к классификации ПО достаточно подробно формализованы в международном стандарте ISO/IEC 12182 . В частности, первая версия стандарта предусматривала 16 критериев классификации программных средств:

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

Примерами классов функции ПС являются:

  • обработка деловых сообщений;
  • компиляция;
  • научные вычисления;
  • обработка текстов;
  • медицинские системы;
  • системы управления.

Примерами классов прикладной области являются:

  • наука;
  • бытовые устройства;
  • оборудование;
  • аппаратура управления процессом;
  • предпринимательство;
  • система организации сети.

Примерами классов масштаба ПС являются:

  • малый;
  • средний;
  • большой.

Примерами классов критичности являются:

  • национальная безопасность;
  • человеческая жизнь;
  • социальный хаос или паника;
  • организационная безопасность;
  • частная собственность;
  • секретность.

Примерами классов пользователя являются:

  • начинающий;
  • средний;
  • специалист (эксперт);
  • обычный;
  • случайный;
  • другая система программного обеспечения;
  • технические средства.

Примерами классов стабильности являются:

  • постоянное внесение изменений;
  • дискретное внесение изменений;
  • маловероятное внесение изменений.

По степени переносимости программы делят на

По способу распространения и использования программы делят на

По назначению программы делят на:

По видам программы делят на:

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

Классификация программного обеспечения по сектору индустрии включает несколько подходов. В целом, программное обеспечение делят на заказное , то есть создаваемое для конкретного заказчика, и продуктовое , то есть создаваемое для продажи на рынке. В свою очередь, по типам потребителя ПО делят на Business-to-Business ( B2B ), то есть для предприятий и организаций, и Business-to-Consumer ( B2C ), то есть для частных лиц .

Одним из вариантов классификации по сектору индустрии является деление на ПО для корпоративного заказчика ( англ. enterprise software vendors), ПО для массового потребителя ( англ. mass-market software vendors) и ИТ-сервисы .

Другой подход состоит в делении индустрии ПО на три сектора: бизнес-продукты общего назначения ( англ. Business Function Software), специализированные бизнес-продукты ( англ. Industrial Business Software) и продукты для частной жизни ( англ. Consumer Software). Бизнес-продукты общего назначения предназначены для поддержки функционирования предприятий и организаций и включают бухгалтерские системы, финансовые системы, системы кадрового учёта и т. п. Специализированные бизнес-продукты ориентированы на задачи конкретного типа бизнеса: геоинформационные системы, медицинские системы, логистические системы и т. п. Продукты для частной жизни включают антивирусное ПО и системы для информационной безопасности, различные полезные утилиты, образовательное ПО, мультимедийное ПО и т. п.

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

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

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

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

Лицензия

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

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

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

См. также

Примечания

  1. Ожегов С. И. Словарь русского языка. — М. : Русский язык, 1986. — С. 364.
  2. (неопр.) . Дата обращения: 26 мая 2007. 3 апреля 2007 года.
  3. ↑ от 3 апреля 2018 на Wayback Machine Грамота.ру
  4. Резниченко И. Л. Орфоэпический словарь русского языка: Произношение. Ударение: Ок. 25 000 единиц / Резниченко И.Л. М.: ООО «Издательство Астрель»: ООО «Издательство АСТ», 2003. — 284 c.
  5. Издание орфографического словаря Ожегова 2007 года приводит единственный вариант — обеспече́ние . // Орфографический словарь русского языка / Под редакцией С. И. Ожегова. Локид-Пресс, 2007. 912 с. ISBN 5-320-00396-X .
  6. Издание словаря Розенталя 2006 и 2007 года тоже приводит единственный вариант — обеспече́ние // Д. Э. Розенталь . Русский язык. Справочник-практикум. Оникс, Мир и образование, 2007. ISBN 5-488-00712-1 , 5-94666-332-1, 978-5-488-01360-5.
  7. ISO/IEC 26514:2008 Systems and Software Engineering — Requirements for designers and developers of user documentation
  8. Согласно ГОСТ 19.101-77 К программным относят документы, содержащие сведения, необходимые для разработки, изготовления, сопровождения и эксплуатации программ .
  9. от 10 февраля 2019 на Wayback Machine . Обеспечение систем обработки информации программное. Термины и определения
  10. .
  11. Система обработки информации — одна или большее число компьютерных систем и устройств, таких как офисное и коммуникационное оборудование, которые выполняют обработку информации // от 18 сентября 2012 на Wayback Machine
  12. IEEE Std 829—2008 IEEE Standard for Software and System Test Documentation
  13. ГОСТ 34.003-90 Информационная технология. Автоматизированные системы. Термины и определения
  14. , Obituaries , New York Times (28 июля 2000).
  15. , 1. Невидимый конструктор § Предвестники компьютерной эры, с. 11.
  16. Turing A. (англ.) // London Mathematical Society , 1937. — Vol. s2-42, Iss. 1. — P. 230—265. — ISSN ; ; —
  17. Turing A. M. (англ.) // London Mathematical Society , 1938. — Vol. s2-43, Iss. 6. — P. 544—546. — ISSN ; ; —
  18. Hally, Mike. (англ.) . — London: British Broadcasting Corporation and Granta Books, 2005. — P. . — ISBN 1-86207-663-4 .
  19. , 1. Невидимый конструктор, с. 10—11.
  20. , 1. Невидимый конструктор, с. 14—16.
  21. , 1. Невидимый конструктор § Создание кодов, понятных человеку, с. 16.
  22. , 1. Невидимый конструктор § Шаг на благо программирования, с. 18—20.
  23. , 1. Невидимый конструктор § Шаг на благо программирования, с. 20.
  24. ↑ , 1. The Software Industry, p. 1.
  25. , 1. The Software Industry § Periodization, Sectorization, and Capabilities, p. 3.
  26. ↑ , 1. The Software Industry § Periodization, Sectorization, and Capabilities, p. 4.
  27. ↑ , 1. The Software Industry § Software Contractors, p. 5.
  28. , 1. The Software Industry § Periodization, Sectorization, and Capabilities, p. 3—4.
  29. , 1. Невидимый конструктор, с. 10.
  30. ↑ , 3. Расцвет программного обеспечения § Производство программного обеспечения становится самостоятельной отраслью, с. 61.
  31. , 4. Origins of the Software Products Industry § Pioneering in the Software Products Industry: Informatics Mark IV, p. 103—104.
  32. , 1. The Software Industry § Corporate Software Products, p. 6.
  33. , 3. Расцвет программного обеспечения § Первые промышленные стандарты, p. 68—69.
  34. , 3. Расцвет программного обеспечения § Первые промышленные стандарты, p. 68.
  35. ↑ , 1. The Software Industry § Mass-Market Software Products, p. 7.
  36. , 3. Расцвет программного обеспечения § Четыре «рабочие лошадки», с. 75—84.
  37. (неопр.) . Дата обращения: 4 марта 2018. 4 марта 2018 года.
  38. ГОСТ 19.101-77
  39. Werder, Karl, Wang, Hua-Ying. от 13 апреля 2021 на Wayback Machine // New Trends in Software Methodologies, Tools and Techniques. H. Fujita, G. A. Papadopoulos, IOS Press, 2016. ISBN 978-1-61499-674-3 . DOI: 10.3233/978-1-61499-674-3-27
  40. Campbell-Kelly M., Garcia-Swartz, D. от 12 августа 2021 на Wayback Machine // The Business History Review, Vol. 81, No. 4 (Winter, 2007), pp. 735—764. DOI: 10.2307/25097422

Литература

  • ГОСТ Р ИСО/МЭК 12207-2010 Информационная технология. Системная и программная инженерия. Процессы жизненного цикла программных средств.
  • Батоврин В. К. Толковый словарь по системной и программной инженерии. — М. : ДМК Пресс, 2012. — С. 280. — ISBN 978-5-94074-818-2 .
  • Брукс Ф. Мифический человеко-месяц или как создаются программные системы. — СПб. : Символ-Плюс, 1999.
  • ДеМарко Т. Deadline. Роман об управлении проектами. — М.: Манн, Иванов и Фербер. — 2013. — 352 с. ISBN 978-5-91657-284-1
  • ДеМарко Т., Листер Т. Человеческий фактор. Успешные проекты и команды. — М.: Символ-Плюс. — 2014. — 288 с. ISBN 978-5-93286-217-9
  • Йордан Э. Путь камикадзе. Как разработчику программного обеспечения выжить в безнадёжном проекте. — М.: Лори, 2012. — 290 с. ISBN 978-5-85582-227-3
  • Инженерия программного обеспечения. — Издательство Вильямс, 2002. — 624 с. ISBN 5-8459-0330-0
  • Time-Life Books. Язык компьютера = Computer Languages. — М. : Мир, 1989. — Т. 2. — 240 с. — (Understanding Computers). — 100 000 экз. — ISBN 5-03-001148-X .
  • Martin Campbell-Kelly. . — MIT Press, 2003. — 372 с. — (History of Computing). — ISBN 978-1422391761 .

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