Русская Википедия:Вязкость (программирование)

Материал из Онлайн справочника
Версия от 16:27, 10 августа 2023; EducationBot (обсуждение | вклад) (Новая страница: «{{Русская Википедия/Панель перехода}} {{другие значения|Вязкость (значения)}} '''Вя́зкость''' — отрицательное качество программного кода (или среды разработки), один из признаков плохого проектирование...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

Шаблон:Другие значения Вя́зкость — отрицательное качество программного кода (или среды разработки), один из признаков плохого проектирования, выражающихся в пониженной податливости программной системы изменениям (Шаблон:Lang-en).

Определение

О вязкости программного обеспечения говорят, когда внесение изменений, относящихся к некоторому аспекту программной системы, без нарушения заложенных в проект принципов связано с большими затратами времени и усилийШаблон:SfnШаблон:Sfn. Сниженные возможности изменения могут быть вызваны: сложностью выделения компонентов, затрагиваемых изменениями; непропорциональным объёмом необходимых модификаций в сравнении с объёмом изменений в требованиях к ПО; глубоким влиянием изменений на систему в целомШаблон:Sfn.

В процессе разработки и сопровождения программного обеспечения вязкость ставит программистов перед выбором: сохранить ли первоначальные проектные решения при реализации нового требования или же нарушить их, используя «хакерские приёмы» и следуя путём «наименьшего сопротивления»Шаблон:Sfn. Из-за нехватки времени и непонимания проекта первоначальный замысел нарушается всё чащеШаблон:Sfn.

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

В языках программирования и других системах для нотации, исследователи Томас Грин и Мариан Петре выделяют вязкость в качестве одного из когнитивных измерений. При этом вязкость подразделяется на кумулятивную (Шаблон:Lang-en), отражающую степень, в которой одно изменение вызывает другие для восстановления согласованности кода, и повторительную (Шаблон:Lang-en), выражающуюся как «сопротивление изменениям». Так, при сравнении вязкости декларативных и процедурных языков программирования выяснилось, что Бейсик имеет низкую повторительную вязкость по сравнению с Прологом. С кумулятивной вязкостью ситуация оказалась обратной. Было показано, что вязкость вызывается целым набором разнонаправленных факторов, а сама вязкость относится как к используемой нотации (коду), так и к используемому инструментарию[1].

Близкие понятия

Помимо вязкости, существуют и другие близкие, но не эквивалентные ей особенности программного обеспечения, препятствующие внесению изменений.

  • Жёсткость (Шаблон:Lang-en — «закрепощённость») Шаблон:Sfn программного обеспечения проявляется, когда в систему сложно вносить изменения сразу по многим направлениям.
  • Неустойчивость (Шаблон:Lang-en — «хрупкость») Шаблон:Sfn проявляется, когда незначительное изменение в одной части может вызвать несколько проблем в других частях, даже напрямую не связанных с изменённым компонентомШаблон:Sfn.

См. также

Примечания

Шаблон:Примечания

Литература

Ссылки