Лучшие вопросы
Таймлайн
Чат
Перспективы

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

Из Википедии, свободной энциклопедии

Remove ads

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

Определение

Суммиров вкратце
Перспектива

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

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

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

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

Remove ads

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

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

  • Жёсткость (англ. software rigidity — «закрепощённость») [5] программного обеспечения проявляется, когда в систему сложно вносить изменения сразу по многим направлениям.
  • Неустойчивость (англ. fragility — «хрупкость») [6] проявляется, когда незначительное изменение в одной части может вызвать несколько проблем в других частях, даже напрямую не связанных с изменённым компонентом[1].
Remove ads

См. также

Примечания

Литература

Ссылки

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads