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

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Вя́зкость — отрицательное качество программного кода (или среды разработки), один из признаков плохого проектирования, выражающихся в пониженной податливости программной системы изменениям (англ. changeability). О вязкости программного обеспечения говорят, когда внесение изменений, относящихся к некоторому аспекту программной системы, без нарушения заложенных в проект принципов связано с большими затратами времени и усилий[1][2]. Сниженные возможности изменения могут быть вызваны: сложностью выделения компонентов, затрагиваемых изменениями; непропорциональным объёмом необходимых модификаций в сравнении с объёмом изменений в требованиях к ПО; глубоким влиянием изменений на систему в целом[3]. В случае, когда в систему сложно вносить изменения сразу по многим направлениям, говорят о жёсткости («закрепощённости»[4]) программного обеспечения (англ. software rigidity). Другим проявлением плохой податливости изменениям, наряду с вязкостью и жёсткостью, является неустойчивость[5] (англ. fragility — хрупкость) . Изменение в одной части хрупкого программного обеспечения может вызвать несколько проблем в других частях, даже напрямую не связанных с изменённым компонентом[1].

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

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

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

Литература[править | править вики-текст]

  • Роберт С. Мартин, Джеймс В. Ньюкирк, Роберт С. Косс Быстрая разработка программ. Принципы, примеры, практика = Agile software development. Principles, Patterns, and Practices. — Вильямс, 2004. — 752 с. — ISBN 0-13-597444-5.
  • Suryanarayana, G. and Samarthyam, G. and Sharma, T. Refactoring for Software Design Smells: Managing Technical Debt. — Elsevier Science, 2014. — P. 14. — 258 p. — ISBN 9780128016466.
  • Spinellis, D. Code Quality: The Open Source Perspective. — Pearson Education, 2006. — P. 403. — 608 p. — ISBN 9780768685121.
  • Amra, N.K. and Bedoya, H. and Cairns, T. and Cruikshank, D. and Diedrich, R. and Eberhard, J. and Evans, M. and Florez, A. and Gantner, S. and Gorzinski, J. and others Modernizing IBM i Applications from the Database up to the User Interface and Everything in Between. — IBM Redbooks, 2014. — P. 30. — 720 p. — ISBN 9780738439860.

Ссылки[править | править вики-текст]