1 mantenimiento. 2 mantenimiento definición es el conjunto de actividades que la empresa...
TRANSCRIPT
1
MANTENIMIENTO
2
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)
3
TIPOS DE MANTENIMIENTO
Mantenimiento CorrectivoMantenimiento AdaptativoMantenimiento PerfectivoMantenimiento Preventivo
4
MANTENIMIENTO CORRECTIVO
Consiste en modificar el sistema tras la detección de defectos, ambigüedades o errores.
5
MANTENIMIENTO ADAPTATIVO
Consiste en modificar el sistema para acomodarlo a cambios físicos del entorno.
6
MANTENIMIENTO PERFECTIVO
Consiste en mejorar el Software,,agregar funcionalidad adicional para cumplir con las nuevas necesidades/requerimientos de los usuarios/negocio.
7
ESFUERZO DEDICADO A CADA TIPO DE MANTENIMIENTO
8
Relación entre los tipos de Mantenimiento
9
ACTIVIDADES DEL PROCESO DE MANTENIMIENTO (Sommerville)
10
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
11
OBJETIVOSDE LA EVOLUCIÓN DE SOFTWAREMantener operativo al sistemaMantener contentos a los usuariosMaximizar la inversión y reducir costesAlargar la vida del softwareAdaptarlo a nuevos cambios o
requisitos
12
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 administrar el proceso de mantenimiento.
13
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
14
COSTOS DE MANTENIMIENTO Y LOS
COSTOS DE DESARROLLO
15
COSTOS DE DESARROLLO DE UN SISTEMA
Costos directos : desarrollo del sistema
Costos indirectos: instalación, mantenimiento
16
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%
17
0 100 200 300 400 500 600 700 800 900
Sistema 1
Sistema 2
Costos de Mantenimiento Vs. Costos de Desarrollo
Costos desarrollo Costos Mantenimiento
720220
200 800
18
COSTOS DE MANTENIMIENTOUna gran cantidad del software actual es
muy antiguoSucesivas 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.
19
Factores de costos de mantenimiento
Factores Técnicos Factores no técnicos
Independencia de módulosLas modificaciones solo afectan a una parte del programa.
Dominio de la aplicaciónSi la aplicación tiene requerimientos claros Se
necesita poco mantenimiento adaptativo. Si la aplicación es nueva , generalmente se exigen modificaciones sobre la marcha.
Lenguaje de programaciónCuanto más alto del nivel del lenguaje de programación, más fácil realizar el mantenimiento.
Estabilidad del staff¡Costo de mantenimiento es más económico si el mismo que desarrolló el sistema es también quién realiza el mantenimiento
Estilo de programaciónCuanto más entendible el estilo de programación, el mantenimiento es menos costoso.
Tiempo de vida (edad) del programa.El tiempo de vida depende de aplicación. Si la aplicación es 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 programaCuanto menos errores, entonces menos requerimientos de mantenimiento.
Entorno del programaCuanto más dependiente del entorno de la
organización entonces se requiere más modificaciones.
DocumentaciónCuanto más documentado el programa este es más entendible y por lo tanto más fácil de mantener.
Estabilidad del hardwareSi el programa es para un hardware en particular entonces requiere más modificaciones.
20
REINGENIERIA
21
¿Porqué es necesario?
V 1.2aV 1.2a V 1.2V 1.2
nuevo requerimientonuevo requerimiento
arreglo A812arreglo A812
arreglo A790arreglo A790
Arquitectura 1.0Arquitectura 1.0
22
Resistencia al cambio
V 1.2aV 1.2a ArquitectuArquitectu
nuevo requerimientonuevo requerimiento
arreglo A812arreglo A812
arreglo A790arreglo A790
V 1.2V 1.2
a 1.0r
23
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.
V 1.2aV 1.2a ArquitectuArquitectu
nuevo requerimientonuevo requerimiento
arreglo A812arreglo A812arreglo A790arreglo A790
V 1.2V 1.2
a 1.0r
24
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
25
PROCESO DE REINGENIERÍAEsta actividad involucra examinar
partes del programa y su reescritura para MEJORAR su ESTRUCTURA
Reformatear programa
Identificar abstracciones
de datos
Asignar nombres
significativos
Simplificar condiciones
Quitar goto
Quitar código extraño
26
Relaciones
27
¿CUANDO APLICAR REINGENIERÍA?
Componentes con tasa de fallas altaComponentes con altos índices de
cambios anualesComponentes con alta complejidad.Componentes que no están dentro los
estándares de la compañía.
28
The End