Vâscozitate - calitatea negativă a codului programului (sau a mediului de dezvoltare ), unul dintre semnele unui design slab , exprimat în susceptibilitatea redusă a sistemului software la schimbare ( schimbabilitatea engleză ).
Se spune că vâscozitatea software-ului este atunci când se efectuează modificări legate de un anumit aspect al sistemului software, fără a încălca principiile stabilite în proiect, este asociată cu o mare investiție de timp și efort [1] [2] . Capacitatea redusă de schimbare poate fi cauzată de: dificultatea de a izola componentele afectate de modificări; cantitatea disproporționată de modificări necesare în comparație cu cantitatea de modificări ale cerințelor software ; impactul profund al schimbărilor asupra sistemului în ansamblu [3] .
În procesul de dezvoltare și întreținere a software-ului, vâscozitatea îi pune pe programatori în fața unei alegeri: dacă să păstreze deciziile de proiectare originale atunci când implementează o nouă cerință, sau să le rupă folosind „tehnici de hacking” și urmând calea „cel mai puțină rezistență” [ 2] . Din lipsă de timp și lipsă de înțelegere a proiectului, planul inițial este încălcat din ce în ce mai des [1] .
Vâscozitatea poate fi legată nu numai de software-ul în sine, ci și de mediul de dezvoltare. Un mediu de dezvoltare ineficient și lentă vă poate împiedica abordarea corectă și vă poate obliga să recurgeți la practici discutabile. Factorii care afectează vâscozitatea unui mediu pot include procesul de dezvoltare , procedurile de reutilizare a codului , constrângerile organizatorice și legale [2] .
În limbajele de programare și alte sisteme de notare, cercetătorii Thomas Green și Marian Petre disting vâscozitatea ca una dintre dimensiunile cognitive . În același timp, vâscozitatea este împărțită în cumulativ ( ing. knock-on ), reflectând gradul în care o schimbare îi determină pe alții să restabilească consistența codului și repetitivă ( ing. repetitive ), exprimată ca „rezistență la schimbări”. Deci, când se compară vâscozitatea limbajelor de programare declarative și procedurale, s-a dovedit că BASIC are o vâscozitate iterativă scăzută în comparație cu Prolog . Cu vâscozitatea cumulativă, situația s-a inversat. S-a demonstrat că vâscozitatea este cauzată de un întreg set de factori multidirecționali, iar vâscozitatea în sine se referă atât la notația (codul) folosită, cât și la trusa de instrumente utilizată [4] .
Pe lângă vâscozitate, există și alte caracteristici software similare, dar nu echivalente, care împiedică modificările.