碘吃多了有什么危害

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Операционная система
ПользовательПрикладное ПООперационная системаАппаратное обеспечение
Схема изображает взаимодействие ОС со всеми необходимыми компонентами.
Основные возможности
百度 然而,在2016年E3电玩展释出最新预告后,虽然一样令玩家血脉喷张,但粉丝们纷纷冒出一个疑问:我们过去熟悉的斩神如斩草的奎爷,似乎变得有些不一样了?没错,我们的奎爷老了。

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

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

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

Согласно российскому законодательству программой для ЭВМ является представленная в объективной форме совокупность данных и команд, предназначенных для функционирования ЭВМ и других компьютерных устройств в целях получения определенного результата, включая подготовительные материалы, полученные в ходе разработки программы для ЭВМ, и порождаемые ею аудиовизуальные отображения[13].

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Современные тенденции

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

Расширение рынка SaaS

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

По данным IDC, сегмент программного обеспечения как услуги (SaaS) остаётся самым быстрорастущим: на него приходится более половины мировых затрат на корпоративное ПО, а генеративный ИИ становится ключевым драйвером инноваций в облачных приложениях.

Контейнеризация и DevOps-подход

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

С 2024 года свыше 60 % организаций используют контейнеры в промышленной эксплуатации, а 90 % планируют расширять такие внедрения, что свидетельствует о закреплении Docker- и Kubernetes-орchestrated-решений как отраслевого стандарта.

Низкокодовые и бескодовые платформы

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

Gartner относит Enterprise Low-Code Application Platforms (LCAP) к ключевым средствам ускоренной разработки, отмечая использование генеративного ИИ и каталоги готовых компонентов как основные отличительные черты.

Генеративный ИИ в разработке

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

В отчётах GitHub и Accenture более 80 % участвовавших команд успешно внедрили GitHub Copilot, при этом 90 % разработчиков сообщили о росте удовлетворённости работой, а производительность повысилась на 55 %.

Макроэкономика рынка

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

Согласно исследованию Spherical Insights, мировой рынок программного обеспечения оценивался в 656,8 млрд USD в 2023 году и, по прогнозам, достигнет 1,9 трлн USD к 2033 году при среднегодовом темпе роста 11,25 %.


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Классификация программного обеспечения по сектору индустрии включает несколько подходов. В целом, программное обеспечение делят на заказное, то есть создаваемое для конкретного заказчика, и продуктовое, то есть создаваемое для продажи на рынке. В свою очередь, по типам потребителя ПО делят на 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 года.
  4. Резниченко И. Л. Орфоэпический словарь русского языка: Произношение. Ударение: Ок. 25 000 единиц / Резниченко И. Л. — М.: ООО ?Издательство Астрель?: ООО ?Издательство АСТ?, 2003. — 284 c.
  5. Орфографический словарь русского языка / Под редакцией С. И. Ожегова. — Локид-Пресс, 2007. — 912 с. — ISBN 5-320-00396-X.
  6. Д. Э. Розенталь. Русский язык. Справочник-практикум. — Оникс, Мир и образование, 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. 1 2 ГОСТ 19.101—2024 ?Единая система программной документации. Виды программ и программных документов?
  9. ГОСТ 19781—90 ?Обеспечение систем обработки информации программное. Термины и определения?
  10. 1 2 ISO/IEC 2382-1:1993 — Information technology — Vocabulary. Дата обращения: 18 октября 2012. Архивировано 18 сентября 2012 года.
  11. Батоврин, 2012.
  12. IEEE Std 829—2008 — IEEE Standard for Software and System Test Documentation
  13. Статья 1261 Гражданского кодекса Российской Федерации. Дата обращения: 17 июля 2025.
  14. ГОСТ 34.003—90 ?Информационная технология. Комплекс стандартов на автоматизированные системы. Автоматизированные системы. Термины и определения?
  15. John Tukey, 85, Statistician; Coined the Word 'Software'. Obituaries. New York Times. 28 июля 2000.
  16. Computer Languages, 1989, 1. Невидимый конструктор § Предвестники компьютерной эры, с. 11.
  17. 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
  18. 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
  19. 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.
  20. Computer Languages, 1989, 1. Невидимый конструктор, с. 10—11.
  21. Computer Languages, 1989, 1. Невидимый конструктор, с. 14—16.
  22. Computer Languages, 1989, 1. Невидимый конструктор § Создание кодов, понятных человеку, с. 16.
  23. Computer Languages, 1989, 1. Невидимый конструктор § Шаг на благо программирования, с. 18—20.
  24. Computer Languages, 1989, 1. Невидимый конструктор § Шаг на благо программирования, с. 20.
  25. 1 2 Campbell-Kelly, 2003, 1. The Software Industry, p. 1.
  26. Campbell-Kelly, 2003, 1. The Software Industry § Periodization, Sectorization, and Capabilities, p. 3.
  27. 1 2 3 4 5 Campbell-Kelly, 2003, 1. The Software Industry § Periodization, Sectorization, and Capabilities, p. 4.
  28. 1 2 Campbell-Kelly, 2003, 1. The Software Industry § Software Contractors, p. 5.
  29. Campbell-Kelly, 2003, 1. The Software Industry § Periodization, Sectorization, and Capabilities, p. 3—4.
  30. Computer Languages, 1989, 1. Невидимый конструктор, с. 10.
  31. 1 2 Computer Languages, 1989, 3. Расцвет программного обеспечения § Производство программного обеспечения становится самостоятельной отраслью, с. 61.
  32. Campbell-Kelly, 2003, 4. Origins of the Software Products Industry § Pioneering in the Software Products Industry: Informatics Mark IV, p. 103—104.
  33. Campbell-Kelly, 2003, 1. The Software Industry § Corporate Software Products, p. 6.
  34. Computer Languages, 1989, 3. Расцвет программного обеспечения § Первые промышленные стандарты, p. 68—69.
  35. Computer Languages, 1989, 3. Расцвет программного обеспечения § Первые промышленные стандарты, p. 68.
  36. 1 2 Campbell-Kelly, 2003, 1. The Software Industry § Mass-Market Software Products, p. 7.
  37. Computer Languages, 1989, 3. Расцвет программного обеспечения § Четыре ?рабочие лошадки?, с. 75—84.
  38. 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 года.
  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
Комментарии
  1. Издание орфографического словаря Ожегова 2007 года[5] и издание словаря Розенталя 2006 и 2007 года[6] приводят единственный вариант — обеспече?ние.
  2. Согласно ГОСТ 19.101—2024[8], ?к программным документам относятся документы, содержащие сведения, необходимые для разработки, изготовления, сопровождения и эксплуатации программ?.
  3. Согласно ISO/IEC 2382-1:1993[10], система обработки информации — это одна или большее число компьютерных систем и устройств, таких как офисное и коммуникационное оборудование, которые выполняют обработку информации.

Литература

[править | править код]
  • ГОСТ Р ИСО/МЭК 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.