Ir al contenido

Leyes de Lehman de la evolución del software

De Wikipedia, la enciclopedia libre
(Redirigido desde «Leyes de evolución del software»)

En ingeniería del software, las Leyes de evolución del software, o simplemente leyes de Lehman se refieren a una serie de leyes empíricas que Lehman y Belady formularon, basados en trabajos que comenzaron en 1974, con respecto a la evolución del software.[1][2]​ Las leyes describen el balance entre las fuerzas que impulsan nuevos desarrollos, y las fuerzas que ralentizan el proceso.

Leyes de Lehman[editar]

  1. Cambio continuo: Un programa que se usa en un entorno real necesariamente debe cambiar o se volverá progresivamente menos útil y menos satisfactorio para el usuario.[3]
  2. Complejidad creciente: A medida que un programa en evolución cambia, su estructura tiende a ser cada vez más compleja. Se deben dedicar recursos extras para preservar y simplificar su estructura.[3]
  3. Autorregulación La evolución de los programas es un proceso autorregulado. Los atributos de los sistemas, tales como tamaño, tiempo entre entregas y la cantidad de errores documentados son aproximadamente invariantes para cada entrega del sistema.[3]
  4. Estabilidad organizacional: Durante el tiempo de vida de un programa, su velocidad de desarrollo es aproximadamente constante e independiente de los recursos dedicados al desarrollo del sistema.[3]
  5. Conservación de la familiaridad: A medida que un sistema evoluciona también todo lo que está asociado a ello, como los desarrolladores, personal de ventas, y usuarios por ejemplo, deben mantener un conocimiento total de su contenido y su comportamiento para lograr una evolución satisfactoria.Un crecimiento exagerado disminuye esta capacidad. Por tanto este incremento promedio debe mantenerse.[3]
  6. Crecimiento continuo: La funcionalidad ofrecida por los sistemas tiene que crecer continuamente para mantener la satisfacción de los usuarios.
  7. Decremento de la calidad: La calidad de los sistemas software comenzará a disminuir a menos que dichos sistemas se adapten a los cambios de su entorno de funcionamiento.[3]
  8. Retroalimentación del sistema: Los procesos de evolución incorporan sistemas de retroalimentación multi-agente y multi-ciclo y estos deben ser tratados como sistemas de retroalimentación para lograr una mejora significativa del producto.[3]

Véase también[editar]

Referencias[editar]

  1. Lehman, Meir M. (1980). «Programs, Life Cycles, and Laws of Software Evolution». Proc. IEEE 68 (9): 1060-1076. 
  2. Lehman, M. M.; J. F. Ramil, P. D. Wernick, D. E. Perry, and W. M. Turski (1997). «Metrics and laws of software evolution—the nineties view». Proc. 4th International Software Metrics Symposium (METRICS '97). pp. 20-32. doi:10.1109/METRIC.1997.637156. 
  3. a b c d e f g Lehman, M. M. (1980). «On Understanding Laws, Evolution, and Conservation in the Large-Program Life Cycle». Journal of Systems and Software 1: 213-221. doi:10.1016/0164-1212(79)90022-0.