mantenimiento de sistemas

41
MANTENIMIENTO DE SISTEMAS

description

mantenimiento de sistemas de informacion

Transcript of mantenimiento de sistemas

  • MANTENIMIENTO DE SISTEMAS

  • MANTENIMIENTO DE SISTEMASEl mantenimiento del SW es la modificacin de un producto SW despus de su entrega al cliente o usuario para corregir los defectos, para mejorar el rendimiento u otras propiedades deseables, o para adaptarlo a un cambio de entorno (IEEE 1219:1993)

  • Sistemas legadosDesarrollados antes de que el uso de las tcnicas de ingeniera de software estuvieran difundidas.No estn estructurados ni documentados.Incrustados de conocimiento crtico del negocio el cual puede no estar documentado en ningn lugar. No hay especificacin del sistema. El riesgo de reimplementar estos sistemas es muy alto.MANTENIMIENTO DE SISTEMAS

  • Sistemas legados:Los sistemas legados son sistemas usados por la organizacin para sus negocios y deben mantenerse.Generalmente sus costos de mantenimiento se incrementanHay millones de lneas de cdigo fuente, generalmente escritas en COBOL o FORTRAN.MANTENIMIENTO DE SISTEMAS

  • MANTENIMIENTO DE SISTEMASEl cambio es inevitable en la vida del software. Por ello, debemos desarrollar mecanismos de evaluacin, control e implementacin de modificaciones.

  • MANTENIMIENTO DE SISTEMASEs el proceso general de cambiar un sistema despus de que este ha sido implantado.

    La estructura de organizacin necesita flexibilidad para apoyar el mantenimiento de los sistemas existentes concurrentemente con la ejecucin de nuevas tecnologas

  • MANTENIMIENTO DE SISTEMAS

    El mantenimiento del software existente es mas del 60% de las inversiones efectuadas por una organizacin de desarrollo.

    El 20% de nuestros esfuerzos se dedica al mantenimiento y el 80% a adaptar los sistemas existentes a los cambios externos.

  • MANTENIMIENTO DE SISTEMAS

  • MANTENIMIENTO DE SISTEMAS

  • MANTENIMIENTO DE SISTEMASCostos inherentes al mantenimiento :

    Una oportunidad de desarrollo que se ha de posponer o que se pierde, debido a que los recursos que estn disponibles deben dedicarse a tareas de mantenimiento.

    Insatisfaccin del cliente al no poder ser atendidas sus peticiones en un tiempo razonable.

    Disminucin de la calidad del software debido a los errores que introducen los cambios.

    Retraso en el desarrollo por tener que disponer del personal para tareas del mantenimiento.

  • MANTENIMIENTO DE SISTEMASProblemas del mantenimiento de sistemas:

    Dificultad para seguir la evolucin del software a travs de varias versiones al no existir documentacin sobre los cambios.Dificultad para seguir el proceso por el que se construy el software.Dificultad para comprender un programa ajeno.Dificultad para contactar con los desarrolladores.La documentacin apropiada no existe.No se prev el cambio cuando se disea.El mantenimiento no se considera un trabajo atractivo.

    ...todos tienen su origen en las deficiencias del desarrollo

  • MANTENIMIENTO DE SISTEMASFacilidades del mantenimiento de sistemas:

    Factores que afectan a la facilidad de mantenimiento

    Factores asociados con el mtodo de desarrollo aplicado.Factores relacionados con el entorno de desarrollo.

    Evaluacin de la facilidad de mantenimiento

    Se puede evaluar indirectamente considerando los atributos de la actividad de mantenimiento que se pueden medir.Mtricas relacionadas con el esfuerzo empleado durante el mantenimiento:

    Tiempo de reconocimiento del problema, de retraso administrativo, de recoleccin de herramientas de mantenimiento, de anlisis del problema, de especificacin de los cambios, tiempo activo de correccin o modificacin, de prueba local, de prueba global, de revisin del mantenimiento y tiempo total de recuperacin.

  • MANTENIMIENTO DE SISTEMASFacilidades del mantenimiento de sistemas:

    Evaluacin de la facilidad de mantenimiento (cont.)

    Tambin se puede evaluar indirectamente considerando medidas de la complejidad del software y de la estructura del diseo.

    Revisin

    La facilidad de mantenimiento debe considerarse en el proceso de revisin.

  • MANTENIMIENTO DE SISTEMASEs rentable invertir en esfuerzo en el diseo e implementacin de un sistema para reducir los costos de mantenimiento.

    Aadir nuevas funcionalidades despus de la entrega es caro debido a que hay que emplear tiempo en la comprensin del sistema y en el anlisis del impacto de los cambios propuestos.

  • MANTENIMIENTO DE SISTEMASLas buenas tcnicas de ingeniera de software contribuyen a la reduccin de costos de mantenimiento:

    Especificacin precisa.Programacin modular.Uso de desarrollo orientado a objetos.Gestin de configuraciones.

    Por ejemplo invertir $25,000.00 mas en la etapa de desarrollo para hacer que el sistema sea ms mantenible, significar un ahorro de $100,000.00 en los costos de mantenimiento.

  • MANTENIMIENTO DE SISTEMASCosto de mantenimiento:

  • MANTENIMIENTO DE SISTEMASUna razn importante de porqu los costos de mantenimiento son altos es que es ms caro aadir funcionalidades despus de que el sistema est en funcionamiento que implementar la misma funcionalidad durante el desarrollo.

  • MANTENIMIENTO DE SISTEMASLos factores clave que distinguen el desarrollo y el mantenimiento, y que conducen a costos de mantenimiento ms elevados son:

    Estabilidad del equipo:Responsabilidad contractual:Habilidades del personal:Edad y estructura del programa:

  • MANTENIMIENTO DE SISTEMASEstabilidad del equipo:

    Despus de entregar un sistema, el equipo de desarrollo se disuelve.

    El nuevo equipo no comprende el sistema.

    No comprende las razones de fondo de la decisin de sus diseo.

    Se dedica mucho esfuerzo en comprender el sistema antes de implementar cambios en l.

  • MANTENIMIENTO DE SISTEMASResponsabilidad contractual :

    El contrato para mantener un sistema est separado del contrato para desarrollar el sistema.

    El contrato para mantener el sistema puede darse con una compaa diferente.

    No hay incentivos para desarrollar un software que sea fcil de mantener.

  • MANTENIMIENTO DE SISTEMASHabilidades del personal :

    El personal de mantenimiento generalmente no tiene la experiencia.

    El mantenimiento tiene una imagen pobre entre los ingenieros de software.

    Se ve como un proceso que requiere menos habilidades que el desarrollo de sistemas y se le asigna al personal principiante.

    Sistemas antiguos en lenguajes obsoletos.

  • MANTENIMIENTO DE SISTEMASEdad y estructura del programa :

    La estructura de los programas tiende a degradarse son los cambiosSistemas desarrollados sin tcnicas de ingeniera de software.Escasa documentacin de sistemas.

  • MANTENIMIENTO DE SISTEMASEl mantenimiento de sistemas puede clasificarse en cuatro grupos:

    Mantenimiento correctivo.

    Mantenimiento para fines especficos.

    Mantenimiento para mejoras.

    Mantenimiento preventivo.

  • MANTENIMIENTO DE SISTEMASMantenimiento correctivo :

    Independientemente de cun bien diseado, desarrollado y probado est un sistema o aplicacin, ocurrirn errores inevitablemente. Se relaciona con la solucin o la correccin de problemas del sistema.Atae generalmente a problemas no identificados durante la fase de ejecucin. Un ejemplo de mantenimiento correctivo es la falta de una caracterstica requerida por el usuario, o su funcionamiento defectuoso.

  • MANTENIMIENTO DE SISTEMASMantenimiento correctivo :

    Los errores de cdigo son relativamente baratos de corregir.

    Los errores de diseo son ms caros: implica reescribir varios componentes de sistema.

    Los errores de requerimientos son los mas caros de reparar debido a que puede ser necesarios un rediseo extenso del sistema.

  • MANTENIMIENTO DE SISTEMASMantenimiento para fines especficos o de adaptacin:

    Este tipo de mantenimiento se refiere a la creacin de caractersticas nuevas o a la adaptacin de las existentes segn lo requieren los cambios en la organizacin o los usuarios,

    Por ejemplo, los cambios en el cdigo tributario o los reglamento internos de la organizacin.

  • MANTENIMIENTO DE SISTEMASMantenimiento para fines especficos o de adaptacin :

    Se requiere cuando cambia algn aspecto del entorno del sistema:

    Hardware :arquitecturaSoftware : Sistema operativo, software de soporte, etc.

  • MANTENIMIENTO DE SISTEMASMantenimiento para mejoras (aadir o modificar las funcionalidades del sistema):

    Se trata de la extensin o el mejoramiento del desempeo del sistema, ya sea mediante el agregado de nuevas caractersticas, o el cambio de las existentes.

    Un ejemplo de este tipo de mantenimiento es la conversin de los sistemas de texto a GUI (interfaz grfica de usuarios).

    Es necesario cuando los requerimientos del sistema cambian como respuesta a cambios organizacionales

  • MANTENIMIENTO DE SISTEMASOtra clasificacin del mantenimiento de sistemas:Mantenimiento correctivo: Correccin de defectos, Diagnosticar y corregir errores no localizados durante la prueba, Bsicamente, eliminar problemas hallados por los usuarios.Mantenimiento preventivo: Ajuste a nuevos requisitos, Cambiar el software para facilitar el futuro mantenimiento.Mantenimiento adaptativo: Adaptar el SW a un cambio de entorno, Modificar el software para que interaccione con el entorno cambianteMantenimiento perfectivo: Conseguir una mejora del SW, Aadir nuevas funciones y modificar funciones existentes, Construccin de una nueva versin como una simple extensin

  • MANTENIMIENTO DE SISTEMASMtodos de mantenimiento:

    Reingeniera: Examen y modificacin del sistema.

    Ingeniera inversa: Anlisis de un sistema.

    Reestructuracin y transformacin del SW: Modificar el SW.

  • MANTENIMIENTO DE SISTEMASReingeniera de software:

    Reorganizar y modificar sistemas de software existentes para hacer ms fcil su mantenimiento.

    Se refiere al re-diseo de los proceso de diseo de negocios para hacerlos mas eficientes.

    Es una actividad centrada en perfeccionar el entendimiento del SW, para evitar inestabilidad en el SW.

  • Re-ingeniera de sistemas:Re-estructurar o re-escribir parte o todo el sistema legado sin cambiar su funcionalidad.

    Es aplicable donde algo, pero no todo el subsistema de un gran sistema, frecuentemente requiere mantenimiento.

    Incluye adicin de esfuerzo para hacer ms fcil el mantenimiento. El sistema puede ser re-estructurado y re-documentado.MANTENIMIENTO DE SISTEMAS

  • Cuando hacer re-ingeniera:

    Cuando los cambios del sistema son necesarios en solo una parte.

    Cuando el soporte de hardware o software se hacen obsoletos.

    Cuando las herramientas para soportar la reestructuracin esta disponibles.

    MANTENIMIENTO DE SISTEMAS

  • Factores de costo de Re-ingeniera:

    La calidad del software que ser sujeto de re-ingeniera.

    La herramienta disponible para re-ingeniera.

    El alcance necesario en la conversin de datos.

    La disponibilidad de personal experto para hacer re-ingeniera.MANTENIMIENTO DE SISTEMAS

  • MANTENIMIENTO DE SISTEMASBeneficios de la Reingeniera de software:

    Reduce riesgos.

    Ayuda a recuperar las inversiones.

    Software mas fcil de modificar.

    Amplia las capacidades de las HC.

    Acta como catalizador.

  • MANTENIMIENTO DE SISTEMASIngeniera inversa : Es el proceso para construir especificaciones del cdigo.

    Sus objetivos son :

    Detectar efectos laterales.

    Facilitar la reutilizacin.

    Recuperar la informacin perdida.

    Reducir la complejidad del sistema.

  • MANTENIMIENTO DE SISTEMASIngeniera inversa : Se utiliza en aplicaciones:

    Fallos frecuentes.Poco eficientes.Dificultades en la integracin.Calidad pobre.Dificultades para realizar pruebas.Mantenimiento consume muchos recursos.Necesario incluir nuevos requisitos

  • MANTENIMIENTO DE SISTEMASReestructuracin y transformacin del SW: Se trata de identificar y recopilar los componentes funcionales del sistema para poderlo modificar y transformar.

    Sus beneficios son:

    Programas de mayor calidad.Mejorar la productividad de los usuarios.Reduce el esfuerzo para el mantenimiento.Software mas sencillo de depurar.

  • MANTENIMIENTO DE SISTEMASReestructuracin y transformacin del SW:

    Los problemas con la re-estructuracin son:

    Prdida de comentarios.Prdida de documentacin.fuertes demandas de cmputo.La re-estructuracin se dificulta donde hay una pobre modularizacin o donde los componentes relacionados estn dispersos por todos lados.El entendimiento de programas que manejan datos puede no mejorarse con la re-estructuracin.

  • MANTENIMIENTO DE SISTEMASHerramientas para el mantenimiento de software:

    Generadores de referencias cruzadas.Generadores de organigramas.Controladores de cdigo fuente.Analizadores automticos de interfaces.Gestin de ficheros.Descompiladores.Etc.

  • BIBLIOGRAFA

    LAUDON, Kenneth C.,Management Information Systems.Mc Millan. USA, 1991.

    SENN, James A., Sistemas de Informacin para la Administracin. Edit. Iberoamericana, Mxico, 1990.

    FAIRLEY, Richard., Ingeniera de Software. Edit. Mc Graw Hill. 1991.

    SENN, James A., Anlisis y Diseo de Sistemas de Informacin. Edit. Iberoamericana. Mxico, 1990.

    KENDALL y KENDALL , Anlisis y diseo de sistemas, Edit Pearson Prentice Hall, 6 Ed.,