MANTENIMIENTO Carrera de SistemasInformtica UMSS CochabambaBolivia Mgr Indira
MANTENIMIENTO Carrera de Sistemas&Informática UMSS: Cochabamba-Bolivia Mgr. Indira Camacho del Castillo Materia: Ingeniería de Software 1
MANTENIMIENTO Definición Es el conjunto de actividades que la empresa desarrolladora realiza sobre el software una vez que éste está siendo operado (después de la entrega), para cambiar el sistema, (corrección de codificación o diseño, introducir nuevos requerimientos, etc) Carrera de Sistemas&Informática UMSS: Cochabamba-Bolivia Mgr. Indira Camacho del Castillo Materia: Ingeniería de Software 2
TIPOS DE MANTENIMIENTO Mantenimiento Correctivo Mantenimiento Adaptativo Mantenimiento Perfectivo Mantenimiento Preventivo Carrera de Sistemas&Informática UMSS: Cochabamba-Bolivia Mgr. Indira Camacho del Castillo Materia: Ingeniería de Software 3
MANTENIMIENTO CORRECTIVO Consiste en modificar el sistema tras la detección de defectos, ambigüedades o errores. Carrera de Sistemas&Informática UMSS: Cochabamba-Bolivia Mgr. Indira Camacho del Castillo Materia: Ingeniería de Software 4
MANTENIMIENTO ADAPTATIVO Consiste en modificar el sistema para acomodarlo a cambios físicos del entorno. Carrera de Sistemas&Informática UMSS: Cochabamba-Bolivia Mgr. Indira Camacho del Castillo Materia: Ingeniería de Software 5
MANTENIMIENTO PERFECTIVO Consiste en mejorar el Software, , agregar funcionalidad adicional para cumplir con las nuevas necesidades/requerimientos de los usuarios/negocio. Carrera de Sistemas&Informática UMSS: Cochabamba-Bolivia Mgr. Indira Camacho del Castillo Materia: Ingeniería de Software 6
ESFUERZO DEDICADO A CADA TIPO DE MANTENIMIENTO Carrera de Sistemas&Informática UMSS: Cochabamba-Bolivia Mgr. Indira Camacho del Castillo Materia: Ingeniería de Software 7
Relación entre los tipos de Mantenimiento Carrera de Sistemas&Informática UMSS: Cochabamba-Bolivia Mgr. Indira Camacho del Castillo Materia: Ingeniería de Software 8
ACTIVIDADES DEL PROCESO DE MANTENIMIENTO (Sommerville) Carrera de Sistemas&Informática UMSS: Cochabamba-Bolivia Mgr. Indira Camacho del Castillo Materia: Ingeniería de Software 9
EVOLUCIÓN DE SOFTWARE La evolución del software implica un mantenimiento del mismo durante el ciclo de vida del software La evolución del SW es una garantía frente a su obsolescencia Los cambios continuos en los requisitos implican un proceso evolutivo Leyes de Lehman & Belady Carrera de Sistemas&Informática UMSS: Cochabamba-Bolivia Mgr. Indira Camacho del Castillo Materia: Ingeniería de Software 10
OBJETIVOS DE LA EVOLUCIÓN DE SOFTWARE Mantener operativo al sistema Mantener contentos a los usuarios Maximizar la inversión y reducir costes Alargar la vida del software Adaptarlo a nuevos cambios o requisitos Carrera de Sistemas&Informática UMSS: Cochabamba-Bolivia Mgr. Indira Camacho del Castillo Materia: Ingeniería de Software 11
Lehman and Belady (1985) Primera Ley: cambio continuo: Cada vez menos útil Mantenimiento es inevitable Segunda Ley: el incremento de la complejidad: Estructura más compleja más costos Tercera Ley: la evolución de los programas grandes: Proceso autorregulado. a) tamaño , b)tiempo, c)Nro. De errores reportados, son invariantes para cada entrega del sistema. (actúan como una masa inerte) Cuarta Ley: Estabilidad organizacional: Tiempo de vida y la tasa de desarrollo son aproximadamente constantes e independiente de los recursos asignados al desarrollo. (eq. grandes improductivos o cambiar equipo) Quinta Ley: Conservación de la familiaridad: Durante la vida de un sistema el cambio incremental en cada entrega es aproximadamente constante, semejantes. Las leyes son importantes porque sirven de base para planificar y Carrera de Sistemas&Informática UMSS: Cochabamba-Bolivia Mgr. Indira Camacho del Castillo Materia: Ingeniería de Software 12
MEDIDAS DE MANTENIBILIDAD La medida más común dependiente del entorno es el tiempo medio para realizar un cambio: • Número de problemas no resueltos • Tiempo empleado en problemas no resueltos • Porcentaje de cambios que introducen fallos Carrera de Sistemas&Informática UMSS: Cochabamba-Bolivia Mgr. Indira Camacho del Castillo Materia: Ingeniería de Software 13
COSTOS DE MANTENIMIENTO Y LOS COSTOS DE DESARROLLO Carrera de Sistemas&Informática UMSS: Cochabamba-Bolivia Mgr. Indira Camacho del Castillo Materia: Ingeniería de Software 14
COSTOS DE DESARROLLO DE UN SISTEMA Costos directos : desarrollo del sistema Costos indirectos: instalación, mantenimiento Carrera de Sistemas&Informática UMSS: Cochabamba-Bolivia Mgr. Indira Camacho del Castillo Materia: Ingeniería de Software 15
Costos Lientz & Swason: sugieren que el 50% de su esfuerzo es lo que normalmente se gasta en mantener programas otros autores sugieren que se llega a gastar hasta un 80% Carrera de Sistemas&Informática UMSS: Cochabamba-Bolivia Mgr. Indira Camacho del Castillo Materia: Ingeniería de Software 16
Carrera de Sistemas&Informática UMSS: Cochabamba-Bolivia Mgr. Indira Camacho del Castillo Materia: Ingeniería de Software 17
COSTOS DE MANTENIMIENTO Una gran cantidad del software actual es muy antiguo Sucesivas migraciones a distintas plataformas o sistemas operativos. Múltiples modificaciones para mejorarlos y adaptarlos a las necesidades de los usuarios. Cambios incontrolados no tienen en cuenta la arquitectura del sistema, no se realizó ingeniería inversa o reingeniería. Carrera de Sistemas&Informática UMSS: Cochabamba-Bolivia Mgr. Indira Camacho del Castillo Materia: Ingeniería de Software 18
Factores de costos de mantenimiento Factores Técnicos Independencia de módulos Factores no técnicos Dominio de la aplicación Si la aplicación tiene requerimientos claros Se Las modificaciones solo afectan a una parte del programa. necesita poco mantenimiento adaptativo. Si la aplicación es nueva , generalmente se exigen modificaciones sobre la marcha. Lenguaje de programación Estabilidad del staff Cuanto más alto del nivel del lenguaje de programación, ¡Costo de mantenimiento es más económico si el mismo que más fácil realizar el mantenimiento. desarrolló el sistema es también quién realiza el mantenimiento Estilo de programación Tiempo de vida (edad) del programa. Cuanto más entendible el estilo de programación, el El tiempo de vida depende de aplicación. Si la aplicación es mantenimiento es menos costoso. obsoleta o nuevo hardware ya se desarrolló, entonces el programa también es obsoleto. De manera general los costos crecen con el tiempo de vida de los programas, a más tiempo de vida más costos. Validación del programa Entorno del programa Cuanto menos errores, entonces menos requerimientos Cuanto más dependiente del entorno de la de mantenimiento. organización entonces se requiere más modificaciones. Documentación Estabilidad del hardware Cuanto más documentado el programa este es más Si el programa es para un hardware en particular entonces entendible y por lo tanto más fácil de mantener. requiere más modificaciones. Carrera de Sistemas&Informática UMSS: Cochabamba-Bolivia Mgr. Indira Camacho del Castillo Materia: Ingeniería de Software 19
REINGENIERIA Carrera de Sistemas&Informática UMSS: Cochabamba-Bolivia Mgr. Indira Camacho del Castillo Materia: Ingeniería de Software 20
¿Porqué es necesario? arreglo A 790 arreglo A 812 nuevo requerimiento V 1. 2 a Carrera de Sistemas&Informática UMSS: Cochabamba-Bolivia Arquitectura 1. 0 Mgr. Indira Camacho del Castillo V 1. 2 Materia: Ingeniería de Software 21
Resistencia al cambio arreglo A 790 arreglo A 812 nuevo requerimiento r Carrera de Sistemas&Informática UMSS: Cochabamba-Bolivia Mgr. Indira Camacho del Castillo Materia: Ingeniería de Software V 1. 2 Arquitectu a 1. 0 V 1. 2 a 22
Reingeniería: ¿Porqué es necesario? Alto costo de mantenimiento, porque la estructura de los sistemas se modifica: • Puede no existir • No es obvia para el lector • Continuos mantenimientos puede haber corroido la estructura original y no es discernible. arreglo A 790 arreglo A 812 nuevo requerimiento Mgr. Indira Camacho del Castillo V 1. 2 Carrera de Sistemas&Informática UMSS: Cochabamba-Bolivia Arquitectu a 1. 0 r V 1. 2 a Materia: Ingeniería de Software 23
MANTENIMIENTO PREVENTIVO Llamado también reingeniería Consiste en hacer cambios al software a fin de que se pueda corregir, adaptar y mejorar fácilmente LA REESTRUCTURACIÓN (parcial/completa) Vs. RESCRIBIR TODO EL PROGRAMA Carrera de Sistemas&Informática UMSS: Cochabamba-Bolivia Mgr. Indira Camacho del Castillo Materia: Ingeniería de Software 24
PROCESO DE REINGENIERÍA Esta actividad involucra examinar partes del programa y su reescritura para MEJORAR su ESTRUCTURA Reformatear programa Identificar abstracciones de datos Carrera de Sistemas&Informática UMSS: Cochabamba-Bolivia Asignar nombres significativos Mgr. Indira Camacho del Castillo Simplificar condiciones Quitar goto Materia: Ingeniería de Software Quitar código extraño 25
Relaciones Carrera de Sistemas&Informática UMSS: Cochabamba-Bolivia Mgr. Indira Camacho del Castillo Materia: Ingeniería de Software 26
¿CUANDO APLICAR REINGENIERÍA? Componentes con tasa de fallas alta Componentes con altos índices de cambios anuales Componentes con alta complejidad. Componentes que no están dentro los estándares de la compañía. Carrera de Sistemas&Informática UMSS: Cochabamba-Bolivia Mgr. Indira Camacho del Castillo Materia: Ingeniería de Software 27
The End Carrera de Sistemas&Informática UMSS: Cochabamba-Bolivia Mgr. Indira Camacho del Castillo Materia: Ingeniería de Software 28
- Slides: 28