Viscosidad (programación)

Viscosidad  : la calidad negativa del código del programa (o entorno de desarrollo ), uno de los signos de un diseño deficiente , expresado en la susceptibilidad reducida del sistema de software al cambio ( cambiabilidad en inglés  ).

Definición

Se dice que la viscosidad del software cuando se realizan cambios relacionados con algún aspecto del sistema de software, sin violar los principios establecidos en el proyecto, se asocia con una gran inversión de tiempo y esfuerzo [1] [2] . La capacidad de cambio reducida puede ser causada por: la dificultad de aislar los componentes afectados por los cambios; cantidad desproporcionada de modificaciones requeridas en comparación con la cantidad de cambios en los requisitos del software ; profundo impacto de los cambios en el sistema como un todo [3] .

En el proceso de desarrollo y mantenimiento de software, la viscosidad pone a los programadores frente a una elección: si mantener las decisiones de diseño originales al implementar un nuevo requisito, o romperlas usando "técnicas de piratería" y siguiendo el camino de "menor resistencia" [ 2] . Debido a la falta de tiempo y la falta de comprensión del proyecto, el plan original se viola cada vez más a menudo [1] .

La viscosidad puede estar relacionada no solo con el software en sí, sino también con el entorno de desarrollo. Un entorno de desarrollo lento e ineficiente puede obstaculizar el enfoque correcto y obligarlo a recurrir a prácticas cuestionables. Los factores que afectan la viscosidad de un medio pueden incluir el proceso de desarrollo , los procedimientos de reutilización de código , las restricciones organizacionales y legales [2] .

En lenguajes de programación y otros sistemas de notación, los investigadores Thomas Green y Marian Petre distinguen la viscosidad como una de las dimensiones cognitivas . Al mismo tiempo, la viscosidad se divide en acumulativa ( eng.  knock-on ), que refleja el grado en que un cambio hace que otros restablezcan la consistencia del código, y repetitiva ( ing.  repetitive ), expresada como "resistencia a los cambios". Entonces, al comparar la viscosidad de los lenguajes de programación declarativos y procedimentales, resultó que BASIC tiene una viscosidad iterativa baja en comparación con Prolog . Con la viscosidad acumulada, la situación se invirtió. Se ha demostrado que la viscosidad es causada por un conjunto completo de factores multidireccionales, y la viscosidad misma se refiere tanto a la notación (código) utilizada como al conjunto de herramientas utilizado [4] .

Conceptos relacionados

Además de la viscosidad, existen otras características de software similares pero no equivalentes que evitan cambios.

Véase también

Notas

  1. 1 2 3 Amra y otros, 2014 .
  2. 1 2 3 Suryanarayana, Samarthyam, Sharma, 2014 .
  3. Spinellis, 2006 .
  4. Rinderle-Ma, S. and Sadiq, S. and Leymann, F. Business Process Management Workshops: BPM 2009 International Workshops, Ulm, Alemania, 7 de septiembre de 2009, Documentos revisados. - Springer, 2010. - Pág. 480. - ISBN 9783642121852 .
  5. Martin, Newkirk, Koss, 2004 , pág. 151.
  6. Martin, Newkirk, Koss, 2004 , pág. 152.

Literatura

Enlaces