mantenimiento de sistemas de información - conceptos avanzados
DESCRIPTION
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.TRANSCRIPT
MANTENIMIENTO DE SISTEMAS DE INFORMACION
Conceptos Avanzados
‘
Efecto IcebergBajo la superficie se encuentran aún mayores problemas.
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.
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?.
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?.
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.
Actividades Mantenimiento
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
@josefabiandiaz
https://www.youtube.com/user/fabiandiazs
Msc.Ing.Jose Fabián Diaz Silva
Consultas