Introducción
Durante la
evolución del software, podremos apreciar que se van presentando diversas problemáticas
principalmente cuando se le hacen mejoras o reparaciones al sistema tanto internos
(como cambios al código o al diseño, etc.), como externos (cambio de equipo de
trabajo, en el proceso de negocios, etc.). Por esta razón debemos estar conscientes
del proceso de evolución y nos apoyaremos estudiando las Leyes de Lehman.
Leyes de Lehman
La dinámica de evolución
de los programas es el estudio de los cambios del sistema. La mayor parte del
trabajo en esta área ha sido realizada por Lehman y Belady. A partir de estos
estudios, propusieron un conjunto se leyes empíricas (Las leyes de Lehman)
concernientes a los cambios y crecimiento de los sistemas tango grandes como
chicos. Las cinco primeras leyes fueron las propuestas iniciales de Lehman; las
leyes restantes fueron añadidas después de posteriores trabajos, dando como
resultado lo siguiente:
- Cambio continuado.
Un programa que se usa en un entorno real necesariamente debe cambiar o se volverá progresivamente menos útil en ese entorno.
- Complejidad creciente.
A medida que un programa en evolución cambia, su estructura tiende a ser cada vez más compleja. Se deben dedicar recurso extras para preservar y simplificar la estructura.
- Evolución prolongada del programa.
La evolución de los programas es un proceso autorregulativo. Los tributos de los sistemas, tales como tamaño, tiempo entre entregas y el número de errores documentados, son aproximadamente invariables para cada entrega del sistema.
Esto a su vez implica un aumento progresivo del esfuerzo de mantenimiento, a menos que se realice algún tipo de mantenimiento perfectivo a este respecto.
- Estabilidad organizacional.
Es importante la buena comunicación entre cada integrante del equipo de desarrollo para lograr una eficiencia mutua que se verá reflejada a lo largo de la evolución del sistema.
- Conservación de la familiaridad.
A medida que se realicen cambios, todos aquellos que estén asociados al sistema, deberán conocer dichos cambios y su impacto en el comportamiento y funcionalidad del mismo, para así seguirlo desarrollando eficientemente, por lo que es preferible realizar pequeños cambios a uno grande, sabiendo que dichos cambios traerán consigo, indudablemente, nuevos defectos.
- Crecimiento continuado.
La funcionalidad ofrecida por los sistemas tiene que crecer continuamente para mantener la satisfacción de los usuarios.
- Decremento de la calidad.
La calidad de los sistemas comenzará a disminuir a menos que dichos sistemas se adapten a los cambios en su entorno de funcionamiento.
- Realimentación del sistema.
El proceso de evolución del sistema y los cambios desarrollados toman como base la realimentación por parte de los usuarios realizada en diferentes niveles y de forma iterativa, para así satisfacer las necesidades que se presentan constantemente.
Conclusión
Lehman dio un
magnifico aporte a la Ingeniería de Software, puesto que sus leyes nos permiten
controlar cambios y fallas inesperados en el software. Si las consideramos
podremos crear un sistema con mayor calidad que efectivamente nos ayudará a
tener un mejor producto para nuestro cliente, evaluando futuros problemas que
se presenten al momento de dar mantenimiento o soporte.
Bibliografía
M.M, L. (1996). Laws of Software Evolution
Revisited. London: Springer Verlag.
Sicilia, M. A. (24 de Noviembre de 2008). Leyes
de la Evolución del Software. Recuperado el Febrero de 2013, de
Connexions: http://cnx.org/content/m17406/latest/
Sommerville, I. (2005). Ingeniería del
Software. Madrid: Pearson Eduacion.
No hay comentarios:
Publicar un comentario