Jump to content

Ползучесть функций

(Перенаправлено с ловушки сложности )

Расползание функций — это чрезмерное постоянное расширение или добавление новых функций в продукт. [1] особенно в компьютерном программном обеспечении , видеоиграх (где его не следует путать с Power Creep ), а также в бытовой и деловой электронике . Эти дополнительные функции выходят за рамки основных функций продукта и могут привести к раздуванию и чрезмерному усложнению программного обеспечения, а не к простоте дизайна.

Определение того, что квалифицируется как «ползучесть функций», различается среди конечных пользователей : то, что воспринимается как таковое одними пользователями, может считаться практической функциональностью другими. [2] Расползание функций — один из наиболее распространенных источников перерасхода средств и сроков. [3] [ нужна проверка ] Таким образом, это ставит под угрозу и даже может уничтожить продукты и проекты.

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

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

Контроль

[ редактировать ]

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

Разделение

[ редактировать ]

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

Вариации и варианты

[ редактировать ]

Другой метод контроля расползания функций — это поддержка нескольких вариантов продуктов, при этом функции ограничены и сокращены в более простых вариантах, например, в выпусках Microsoft Windows . Для пользовательских интерфейсов программного обеспечения могут использоваться режимы просмотра или режимы работы (например, базовый режим или экспертный режим), между которыми пользователи могут выбирать в соответствии со своими потребностями.

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

Поскольку постоянно растущее и постоянно расширяющееся добавление новых функций может превысить доступные ресурсы, минимальную базовую «базовую» версию продукта можно поддерживать отдельно, чтобы обеспечить работу в небольших операционных средах. Используя « правило 80/20 », более базовые варианты продукта могут удовлетворить потребности большинства (например, ~80%) пользователей, поэтому они не будут подвергаться сложности (или дополнительным затратам) функций, запрошенных пользователем. продвинутые 20% пользователей. Дополнительные функции по-прежнему доступны, но не являются обязательными и готовы к использованию теми, кто их запрашивает, но они не были реализованы в базовых версиях продуктов.

Модульность

[ редактировать ]

Еще одним решением проблемы расползания функций является модульность . Опытные пользователи, которым требуется больше функций, могут модернизировать необходимые функции, загрузив программные модули, плагины , надстройки (также известные как надстройки) и пользовательские темы в соответствии со своими личными требованиями.

В какой-то момент стоимость поддержки определенного подмножества функций может стать непомерно высокой, и можно будет использовать сокращение. В новой версии продукта могут отсутствовать дополнительные функции или, возможно, будет использоваться переходный период, когда старые функции устареют до возможного удаления из системы. Если существует несколько вариантов продуктов, некоторые из них могут быть выведены из употребления. Одним из основных примеров является Samsung Galaxy S6 , выпущенный в марте 2015 года, в котором были значительно урезаны многие функции программного обеспечения/меню, а также некоторые аппаратные функции. Более «функциональная» версия не была выпущена. [ нужна ссылка ]

Последствия

[ редактировать ]

Расширение сферы применения

[ редактировать ]

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

Задержки

[ редактировать ]

Часто программный проект с достаточно полным набором функций или с умеренным количеством функций может выжить и даже процветать в течение многих итераций, но его последующий выпуск может столкнуться со значительными задержками, когда будет принято решение переписать всю базу кода в дополнение к внедрение новых технологий. Например, Windows Vista от Microsoft планировалась как второстепенная версия между Windows XP и ее преемником под кодовым названием Windows «Blackcomb» (выпущенная как Windows 7), но после адаптации все большего количества функций Blackcomb (многие из которых в конечном итоге были отменены), Vista оказался крупным релизом, на разработку которого ушло пять лет.

Похожая участь постигла Netscape 6 , который изначально должен был называться Netscape 5 . Решение Netscape Communications в 1998 году открыть исходный код своего браузера Netscape Navigator и интернет-пакета Communicator (оба под кодовым названием Mozilla) вскоре сделало очевидным, что базовый код слишком сложен и потребовал полного переписывания Mozilla, что способствовало созданию платформа приложений Mozilla . Это вызвало значительные задержки, Netscape 5 был пропущен, а компания была куплена AOL. Последующий выпуск Netscape 6.00 в 2000 году подвергся широкой критике как код альфа-уровня, и проект достиг стабильности в Netscape 6.1 в 2001 году, через три года после решения переработать пакет Интернета. К тому времени браузер Microsoft Internet Explorer уже давно затмил Netscape по доле использования, которая снизилась до однозначных цифр.

с открытым исходным кодом Даже после достижения стабильности и приобретения некоторых необходимых новых функций пакет приложений Mozilla (тогда называвшийся просто Mozilla), на основе которого AOL создала Netscape, считался « раздутым ». Всего год спустя группа разработчиков Mozilla решила отделить компонент браузера, которым в итоге стал Firefox .

от Double Fine Adventures на Kickstarter Проект Broken Age — еще один пример задержки проекта из-за увеличения количества функций. Первоначально предполагалось, что дата выпуска — октябрь 2012 года, первая половина игры была выпущена в январе 2014 года, а вторая половина — в конце апреля 2015 года, и для завершения потребовалось два отдельных раунда финансирования. [6]

Страшный креатуризм

[ редактировать ]

Расползание функций в сочетании с короткими сроками часто приводит к «хакерскому решению» . Желаемые изменения могут быть достаточно значительными, чтобы оправдать перепроектирование существующей основы проекта, но вместо этого сжатые сроки вынуждают разработчиков спешить и выпускать менее усовершенствованный продукт. Спунеризм «плачущий креатуризм» был придуман , чтобы подчеркнуть неприязнь разработчика к этой ситуации. [7] олицетворяя продукт, выползший из сферы применения, как «уродливое существо хакеров… бродящее в темноте», [8] и предвестник еще большей ползучести. [9] («Пипинг» — это жаргонный синоним слова «пиканье».) [10]

См. также

[ редактировать ]
  1. ^ Дж. М. Салливан (8–10 июня 2005 г.). «Препятствия и стимулы для автоматизации в ВВС». Слушания. Международный симпозиум 2005 г. по технологиям и обществу, 2005 г. Оружие и провода: профилактика и безопасность во времена страха. ИСТАС 2005 . стр. 101–110. дои : 10.1109/ISTAS.2005.1452719 . ISBN  0-7803-9284-1 . S2CID   21079766 .
  2. ^ Фиатурит (или ползучий фиатуризм) . Январь 2024 г.
  3. ^ Дэвис, Флорида; Венкатеш, В. (февраль 2004 г.), «На пути к приемочному тестированию новых информационных систем пользователем перед прототипом: последствия для управления проектами программного обеспечения», IEEE Transactions on Engineering Management , 51, 51 (1): 31–46, doi : 10.1109/TEM. 2003.822468 , ISSN   0018-9391 , S2CID   1204079
  4. ^ Кристаллис, Илиас; Локателли, Джорджио (01 сентября 2022 г.). «Нормализация правонарушений «белых воротничков» в фирмах, оказывающих профессиональные услуги» . Журнал менеджмента в машиностроении . 38 (5): 04022049. doi : 10.1061/(ASCE)ME.1943-5479.0001079 . hdl : 11311/1228318 . ISSN   1943-5479 . S2CID   250326876 .
  5. ^ Кеннет С. Нортон (2001), «Применение межфункциональных эволюционных методологий к веб-разработке» , статья в журнале «Веб-инженерия: управление разнообразием и сложностью Интернета», опубликованная Springer, ISBN.  3-540-42130-0
  6. Double Fine делит Broken Age пополам, чтобы профинансировать завершение , Крис Лигман, 2 июля 2013 г., Gamasutra
  7. ^ Feping Creaturism , 27 мая 2016 г., FOLDOC.org - Бесплатный онлайн-словарь по информатике
  8. ^ Раймонд, Эрик С.; и др. (29 декабря 2003 г.). «плачущий креатуризм» . Файл жаргона . Вер. 4.4.7 . Проверено 20 июня 2017 г.
  9. ^ Раймонд, Эрик С.; и др. (29 декабря 2003 г.). «плачущее существо» . Файл жаргона . Вер. 4.4.7 . Проверено 20 июня 2017 г.
  10. ^ Раймонд, Эрик С.; и др. (29 декабря 2003 г.). «фип» . Файл жаргона . Вер. 4.4.7 . Проверено 20 июня 2017 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 5799c4653b2ddb94d045684770a145c6__1714016520
URL1:https://arc.ask3.ru/arc/aa/57/c6/5799c4653b2ddb94d045684770a145c6.html
Заголовок, (Title) документа по адресу, URL1:
Feature creep - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)