Jump to content

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

Страница полузащищенная
(Перенаправлено с Программные технологии )

Кредитные карты — одна из многих повседневных технологий, зависящих от программного обеспечения. [ 1 ]

Программное обеспечение состоит из компьютерных программ которые инструктируют работу компьютера , . [ 2 ]

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

разработки программного обеспечения Центральной задачей является программирование и поддержка проекта исходного кода , но этот термин также охватывает концепцию проекта, оценку его осуществимости, анализ бизнес-требований, проектирование и выпуск программного обеспечения . Обеспечение качества программного обеспечения , включая кода проверку и тестирование , является важной частью процесса, поскольку предоставление качественного кода снижает стоимость сбоев надежности , кибератак, вызванных уязвимостями системы безопасности , и затраты на обслуживание . На обслуживание обычно уходит 75 процентов или более инженерного бюджета на протяжении всего срока службы программного обеспечения. Исходный код защищен законом об авторском праве , который наделяет владельца исключительным правом копировать код. Программное обеспечение стало повсеместным в повседневной жизни в развитых странах . Во многих случаях программное обеспечение расширяет функциональность уже существующих технологий, но оно также позволяет создавать совершенно новые технологии, такие как Интернет , видеоигры , социальные сети , мобильные телефоны и GPS .

Определение

Программное обеспечение можно определить более узко, как инструкции, выполняемые компьютерным оборудованием , или в более широком смысле, включая другие концепции, инструменты и методы, необходимые для создания исполняемой системы на компьютерном оборудовании , например проектную документацию, спецификации и наборы средств тестирования. [ 3 ] [ 4 ] Отдельная программа или файл исходного кода состоит из однозначных инструкций и алгоритмов . Программы комбинируются друг с другом и с внешним вводом, чтобы обеспечить возможность выполнения сложной задачи. [ 5 ] [ 4 ] Такие инструменты, как компиляторы , ассемблеры , блок-схемы , средства проектирования, симуляторы и архитектурные диаграммы (некоторые из которых также являются программными средствами), необходимы для проектирования и реализации большинства вычислительных систем. [ 4 ] Хотя программное обеспечение нематериально , [ 6 ] [ 7 ] программное обеспечение дает инструкции компьютерному оборудованию для получения видимых и осязаемых эффектов. [ 8 ]

История

07R01 , интегральная схема компании Motorola . Интегральные схемы были важным изобретением, позволившим создавать программное обеспечение. [ 9 ]

Для создания программного обеспечения было необходимо множество более ранних изобретений, включая математику — особенно двоичную и десятичную системы счисления и ноль алфавиты , письмо , механические калькуляторы , [ 10 ] булева алгебра , транзисторы , интегральные схемы и пластмассы . [ 11 ] Программное обеспечение не могло существовать без цифровых компьютеров , поскольку оно создавалось специально для этих устройств и было необходимо для реализации их полезности. [ 12 ]

Первые программируемые компьютеры, появившиеся в конце 1940-х годов, [ 13 ] были запрограммированы на машинном языке (простые инструкции, которые могли быть непосредственно выполнены процессором). Машинный язык было трудно отлаживать, и его нельзя было переносить между различными компьютерными системами. [ 14 ] Первоначально аппаратные ресурсы были скудными и дорогими, а человеческие ресурсы были дешевле. [ 15 ] По мере усложнения программ производительность программистов стала узким местом. Это привело к появлению языков программирования высокого уровня в середине 1950-х годов. Эти языки абстрагировали детали аппаратного обеспечения и вместо этого были разработаны для выражения алгоритмов, которые людям было бы легче понять. [ 16 ] [ 17 ] Поскольку инструкции отличаются от базового компьютерного оборудования высокого уровня, , программное обеспечение появилось относительно недавно, начиная с таких ранних языков программирования как Fortran , Lisp и COBOL . [ 17 ] Первое использование слова «программное обеспечение» приписывают математику Джону Уайлдеру Тьюки в 1958 году. [ 4 ] Поскольку это первое определение программного обеспечения было отрицательным (элементы компьютера, которые не были «лампами, транзисторами, проводами, лентами и т.п.»), оно оставляло открытым для широкого понимания концепции программного обеспечения, как сказал историк вычислительной техники Натан Энсменгер. постулирует. Для историков программное обеспечение — это социотехническая система , что означает, по словам Энсменгера, «систему, в которой машины, люди и процессы неразрывно связаны и взаимозависимы». [ 18 ] Историк вычислительной техники Томас Хей настаивает на идее распространения и утверждает, что «программное обеспечение всегда включает в себя упаковку разрозненных элементов, таких как компьютерный код, методы, алгоритмы, неявные знания и права интеллектуальной собственности , в артефакт, пригодный для распространения». [ 19 ]

Первое программное обеспечение было тесно связано с базовым оборудованием и, следовательно, не переносилось на другие системы. По мере развития новое программное обеспечение может создаваться и работать на самых разных платформах. Большая часть увеличения переносимости может быть связана со стандартизацией аспектов системы более низкого уровня, таких как сети , операционные системы и базы данных . Поскольку операционных систем относительно немного, TCP и IP используются практически во всех сетях, а SQL используется для многих запросов к базе данных, прикладное программное обеспечение может легче работать на широком спектре оборудования. [ 20 ] Увеличение количества уровней абстракции в системе является смежной разработкой: как в языках программирования, где оно обеспечивает лучшую структуру и повышенную модульность , так и виртуализацию системных ресурсов. В результате повышения стабильности и абстракции программное обеспечение становится все более сложным и может решать больше задач. [ 21 ] И промышленность, и научные круги оказали сильное влияние на разработку различных аспектов программного обеспечения. [ 22 ]

Типы

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

Существует два основных типа программного обеспечения:

Сравнение локального оборудования и программного обеспечения, инфраструктуры как услуги (IaaS), платформы как услуги (PaaS) и программного обеспечения как услуги (SaaS)

Программное обеспечение также можно классифицировать по способу его развертывания . Традиционные приложения приобретаются с бессрочной лицензией на определенную версию программного обеспечения, загружаются и запускаются на оборудовании, принадлежащем покупателю. [ 31 ] Развитие Интернета и облачных вычислений привело к появлению новой модели «программное обеспечение как услуга» (SaaS). [ 32 ] где провайдер размещает программное обеспечение (обычно построенное на базе арендованной инфраструктуры или платформ ) [ 33 ] и обеспечивает использование программного обеспечения клиентам, часто в обмен на абонентскую плату . [ 31 ] К 2023 году продукты SaaS, которые обычно предоставляются через веб-приложения , стали основным методом доставки приложений компаниями. [ 34 ]

Разработка и обслуживание программного обеспечения

Диаграмма традиционного жизненного цикла разработки программного обеспечения с 1988 года. Цифры представляют типичную стоимость каждого этапа.

Компании-разработчики программного обеспечения стремятся предоставлять высококачественный продукт вовремя и в рамках бюджета. Проблема заключается в том, что оценка усилий по разработке программного обеспечения часто бывает неточной. [ 35 ] Разработка программного обеспечения начинается с задумки проекта, оценки его осуществимости, анализа бизнес-требований и разработки проекта программного обеспечения . [ 36 ] [ 37 ] Большинство программных проектов ускоряют свою разработку за счет повторного использования или включения существующего программного обеспечения либо в виде готового коммерческого программного обеспечения (COTS), либо в виде программного обеспечения с открытым исходным кодом . [ 38 ] [ 39 ] Обеспечение качества программного обеспечения обычно представляет собой комбинацию ручной проверки кода другими инженерами. [ 40 ] и автоматизированное тестирование программного обеспечения . Из-за нехватки времени тестирование не может охватить все аспекты предполагаемой функциональности программного обеспечения, поэтому разработчики часто сосредотачиваются на наиболее важных функциях. [ 41 ] Формальные методы используются в некоторых критически важных для безопасности системах для доказательства правильности кода. [ 42 ] в то время как приемочное тестирование пользователей помогает убедиться, что продукт соответствует ожиданиям клиентов. [ 43 ] Существует множество методологий разработки программного обеспечения , которые варьируются от выполнения всех этапов до параллельных и итеративных моделей. [ 44 ] Разработка программного обеспечения определяется требованиями потенциальных пользователей, в отличие от обслуживания, которое определяется такими событиями, как запрос на изменение. [ 45 ]

Зачастую программное обеспечение выпускается в незавершенном состоянии, когда у команды разработчиков заканчивается время или финансирование. [ 46 ] Несмотря на тестирование и контроль качества , практически все программное обеспечение содержит ошибки , из-за которых система не работает должным образом. Пост-релизное обслуживание программного обеспечения необходимо для устранения этих ошибок при их обнаружении и обеспечения работоспособности программного обеспечения по мере изменения среды с течением времени. [ 47 ] Новые функции часто добавляются после выпуска. Со временем уровень обслуживания становится все более ограниченным, а затем полностью прекращается, когда продукт снимается с рынка. [ 48 ] По мере старения программного обеспечения оно становится известным как устаревшее программное обеспечение и может использоваться десятилетиями, даже если не осталось никого, кто знает, как его исправить. [ 6 ] По оценкам, в течение всего срока службы продукта обслуживание программного обеспечения будет составлять 75 или более процентов от общей стоимости разработки. [ 49 ] [ 50 ]

Завершение проекта программного обеспечения требует различных форм экспертизы, не только в области программистов , но также в тестировании, написании документации, управлении проектами , графическом дизайне , пользовательском опыте , поддержке пользователей, маркетинге и сборе средств. [ 51 ] [ 52 ] [ 37 ]

Качество и безопасность

Качество программного обеспечения определяется как соответствие заявленным требованиям, а также ожиданиям клиентов. [ 53 ] Качество — это всеобъемлющий термин, который может относиться к правильному и эффективному поведению кода, его возможности повторного использования и переносимости или простоте модификации. [ 54 ] Обычно более рентабельно заложить качество в продукт с самого начала, чем пытаться добавить его позже в процессе разработки. [ 55 ] Код более высокого качества снизит затраты в течение всего срока службы как для поставщиков, так и для клиентов, поскольку он более надежен и его легче поддерживать . [ 56 ] [ 57 ] Сбои программного обеспечения в критически важных для безопасности системах могут быть очень серьезными, вплоть до летального исхода. [ 56 ] По некоторым оценкам, стоимость программного обеспечения низкого качества может достигать 20–40 процентов продаж. [ 58 ] Несмотря на цель разработчиков создать продукт, который работает полностью так, как задумано, практически все программное обеспечение содержит ошибки. [ 59 ]

Развитие Интернета также значительно увеличило потребность в компьютерной безопасности , поскольку оно позволило злоумышленникам проводить кибератаки . удаленно [ 60 ] [ 61 ] Если ошибка создает угрозу безопасности, она называется уязвимостью . [ 62 ] [ 63 ] Патчи программного обеспечения часто выпускаются для исправления выявленных уязвимостей, но те, которые остаются неизвестными ( нулевые дни ), а также те, которые не были исправлены, по-прежнему подлежат эксплуатации. [ 64 ] Уязвимости различаются по возможности использования злоумышленниками . [ 62 ] Фактический риск зависит от характера уязвимости, а также ценности окружающей системы. [ 65 ] Хотя некоторые уязвимости можно использовать только для атак типа «отказ в обслуживании» , которые ставят под угрозу доступность системы, другие позволяют злоумышленнику внедрить и запустить свой собственный код (называемый вредоносным ПО ), без ведома пользователя. [ 62 ] Чтобы предотвратить кибератаки, все программное обеспечение в системе должно быть спроектировано так, чтобы противостоять внешним атакам и восстанавливаться после них. [ 61 ] Несмотря на усилия по обеспечению безопасности, значительная часть компьютеров заражена вредоносным ПО. [ 66 ]

Кодирование и исполнение

Языки программирования

Исходный код компьютерной программы на C. языке Серые линии — это комментарии , объясняющие программу людям. При компиляции и запуске он выдаст вывод « Hello, world! ».

Языки программирования — это формат, в котором пишется программное обеспечение. С 1950-х годов были изобретены тысячи различных языков программирования; некоторые использовались десятилетиями, а другие вышли из употребления. [ 67 ] Некоторые определения классифицируют машинный код (точные инструкции, непосредственно реализуемые аппаратным обеспечением) и язык ассемблера (более удобочитаемую альтернативу машинному коду, операторы которого могут быть однозначно преобразованы в машинный код) как языки программирования. [ 68 ] Программы, написанные на языках программирования высокого уровня, используемых для создания программного обеспечения, имеют несколько общих характеристик: для их написания не требуется знание машинного кода, их можно портировать на другие компьютерные системы, они более кратки и удобочитаемы, чем машины. код. [ 69 ] Они должны быть читабельными для человека и преобразовываться в однозначные инструкции для компьютерного оборудования. [ 70 ]

Компиляция, интерпретация и исполнение

Изобретение языков программирования высокого уровня произошло одновременно с появлением компиляторов , которые должны были автоматически переводить их в машинный код. [ 71 ] Большинство программ не содержат всех ресурсов, необходимых для их запуска, и полагаются на внешние библиотеки . Частью функции компилятора является связывание этих файлов таким образом, чтобы программа могла выполняться аппаратно. После компиляции программу можно сохранить в виде объектного файла , а загрузчик (часть операционной системы) может взять этот сохраненный файл и выполнить его как процесс на аппаратном обеспечении компьютера. [ 72 ] Некоторые языки программирования используют интерпретатор вместо компилятора. Интерпретатор преобразует программу в машинный код во время выполнения , что делает их в 10–100 раз медленнее, чем скомпилированные языки программирования. [ 73 ] [ 74 ]

Обязанность

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

Лицензии

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

Исходный код защищен законом об авторском праве , который наделяет владельца исключительным правом копировать код. Лежащие в основе идеи или алгоритмы не защищены законом об авторском праве, но часто рассматриваются как коммерческая тайна и скрываются с помощью таких методов, как соглашения о неразглашении . [ 76 ] Авторские права на программное обеспечение признаны с середины 1970-х годов и принадлежат компании, производящей программное обеспечение, а не сотрудникам или подрядчикам . написавшим его [ 77 ] Использование большей части программного обеспечения регулируется соглашением ( лицензией на программное обеспечение ) между правообладателем и пользователем. Несвободное программное обеспечение обычно продается по ограничительной лицензии, которая ограничивает копирование и повторное использование (часто обеспечивается такими инструментами, как управление цифровыми правами (DRM)). [ 78 ] Лицензии с открытым исходным кодом , напротив, допускают бесплатное использование и распространение программного обеспечения с небольшими условиями. [ 77 ] Большинство лицензий с открытым исходным кодом, используемых для программного обеспечения, требуют, чтобы модификации выпускались под той же лицензией, что может создать сложности при повторном использовании программного обеспечения с открытым исходным кодом в проприетарных проектах. [ 79 ]

Патенты

Патенты дают изобретателю исключительную, ограниченную по времени лицензию на новый продукт или процесс. [ 80 ] Идеи о том, чего может достичь программное обеспечение, не защищены законом, а конкретные реализации подпадают под действие закона об авторском праве . В некоторых странах требование о том, чтобы заявленное изобретение оказало влияние на физический мир, также может быть частью требований, чтобы патент на программное обеспечение считался действительным. [ 81 ] Патенты на программы вызывали исторически споры . До дела State Street Bank & Trust Co. против Signature Financial Group, Inc. в 1998 году патенты на программное обеспечение, как правило, не признавались в Соединенных Штатах. В этом случае Верховный суд решил, что бизнес-процессы можно запатентовать. [ 11 ] Патентные заявки сложны и дорогостоящи, а судебные иски, связанные с патентами, могут привести к увеличению стоимости продукции. [ 82 ] В отличие от авторских прав, патенты обычно применяются только в той юрисдикции, где они были выданы. [ 83 ]

Влияние

Компьютерное моделирование является одним из достижений программного обеспечения. [ 84 ]

Инженер Кэйперс Джонс пишет, что «компьютеры и программное обеспечение вносят глубокие изменения во все аспекты человеческой жизни: образование, работу, войну, развлечения, медицину, право и все остальное». [ 85 ] Оно стало повсеместным в повседневной жизни в развитых странах . [ 86 ] Во многих случаях программное обеспечение расширяет функциональность существующих технологий, таких как бытовая техника и лифты . [ 1 ] Программное обеспечение также породило совершенно новые технологии, такие как Интернет , видеоигры , мобильные телефоны и GPS . [ 1 ] [ 87 ] новые методы общения, включая электронную почту , форумы , блоги , микроблоги , вики и социальные сети . Благодаря Интернету появились [ 88 ] Огромные объемы знаний, превосходящие любую бумажную библиотеку, теперь доступны с помощью быстрого поиска в Интернете . [ 87 ] Большинство творческих профессионалов перешли на программные инструменты, такие как компьютерное проектирование , 3D-моделирование , редактирование цифровых изображений и компьютерная анимация . [ 84 ] Практически каждое сложное устройство управляется программным обеспечением. [ 87 ]

Ссылки

  1. ^ Jump up to: а б с Китчин и Додж 2011 , с. 5.
  2. ^ Лестница, Ральф М. (2003). Принципы информационных систем, шестое издание . Томсон. п. 16. ISBN  0-619-06489-7 . Программное обеспечение состоит из компьютерных программ, которые управляют работой компьютера.
  3. ^ Остервейл 2013 , с. 61.
  4. ^ Jump up to: а б с д Трейси 2021 , с. 2.
  5. ^ Китчин и Додж 2011 , стр. 3, 24.
  6. ^ Jump up to: а б Трейси 2021 , с. 3.
  7. ^ Китчин и Додж 2011 , с. 24.
  8. ^ Китчин и Додж 2011 , стр. 3–4.
  9. ^ Джонс 2014 , стр. 19, 22.
  10. ^ Джонс 2014 , стр. 9, 21.
  11. ^ Jump up to: а б Джонс 2014 , с. 19.
  12. ^ Джонс 2014 , с. 22.
  13. ^ Габбриелли и Мартини 2023 , с. 519.
  14. ^ Габбриелли и Мартини 2023 , стр. 520–521.
  15. ^ Габбриелли и Мартини 2023 , с. 522.
  16. ^ Габбриелли и Мартини 2023 , с. 521.
  17. ^ Jump up to: а б Трейси 2021 , с. 1.
  18. ^ Энсменгер, Натан (2010). Компьютерщики берут верх: компьютеры, программисты и политика технических знаний . История вычислений. Кембридж, Массачусетс: MIT Press. ISBN  978-0-262-05093-7 . OCLC   496282165 .
  19. ^ Хоке, Александр; Вибер, Фредерик; Грамельсбергер, Габриэле; Хинсен, Конрад; Дисманн, Маркус; Паскини Сантос, Фернандо; Ландстрем, Катарина; Питерс, Бенджамин; Каспрович, Давид; Боррелли, Арианна; Рот, Филипп; Ли, Кларисса Ай Линг; Олтяну, Алин; Бёшен, Стефан (1 июля 2024 г.). «Программное обеспечение в науке распространено повсеместно, но его игнорируют» . Природа вычислительной науки . дои : 10.1038/s43588-024-00651-2 . ISSN   2662-8457 .
  20. ^ Трейси 2021 , с. 249.
  21. ^ Трейси 2021 , с. 250.
  22. ^ Трейси 2021 , стр. 250–251.
  23. ^ Андерсон и Далин 2014 , с. 6.
  24. ^ Jump up to: а б с Андерсон и Далин 2014 , с. 7.
  25. ^ Таненбаум и Бос 2023 , с. 5.
  26. ^ Андерсон и Далин 2014 , стр. 7, 9, 13.
  27. ^ Андерсон и Далин 2014 , стр. 6–7.
  28. ^ Джонс 2014 , с. 121.
  29. ^ Трейси 2021 , с. 66.
  30. ^ Трейси 2021 , с. 72.
  31. ^ Jump up to: а б О'Риган 2022 , с. 386.
  32. ^ Кэмпбелл-Келли и Гарсия-Шварц, 2015 , стр. 156–157.
  33. ^ Розати и Линн 2020 , с. 23.
  34. ^ Ватт 2023 , стр. 4.
  35. ^ О'Риган 2022 , с. 7.
  36. ^ О'Риган 2022 , с. 5.
  37. ^ Jump up to: а б Дули 2017 , с. 1.
  38. ^ О'Риган 2022 , стр. 18, 110–111.
  39. ^ Трейси 2021 , стр. 43, 76.
  40. ^ О'Риган 2022 , стр. 117–118.
  41. ^ О'Риган 2022 , с. 54.
  42. ^ О'Риган 2022 , с. 267.
  43. ^ О'Риган 2022 , с. 20.
  44. ^ О'Риган 2022 , с. 9.
  45. ^ Трипатия и Найк 2014 , с. 26.
  46. ^ Райфер 2012 , с. 22.
  47. ^ Трипати и Найк 2014 , стр. 4, 27.
  48. ^ Трипатия и Найк 2014 , с. 89.
  49. ^ Варга 2018 , с. 6.
  50. ^ Ульзиит и др. 2015 , с. 764
  51. ^ Такер, Морелли и де Сильва 2011 , стр. 7.
  52. ^ Стулл 2018 , стр. 24–25.
  53. ^ Галин 2018 , с. 3.
  54. ^ Галин 2018 , с. 26.
  55. ^ О'Риган 2022 , стр. 68, 117.
  56. ^ Jump up to: а б О'Риган 2022 , стр. 3, 268.
  57. ^ Варга 2018 , с. 12.
  58. ^ О'Риган 2022 , с. 119.
  59. ^ Аблон и Богарт 2017 , с. 1.
  60. ^ Кэмпбелл-Келли и Гарсия-Шварц 2015 , стр. 164.
  61. ^ Jump up to: а б О'Риган 2022 , с. 266.
  62. ^ Jump up to: а б с Аблон и Богарт 2017 , с. 2.
  63. ^ Дасвани и Эльбаяди 2021 , с. 25.
  64. ^ Дасвани и Эльбаяди 2021 , стр. 26–27.
  65. ^ Хабер и Хибберт 2018 , стр. 5–6.
  66. ^ Китчин и Додж 2011 , с. 37.
  67. ^ Трейси 2021 , с. 117.
  68. ^ Трейси 2021 , стр. 118–120.
  69. ^ Трейси 2021 , стр. 118–119.
  70. ^ Китчин и Додж 2011 , с. 26.
  71. ^ Трейси 2021 , с. 121.
  72. ^ Трейси 2021 , стр. 122–123.
  73. ^ О'Риган 2022 , с. 375.
  74. ^ Sebesta 2012 , p. 28.
  75. ^ Китчин и Додж 2011 , стр. 36–37.
  76. ^ О'Риган 2022 , стр. 394–396.
  77. ^ Jump up to: а б О'Риган 2022 , с. 403.
  78. ^ О'Риган 2022 , стр. 394, 404.
  79. ^ Лангер 2016 , стр. 44–45.
  80. ^ О'Риган 2022 , с. 395.
  81. ^ Херардо Кон Диас, «Текст в машине: американский закон об авторском праве и многообразие программ, 1974–1978», Technology and Culture 57 (октябрь 2016 г.), 753–79.
  82. ^ О'Риган 2022 , с. 398.
  83. ^ О'Риган 2022 , с. 399.
  84. ^ Jump up to: а б Манович 2013 , с. 333.
  85. ^ Джонс 2014 , с. 32.
  86. ^ Китчин и Додж 2011 , с. iv.
  87. ^ Jump up to: а б с Джонс 2014 , с. xxviii.
  88. ^ Манович 2013 , с. 329.

Источники

  • Аблон, Лилиан; Богарт, Энди (2017). Нулевые дни, тысячи ночей: жизнь и времена уязвимостей нулевого дня и их использования (PDF) . Корпорация Рэнд. ISBN  978-0-8330-9761-3 .
  • Андерсон, Томас ; Далин, Майкл (2014). Операционные системы: принципы и практика (2-е изд.). Рекурсивные книги. ISBN  978-0-9856735-2-9 .
  • Кэмпбелл-Келли, Мартин; Гарсия-Шварц, Дэниел Д. (2015). От мэйнфреймов к смартфонам: история международной компьютерной индустрии . Издательство Гарвардского университета. ISBN  978-0-674-28655-9 .
  • Дасвани, Нил ; Эльбаяди, Муди (2021). Большие нарушения: уроки кибербезопасности для всех . Апресс. ISBN  978-1-4842-6654-0 .
  • Дули, Джон Ф. (2017). Разработка программного обеспечения, проектирование и кодирование: с шаблонами, отладкой, модульным тестированием и рефакторингом . Апресс. ISBN  978-1-4842-3153-1 .
  • Габбриелли, Маурицио; Мартини, Симона (2023). Языки программирования: принципы и парадигмы (2-е изд.). Спрингер. ISBN  978-3-031-34144-1 .
  • Галин, Дэниел (2018). Качество программного обеспечения: концепции и практика . Джон Уайли и сыновья. ISBN  978-1-119-13449-7 .
  • Хабер, Мори Дж.; Хибберт, Брэд (2018). Векторы атак на активы: построение эффективных стратегий управления уязвимостями для защиты организаций . Апресс. ISBN  978-1-4842-3627-7 .
  • Джонс, Каперс (2014). Техническая и социальная история разработки программного обеспечения . Пирсон Образование. ISBN  978-0-321-90342-6 .
  • Китчин, Роб; Додж, Мартин (2011). Код/пространство: Программное обеспечение и повседневная жизнь . МТИ Пресс. ISBN  978-0-262-04248-2 .
  • Лангер, Артур М. (2016). Руководство по разработке программного обеспечения: проектирование и управление жизненным циклом . Спрингер. ISBN  978-1-4471-6799-0 .
  • Манович, Лев (2013). Программное обеспечение берет на себя командование . Академик Блумсбери. ISBN  978-1-62356-745-3 .
  • О'Риган, Джерард (2022). Краткое руководство по разработке программного обеспечения: от основ к методам применения . Спрингер Природа. ISBN  978-3-031-07816-3 .
  • Остервейл, Леон Дж. (2013). «Что такое программное обеспечение? Роль эмпирических методов в ответе на вопрос». Перспективы будущего программной инженерии: очерки в честь Дитера Ромбаха . Спрингер. стр. 237–254. ISBN  978-3-642-37395-4 .
  • Рахман, Ханиф Ур; да Силва, Альберто Родригес; Альзаид, Асаад; Раза, Муштак (2024). «Систематический обзор литературы по решениям о переносе обслуживания программного обеспечения». Информационные и программные технологии . 172 : 107475. doi : 10.1016/j.infsof.2024.107475 .
  • Райфер, Дональд Дж. (2012). Рецепты успешного обслуживания программного обеспечения . ЦРК Пресс. ISBN  978-1-4398-5167-8 .
  • Розати, Пьеранджело; Линн, Тео (2020). «Оценка бизнес-ценности миграции инфраструктуры в облако». Измерение бизнес-ценности облачных вычислений . Международное издательство Спрингер. стр. 19–37. ISBN  978-3-030-43198-3 .
  • Себеста, Роберт В. (2012). Концепции языков программирования (10-е изд.). Аддисон-Уэсли. ISBN  978-0-13-139531-2 .
  • Столл, Эдвард (2018). Основы UX для не-UX-профессионалов: принципы пользовательского опыта для менеджеров, писателей, дизайнеров и разработчиков . Апресс. ISBN  978-1-4842-3811-0 .
  • Таненбаум, Эндрю С .; Бос, Герберт (2023). Современные операционные системы, глобальное издание . Пирсон Высшее Эд. ISBN  978-1-292-72789-9 .
  • Трейси, Ким В. (2021). Программное обеспечение: техническая история . Издательство Морган и Клейпул. ISBN  978-1-4503-8724-8 .
  • Трипати, Приядарши; Наик, Кширасагар (2014). Эволюция и сопровождение программного обеспечения: подход практикующего специалиста . Джон Уайли и сыновья. ISBN  978-0-470-60341-3 .
  • Такер, Аллен; Морелли, Ральф; де Сильва, Чаминдра (2011). Разработка программного обеспечения: подход с открытым исходным кодом . ЦРК Пресс. ISBN  978-1-4398-8460-7 .
  • Улзиит, Баярбуян; Варрайх, Зишан Ахтар; Генсель, Сигдем; Петерсен, Кай (2015). «Концептуальная основа проблем и решений для управления глобальным обслуживанием программного обеспечения». Журнал программного обеспечения: эволюция и процесс . 27 (10): 763–792. дои : 10.1002/смр.1720 .
  • Ватт, Энди (2023). Создание современных приложений SaaS с использованием C# и . NET: создание, развертывание и обслуживание профессиональных приложений SaaS . Пакет. ISBN  978-1-80461-087-9 .
  • Варга, Эрвин (2018). Разгадка сопровождения и эволюции программного обеспечения: нестандартное мышление . Спрингер. ISBN  978-3-319-71303-8 .

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 9e02573915284e194dbefcd0c6f08740__1722130920
URL1:https://arc.ask3.ru/arc/aa/9e/40/9e02573915284e194dbefcd0c6f08740.html
Заголовок, (Title) документа по адресу, URL1:
Software - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)