Se trabaja sobre elementos mas avanzados sobre el mantenimiento del software, los problemas que se presentan por la poca rigurosidad de su proceso y los motivos por los cuales los programadores no están a gusto con realizar dicha actividad.
3. Efecto Iceberg
• Con los costos de mantenimiento se supone que se
debe esperar lo inesperado.
• Los costos intangibles son los que terminan
generando mayores gastos.
• Aquello que se deja de hacer más el tiempo que se
empleó, son costos poco considerados en el
mantenimiento.
4. Efecto Iceberg
• Costos intangibles significativos:
• Insatisfacción del cliente:
• Cuando no es posible de manera inmediata.
• Errores ocultos:
• Pequeñas modificaciones, introduce cambios que reducen la
calidad del software.
• Proyectos en espera:
• Que ocurre con los proyectos que se frenan por estar
realizando los mantenimientos?.
5. Producen mantenimientos
• Costos intangibles significativos:
• Mas de 10 años de operación:
• Se encuentran en el mercado un gran número de sistemas que
ya llevan mas de 10 años de operación.
• Modificaciones?:
• Reparaciones, modificaciones , ajustes, personalización,
migraciones.
• Donde queda la arquitectura?:
• Los cambios son realizados normalmente con el pensamiento
de respetar y ser coherentes con la arquitectura del sistema?.
6. Producen mantenimientos
• Costos intangibles significativos:
• Porque Continuar ?:
• Cual es la razón de continuar haciendo mantenimiento y no
reemplazar el software?.
• Cuando reparar?:
• Entre mas temprana sea la etapa donde se identifico, menor
serán los gastos.
• El software de calidad es una constante?:
• Desde un mal diseño hasta la incoherencia en la programación,
hay muchas aplicaciones que fallan desde la definición de la
lógica de su desarrollo.
8. Actividades Mantenimiento
• Comprensión del software: Se realizar un estudio
de los elementos del software para lograr efectuar
la modificación del mismo. Esto reduce el riesgo de
crear un onda de problemas.
• Modificación del software: Se realizan los cambios
necesarios dentro del código, pero se debe conocer
lo mejor posible la estructura del sistema.
• Realización de pruebas: Se deben realizar pruebas
que garanticen que los cambios no afectan el
funcionamiento del sistema.
9. Dificultades Mantenimiento
• Mantener sin destruir: El verdadero reto es
modificar sin alterar la calidad del sistema.
• Código heredado: Que hago con el código
“legacy”?.
• Este código ya fue modificado en diversas
oportunidades y por diversos equipos de trabajo,
nadie puede garantizar su correcto funcionamiento
o la solidez del mismo, menos su fiabilidad.
10. Leyes Mantenimiento (Lehman)
• Continuidad del cambio: Un programa debe
cambiar con el tiempo para no perder vigencia.
• Los usuario buscan nuevas funcionalidades.
• El hardware cambia y permite nuevas funciones.
• Aparecen defectos.
• Nuevos sistemas operativos.
• Se tienen nuevos requerimientos de eficiencia.
11. Leyes Mantenimiento (Lehman)
• Incremento complejidad: En el momento que se
realizan cambios en un sistema (mantenimiento) se
vuelven mas complejas las estructuras que lo
constituyen.
• Evolución del programa: La evolución debe ser
reguladas y planificadas, llevando un control de
dicho crecimiento.
12. Leyes Mantenimiento (Lehman)
• Conservación de la estabilidad organizacional: El
costo de mantenimiento debería mantenerse
estable para considerarlo viable.
• Conservación de la familiaridad: Durante el tiempo
de vida de un sistema, el número de cambios
introducidos deben ser constantes.
13. Otros problemas Mantenimiento
• Ausencia metodológica: No existe un proceso
metodológico centrado en el mantenimiento, van
mas al desarrollo del sistema.
• Tendencia a la des-estructuración: Con cada
cambio se ve menos estructurado un sistema, la
documentación lo evidencia , la ausencia de
estándares lo refuerza y el tiempo empleado para
entender el código lo sustenta.
14. Otros problemas Mantenimiento
• Menos comprensibilidad: Cada grupo de
desarrolladores coloca su lógica en el producto, a
cada cambio , nuevas lógicas hacen presencia en el
resultado.
• Poca participación de los usuarios: El estar
alejados de los usuarios lo único que consigue es
entregar un software que no responde a sus
necesidades y requiere un mantenimiento
constante.
15. Otros problemas Mantenimiento
• Problemas de gestión
• Un trabajo de segunda categoría?: El mantenimiento no
es considerado un trabajo de gran importancia y muchos
no quieren desempeñarlo.
• No pensado: Los cambios son realizados sin cuidado y
no bien pensado.
• No hay sorpresas: Que aparezcan nuevos problemas
después de realizad modificaciones, puesto este proceso
no se realiza de manera controlada o con la rigurosidad
requerida.
16. Efectos Mantenimiento
• Efectos sobre el código
• Un punto y coma adicional: Un problema en el código
puede ser causado de manera accidental.
• Posibles problemas accidentales:
• Cambios en las operaciones lógicas.
• Modificación de subprogramas.
• Alteraciones en el diseño que implican cambios en el código.
• Cambio en los nombres de las variables.
• Alteraciones en las aperturas y cierres de conexiones.
17. Efectos Mantenimiento
• Efectos sobre los datos
• Modificación de datos: los datos almacenados pueden
generar un impacto muy fuerte al interior de un sistema
de información.
• Aparecen por:
• Redefiniendo variables.
• Modificación de tamaños de matrices o vectores.
• Reinicio de variables.
• Cambio en los parámetros de una función o procedimiento.
18. Efectos Mantenimiento
• Efectos sobre documentación
• Modificación código pero no documento: Es posible
mantener actualizada la documentación con cada uno
de los cambios realizados?.
• Elementos que son olvidados:
• Mensajes de error.
• Texto descriptivo de las funciones.
• Índices y tablas desactualizadas.
19. Disminuir problemas
Mantenimiento (Yourdon)
• Sugerencias:
• Obtener el mayor numero de información del programa
con anterioridad.
• Conoce el flujo de control?.
• Verificar la documentación.
• “Comentariar” el código.
• Al agregar cambios respetar el estilo y la arquitectura.
• Crear propias variables para evitar efectos onda.
• Registrar las actividades del mantenimiento.
• Estrategias de captura de errores.