domingo, 16 de febrero de 2014

Leyes de Lehman

La dinámica de la evolución de los programas fue muy estudiado desde los años 70, este trabajo continuó en los 90's cuando Lehman y otros investigaron la importancia de la realimentación en los procesos de evolución.
Gracias a esto propusieron un conjunto de leyes concernientes a los cambios que sufren los sistemas. Señalan que son invariantes y ampliamente aplicables. 

1. Cambio continuado
Un programa que se usa en un entorno real necesariamente debe de cambiar o se volverá progresivamente menos útil en ese entorno. El mantenimiento es un proceso inevitable, a medida que el entorno del proceso cambia los requerimientos también, por lo que se entra en un momento donde el proceso de evolución se recicla. 
2. Complejidad creciente
A medida que el programa cambia va perdiendo su estructura original, ésta se va degradando y tiende a ser más compleja. La única forma de que esto no suceda es que se invierta en el mantenimiento preventivo. Obviamente esto implica más tiempo y más recursos de los que se habían contemplado en el presupuesto inicial. 
3. Evolución prolongada del programa
Los grandes sistemas tienen su propia dinámica que se establece en una etapa temprana del desarrollo. Esto determina las tendencias generales del proceso de mantenimiento y limita el número de cambios posibles en el sistema. 
4. Estabilidad organizacional 
El tiempo de vida de un programa, su velocidad de desarrollo es aproximadamente constante e independiente de los recurso que se le dediquen. A esto se le denomina estado saturado que significa que si existe un cambio en el personal o en los recursos asignados al sistema, éste tiene modificaciones imperceptibles en su evolución a largo plazo. 
5. Conservación de la familiaridad
Durante el tiempo de vida del sistema, el cambio incrementar es constante. Al añadir una nueva funcionalidad se le encontrarán nuevos defectos por lo que se sugiere que a los cambios que se la hagan se tengan contemplados los arreglos para los defectos que se podrían encontrar. 
6. Crecimiento continuado
La funcionalidad ofrecida por el sistema cambia constantemente (tiene que crecer) para mantener la satisfacción de los usuarios. 
7. Decremento de calidad
La calidad de los sistemas comenzará a disminuir a menos que dichos sistemas se adapten a los cambios que sufre su entorno. 
8. Realimentación del sistema
Los procesos de evolución incorporan sistemas de realimentación multiagente y multibucle y éstos deben de ser tratados como sistemas de realimentación para lograr una mejora significativa del producto. 

Las primeras cinco leyes fueron propuestas inicialmente, y la demás de agregaron con trabajos posteriores en donde se llega a la conclusión de que llegará un momento en que los usuarios estarán descontentos con el sistema que se analice si este no se adapta a las necesidades que vayan surgiendo en el entorno. 
______________________
  • Somerville I. (2005). Ingeniería de Software. Madrid, España: Pearson Educación S.A. 

No hay comentarios:

Publicar un comentario