ScholarGate
Asistente

Mantenimiento y Evolución del Software

El mantenimiento y la evolución del software se refieren a la modificación del software después de su entrega y a la dinámica a largo plazo mediante la cual los sistemas deben cambiar continuamente para seguir siendo útiles.

Encontrar tema con PaperMindPróximamenteFind papers & topics
Tools & resources
Descargar diapositivas
Learn & explore
VídeoPróximamente

Definition

El mantenimiento de software es la modificación de un producto de software después de su entrega para corregir fallos, mejorar el rendimiento o adaptarlo a un entorno cambiado, y la evolución del software es el proceso más amplio y continuo mediante el cual el software cambia a lo largo de su vida útil en respuesta a requisitos y entornos cambiantes.

Scope

Esta área abarca las categorías de mantenimiento (correctivo, adaptativo, perfectivo, preventivo); las leyes empíricas de la evolución del software; la comprensión de programas y el análisis de impacto; la reingeniería, ingeniería inversa y migración de sistemas heredados; la acumulación y gestión de la deuda técnica; y los procesos y estándares que rigen el mantenimiento, como ISO/IEC 14764.

Sub-topics

Core questions

  • ¿Qué categorías de cambio componen el mantenimiento y cómo se diferencian?
  • ¿Qué leyes empíricas rigen cómo debe evolucionar el software con el tiempo?
  • ¿Cómo se comprende, reestructura y migra el software heredado?
  • ¿Cómo se acumula la deuda técnica y cómo se gestiona?

Key theories

Categorías de mantenimiento de software
El mantenimiento se clasifica como correctivo (corrección de fallos), adaptativo (respuesta a cambios en el entorno), perfectivo (mejora de la función o el rendimiento) y preventivo (mejora de la mantenibilidad), siendo el trabajo adaptativo y perfectivo el dominante en la práctica.
Leyes de Lehman sobre la evolución del software
Lehman observó que los sistemas en uso activo deben cambiar continuamente o volverse progresivamente menos satisfactorios, y que a medida que evolucionan, su complejidad aumenta a menos que se trabaje para reducirla.

Clinical relevance

El mantenimiento suele consumir la mayor parte del costo total de vida útil de un sistema, por lo que comprender la dinámica de la evolución, controlar el crecimiento de la complejidad y gestionar la deuda técnica son decisivos para la economía y viabilidad a largo plazo del software.

Evidence & guidelines

ISO/IEC 14764 define el proceso de mantenimiento de software, y el área de conocimiento de Mantenimiento de Software de SWEBOK proporciona orientación consensuada sobre las categorías, actividades y técnicas de mantenimiento.

History

El reconocimiento de que el mantenimiento domina el costo del software creció en la década de 1970; Lehman y Belady formularon las leyes de la evolución del software a partir del estudio empírico de grandes sistemas, y las técnicas de reingeniería y modernización de sistemas heredados se desarrollaron a medida que los sistemas de larga duración envejecían y la deuda técnica se convertía en una preocupación reconocida.

Debates

Mantener, reestructurar o reemplazar sistemas heredados
Decidir si seguir manteniendo, reestructurar o reemplazar por completo un sistema antiguo es un debate estratégico recurrente, que equilibra el riesgo y el costo del reemplazo frente al costo creciente y la fragilidad del mantenimiento continuo.

Key figures

  • Meir M. Lehman
  • Les Belady
  • Ian Sommerville

Related topics

Seminal works

  • lehman1980
  • iso14764
  • sommerville2015

Frequently asked questions

¿El mantenimiento es solo corregir errores?
No. La corrección de errores (mantenimiento correctivo) es solo una categoría; la mayor parte del esfuerzo de mantenimiento es adaptativo y perfectivo —ajustar el software a nuevos entornos y añadir o mejorar capacidades— lo que en conjunto supera el trabajo correctivo en sistemas típicos.
¿Por qué la complejidad del software tiende a crecer con el tiempo?
Como observó Lehman, los cambios continuos para satisfacer necesidades en evolución añaden estructura y casos especiales; a menos que se dedique un esfuerzo deliberado a la reestructuración y reducción de la complejidad, el sistema se vuelve progresivamente más difícil de cambiar.

Methods for this concept

Related concepts