Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Раздутое программное обеспечение

Лекция



Привет, Вы узнаете о том , что такое раздутое программное обеспечение, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое раздутое программное обеспечение, bloatware, fatware, elephantware , настоятельно рекомендую прочитать все из категории Разработка программного обеспечения и информационных систем.

раздутое программное обеспечение (англ. bloatware, fatware, elephantware) — это программное обеспечение, которое занимает чрезмерное количество системных ресурсов, включая оперативную память, процессорное время и место на диске, без значимой пользы для пользователя. Такое ПО часто перегружено ненужными функциями, плохо оптимизировано или предустановлено производителями устройств без возможности простого удаления а также, имеющая слишком много дополнительных функций, на работу которых уходит непропорционально много ресурсов системы, в особенности если эти функции не нужны или малополезны для работы программы (такие функции часто называют «gimmicks» (англ.), «bells and whistles» (англ.), дословно: «бубенчики и свистульки».

У английского термина bloatware (также англ. crapware, shovelware) существует также второе значение, которое относится к ресурсоемкому предварительно установленному программному обеспечению, которое пользователю не нужно, но навязывается ему производителями компьютеров, планшетов, смартфонов и т. д.

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

Крис Касперски.

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

Джейми Завински, разработчик Netscape Communicator

Технически раздутое программное обеспечение чаще всего ассоциируется с понятием «расползание возможностей», или «ползучий улучшизм» («feature creep, creeping featurism/featuritis» (англ.)), которое обозначает тенденцию разработчиков добавлять в программный продукт больше и больше возможностей в попытке «не отстать от конкурентов», однако приводящую фактически к созданию более медленного и менее эффективного изделия. Согласно озвученным в 2002 году данным исследований, только 20—25 % функций программных продуктов использовались всегда или часто, тогда как до 45 % функций вообще никогда не использовались. По мнению Мартина Фаулера, большинство проектов должны были бы иметь лишь четверть от их существующего размера.

Раздувание сказывается не только на производительности программ: увеличение объема программного кода приводит к росту затрат на его обслуживание и развитие. К тому же плохо проработанные дополнительные функции могут стать источником уязвимостей.

Вклад в «раздувание возможностей» вносит также «эффект второй системы», описанный Фредериком Бруксом еще в 1975 году: программист, разрабатывающий свою вторую систему, склонен добавлять все те возможности, которые он не смог добавить в свою первую систему (из-за нехватки времени), поэтому вторая система часто получается перегруженной возможностями.

Причины появления "раздутости":

Основные причины появления "раздутости":

  1. Ненужные функции: ПО может содержать функции, которые большинству пользователей не нужны.
  2. Плохая оптимизация: Неэффективные алгоритмы или избыточное использование ресурсов.
  3. Рекламные цели: Предустановленные программы от производителей устройств или партнеров.
  4. Устаревший код: Приложения, которые продолжают добавлять новые функции, сохраняя устаревший функционал.

Неэффективность программного обеспечения

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

К 21 веку ситуация изменилась на противоположную. Ресурсы воспринимались как дешевые, а скорость кодирования и основные функции для маркетинга рассматривались как приоритеты. Отчасти это связано с тем, что с тех пор технологические достижения увеличили вычислительную мощность и плотность хранения на порядки, одновременно снизив относительные затраты на аналогичные порядки (см. закон Мура ). Кроме того, распространение компьютеров на всех уровнях бизнеса и домашней жизни привело к тому, что индустрия программного обеспечения стала во много раз больше, чем в 1970-х годах. Об этом говорит сайт https://intellect.icu . Программы теперь обычно штампуются командами, направляемыми комитетами в студиях разработки программного обеспечения (также известных как дома программного обеспечения или фабрики программного обеспечения), где каждый программист работает только над частью целого, над одной или несколькими подпрограммами .

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

Другой причиной раздувания являются независимо конкурирующие стандарты и продукты, которые могут создать спрос на интеграцию. Сейчас существует больше операционных систем, браузеров, протоколов и форматов хранения, чем раньше, что приводит к раздуванию программ из-за проблем с совместимостью. Например, программа, которая раньше могла сохранять только в текстовом формате, теперь должна сохранять в HTML, XML, XLS, CSV, PDF, DOC и других форматах.

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

В своем эссе 2001 года «Strategy Letter IV: Bloatware and the 80/20 Myth» Джоэл Спольски утверждает, что хотя 80% пользователей используют только 20% функций (вариация принципа Парето ), каждый из них использует разные функции. Таким образом, «облегченные» версии программного обеспечения оказываются бесполезными для большинства, поскольку в них отсутствуют одна или две специальные функции, которые присутствуют в «раздутой» версии. Спольски подводит итог статьи цитатой Джейми Завински, ссылающейся на Mozilla Application Suite (который позже стал SeaMonkey ):

«Хотя это было бы удобно, если бы было правдой, Mozilla не так велика, потому что она полна бесполезного хлама. Mozilla велика, потому что ваши потребности велики. Ваши потребности велики, потому что Интернет велик. Существует множество маленьких, простых веб-браузеров, которые, кстати, не делают почти ничего полезного. [...] Но быть сверкающим бриллиантом совершенства не было целью, когда мы писали Mozilla».

Раздувание программного обеспечения также может быть симптомом эффекта второй системы , описанного Фредом Бруксом в книге «Мифический человеко-месяц» .

Классификация раздутости ПО

  1. Предустановленное ПО (OEM Bloatware):

    • Программы, установленные производителями устройств.
    • Часто включают демонстрационные версии антивирусов, утилит, игр и т.п.
    • Примеры: пробные версии Microsoft Office, антивирусов на новых ноутбуках.
  2. Пользовательское ПО:

    • Программы, которые пользователь сам установил, но они оказываются громоздкими и неэффективными.
    • Часто перегружены функциями, которые не используются.
    • Примеры: медиаплееры с лишними функциями, устаревшие браузеры.
  3. Системное ПО:

    • Операционные системы, которые включают множество ненужных компонентов.
    • Пример: Windows, перегруженная сервисами, которые не используются большинством пользователей.
  4. Корпоративное ПО:

    • Программы, используемые в бизнесе, которые становятся чрезмерно сложными из-за добавления нового функционала.
    • Примеры: корпоративные CRM-системы.

Известные ИТ-специалисты о раздувании программ

Никлаус Вирт в 1996 году написал статью «Долой „жирные программы“», подняв проблему программ, для которых рост требований к ресурсам превышает рост их функциональных возможностей и производительности. Термин «жирные программы» (fatware) позаимствован им из статьи в журнале Byte 1993 года.

Вирт указал на два шутливых «закона», которые тем не менее верно отражают ситуацию:

  • Закон Паркинсона: программное обеспечение увеличивается в размерах до тех пор, пока не заполнит всю доступную на данный момент память.
  • Закон Рейзера: программное обеспечение замедляется более быстро, чем аппаратура становится быстрее.

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

Натан Мирволд использовал выражение «software is a gas» («программа — это газ»), чтобы описать следующий феномен: вне зависимости от степени усовершенствования аппаратного обеспечения разработчики всегда имеют тенденцию добавлять функциональность, чтобы заставить свои программы натолкнуться на границы этой производительности.

Отношение к раздуванию программного обеспечения

Подгонка старых программ под новые машины обычно означает такие изменения, при которых новые машины работают как старые.

Алан Перлис.

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

  • С прогрессом микроэлектроники аппаратное обеспечение, на котором новая версия способна работать, часто оказывается даже дешевле. Например, Excel 1.0 потреблял 36 долл. дискового пространства по ценам 1993 года, Excel 2000 — 1,03 долл. по ценам 2000 года.
  • Оптимизация экономически оправдана только в ключевых точках программы. Вовремя вышедшая программа важнее хорошо оптимизированной (в крайнем случае можно выпустить патч).
  • Хотя типичный пользователь использует 20 % функций, у разных пользователей эти 20 % разные. Поэтому, если написать облегченную программу, в которой реализованы только 20 % функций, есть риск сильно сузить круг ее пользователей.

Примеры

Сравнение минимальных требований Windows (версии x86)
Версия Windows Процессор Память Размер на диске
Windows 95[16] 25 MHz 4 MB ~50 MB
Windows 98[17] 66 MHz 16 MB ~200 MB
Windows 2000[18] 133 MHz 32 MB 650 MB
Windows XP[19] (2001) 233 MHz 64 MB 1.5 GB
Windows Vista[20] (2007) 800 MHz 512 MB 15 GB
Windows 7[21] (2009) 1 GHz 1 GB 16 GB
Windows 8[22] (2012) 1 GHz 1 GB 16 GB
Windows 10[23] (2015) 1 GHz 1 GB 16 GB
Windows 11[24] (2021) 1 GHz 4 GB 64 GB

Сайт Switched Downloadsquad опубликовал в 2008 году примеры наихудших программ в категории «elephantware», то есть «раздутых программ, которые заставляют новейшие персональные компьютеры загружаться подобно Pentium 2 с 64 MB оперативной памяти». Были названы следующие программы:

  • Acrobat Reader
  • iTunes
  • RealPlayer
  • Internet Explorer
  • Microsoft Outlook.

Хорошим примером, иллюстрирующим рост требований, являются системные требования для установки ОС фирмы Microsoft. Как видно, их рост происходил явно непропорционально появлению новых возможностей. При этом следует иметь в виду, что отчасти это объясняется «усечением» возможностей Windows в зависимости от лицензии, в то время как основные системные файлы остаются в прежнем количестве. Минимальные требования для Windows 10 остались теми же, что Windows 7, в то время как пользователи и тестировщики отмечают фактический рост потребления памяти. Следовательно, сохранение минимальных требований носит в известной части рекламный характер.

Часто в качестве примеров неоправданного раздувания приводится Nero Burning ROM. В течение жизненного цикла пакет этой программы обзавелся графическим и звуковым редактором, аудио- и видеоплеером, а также альтернативной версией программы записи с упрощенным интерфейсом, все это снабжалось специальной программой-оболочкой для запуска и имело сложные графические стили оформления.

Последствия раздутости ПО

  • Снижение производительности: Замедление работы устройства из-за чрезмерного использования ресурсов.
  • Повышение энергопотребления: Особенно важно для мобильных устройств.
  • Увеличение времени загрузки системы.
  • Неудобство пользователя: Сложность в использовании и невозможность удаления ненужных компонентов.
  • увеличение риска взлома Раздувание программного обеспечения может привести к большему количеству уязвимостей
  • уменьшение надежности работы

Риск безопасности

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

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

Раздутое ПО как уязвимость

Хотя вредоносное ПО не является разновидностью вредоносного ПО и не предназначено для вредоносных целей, оно может непреднамеренно создавать некоторые уязвимости и повышать риск заражения компьютера пользователя компьютерными вирусами или программами-вымогателями

Противодействие раздуванию

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

В 2014 году Южная Корея законодательно обязала разработчиков ПО для смартфонов обеспечить возможность принудительного удаления нежелательного раздутого ПО («unnecessary pre-installed bloatware»). Этот шаг был вызван участившейся практикой предварительной установки на смартфоны ненужного ресурсоемкого программного обеспечения, не поддающегося удалению стандартными средствами.

Вау!! 😲 Ты еще не читал? Это зря!

  • Программное обеспечение хлам
  • Функция ползучести
  • Легкое программное обеспечение
  • Минимализм (вычислительная техника)
  • Лопатообразная посуда
  • Гниль программного обеспечения
  • Программный пакет
  • Технический долг
  • Закон Вирта
  • Закон Завински о программной оболочке

Исследование, описанное в статье про раздутое программное обеспечение, подчеркивает ее значимость в современном мире. Надеюсь, что теперь ты понял что такое раздутое программное обеспечение, bloatware, fatware, elephantware и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Разработка программного обеспечения и информационных систем

создано: 2025-01-14
обновлено: 2025-01-15
24



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Разработка программного обеспечения и информационных систем

Термины: Разработка программного обеспечения и информационных систем