Estrategias y Ciclo de Vida en el Mantenimiento de Software

Clasificado en Diseño e Ingeniería

Escrito el en español con un tamaño de 3,74 KB

Dinámica de evolución de sistemas

La dinámica de evolución de sistemas es el estudio de los cambios en los mismos; constituye un conjunto de leyes concernientes a las transformaciones de los sistemas.

Tipos de mantenimiento

  • Correctivo: Tiene por objetivo localizar y eliminar los posibles defectos de los programas que causan un fallo.
  • Adaptativo: Consiste en la modificación de un programa debido a cambios en el entorno en el que se ejecuta.
  • Perfectivo: Son cambios en la especificación derivados de modificaciones en los requerimientos de un producto software.
  • Preventivo: Consiste en la modificación del software para mejorar sus propiedades sin alterar sus especificaciones funcionales.

Soluciones al problema de mantenimiento de software

Soluciones de gestión

El mantenimiento de software (MS) puede ser visto como un continuo consumidor de recursos, mientras que los beneficios no están claros ni cuantificados. Para evitar esta situación, se necesita un mayor apoyo por parte de la dirección de las organizaciones para las actividades de mantenimiento.

Soluciones técnicas

En cuanto a herramientas y métodos, se deberá tener presente:

  • Necesidad de emplear metodologías.
  • Necesidad de herramientas: Muchas metodologías han fracasado por no disponer de herramientas que permitan su automatización.
  • Uso de métricas para tomar decisiones y medir aspectos de interés en el MS.
  • Utilización de técnicas de control y gestión de la calidad.
  • Gestión de riesgos y gestión de configuraciones.
  • Auditoría.

Reingeniería

Se refiere a la reimplementación de los sistemas heredados para hacerlos más mantenibles. La funcionalidad del software no se cambia y la arquitectura sigue siendo la misma. La reingeniería es una tarea de reconstrucción.

Análisis de inventario

El inventario deberá revisarse con regularidad. El estado de las aplicaciones puede cambiar en función del tiempo y, como resultado, cambiarán también las prioridades para la reingeniería.

Ingeniería inversa

Es un proceso de recuperación de diseño. Con las herramientas de la ingeniería inversa se extraerá del programa existente información del diseño arquitectónico, de proceso y de los datos.

Reestructuración del código

Se analiza el código fuente mediante una herramienta de reestructuración, se indican las violaciones de las estructuras de programación estructurada y, entonces, se reestructura el código.

Reestructuración de datos

Los cambios en los datos darán lugar a cambios de arquitectura o de código.

Ingeniería directa

No solamente recupera la información de diseño de un software ya existente, sino que utiliza esta información para alterar o reconstruir el sistema en un esfuerzo por mejorar su calidad. La ingeniería directa no se limita a crear un equivalente moderno de un programa anterior, sino que integra nuevos requisitos y tecnologías. El programa desarrollado amplía las capacidades de la aplicación anterior.

Ingeniería directa para interfaces de usuario

  • Comprender la interfaz original y los datos que se trasladan entre ella y la aplicación.
  • Remodelar el comportamiento implícito.
  • Introducir mejoras.
  • Construir e integrar la nueva IGU (Interfaz Gráfica de Usuario).

Entradas relacionadas: