cuanto mas complejo es un componente o sistema, mas caro es de mantener
Leyes de Lehman sobre evolucion de los sistemas.
- Cambio Continuado: un programa usado en un entorno real necesariamente debe cambiar o se volvera progresivamente menos util en ese entorno.
- Complejidad creciente: a medida que un programa en evolucion cambia, su estructura tiende a ser cada vez mas compleja.
- Evolucion prolognada del programa: sugiere que los grandes sistemas tienen su propia dinamica que se establece en una etapa temprana en el proceso de desarrollo. Esta determina las tendencias generales del proceso de mantenimiento del sistema y limita el numero de posibles cambios en el sistema.
- Estabilidad organizacional: la mayoria de los proyectos de programacion grandes trabajan en lo que se denomina un estado saturado. Un cambio en los recursos o en eel personal tiene efectos imperceptibles en la evolucion a largo plazo del sistema.
- Conservacion de la familiaridad: durante el tiempo de vida de un sistema, el cambio incremental en cada entrega es aproximadamente constante.
- Crecimiento continuado: la funcionalidad ofrecida por los sistemas tiene que crecer continuamente paraa mantener la satisfaccion de los usuarios.
- Decremento de la calidad: la calidad de los sistemas comenzara a disminuir a menos que dichos sistemas se adapten a los cambios en su entorno de funcionamiento.
- Realimentacion del sistema: los procesos de evolucion incorporan sistemas de realimentacion multiagente y multibucle y estos deben ser tratados como sistemas de realimentacion para lograr una mejora significativa del producto.
Mantenimiento del software
Es el proceso general de cambiar un sistema despues de que este ha sido entregado.
- Mantenimiento corrrectivo o para reparar defectos del software.
- Mantenimiento adaptativo o para adaptar el software a diferentes entornos operativos.
- Mantenimiento perfectivo o para aniadir o modificar las funcionalidades del sistema.
Los costos claves que distinguen el desarrollo del mantenimiento y conducen a costos de mantenimiento mas elevados, son:
- Estabilidad del equipo: usualmente el equipo de desarrollo se disuelve luego de entregar el programa y un nuevo equipo toma el mantenimiento.
- Responsabilidad contractual: usualmente los desarrolladores no toman decisiones para contemplar el mantenimiento.
- Habilidades del personal: se relega el mantenimiento a principiantes y gente no familiarizada con el dominio de la aplicacion.
- Edad y estructura del programa: Aveces no se desarrollan las aplicaciones con tecnicas de ingenieria de software, no bien estructurados y a medida que pasa el tiempo la estructura tiende a degradarse con los cambios.
Predeccion del mantenimiento
Se deberia intentar predecir que cambios del sistema son probables y que partes del sistema son probablemente los mas dificiles de mantener. Tambien se deberia predecir los costos de mantenimiento durante un periodo de tiempo determinado. Estas predicciones dependen de:
- la aceptacion o no de un cambio en el sistema depende de la mantenibilidad de los componentes del sistema afectados por el cambio.
- la implementacion de los cambios del sistema tiende a degradarlo y por lo tanto reduce su mantenibilidad.
- los costos del mantenimiento dependen del numero de cambio y los costos de la implementacion dependen de la mantenibilidad de los componentes del sistema.
La prediccion del numero de peticiones de cambios del sistema requiere entender la relacion entre el sistema y su entorno. Y para evaluar las relaciones entre un sistema y su entorno hay que tener en cuenta:
- el numero y la complejidad de las interfaces del sistema
- el numero de requerimientos del sistema intrinsecamente volatiles
- los procesos de negocios en los que se utiliza el sistema
Fuente: Ingenieria del Software de Ian Sommerville
Tags: facultad, ingenieria de software by gaba
No Comments »