Please enable JavaScript.
Coggle requires JavaScript to display documents.
Mantenimiento de software y documentación🥼💾 :fire:, image, image, image…
Mantenimiento de software y documentación🥼💾 :fire:
Código heredado
Gran parte del software actual está formado por código antiguo o “legacy code”.
Este código fue desarrollado con técnicas y herramientas en desuso.
A menudo, el código heredado ha sido objeto de múltiples actividades de mantenimiento.
Reescribirlo para adaptarlo a nuevas necesidades tecnológicas es costoso y a veces inadecuado.
Leyes del Mantenimiento del Software
Continuidad del Cambio: Los programas deben cambiar para mantenerse relevantes.
Incremento de la Complejidad: Los cambios pueden hacer que la estructura del programa sea más compleja.
Evolución del Programa: La evolución es un proceso autorregulado con tendencias e invariantes. :
Conservación de la Estabilidad Organizacional: La carga de desarrollo es constante a lo largo del tiempo.
Conservación de la Familiaridad: El número de cambios en cada versión tiende a ser constante.
Efectos secundarios:
Efectos Secundarios sobre los Datos
Las estructuras de datos son fundamentales en cualquier software, y cualquier cambio en ellas puede provocar fallos importantes.
Estos efectos secundarios pueden surgir debido a la redefinición de constantes, modificaciones en formatos de registros o archivos, cambios en el tamaño de matrices y otras estructuras, alteraciones en la definición de variables globales, reinicialización de indicadores o modificaciones en los argumentos de los subprogramas.
Documentar correctamente los datos, incluyendo tablas de referencias cruzadas, ayuda a reducir estos efectos secundarios.
Efectos Secundarios sobre la Documentación
Cuando los cambios en el código no se reflejan en la documentación técnica o de usuario, se producen efectos secundarios.
Si la documentación no se adapta al estado actual del software, se afecta la percepción de los usuarios sobre el producto.
Cambios en el formato de entradas interactivas, mensajes de error no documentados, tablas o índices desactualizados y texto incorrecto son ejemplos de situaciones que pueden generar efectos secundarios en la documentación .
Efectos Secundarios sobre el Código
Los desarrolladores a menudo enfrentan problemas debido a pequeños errores, como olvidar añadir un punto y coma o confundir signos de puntuación.
Las modificaciones en el código fuente que tienen mayor probabilidad de inducir a nuevos errores incluyen cambios en el diseño, eliminación o modificación de subprogramas, etiquetas o identificadores, así como ajustes para mejorar el rendimiento.
Solución al mantenimiento de software
Soluciones organizativas y de gestión
Gestión de la Calidad
Descomposición del software en entidades funcionales estándar.
Uso estricto de estándares de documentación.
Diseño paso a paso en cada nivel de descomposición.
Uso de código estructurado.
Definición temprana de interfaces y estructuras de datos.
Gestión Estructurada del Proceso
Emplear una metodología de ingeniería del software para gestionar el mantenimiento.
La gestión estructurada del mantenimiento reduce la complejidad y mejora la calidad de los cambios.
Gestionar la configuración del software es esencial para mantener registros y controlar los elementos del sistema.
Mejora de los Recursos Dedicados al Mantenimiento
El recurso humano es fundamental para el mantenimiento.
Constituir un grupo separado de programadores dedicados a mantener código antiguo puede ser beneficioso.
Asignar a programadores inexpertos a esta tarea puede ser problemático debido a la falta de experiencia en técnicas de ingeniería del software y conocimiento del dominio.
Soluciones Técnicas
Métodos: Incluyen la reingeniería (reconstrucción del sistema), la ingeniería inversa (análisis de componentes y relaciones) y la reestructuración del software (modificación para facilitar cambios y reducir errores).
Herramientas: Diseñadas para ayudar al personal de mantenimiento a comprender el programa y probar sus modificaciones. Estas herramientas incluyen formateadores, analizadores estáticos, estructuradores, documentadores, depuradores interactivos, generadores de datos de prueba y comparadores.