Mantenimiento de Sistemas

Embed Size (px)

DESCRIPTION

Mantenimiento de Sistemas

Citation preview

  • MANTENIMIENTO DE

    SISTEMAS

  • MANTENIMIENTO DE SISTEMAS

    El 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 legados Desarrollados 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 incrementan

    Hay millones de lneas de cdigo fuente, generalmente escritas en COBOL o FORTRAN.

    MANTENIMIENTO DE SISTEMAS

  • MANTENIMIENTO DE SISTEMAS

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

  • MANTENIMIENTO DE SISTEMAS

    Es 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 SISTEMAS

    Costos 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 SISTEMAS

    Problemas 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 SISTEMAS

    Facilidades 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 SISTEMAS

    Facilidades 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 SISTEMAS

    Es 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 SISTEMAS

    Las 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 SISTEMAS

    Costo de mantenimiento:

    0 50 100 150 200 250 300 350 400 450 500 550

    Sistema1

    Sistema 2

    Costo de Desarrollo Costo de Mtto.

  • MANTENIMIENTO DE SISTEMAS

    Una 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 SISTEMAS

    Los 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 SISTEMAS

    Estabilidad 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 SISTEMAS

    Responsabilidad 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 SISTEMAS

    Habilidades 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 SISTEMAS

    Edad y estructura del programa :

    La estructura de los programas tiende a degradarse son los cambios

    Sistemas desarrollados sin tcnicas de ingeniera de software.

    Escasa documentacin de sistemas.

  • MANTENIMIENTO DE SISTEMAS

    El mantenimiento de sistemas puede clasificarse en cuatro grupos:

    Mantenimiento correctivo.

    Mantenimiento para fines especficos.

    Mantenimiento para mejoras.

    Mantenimiento preventivo.

  • MANTENIMIENTO DE SISTEMAS

    Mantenimiento 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 SISTEMAS

    Mantenimiento 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 SISTEMAS

    Mantenimiento 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 SISTEMAS

    Mantenimiento para fines especficos o de adaptacin :

    Se requiere cuando cambia algn aspecto del entorno del sistema:

    Hardware :arquitectura Software : Sistema operativo, software de soporte, etc.

  • MANTENIMIENTO DE SISTEMAS

    Mantenimiento 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 SISTEMAS

    Otra 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 cambiante

    Mantenimiento perfectivo: Conseguir una mejora del SW, Aadir nuevas funciones y modificar funciones existentes, Construccin de una nueva versin como una simple extensin

  • MANTENIMIENTO DE SISTEMAS

    Mtodos de mantenimiento:

    Reingeniera: Examen y modificacin del sistema.

    Ingeniera inversa: Anlisis de un sistema.

    Reestructuracin y transformacin del SW: Modificar el SW.

  • MANTENIMIENTO DE SISTEMAS

    Reingeniera 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 SISTEMAS

    Beneficios 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 SISTEMAS

    Ingeniera 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 SISTEMAS

    Ingeniera 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 SISTEMAS

    Reestructuracin 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 SISTEMAS

    Reestructuracin 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 SISTEMAS

    Herramientas 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.,