Descargar

Mantenimiento de sistemas

Enviado por Pablo Turmero


    edu.red

    MANTENIMIENTO DE SISTEMAS “El mantenimiento del SW es la modificación de un producto SW después 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)

    edu.red

    Sistemas legados Desarrollados antes de que el uso de las técnicas de ingeniería de software estuvieran difundidas. No están estructurados ni documentados. Incrustados de conocimiento crítico del negocio el cual puede no estar documentado en ningún lugar. No hay especificación del sistema. El riesgo de reimplementar estos sistemas es muy alto. MANTENIMIENTO DE SISTEMAS

    edu.red

    Sistemas legados: Los sistemas legados son sistemas usados por la organización para sus negocios y deben mantenerse. Generalmente sus costos de mantenimiento se incrementan Hay millones de líneas de código fuente, generalmente escritas en COBOL o FORTRAN. MANTENIMIENTO DE SISTEMAS

    edu.red

    MANTENIMIENTO DE SISTEMAS El cambio es inevitable en la vida del software. Por ello, debemos desarrollar mecanismos de evaluación, control e implementación de modificaciones.

    edu.red

    MANTENIMIENTO DE SISTEMAS Es el proceso general de cambiar un sistema después de que este ha sido implantado.

    La estructura de organización necesita flexibilidad para apoyar el mantenimiento de los sistemas existentes concurrentemente con la ejecución de nuevas tecnologías

    edu.red

    MANTENIMIENTO DE SISTEMAS

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

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

    edu.red

    MANTENIMIENTO DE SISTEMAS

    edu.red

    MANTENIMIENTO DE SISTEMAS

    edu.red

    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 están disponibles deben dedicarse a tareas de mantenimiento.

    Insatisfacción del cliente al no poder ser atendidas sus peticiones en un tiempo razonable.

    Disminución 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.

    edu.red

    MANTENIMIENTO DE SISTEMAS Problemas del mantenimiento de sistemas:

    Dificultad para seguir la evolución del software a través de varias versiones al no existir documentación 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 documentación apropiada no existe. No se prevé el cambio cuando se diseña. El mantenimiento no se considera un trabajo atractivo.

    …todos tienen su origen en las deficiencias del desarrollo

    edu.red

    MANTENIMIENTO DE SISTEMAS Facilidades del mantenimiento de sistemas:

    Factores que afectan a la facilidad de mantenimiento

    Factores asociados con el método de desarrollo aplicado. Factores relacionados con el entorno de desarrollo.

    Evaluación de la facilidad de mantenimiento

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

    Tiempo de reconocimiento del problema, de retraso administrativo, de recolección de herramientas de mantenimiento, de análisis del problema, de especificación de los cambios, tiempo activo de corrección o modificación, de prueba local, de prueba global, de revisión del mantenimiento y tiempo total de recuperación.

    edu.red

    MANTENIMIENTO DE SISTEMAS Facilidades del mantenimiento de sistemas:

    Evaluación de la facilidad de mantenimiento (cont.)

    También se puede evaluar indirectamente considerando medidas de la complejidad del software y de la estructura del diseño.

    Revisión

    La facilidad de mantenimiento debe considerarse en el proceso de revisión.

    edu.red

    MANTENIMIENTO DE SISTEMAS Es rentable invertir en esfuerzo en el diseño e implementación de un sistema para reducir los costos de mantenimiento.

    Añadir nuevas funcionalidades después de la entrega es caro debido a que hay que emplear tiempo en la comprensión del sistema y en el análisis del impacto de los cambios propuestos.

    edu.red

    MANTENIMIENTO DE SISTEMAS Las buenas técnicas de ingeniería de software contribuyen a la reducción de costos de mantenimiento:

    Especificación precisa. Programación modular. Uso de desarrollo orientado a objetos. Gestión de configuraciones.

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

    edu.red

    MANTENIMIENTO DE SISTEMAS Costo de mantenimiento:

    edu.red

    MANTENIMIENTO DE SISTEMAS Una razón importante de porqué los costos de mantenimiento son altos es que es más caro añadir funcionalidades después de que el sistema está en funcionamiento que implementar la misma funcionalidad durante el desarrollo.

    edu.red

    MANTENIMIENTO DE SISTEMAS Los factores clave que distinguen el desarrollo y el mantenimiento, y que conducen a costos de mantenimiento más elevados son:

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

    edu.red

    MANTENIMIENTO DE SISTEMAS Estabilidad del equipo:

    Después 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 decisión de sus diseño.

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

    edu.red

    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 compañía diferente.

    No hay incentivos para desarrollar un software que sea fácil de mantener.

    edu.red

    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.

    edu.red

    MANTENIMIENTO DE SISTEMAS Edad y estructura del programa :

    La estructura de los programas tiende a degradarse son los cambios Sistemas desarrollados sin técnicas de ingeniería de software. Escasa documentación de sistemas.

    edu.red

    MANTENIMIENTO DE SISTEMAS El mantenimiento de sistemas puede clasificarse en cuatro grupos:

    Mantenimiento correctivo.

    Mantenimiento para fines específicos.

    Mantenimiento para mejoras.

    Mantenimiento preventivo.

    edu.red

    MANTENIMIENTO DE SISTEMAS Mantenimiento correctivo :

    Independientemente de cuán bien diseñado, desarrollado y probado está un sistema o aplicación, ocurrirán errores inevitablemente. Se relaciona con la solución o la corrección de problemas del sistema. Atañe generalmente a problemas no identificados durante la fase de ejecución. Un ejemplo de mantenimiento correctivo es la falta de una característica requerida por el usuario, o su funcionamiento defectuoso.

    edu.red

    MANTENIMIENTO DE SISTEMAS Mantenimiento correctivo :

    Los errores de código son relativamente baratos de corregir.

    Los errores de diseño son más caros: implica reescribir varios componentes de sistema.

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

    edu.red

    MANTENIMIENTO DE SISTEMAS Mantenimiento para fines específicos o de adaptación:

    Este tipo de mantenimiento se refiere a la creación de características nuevas o a la adaptación de las existentes según lo requieren los cambios en la organización o los usuarios,

    Por ejemplo, los cambios en el código tributario o los reglamento internos de la organización.

    edu.red

    MANTENIMIENTO DE SISTEMAS Mantenimiento para fines específicos o de adaptación :

    Se requiere cuando cambia algún aspecto del entorno del sistema:

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

    edu.red

    MANTENIMIENTO DE SISTEMAS Mantenimiento para mejoras (añadir o modificar las funcionalidades del sistema):

    Se trata de la extensión o el mejoramiento del desempeño del sistema, ya sea mediante el agregado de nuevas características, o el cambio de las existentes.

    Un ejemplo de este tipo de mantenimiento es la conversión de los sistemas de texto a GUI (interfaz gráfica de usuarios).

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

    edu.red

    MANTENIMIENTO DE SISTEMAS Otra clasificación del mantenimiento de sistemas: Mantenimiento correctivo: Corrección de defectos, Diagnosticar y corregir errores no localizados durante la prueba, Básicamente, 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, Añadir nuevas funciones y modificar funciones existentes, Construcción de una nueva versión como una simple extensión

    edu.red

    MANTENIMIENTO DE SISTEMAS Métodos de mantenimiento:

    Reingeniería: Examen y modificación del sistema.

    Ingeniería inversa: Análisis de un sistema.

    Reestructuración y transformación del SW: Modificar el SW.

    edu.red

    MANTENIMIENTO DE SISTEMAS Reingeniería de software:

    Reorganizar y modificar sistemas de software existentes para hacer más fácil su mantenimiento.

    Se refiere al re-diseño de los proceso de diseño de negocios para hacerlos mas eficientes.

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

    edu.red

    Re-ingeniería 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 adición de esfuerzo para hacer más fácil el mantenimiento. El sistema puede ser re-estructurado y re-documentado. MANTENIMIENTO DE SISTEMAS

    edu.red

    Cuando hacer re-ingeniería:

    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 reestructuración esta disponibles.

    MANTENIMIENTO DE SISTEMAS

    edu.red

    Factores de costo de Re-ingeniería:

    La calidad del software que será sujeto de re-ingeniería.

    La herramienta disponible para re-ingeniería.

    El alcance necesario en la conversión de datos.

    La disponibilidad de personal experto para hacer re-ingeniería. MANTENIMIENTO DE SISTEMAS

    edu.red

    MANTENIMIENTO DE SISTEMAS Beneficios de la Reingeniería de software:

    Reduce riesgos.

    Ayuda a recuperar las inversiones.

    Software mas fácil de modificar.

    Amplia las capacidades de las HC.

    Actúa como catalizador.

    edu.red

    MANTENIMIENTO DE SISTEMAS Ingeniería inversa : Es el proceso para construir especificaciones del código.

    Sus objetivos son :

    Detectar efectos laterales.

    Facilitar la reutilización.

    Recuperar la información perdida.

    Reducir la complejidad del sistema.

    edu.red

    MANTENIMIENTO DE SISTEMAS Ingeniería inversa : Se utiliza en aplicaciones:

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

    edu.red

    MANTENIMIENTO DE SISTEMAS Reestructuración y transformación 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.

    edu.red

    MANTENIMIENTO DE SISTEMAS Reestructuración y transformación del SW:

    Los problemas con la re-estructuración son:

    Pérdida de comentarios. Pérdida de documentación. fuertes demandas de cómputo. La re-estructuración se dificulta donde hay una pobre modularización o donde los componentes relacionados están dispersos por todos lados. El entendimiento de programas que manejan datos puede no mejorarse con la re-estructuración.

    edu.red

    MANTENIMIENTO DE SISTEMAS Herramientas para el mantenimiento de software:

    Generadores de referencias cruzadas. Generadores de organigramas. Controladores de código fuente. Analizadores automáticos de interfaces. Gestión de ficheros. Descompiladores. Etc.

    edu.red

    BIBLIOGRAFÍA

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

    SENN, James A., “Sistemas de Información para la Administración”. Edit. Iberoamericana, México, 1990.

    FAIRLEY, Richard., “Ingeniería de Software”. Edit. Mc Graw Hill. 1991.

    SENN, James A., “Análisis y Diseño de Sistemas de Información”. Edit. Iberoamericana. México, 1990.

    KENDALL y KENDALL , “Análisis y diseño de sistemas”, Edit Pearson Prentice Hall, 6ª Ed.,