Программное обеспечение: различия между версиями
[непроверенная версия] | [непроверенная версия] |
Wikirosi (обсуждение | вклад) Изменение раздела →Классификация ПО |
сбросить до заводских настроек |
||
(не показана 941 промежуточная версия, сделанная более чем 100 участниками) | |||
Строка 1: | Строка 1: | ||
{{ |
{{перенаправление|Software}} |
||
'''Програ́ммное обеспе́чение''' |
{{Обобщённая архитектура ОС}}'''Програ́ммное обеспе́чение'''<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]
Системное программное обеспечение
[править | править код]Комплекс программ, которые обеспечивают управление компонентами компьютерной системы, такими как процессор, оперативная память, устройства ввода-вывода, сетевое оборудование, выступая как «межслойный интерфейс», с одной стороны которого аппаратура, а с другой — приложения пользователя. В отличие от прикладного программного обеспечения, системное не решает конкретные практические задачи, а лишь обеспечивает работу других программ, предоставляя им сервисные функции, абстрагирующие детали аппаратной и микропрограммной реализации вычислительной системы, управляет аппаратными ресурсами вычислительной системы. Отнесение того или иного программного обеспечения к системному условно, и зависит от соглашений, используемых в конкретном контексте. Как правило, к системному программному обеспечению относятся операционные системы, утилиты, системы управления базами данных, широкий класс связующего программного обеспечения.
Прикладное программное обеспечение
[править | править код]Прикладное программное обеспечение — программа, предназначенная для выполнения определённых пользовательских задач и рассчитанная на непосредственное взаимодействие с пользователем.
Лицензия
[править | править код]Пользователь получает программное обеспечение вместе с лицензией, которая предоставляет ему право использовать программный продукт при условии выполнения положений о лицензировании. Как правило, эти условия ограничивают возможности пользователя передавать программный продукт другим пользователям, изменять код.
Часть программного обеспечения поставляется со свободной лицензией. Такие лицензии позволяют распространять программное обеспечение, а также модифицировать его.
Часть программного обеспечения распространяется как бесплатное. Существует также условно бесплатное программное обеспечение. В этом случае обычно пользователь бесплатно получает демонстрационную версию программного продукта с несколько ограниченными возможностями на определённый испытательный период, а после его окончания обязан или приобрести продукт, или деинсталлировать его.
См. также
[править | править код]- Программно-аппаратный комплекс
- Патенты и программное обеспечение
- Лицензия на программное обеспечение
- Компьютерный язык
- По области применения:
- Программная инженерия
- Раздутое программное обеспечение
- Software Asset Management
Примечания
[править | править код]- ↑ Ожегов С. И. Словарь русского языка. — М.: Русский язык, 1986. — С. 364.
- ↑ Акцентологический словарь . Дата обращения: 26 мая 2007. Архивировано 3 апреля 2007 года.
- ↑ 1 2 Словари русского языка — Проверка слова «обеспечение» Архивная копия от 3 апреля 2018 на Wayback Machine Грамота.ру
- ↑ Резниченко И. Л. Орфоэпический словарь русского языка: Произношение. Ударение: Ок. 25 000 единиц / Резниченко И.Л. М.: ООО «Издательство Астрель»: ООО «Издательство АСТ», 2003. — 284 c.
- ↑ Издание орфографического словаря Ожегова 2007 года приводит единственный вариант — обеспече́ние. // Орфографический словарь русского языка / Под редакцией С. И. Ожегова. Локид-Пресс, 2007. 912 с. ISBN 5-320-00396-X.
- ↑ Издание словаря Розенталя 2006 и 2007 года тоже приводит единственный вариант — обеспече́ние // Д. Э. Розенталь. Русский язык. Справочник-практикум. Оникс, Мир и образование, 2007. ISBN 5-488-00712-1, 5-94666-332-1, 978-5-488-01360-5.
- ↑ ISO/IEC 26514:2008 Systems and Software Engineering — Requirements for designers and developers of user documentation
- ↑ Согласно ГОСТ 19.101-77 К программным относят документы, содержащие сведения, необходимые для разработки, изготовления, сопровождения и эксплуатации программ.
- ↑ ГОСТ 19781-90 Архивная копия от 10 февраля 2019 на Wayback Machine. Обеспечение систем обработки информации программное. Термины и определения
- ↑ Батоврин В. К., 2012.
- ↑ Система обработки информации — одна или большее число компьютерных систем и устройств, таких как офисное и коммуникационное оборудование, которые выполняют обработку информации //Стандарт ISO/IEC 2382-1 Архивная копия от 18 сентября 2012 на Wayback Machine
- ↑ IEEE Std 829—2008 IEEE Standard for Software and System Test Documentation
- ↑ ГОСТ 34.003-90 Информационная технология. Автоматизированные системы. Термины и определения
- ↑ "John Tukey, 85, Statistician; Coined the Word 'Software'". Obituaries. New York Times. 28 июля 2000.
- ↑ Computer Languages, 1989, 1. Невидимый конструктор § Предвестники компьютерной эры, с. 11.
- ↑ Turing A. On Computable Numbers, with an Application to the Entscheidungsproblem (англ.) // Proceedings of the London Mathematical Society — London Mathematical Society, 1937. — Vol. s2-42, Iss. 1. — P. 230—265. — ISSN 0024-6115; 1460-244X; 0024-6115 — doi:10.1112/PLMS/S2-42.1.230
- ↑ Turing A. M. On Computable Numbers, with an Application to the Entscheidungsproblem. A Correction (англ.) // Proceedings of the London Mathematical Society — London Mathematical Society, 1938. — Vol. s2-43, Iss. 6. — P. 544—546. — ISSN 0024-6115; 1460-244X; 0024-6115 — doi:10.1112/PLMS/S2-43.6.544
- ↑ 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.
- ↑ Computer Languages, 1989, 1. Невидимый конструктор, с. 10—11.
- ↑ Computer Languages, 1989, 1. Невидимый конструктор, с. 14—16.
- ↑ Computer Languages, 1989, 1. Невидимый конструктор § Создание кодов, понятных человеку, с. 16.
- ↑ Computer Languages, 1989, 1. Невидимый конструктор § Шаг на благо программирования, с. 18—20.
- ↑ Computer Languages, 1989, 1. Невидимый конструктор § Шаг на благо программирования, с. 20.
- ↑ 1 2 Campbell-Kelly, 2003, 1. The Software Industry, p. 1.
- ↑ Campbell-Kelly, 2003, 1. The Software Industry § Periodization, Sectorization, and Capabilities, p. 3.
- ↑ 1 2 3 4 5 Campbell-Kelly, 2003, 1. The Software Industry § Periodization, Sectorization, and Capabilities, p. 4.
- ↑ 1 2 Campbell-Kelly, 2003, 1. The Software Industry § Software Contractors, p. 5.
- ↑ Campbell-Kelly, 2003, 1. The Software Industry § Periodization, Sectorization, and Capabilities, p. 3—4.
- ↑ Computer Languages, 1989, 1. Невидимый конструктор, с. 10.
- ↑ 1 2 Computer Languages, 1989, 3. Расцвет программного обеспечения § Производство программного обеспечения становится самостоятельной отраслью, с. 61.
- ↑ Campbell-Kelly, 2003, 4. Origins of the Software Products Industry § Pioneering in the Software Products Industry: Informatics Mark IV, p. 103—104.
- ↑ Campbell-Kelly, 2003, 1. The Software Industry § Corporate Software Products, p. 6.
- ↑ Computer Languages, 1989, 3. Расцвет программного обеспечения § Первые промышленные стандарты, p. 68—69.
- ↑ Computer Languages, 1989, 3. Расцвет программного обеспечения § Первые промышленные стандарты, p. 68.
- ↑ 1 2 Campbell-Kelly, 2003, 1. The Software Industry § Mass-Market Software Products, p. 7.
- ↑ Computer Languages, 1989, 3. Расцвет программного обеспечения § Четыре «рабочие лошадки», с. 75—84.
- ↑ 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 года.
- ↑ ГОСТ 19.101-77
- ↑ 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
- ↑ 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.