Monografias.com > Computación > Software
Descargar Imprimir Comentar Ver trabajos relacionados

Mantenimiento del software II




Enviado por Pablo Turmero



    Monografias.com

    Mantenimiento del software
    1
    Mantenimiento del software. Estructura
    Tipos de mantenimiento
    Coste de las actividades de mantenimiento
    Dificultades del mantenimiento
    El proceso de mantenimiento en el ciclo de vida del sw.
    Métodos de mantenimiento del software
    Redocumentación
    Ingeniería inversa y reingeniería
    Ingeniería inversa de procesos (comprensión de programas)
    Identificación y recopilación de los componentes funcionales
    Asignar valor semántico a los componentes funcionales
    Ingeniería inversa de ficheros y BDs
    Ingeniería inversa y reingeniería de interfaces de usuario
    Reconstrucción de programas
    Mantenibilidad o facilidad de mantenimiento del sw.
    Métricas para mantenibilidad

    Monografias.com

    Mantenimiento del software
    2
    Mantenimiento del software. Bibliografía
    (Piattini et al. 98) M. Piattini, J. Villalba, F. Ruiz, I. Fernández, M. Polo, T. Bastanchury, M.A. Martínez. “Mantenimiento del software. Conceptos, métodos, herramientas y outsourcing.” Ed. Ra-Ma. 1998.
    (Piattini et al. 96) M. Piattini, José A. Calvo-Manzano, J. Cervera, L. Fernández. “Análisis y diseño detallado de Aplicaciones Informáticas de Gestión”. Ed. Ra-Ma. 1996. Capítulo 16.

    Monografias.com

    Mantenimiento del software
    3
    Mantenimiento del software
    “El mantenimiento del sw. es la modificación de un producto sw. después de su entrega al cliente o usuario para corregir defectos, para mejorar el rendimiento u otras propiedades deseables, o para adaptarlo a un cambio de entorno” (IEEE 83).
    Es la parte más costosa del ciclo de vida del sw.: 60-90% del coste total (y coste creciente).
    El coste relativo de reparar un defecto aumenta en las últimas etapas del ciclo de vida (de 1 a 100).
    En algunas empresas coste del 95% ? (no se pueden desarrollar nuevos productos sw.)
    Barrera del mantenimiento

    Monografias.com

    Mantenimiento del software
    4
    Costes del mantenimiento
    Oportunidades de desarrollo que se pierden.
    Insatisfacción del cliente cuando no se puede atender en un tiempo aceptable una petición de reparación que parece razonable.
    Los errores ocultos que se introducen al cambiar el sw. durante el mantenimiento reducen la calidad global del producto.
    Perjuicio en otros proyectos de desarrollo cuando la plantilla tiene que dejarlos, total o parcialmente, para atender peticiones de mantenimiento.

    Monografias.com

    Mantenimiento del software
    5
    Tipos de mantenimiento
    Correctivo
    Adaptativo

    Perfectivo
    Mantenimiento de ampliación
    Mantenimiento de eficiencia
    Preventivo
    Mantenimiento para la reutilización

    Monografias.com

    Mantenimiento del software
    6
    Coste de las actividades de mantenimiento
    ? Nótese cómo la comprensión del software y de los cambios supone casi un 50% del coste total de mantenimiento

    Monografias.com

    Mantenimiento del software
    7
    Dificultades del mantenimiento
    Aplicaciones antiguas heredadas (legacy code):
    restricciones de tamaño y espacio de almacenamiento
    herramientas desfasadas, sin métodos
    una o varias migraciones a nuevas plataformas
    múltiples modificaciones para adaptarlos o mejorarlos
    desarrolladores no localizables
    ¿desechar el sw. y reescribirlo? No factible:
    gran carga financiera de su desarrollo
    necesidad de amortización
    ? sw. que sigue funcionando con baja calidad

    Monografias.com

    Mantenimiento del software
    8
    Dificultades del mantenimiento (II)
    Ausencia de métodos (se realiza de forma ad hoc).
    Cambio tras cambio, los programas tienden a ser menos estructurados.
    Ausencia de documentación.
    No captura adecuada de requisitos ? mayores esfuerzos de mantenimiento futuros.
    No existen registros de pruebas ? imposibilidad de pruebas de regresión.
    Problemas de gestión (considerado “trabajo poco creativo”, asignado a las personas con menos experiencia).

    Monografias.com

    Mantenimiento del software
    9
    El proceso de mantenimiento en el ciclo de vida del sw.
    Proceso ppal. de mantenimiento en el std. IEEE 12207.
    Actividades:
    Implementación del proceso.
    Análisis de problemas y modificaciones.
    Implementación de las modificaciones.
    Revisión y aceptación del mantenimiento.
    Migración.
    Retirada del sw.

    Monografias.com

    Mantenimiento del software
    10
    Métodos de mantenimiento del software
    Reingeniería: examen y modificación del sistema para reconstruirlo en una nueva forma.
    Ingeniería inversa: análisis de un sistema para identificar sus componentes y las relaciones entre ellos, así como para crear representaciones del sistema en otra forma o en un nivel de abstracción más elevado.
    Reestructuración del software: consiste en la modificación del software para hacerlo más fácil de entender y cambiar o menos susceptible de incluir errores en cambios posteriores.
    Transformación de programas: técnica formal de transformación de programas

    Monografias.com

    Mantenimiento del software
    11
    Ingeniería directa, inversa, reingeniería y redocumentación
    Definición
    Diseño
    Implementación
    Ingeniería directa (1)
    Ingeniería directa (2)
    Reing.(6)
    Reing.(8)
    Redocumentación (5)
    Redocumentación (7)
    Redocumentación (8)
    Ing. inversa (4)
    Ing. inversa (3)
    (Piattini et al. 98)

    Monografias.com

    Mantenimiento del software
    12
    Redocumentación (Pressman 98) p.511
    a) Si el sistema funciona y la redocumentación consume muchos recursos, tal vez mejor no redocumentar.
    b) Si es preciso actualizar la documentación, pero recursos limitados, puede ser útil “documentar cuando se modifica”. Con el tiempo, se formará una colección de información interesante.
    c) Si el sistema es fundamental para la organización, redocumentar por completo. Se puede reducir la documentación al mínimo.

    Monografias.com

    Mantenimiento del software
    13
    Ingeniería inversa y reingeniería
    Objetivo: métodos para reconstruir el sw.:
    reprogramarlo
    redocumentarlo
    rediseñarlo
    rehacer alguna/s característica/s del producto
    Ingeniería inversa: “el proceso de construir especificaciones abstractas del código fuente de un sistema heredado, de manera que estas especificaciones puedan ser utilizadas para construir una nueva implementación del sistema hacia delante”

    Monografias.com

    Mantenimiento del software
    14
    Ingeniería inversa y reingeniería (II)
    Ingeniería inversa: El pto. de partida no es necesariamente el código fuente (Piattini et al. 96)
    Ingeniería inversa. Beneficios (Piattini et al. 96):
    Reducir la complejidad del sistema.
    Generar vistas alternativas.
    Recuperar la información perdida (cambios que no se documentaron en su momento).
    Detectar efectos laterales.
    Facilitar la reutilización.
    Reingeniería: “la modificación de un producto sw., o de ciertos componentes, usando para el análisis del sistema existente técnicas de ingeniería inversa y, para la etapa de reconstrucción, herramientas de ingeniería directa”

    Monografias.com

    Mantenimiento del software
    15
    Ingeniería inversa de procesos (comprensión de programas)
    Tareas necesarias: (Biggerstaff 94) (Weide 95)
    (No se realizan secuencialmente.)
    1. Identificación y recopilación de los componentes funcionales del sistema.
    rutinas, variables, constantes, tipos de datos, TAD, objetos, llamadas a funciones, etc.
    2. Asignar significado a los componentes “sustanciales” anteriores.

    Monografias.com

    Mantenimiento del software
    16
    Identificación y recopilación de los componentes funcionales
    Muy subjetiva e intuitiva.
    Algunas ideas:
    cada componente suele ocupar un módulo, o bien aparecen próximos unos a otros.
    las series de componentes funcionales suelen aparecer junto a muchos comentarios.
    los identificadores de los componentes funcionales suelen constar de muchos caracteres.
    Algunos problemas:
    sinonimia
    polisemia
    comentarios no actualizados

    Monografias.com

    Mantenimiento del software
    17
    Asignar valor semántico a los componentes funcionales
    Se recorren las sentencias del componente, para confirmar su calidad de componente funcional.
    Análisis estático (creación de DFDs…)
    Análisis dinámico (ejecución del programa)
    Detectar y registrar bucles infinitos, código inalcanzable, etc.
    que no se corrigen en esta fase, sólo se documentan
    se corrigen después, en la fase de reingeniería

    Monografias.com

    Mantenimiento del software
    18
    Ingeniería inversa de ficheros y BDs
    Diseño conceptual
    Diseño lógico
    Diseño físico
    (Gp:) Esquema conceptual

    (Gp:) Esquema lógico

    (Gp:) Estructuras estáticas y dinámicas en soporte físico

    (Gp:) Normalización conceptual
    (Gp:) Eliminación de los constructores propios (desoptimización)
    (Gp:) Detección de los constructores propios del sistema real (destraducción)

    Conceptualización de las estructuras
    Extracción de la estructura: recuperación de las tablas y reglas de integridad

    Monografias.com

    Mantenimiento del software
    19
    Ingeniería inversa de ficheros – Extracción de la estructura
    Considerar cada fichero como una posible tabla, y cada campo del fichero como un campo de la tabla.
    Determinar un conjunto de campos que puedan ser clave primaria de sus respectivos ficheros (buscar ID, #).
    Determinar las claves ajenas.
    Determinar los ficheros que no pueden tratarse como tablas (aquellos sin claves).
    Buscar generalizaciones:
    grandes grupos de claves ajenas.
    valores repetidos de atributos en una tabla.
    datos con valores mutuamente excluyentes.
    Encontrar asociaciones.
    (Premernali et al. 94)

    Monografias.com

    Mantenimiento del software
    20
    Ingeniería inversa y reingeniería de interfaces de usuario
    Adaptar aplicaciones a las necesidades de los usuarios, respetando su lógica anterior:
    1. Recopilación de documentación, manuales de usuario, etc.
    2. Entrevistas a distintos grupos de usuarios, y observación de sus métodos de trabajo.
    3. Uso del sistema por el propio equipo de mantenimiento. Se puede modificar el código para, p.ej., introducir contadores.
    4. Reconstrucción y redocumentación de la interfaz.

    Monografias.com

    Mantenimiento del software
    21
    Reconstrucción de programas
    A partir de los productos de ingeniería inversa se construye el programa mediante técnicas de ingeniería directa.
    Reestructuración de datos
    eliminar sinonimias y polisemias
    Reestructuración de procesos
    transformar el código no estructurado en código estructurado
    en un diagrama de flujo estructurado, es posible hacer transformaciones sucesivas hasta que su complejidad ciclomática se iguale a 1 (Piattini et al. 96) p.547

    Monografias.com

    Mantenimiento del software
    22
    Mantenibilidad o facilidad de mantenimiento del sw.
    Medida cualitativa de la facilidad de comprender, corregir, adaptar y/o mejorar el sw. (Pressman 98)
    “Facilidad con que un sistema o componente sw. puede ser modificado para corregir defectos, mejorar el rendimiento u otros atributos, o adaptarse a un cambio de entorno”.
    Muy ligada a la calidad del sw. ? métricas de mantenibilidad = métricas de calidad
    También ligada a la complejidad del sw.

    Monografias.com

    Mantenimiento del software
    23
    Métricas para mantenibilidad (Mc Call)
    Mantenibilidad
    SIMPLICIDAD
    CONCISIÓN
    AUTODESCRIPTIVO
    LEGIBILIDAD
    FACILIDAD DE PRUEBA
    Nº ciclomático V(G)
    Nº de sentencias
    Frecuencia de operandos

    Longitud de programa
    Nivel de módulo

    Frecuencia de comentarios

    Longitud de programa
    Niveles anidados (MAX)
    Nº de sentencias

    V(G)
    Niveles anidados (MAX)
    CRITERIOS
    MÉTRICAS

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter