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

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Изменение раздела Классификация ПО
сбросить до заводских настроек
 
(не показана 941 промежуточная версия, сделанная более чем 100 участниками)
Строка 1: Строка 1:
{{другие значения|Software (значения)}}
{{перенаправление|Software}}
'''Програ́ммное обеспе́чение''' (произношение ''обеспече́ние'' не рекомендуется<ref>{{книга|автор=С. И. Ожегов|заглавие=Словарь русского языка|место=М.|издательство=Русский язык|год=1986|страницы=364}}</ref><ref>[http://www.distedu.ru/mirror/_rus/www.mediaterra.ru/rhetoric/10-a_14.htm Акцентологический словарь]</ref><ref>[http://dic.gramota.ru/search.php?word=%EE%E1%E5%F1%EF%E5%F7%E5%ED%E8%E5&lop=x&gorb=x&efr=x&zar=x&ag=x&ab=x&lv=x&pe=x&az=x Словари русского языка — Проверка слова «обеспечение»] Грамота.ру</ref>, точнее, не рекомендовалось<ref>Издание орфографического словаря Ожегова 2007 года приводит единственный вариант — ''обеспече́ние''.{{fact}}</ref>) наряду с аппаратными средствами, важнейшая составляющая [[Информационные технологии|информационных технологий]], включающая [[компьютерная программа|компьютерные программы]] и [[данные]], предназначенные для решения определённого круга задач и хранящиеся на [[Носитель информации|машинных носителях]]. Программное обеспечение представляет собой либо данные для использования в других программах, либо [[алгоритм]], реализованный в виде последовательности инструкций для [[Центральный процессор|процессора]].
{{Обобщённая архитектура ОС}}'''Програ́ммное обеспе́чение'''<ref>{{книга|автор=[[Ожегов, Сергей Иванович|Ожегов С. И.]]|заглавие=Словарь русского языка|место=М.|издательство=Русский язык|год=1986|страницы=364}}</ref><ref>{{Cite web |url=http://www.distedu.ru/mirror/_rus/www.mediaterra.ru/rhetoric/10-a_14.htm |title=Акцентологический словарь |access-date=2007-05-26 |archive-date=2007-04-03 |archive-url=https://web.archive.org/web/20070403124652/http://www.distedu.ru/mirror/_rus/www.mediaterra.ru/rhetoric/10-a_14.htm |deadlink=no }}</ref><ref name=gramota>[http://gramota.ru/slovari/dic/?word=обеспечение&all=x Словари русского языка — Проверка слова «обеспечение»] {{Wayback|url=http://gramota.ru/slovari/dic/?word=обеспечение&all=x |date=20180403174328 }} [[Грамота.ру]]</ref> (допустимо также произношение ''обеспече́ние''<ref name=gramota/><ref>''Резниченко И. Л.'' Орфоэпический словарь русского языка: Произношение. Ударение: Ок. 25 000 единиц / Резниченко И.Л. М.: ООО «Издательство Астрель»: ООО «Издательство АСТ», 2003. — 284 c.</ref><ref>Издание орфографического словаря Ожегова 2007 года приводит единственный вариант — ''обеспече́ние''. // Орфографический словарь русского языка / Под редакцией С. И. Ожегова. Локид-Пресс, 2007. 912 с. ISBN 5-320-00396-X.</ref><ref>Издание словаря Розенталя 2006 и 2007 года тоже приводит единственный вариант — ''обеспече́ние'' // [[Розенталь, Дитмар Эльяшевич|Д. Э. Розенталь]]. Русский язык. Справочник-практикум. Оникс, Мир и образование, 2007. ISBN 5-488-00712-1, 5-94666-332-1, 978-5-488-01360-5.</ref>) ('''ПО''') — [[компьютерная программа|программа]] или множество программ, используемых для управления [[компьютер]]ом (''ISO/IEC 26514:2008'')<ref>ISO/IEC 26514:2008 Systems and Software Engineering — Requirements for designers and developers of user documentation</ref>.


Имеются и другие определения из международных и российских стандартов:
В [[Компьютерный сленг|компьютерном жаргоне]] часто используется слово «софт» от английского '''software''', которое в этом смысле впервые применил в статье American Mathematical Monthly математик из Принстонского университета [[Тьюки, Джон|Джон Тьюки]] ({{lang-en|John W. Tukey}}) в [[1958]] году. В области [[Компьютер|вычислительной техники]] и [[программирование|программирования]] '''программное обеспечение''' — это совокупность всей информации, данных и программ, которые обрабатываются компьютерными системами.
* совокупность программ системы [[Обработка информации|обработки информации]] и [[Документация на программное обеспечение|программных документов]]<ref>Согласно ГОСТ 19.101-77 ''К программным относят документы, содержащие сведения, необходимые для разработки, изготовления, сопровождения и эксплуатации программ''.</ref>, необходимых для эксплуатации этих программ (''[[Государственный стандарт|ГОСТ]] 19781-90''<ref>[http://www.internet-law.ru/gosts/gost/19239 ГОСТ 19781-90] {{Wayback|url=http://www.internet-law.ru/gosts/gost/19239 |date=20190210001439 }}. Обеспечение систем обработки информации программное. Термины и определения</ref>);
* все или часть программ, процедур, правил и соответствующей документации системы обработки информации (''ISO/IEC 2382-1:1993''){{sfn|Батоврин В. К.|2012|name=Батоврин}}<ref>Система обработки информации — одна или большее число компьютерных систем и устройств, таких как офисное и коммуникационное оборудование, которые выполняют обработку информации //[http://www.morepc.ru/informatisation/iso2381-1.html Стандарт ISO/IEC 2382-1] {{Wayback|url=http://www.morepc.ru/informatisation/iso2381-1.html |date=20120918010548 }}</ref>;
* компьютерные программы, процедуры и, возможно, соответствующая документация и данные, относящиеся к функционированию компьютерной системы (''IEEE Std 829—2008'')<ref>IEEE Std 829—2008 IEEE Standard for Software and System Test Documentation</ref>.

Программное обеспечение является одним из видов обеспечения [[Автоматизированная система|автоматизированной системы]], наряду с техническим (аппаратным), математическим, информационным, лингвистическим, организационным, методическим и правовым обеспечением<ref>ГОСТ 34.003-90 Информационная технология. Автоматизированные системы. Термины и определения</ref>.

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

В [[Компьютерный сленг|компьютерном сленге]] часто используется слово «''софт''», произошедшее от английского слова «''software''», которое в этом смысле впервые применил в статье журнала ''[[American Mathematical Monthly]]'' математик из Принстонского университета [[Тьюки, Джон|Джон Тьюки]] в [[1958 год]]у<ref name="NYTobit">{{cite news|title=John Tukey, 85, Statistician; Coined the Word 'Software'|publisher= New York Times|work= Obituaries|date= 2000-07-28 |url=http://query.nytimes.com/gst/fullpage.html?res=9500E4DA173DF93BA15754C0A9669C8B63&scp=1&sq=&pagewanted=1}}</ref>.

== История ==

=== Предыстория. Зарождение программирования ===
Первую программу написала [[Лавлейс, Ада|Ада Лавлейс]] для [[Разностная машина Чарльза Бэббиджа|разностной машины Чарльза Бэббиджа]], однако поскольку эта машина так и не была достроена, разработки леди Лавлейс остались чисто теоретическими{{sfn|Computer Languages|1989|loc = 1. Невидимый конструктор § Предвестники компьютерной эры|страницы = 11}}.

Первая теория, касающаяся программного обеспечения, была предложена английским математиком [[Тьюринг, Алан|Аланом Тьюрингом]] в 1936 году в [[эссе]] «On computable numbers with an application to the Entscheidungsproblem» («О вычислимых числах с приложением к [[Проблема разрешения|проблеме разрешения]]»)<ref>{{source|Q25864184|ref=Turing|ref-year=1937}} <!-- On Computable Numbers, with an Application to the Entscheidungsproblem // Proceedings of the London Mathematical Society --></ref><ref>{{source|Q27638524|ref=Turing|ref-year=1938}} <!-- On Computable Numbers, with an Application to the Entscheidungsproblem. A Correction // Proceedings of the London Mathematical Society --></ref><ref>{{книга |год=2005 |страницы=[https://archive.org/details/electronicbrains0000hall/page/79 79] |заглавие=Electronic brains/Stories from the dawn of the computer age |ссылка=https://archive.org/details/electronicbrains0000hall |издательство=British Broadcasting Corporation and Granta Books |место=London |isbn=1-86207-663-4 |ref=Hally |язык=en |автор=Hally, Mike}}</ref>. Он создал так называемую [[Машина Тьюринга|машину Тьюринга]], математическую модель абстрактной машины, способной выполнять последовательности рудиментарных операций, которые переводят машину из одного фиксированного состояния в другое. Главная идея заключалась в математическом доказательстве факта, что любое наперёд заданное состояние системы может быть всегда достигнуто последовательным выполнением конечного набора элементарных команд (программы) из фиксированного набора команд.

Первые [[Электронно-вычислительная машина|электронно-вычислительные машины]] 1940—1950-х годов перепрограммировались путём переключения [[тумблер]]ов и переподключения кабелей, что требовало глубокого понимания их внутреннего устройства. К таким машинам, в частности, относился [[ENIAC]] (который, впрочем, впоследствии модифицировали, чтобы он мог, по крайней мере частично, программироваться с помощью [[Перфокарта|перфокарт]]){{sfn|Computer Languages|1989|loc = 1. Невидимый конструктор|страницы = 10—11}}.

Важным шагом в сторону современных компьютеров был переход к архитектуре [[Нейман, Джон фон|Джона фон Неймана]], впервые воплощённой в [[Великобритания|Великобритании]], в разработанном под руководством {{iw|Уомерзли, Джон Рональд|Дж. Р. Уомерзли|en|John R. Womersley}} и при участии [[Тьюринг, Алан|Алана Тьюринга]] компьютере, известном как [[Марк I (компьютер)|Марк I]]. Первая программа, хранимая в памяти компьютера, была запущена на нём 21 июня 1941 года. Для облегчения программирования этой машины Тьюринг придумал систему сокращённого кодирования, в которой для представления [[Двоичная система счисления|двоичного]] [[Машинный код|машинного кода]] использовалась последовательность [[телетайп]]ных кодов символов, выводимая на [[Перфолента (носитель информации)|перфоленту]]{{sfn|Computer Languages|1989|loc = 1. Невидимый конструктор|страницы = 14—16}}.

Один из сотрудников Тьюринга, [[Джон Мочли]], став позднее (вместе с [[Эккерт, Джон Преспер|Джоном Преспером Эккертом]]) руководителем и основателем компании [[Eckert–Mauchly Computer Corporation]], разработавшей такие [[Электронно-вычислительная машина|ЭВМ]], как [[BINAC]] и [[UNIVAC]], поручил своим сотрудникам создать транслятор алгебраических формул. Хотя эта амбициозная цель в 1940-х годах и не была достигнута, под руководством Мочли был разработан так называемый «[[Short Code|Краткий код]]», в котором операции и переменные кодировались двухсимвольными сочетаниями. Краткий код был реализован с помощью [[интерпретатор]]а{{sfn|Computer Languages|1989|loc = 1. Невидимый конструктор § Создание кодов, понятных человеку|страницы = 16}}. [[Грейс Хоппер]], работая с начала 1950-х годов над набором математических подпрограмм для [[UNIVAC I]], изобрела программу-[[компоновщик]] «{{iw|A-0|||A-0 System}}», которая по заданному [[идентификатор]]у осуществляла выборку нужной [[Подпрограмма|подпрограммы]] из [[Библиотека (программирование)|библиотеки]], хранящейся на [[Магнитная лента|магнитной ленте]], и записывала её в отведённое место [[Оперативная память|оперативной памяти]]{{sfn|Computer Languages|1989|loc = 1. Невидимый конструктор § Шаг на благо программирования|страницы = 18—20}}.

В 1950-е годы появились первые высокоуровневые языки программирования, [[Джон Бэкус]] разработал [[FORTRAN]], а [[Грейс Хоппер]] — [[COBOL]]. Подобные разработки значительно упростили написание прикладного программного обеспечения, которое писала тогда каждая фирма, приобретающая вычислительную машину{{sfn|Computer Languages|1989|loc = 1. Невидимый конструктор § Шаг на благо программирования|страницы = 20}}.

В начале 1950-х годов понятие программного обеспечения ещё не сложилось. Так не говорилось о нём ничего в вышедшей в январе 1952 года в журнале [[Fortune (журнал)|Fortune]] статье «Office Robots», описывавшем компьютеры Univac. Хотя в статье уже рассказывается о компьютере как об универсальном устройстве, процесс программирования в этой статье был анахронически описан как «переключение тумблеров»{{Sfn|Campbell-Kelly|2003|loc = 1. The Software Industry|p = 1}}. Однако к середине 50-х годов уже вполне сложилась разработка программного обеспечения на заказ{{Sfn|Campbell-Kelly|2003|loc = 1. The Software Industry § Periodization, Sectorization, and Capabilities|p = 3}}, хотя сам термин «программное обеспечение» ещё не использовался, тогда говорили просто о «''программировании на заказ''» или «''программистском обслуживании''»{{Sfn|Campbell-Kelly|2003|loc = 1. The Software Industry § Periodization, Sectorization, and Capabilities|p = 4}}. Первой программной фирмой стала компания [[System Development Corporation]], созданная в 1956 году на базе принадлежащей правительству США фирме [[RAND (корпорация)|RAND Corporation]]{{Sfn|Campbell-Kelly|2003|loc = 1. The Software Industry § Software Contractors|p = 5}}. На этом этапе заказчиками программного обеспечения (уникального и не тиражируемого) были крупные корпорации и государственные структуры, и стоимость в один миллион долларов за программу не была чем-то необычным{{Sfn|Campbell-Kelly|2003|loc = 1. The Software Industry § Periodization, Sectorization, and Capabilities|p = 3—4}}.

=== Ранняя история. Корпоративное ПО ===
Сам термин «программное обеспечение» вошёл в широкий обиход с начала 1960-х годов, когда стало актуальным разграничение команд, управляющих компьютером, и его физических компонентов — [[Аппаратное обеспечение|аппаратного обеспечения]]{{sfn|Computer Languages|1989|loc = 1. Невидимый конструктор|страницы = 10}}. Тогда же и началось становление [[Индустрия программного обеспечения|индустрии программного обеспечения]], как самостоятельной [[Отрасли производственной сферы|отрасли]]. Первой компанией по разработке ПО стала основанная в 1959 году {{iw|Натт, Рой|Роем Наттом|en|Roy Nutt}} и {{iw|Джоунс, Флетчер|Флетчером Джоунсом|en|Fletcher Jones (American entrepreneur)}} {{iw|Computer Sciences Corporation}} с начальным капиталом в 100 долларов. Первыми клиентами CSC и появившихся вслед за нею софтверных компаний были сверхкрупные [[Корпорация|корпорации]] и государственные организации, вроде [[NASA]]{{sfn|Computer Languages|1989|loc = 3. Расцвет программного обеспечения § Производство программного обеспечения становится самостоятельной отраслью|страницы = 61}}, и фирма продолжала работать на рынке заказного ПО, как и другие первые программистские частные [[стартап]]ы, такие как {{Iw| Computer Usage Company}} (CUC){{Sfn|Campbell-Kelly|2003|loc = 1. The Software Industry § Software Contractors|p = 5}}.

Первыми самостоятельно выпущенными программными продуктами, не поставляемыми в комплекте с компьютерным оборудованием, были выпущенный фирмой [[Applied Data Research]] в 1965 году генератор компьютерной документации [[AUTOFLOW]], автоматически рисующий [[блок-схема|блок-схемы]], и транслятор языка программирования {{iw|MARK-IV (ПО)|MARK-IV|en|MARK IV (software)}}, разработанный в 1960—1967 годах в Informatics, Inc.{{Sfn|Campbell-Kelly|2003|loc = 1. The Software Industry § Periodization, Sectorization, and Capabilities|p = 4}}{{Sfn|Campbell-Kelly|2003|loc = 4. Origins of the Software Products Industry § Pioneering in the Software Products Industry: Informatics Mark IV|p = 103—104}} Становление рынка корпоративного программного обеспечения тесно связано с появлением семейства компьютеров [[IBM System/360]]. Достаточно массовые, относительно недорогие вычислительные машины, совместимые друг с другом на уровне программного кода, открыли дорогу тиражируемому программному обеспечению{{Sfn|Campbell-Kelly|2003|loc = 1. The Software Industry § Corporate Software Products|p = 6}}.

Постепенно круг заказчиков программного обеспечения расширялся, что стимулировало разработку новых видов программного обеспечения. Так появились первые фирмы, специализирующиеся на разработке [[Система автоматизированного проектирования|систем автоматизированного проектирования]]{{sfn|Computer Languages|1989|loc = 3. Расцвет программного обеспечения § Производство программного обеспечения становится самостоятельной отраслью|страницы = 61}}.

В ноябре 1966 года журнал [[Business Week]] впервые обратился к теме индустрии программного обеспечения. Статья называлась «Software Gap — A Growing Crisis for Computers» и рассказывала как о перспективности этого бизнеса, так и о кризисе, связанном с нехваткой программистов{{Sfn|Campbell-Kelly|2003|loc = 1. The Software Industry|p = 1}}. Типичные программные продукты того времени служили для автоматизации общих для бизнеса задач, таких, как [[начисление заработной платы]] или автоматизации бизнес-процессов таких предприятий среднего бизнеса, как [[производственное предприятие]] или [[коммерческий банк]]. Стоимость такого ПО, как правило, была между пятью и ста тысячами долларов{{Sfn|Campbell-Kelly|2003|loc=1. The Software Industry § Periodization, Sectorization, and Capabilities|p=4}}.

=== Персональные компьютеры и программное обеспечение для массового потребителя ===
Появление в 1970-х годах первых персональных компьютеров (таких, как [[Альтаир 8800]]) создало предпосылки и для зарождения массового рынка программного обеспечения. Изначально программы для персональных компьютеров распространялись в «коробочной» форме через торговые центры или [[торговля по почте|по почте]] и имели цену 100—500 [[доллар США|долларов США]]{{Sfn|Campbell-Kelly|2003|loc = 1. The Software Industry § Periodization, Sectorization, and Capabilities|p = 4}}.

Знаковыми для зарождающего массового рынка программного обеспечения стали такие продукты, как [[электронная таблица]] ''[[VisiCalc]]'', идея которой пришла [[Бриклин, Даниэль|Дэниелу Бриклину]], когда тот, будучи выпускником [[Массачусетский технологический институт|MIT]] и инженером-программистом в [[Digital Equipment Corporation|DEC]], посещал курсы в Гарвардской школе бизнеса и хотел облегчить себе утомительные финансовые расчёты{{sfn|Computer Languages|1989|loc=3. Расцвет программного обеспечения § Первые промышленные стандарты|p=68—69}}, и [[текстовый процессор]] ''{{Iw|WordStar}}'', разработку которого начал {{Iw| Рубинштейн, Сеймур |Сеймур Рубинштейн|en|Seymour I. Rubinstein}}, тщательно изучив потребности рынка{{sfn|Computer Languages|1989|loc=3. Расцвет программного обеспечения § Первые промышленные стандарты|p=68}}. О VisiCalc впервые заговорили, как о [[killer application]], то есть компьютерном приложении, которое самим фактом своего существования доказывает нужность (и, зачастую, необходимость покупки) платформы, для которой реализована такая программа. Для VisiCalc и WordStar такой платформой стали персональные компьютеры, которые благодаря им из богатой игрушки для [[Гик (человек)|гиков]] стали рабочим инструментом. С них началась [[компьютерная революция|микрокомпьютерная революция]], а у этих программ появились конкуренты: электронные таблицы ''[[SuperCalc]]'', ''[[Lotus 1-2-3]]'', [[система управления базами данных]] ''[[dBase II]]'', текстовый процессор ''[[WordPerfect]]'' и др.{{Sfn|Campbell-Kelly|2003|loc = 1. The Software Industry § Mass-Market Software Products|p = 7}} Текстовые процессоры, электронные таблицы, системы управления базами данных, а также [[графический редактор|графические редакторы]] вскоре стали основными продуктами рынка программного обеспечения для персональных компьютеров{{sfn|Computer Languages|1989|loc=3. Расцвет программного обеспечения § Четыре «рабочие лошадки»|c=75—84}}.

Массовое тиражирование позволило снизить к середине 1990 годов стоимость программного обеспечения для персональных компьютеров до ста — пятисот долларов{{Sfn|Campbell-Kelly|2003|loc = 1. The Software Industry § Periodization, Sectorization, and Capabilities|p = 4}}, при этом бизнес производителей ПО приобрёл определённое сходство с бизнесом [[Звукозаписывающая компания|звукозаписывающих компаний]]{{Sfn|Campbell-Kelly|2003|loc=1. The Software Industry § Mass-Market Software Products|p=7}}.


== Классификация ПО ==
== Классификация ПО ==
Подходы к классификации ПО достаточно подробно формализованы в международном стандарте ''ISO/IEC 12182''<ref>{{Cite web |url=https://www.iso.org/standard/63611.html |title=ISO/IEC TR 12182:2015 Systems and software engineering — Framework for categorization of IT systems and software, and guide for applying it |access-date=2018-03-04 |archive-date=2018-03-04 |archive-url=https://web.archive.org/web/20180304231650/https://www.iso.org/standard/63611.html |deadlink=no }}</ref>. В частности, первая версия стандарта предусматривала 16 критериев классификации программных средств:
* По способу распространения (доставки, оплаты, ограничения в использовании): [[Commercial Software]], [[Freeware]], [[Shareware]], [[Abandonware]], [[Adware]], [[Free Software]], [[Careware]] и др.
* по режиму эксплуатации;
* По назначению ПО разделяется на [[системное программное обеспечение|системное]], [[прикладное программное обеспечение|прикладное]] и [[инструментальное программное обеспечение|инструментальное]].
* по масштабу;
* по стабильности;
* по функции;
* по требованию защиты;
* по требованию надёжности;
* по требуемым рабочим характеристикам;
* по исходному языку;
* по прикладной области;
* по вычислительной системе и среде;
* по классу пользователя;
* по требованию к вычислительным ресурсам;
* по критичности;
* по готовности;
* по представлению данных;
* по использованию программных данных.


Примерами классов функции ПС являются:
{| class="prettytable wide"
* обработка деловых сообщений;
!colspan="2"| Системное ПО
* компиляция;
|-
* научные вычисления;
|
* обработка текстов;
* [[Операционная система]]
* медицинские системы;
** [[Операционная система общего назначения|Общего назначения]]
* системы управления.
** [[Операционная система реального времени|Реального времени]]
Примерами классов прикладной области являются:
** [[Сетевая операционная система|Сетевая]]
* наука;
** [[Встраиваемая операционная система|Встраиваемая]]
* бытовые устройства;
|
* оборудование;
* [[Загрузчик ОС|Загрузчик операционной системы]]
* аппаратура управления процессом;
* [[Драйвер]] устройства
* предпринимательство;
* Программный [[кодек]]
* система организации сети.
* [[Утилита]]
Примерами классов масштаба ПС являются:
|-
* малый;
!colspan="2"| Программные средства защиты
* средний;
|-
* большой.
|
Примерами классов критичности являются:
* [[Криптошлюз]]
* национальная безопасность;
* [[Средство аутентификации]]
* человеческая жизнь;
* [[Мониторинговая программа|Средства мониторинга и аудита]]
* социальный хаос или паника;
* [[Сканер защищённости]]
* организационная безопасность;
* [[Средство разграничения доступа]]
* частная собственность;
|
* секретность.
* [[Система криптографической защиты, шифрования и ЭЦП]]
Примерами классов пользователя являются:
* [[Антивирусная программа]]
* начинающий;
* [[Антиспамовая программа]]
* средний;
* [[Межсетевой экран]]
* специалист (эксперт);
|-
* обычный;
!colspan="2"| Инструментальное ПО
* случайный;
|-
* другая система программного обеспечения;
|
* технические средства.
* Средства [[Разработка программного обеспечения|разработки программного обеспечения]]
Примерами классов стабильности являются:
** [[Среда разработки программного обеспечения|Среды разработки]]
* постоянное внесение изменений;
** [[RAD]]
* дискретное внесение изменений;
** [[SDK]]
* маловероятное внесение изменений.
|
* [[СУБД|Системы управления базами данных]] (СУБД)
** [[Реляционная СУБД|Реляционные]] ([[DB2]], [[Informix]], [[Interbase]], [[Firebird]], [[Microsoft SQL Server]], [[MySQL]], [[Oracle (СУБД)|Oracle]], [[PostgreSQL]], [[ЛИНТЕР]])
** [[Обьектно-ориентированная СУБД|Обьектно-ориентированные]]
** Иерархическая
** Сетевая
|}


''По степени переносимости'' программы делят на
=== Прикладное ПО ===
* платформозависимые;
{| class="prettytable wide"
* [[Кроссплатформенность|кроссплатформенные]].
!colspan="2"| [[Офисное приложение]]
|-
|
* [[Текстовый редактор]]
* [[Текстовый процессор]]
|
* [[Табличный процессор]]
* [[Редактор презентаций]]
|-
!colspan="2"| [[Корпоративная информационная система]]
|-
|
* [[Аудиторская программа]]
* [[Бухгалтерская программа]]
* [[MRP|Система MRP]]
* [[MRP II|Система MRP II]]
* [[ERP|Система ERP]]
* [[CRM|Система CRM]]
|
* [[SCM|Система SCM]]
* Система [[управление проектами|управления проектами]] (Project Management)
* [[Система автоматизации документооборота]] (EDM)
* [[Финансово-аналитическая система]]
* [[Система управления архивами документов]] (DWM)
* [[Корпоративный портал]]
|-
!colspan="2"| Системы проектирования и производства
|-
|
* [[Система автоматизации проектных работ]] (САПР, CAD)
* [[CAE]]-система
* [[CAM]]-система
* [[PDM]]-система
|
* [[PLM]]-система
* [[АСУТП]] (Системы SCADA)
* [[АСТПП]] (Системы MES)
|-
!colspan="2"| Системы логистической поддержки изделий
|-
|
* [[LSA|Система анализа логистической поддержки]] (LSA-система)
|
* [[IETM|Система создания ИЭТР]] (IETM)
|-
!colspan="2"| Системы обработки и хранения медицинской информации
|-
|
* [[PACS|Система передачи, обработки, хранения и архивации изображений]]
* [[Радиологическая информационная сеть]] (РИС)
|
* [[HIS|Госпитальная информационная сеть]] (ГИС)
|-
!colspan="2"| Научное ПО
|-
|
* [[Система математического и статистического расчёта и анализа]]
|
* [[Система компьютерного моделирования]]
|-
!colspan="2"| Прочие системы
|-
|
* [[Геоинформационная система]] (ГИС)
* [[Система поддержки принятия решений|Система поддержки принятия решений]] (СППР)
|
* [[Система управления IT-инфраструктурой]]
* [[Справочно-правовая система]] (СПС)
|-
!colspan="2"| Клиенты для доступа к интернет-сервисам
|-
|
* [[Электронная почта]]
* [[Веб-браузер]]
* [[Система мгновенного обмена сообщениями]]
* [[IRC|IRC]]
|
* [[IP-телефония]]
* [[Пиринговая сеть]]
* [[Потоковое мультимедиа]]
* [[Банк-клиент]]
|-
!colspan="2"| [[Мультимедиа]]
|-
|
* [[Компьютерная игра]]
* [[Музыкальный редактор]]
* [[Графический редактор]]
|
* [[Видео-редактор]]
* [[Аудиоредактор]]
* [[Медиа-проигрыватель]]
|}


''По способу распространения и использования'' программы делят на{{Переход|#Лицензия|blue}}
== Примечания ==
* [[Проприетарное программное обеспечение|проприетарные]];
{{примечания}}
* [[Открытое программное обеспечение|открытые]];
* [[Свободное программное обеспечение|свободные]].

''По назначению'' программы делят на:
* [[системное программное обеспечение|системные]]{{Переход|#Системное программное обеспечение|blue}};
* [[прикладное программное обеспечение|прикладные]]{{Переход|#Прикладное программное обеспечение|blue}}.

''По видам'' программы делят<ref name="ГОСТ 19.101-77">ГОСТ 19.101-77</ref> на:
* компонент — программа, рассматриваемая как единое целое, выполняющая законченную функцию и применяемая самостоятельно или в составе комплекса;
* комплекс — программа, состоящая из двух или более компонентов и (или) комплексов, выполняющих взаимосвязанные функции, и применяемая самостоятельно или в составе другого комплекса.

; Классификация программного обеспечения по сектору индустрии
Классификация программного обеспечения по сектору индустрии включает несколько подходов. В целом, программное обеспечение делят на ''заказное'', то есть создаваемое для конкретного заказчика, и ''продуктовое'', то есть создаваемое для продажи на рынке. В свою очередь, по типам потребителя ПО делят на ''Business-to-Business'' ([[B2B]]), то есть для предприятий и организаций, и Business-to-Consumer ([[B2C]]), то есть для частных лиц<ref name="Werder, Wang">''Werder, Karl, Wang, Hua-Ying.'' [https://publikationen.bibliothek.kit.edu/1000059436 Towards a Software Product Industry Classification] {{Wayback|url=https://publikationen.bibliothek.kit.edu/1000059436|date=20210413195727}} // 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</ref>.

Одним из вариантов классификации по сектору индустрии является деление на ''ПО для корпоративного заказчика'' ({{lang-en|enterprise software vendors}}), ''ПО для массового потребителя'' ({{lang-en|mass-market software vendors}}) и ''ИТ-сервисы''<ref>''Campbell-Kelly M., Garcia-Swartz, D.'' [https://www.jstor.org/stable/25097422?seq=1 From Products to Services: The Software Industry in the Internet Era] {{Wayback|url=https://www.jstor.org/stable/25097422?seq=1 |date=20210812165330 }} // The Business History Review, Vol. 81, No. 4 (Winter, 2007), pp. 735—764. DOI: 10.2307/25097422</ref>.

Другой подход состоит в делении индустрии ПО на три сектора: бизнес-продукты общего назначения ({{lang-en|Business Function Software}}), специализированные бизнес-продукты ({{lang-en|Industrial Business Software}}) и продукты для частной жизни ({{lang-en|Consumer Software}}). ''Бизнес-продукты общего назначения'' предназначены для поддержки функционирования предприятий и организаций и включают бухгалтерские системы, финансовые системы, системы кадрового учёта и т. п. ''Специализированные бизнес-продукты'' ориентированы на задачи конкретного типа бизнеса: геоинформационные системы, медицинские системы, логистические системы и т. п. ''Продукты для частной жизни'' включают антивирусное ПО и системы для информационной безопасности, различные полезные утилиты, образовательное ПО, мультимедийное ПО и т. п.<ref name="Werder, Wang"/>

=== Системное программное обеспечение ===
{{Основная статья|Системное программное обеспечение}}

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

=== Прикладное программное обеспечение ===
{{Основная статья|Прикладное программное обеспечение}}

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

== Лицензия ==
{{Основная статья|Лицензия на программное обеспечение}}
Пользователь получает программное обеспечение вместе с [[Лицензия|лицензией]], которая предоставляет ему право использовать программный продукт при условии выполнения положений о лицензировании. Как правило, эти условия ограничивают возможности пользователя передавать программный продукт другим пользователям, изменять код.

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

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


== См. также ==
== См. также ==
{{Навигация}}
{{col-begin}}

{{col-2}}
* [[Программно-аппаратный комплекс]]
* [[Аппаратное обеспечение]]
* [[Свободное программное обеспечение]]
* [[Патенты и программное обеспечение]]
* [[Лицензия на программное обеспечение]]
* [[Программирование]]
** [[Проприетарное программное обеспечение]]
** [[Компьютерный язык]]
** [[Свободное программное обеспечение]]
** [[Открытое программное обеспечение]]
* [[Компьютерный язык]]
** [[Язык программирования]]
** [[Язык программирования]]
* По области применения:
* [[Тестирование программного обеспечения]]
** [[Связующее программное обеспечение]]
{{col-2}}
* [[Подпрограммное обеспечение]]
* [[Лингвистическое программное обеспечение]]
* [[Программная инженерия]]
* [[Программная инженерия]]
* [[Раздувание программного обеспечения]]
** [[Жизненный цикл программного обеспечения]]
* [[Раздутое программное обеспечение]]
* [[Software Asset Management]]
* [[Software Asset Management]]
* [[Компьютерный вирус]]
{{col-end}}


== Ссылки ==
== Примечания ==
{{примечания|33em}}
* [http://inc.istu.ru/index.php?option=com_content&view=category&layout=blog&id=89&Itemid=132/ Ответственность за использование нелицензионного программного обеспечения. Статьи закона за пиратство]
* [http://scada.realflex.ru/ Программное обеспечения для автоматизации. Информационный ресурс.]


== Литература ==
[[Категория:Программное обеспечение| ]]
* ГОСТ Р ИСО/МЭК 12207-2010 Информационная технология. Системная и программная инженерия. Процессы жизненного цикла программных средств.
* {{книга
|автор = [[Батоврин, Виктор Константинович|Батоврин В. К.]]
|заглавие = Толковый словарь по системной и программной инженерии
|ссылка =
|место = М.
|издательство = ДМК Пресс
|год = 2012
|страницы = 280
|isbn = 978-5-94074-818-2
|ref=Батоврин В. К.
}}
* {{книга
|автор = [[Брукс, Фредерик|Брукс Ф.]]
|заглавие = Мифический человеко-месяц или как создаются программные системы
|ссылка =
|место = СПб.
|издательство = Символ-Плюс
|год = 1999
|страницы =
|isbn =
}}
* ''[[ДеМарко, Том|ДеМарко Т.]]'' 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|заглавие = Язык компьютера|ответственный = |издание = |место = М.|издательство = Мир|год = 1989|страницы = |страниц = 240|isbn = 5-03-001148-X|оригинал = Computer Languages|тираж = 100000|ref = Computer Languages|серия = Understanding Computers|том = 2}}
* {{Книга|автор = Martin Campbell-Kelly|заглавие = From Airline Reservations to Sonic the Hedgehog: A History of the Software Industry|ссылка = https://archive.org/details/fromairlinereser00mart_0|ответственный = |издание = |место = |издательство = MIT Press|год = 2003|страницы = |страниц = 372|isbn = 978-1422391761|серия = History of Computing|ref = Campbell-Kelly}}


{{ВС}}
[[af:Sagteware]]
{{Software Engineering}}
[[ar:برمجيات]]
{{Формы распространения ПО}}
[[ast:Programa d'ordenador]]

[[bat-smg:Pruogramėnė īronga]]
[[Категория:Программное обеспечение| ]]
[[bg:Програмно осигуряване]]
[[br:Meziant]]
[[bs:Softver]]
[[ca:Programari]]
[[cs:Software]]
[[cy:Meddalwedd]]
[[da:Computerprogram]]
[[de:Software]]
[[el:Λογισμικό]]
[[en:Computer software]]
[[eo:Programaro]]
[[es:Software]]
[[et:Tarkvara]]
[[eu:Software]]
[[fa:نرم‌افزار]]
[[fi:Ohjelmisto]]
[[fr:Logiciel]]
[[gl:Programa informático]]
[[gu:સૉફ્ટવેર]]
[[he:תוכנה]]
[[hi:सॉफ्टवेयर]]
[[hr:Programska podrška]]
[[hsb:Softwara]]
[[hu:Szoftver]]
[[ia:Software]]
[[id:Perangkat lunak]]
[[is:Hugbúnaður]]
[[it:Software]]
[[iu:ᐊᕿᑦᑐᖅ ᖃᕆᑕᐅᔭᐅᑉ ᑎᑎᕋᕐᕕᖓ/aqittuq qaritaujaup titirarvinga]]
[[ja:ソフトウェア]]
[[ko:컴퓨터 소프트웨어]]
[[ku:Nermalav]]
[[la:Res informatica]]
[[lb:Software]]
[[lmo:Software]]
[[lo:ຊອຟຕ໌ແວຣ໌‍]]
[[lt:Programinė įranga]]
[[lv:Programmatūra]]
[[mk:Програмска опрема]]
[[ml:കമ്പ്യൂട്ടര്‍ സോഫ്‌റ്റ്‌വെയര്‍]]
[[ms:Perisian]]
[[nds:Software]]
[[new:सफ्टवेर]]
[[nl:Software]]
[[nn:Programvare]]
[[no:Dataprogram]]
[[pl:Oprogramowanie]]
[[pt:Software]]
[[qu:Llamp'u kaq]]
[[ro:Software]]
[[sah:Софтуэр]]
[[scn:Software]]
[[simple:Software]]
[[sk:Softvér]]
[[sl:Programska oprema]]
[[sq:Software]]
[[sr:Софтвер]]
[[sv:Programvara]]
[[ta:மென்பொருள்]]
[[te:కంప్యూటర్ సాఫ్ట్‌వేర్]]
[[th:ซอฟต์แวร์]]
[[tl:Software]]
[[tr:Yazılım]]
[[tt:Sanaq programı]]
[[uk:Програмне забезпечення]]
[[vec:Software]]
[[vi:Phần mềm]]
[[yi:ווייכווארג]]
[[zh:软件]]
[[zh-classical:軟體]]
[[zh-min-nan:Nńg-thé]]

Текущая версия от 12:43, 6 января 2025

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

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

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

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

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

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

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

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

[править | править код]

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

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

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

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

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

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

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

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

[править | править код]

Сам термин «программное обеспечение» вошёл в широкий обиход с начала 1960-х годов, когда стало актуальным разграничение команд, управляющих компьютером, и его физических компонентов — аппаратного обеспечения[29]. Тогда же и началось становление индустрии программного обеспечения, как самостоятельной отрасли. Первой компанией по разработке ПО стала основанная в 1959 году Роем Наттом[англ.] и Флетчером Джоунсом[англ.] Computer Sciences Corporation[англ.] с начальным капиталом в 100 долларов. Первыми клиентами CSC и появившихся вслед за нею софтверных компаний были сверхкрупные корпорации и государственные организации, вроде NASA[30], и фирма продолжала работать на рынке заказного ПО, как и другие первые программистские частные стартапы, такие как Computer Usage Company[англ.] (CUC)[27].

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

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

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

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

[править | править код]

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

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

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

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

[править | править код]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[править | править код]

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

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

[править | править код]

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

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

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

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

Примечания

[править | править код]
  1. Ожегов С. И. Словарь русского языка. — М.: Русский язык, 1986. — С. 364.
  2. Акцентологический словарь. Дата обращения: 26 мая 2007. Архивировано 3 апреля 2007 года.
  3. 1 2 Словари русского языка — Проверка слова «обеспечение» Архивная копия от 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. ГОСТ 19781-90 Архивная копия от 10 февраля 2019 на Wayback Machine. Обеспечение систем обработки информации программное. Термины и определения
  10. Батоврин В. К., 2012.
  11. Система обработки информации — одна или большее число компьютерных систем и устройств, таких как офисное и коммуникационное оборудование, которые выполняют обработку информации //Стандарт ISO/IEC 2382-1 Архивная копия от 18 сентября 2012 на Wayback Machine
  12. IEEE Std 829—2008 IEEE Standard for Software and System Test Documentation
  13. ГОСТ 34.003-90 Информационная технология. Автоматизированные системы. Термины и определения
  14. "John Tukey, 85, Statistician; Coined the Word 'Software'". Obituaries. New York Times. 28 июля 2000.
  15. Computer Languages, 1989, 1. Невидимый конструктор § Предвестники компьютерной эры, с. 11.
  16. Turing A. On Computable Numbers, with an Application to the Entscheidungsproblem (англ.) // Proceedings of the London Mathematical SocietyLondon Mathematical Society, 1937. — Vol. s2-42, Iss. 1. — P. 230—265. — ISSN 0024-6115; 1460-244X; 0024-6115doi:10.1112/PLMS/S2-42.1.230
  17. Turing A. M. On Computable Numbers, with an Application to the Entscheidungsproblem. A Correction (англ.) // Proceedings of the London Mathematical SocietyLondon Mathematical Society, 1938. — Vol. s2-43, Iss. 6. — P. 544—546. — ISSN 0024-6115; 1460-244X; 0024-6115doi:10.1112/PLMS/S2-43.6.544
  18. Hally, Mike. Electronic brains/Stories from the dawn of the computer age (англ.). — London: British Broadcasting Corporation and Granta Books, 2005. — P. 79. — ISBN 1-86207-663-4.
  19. Computer Languages, 1989, 1. Невидимый конструктор, с. 10—11.
  20. Computer Languages, 1989, 1. Невидимый конструктор, с. 14—16.
  21. Computer Languages, 1989, 1. Невидимый конструктор § Создание кодов, понятных человеку, с. 16.
  22. Computer Languages, 1989, 1. Невидимый конструктор § Шаг на благо программирования, с. 18—20.
  23. Computer Languages, 1989, 1. Невидимый конструктор § Шаг на благо программирования, с. 20.
  24. 1 2 Campbell-Kelly, 2003, 1. The Software Industry, p. 1.
  25. Campbell-Kelly, 2003, 1. The Software Industry § Periodization, Sectorization, and Capabilities, p. 3.
  26. 1 2 3 4 5 Campbell-Kelly, 2003, 1. The Software Industry § Periodization, Sectorization, and Capabilities, p. 4.
  27. 1 2 Campbell-Kelly, 2003, 1. The Software Industry § Software Contractors, p. 5.
  28. Campbell-Kelly, 2003, 1. The Software Industry § Periodization, Sectorization, and Capabilities, p. 3—4.
  29. Computer Languages, 1989, 1. Невидимый конструктор, с. 10.
  30. 1 2 Computer Languages, 1989, 3. Расцвет программного обеспечения § Производство программного обеспечения становится самостоятельной отраслью, с. 61.
  31. Campbell-Kelly, 2003, 4. Origins of the Software Products Industry § Pioneering in the Software Products Industry: Informatics Mark IV, p. 103—104.
  32. Campbell-Kelly, 2003, 1. The Software Industry § Corporate Software Products, p. 6.
  33. Computer Languages, 1989, 3. Расцвет программного обеспечения § Первые промышленные стандарты, p. 68—69.
  34. Computer Languages, 1989, 3. Расцвет программного обеспечения § Первые промышленные стандарты, p. 68.
  35. 1 2 Campbell-Kelly, 2003, 1. The Software Industry § Mass-Market Software Products, p. 7.
  36. Computer Languages, 1989, 3. Расцвет программного обеспечения § Четыре «рабочие лошадки», с. 75—84.
  37. ISO/IEC TR 12182:2015 Systems and software engineering — Framework for categorization of IT systems and software, and guide for applying it. Дата обращения: 4 марта 2018. Архивировано 4 марта 2018 года.
  38. ГОСТ 19.101-77
  39. 1 2 Werder, Karl, Wang, Hua-Ying. Towards a Software Product Industry Classification Архивная копия от 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. From Products to Services: The Software Industry in the Internet Era Архивная копия от 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. From Airline Reservations to Sonic the Hedgehog: A History of the Software Industry. — MIT Press, 2003. — 372 с. — (History of Computing). — ISBN 978-1422391761.