Corporación Universitaria Iberoamericana
Evolucion del software y costos asociados al mantenimiento del software
Luis Jorge Pedroza Silva
ID: 100141228
Bogotá, 19 de Mayo de 2024
Análisis del Mantenimiento de Software y su
Evolución en la Industria
1. Introducción
El mantenimiento de software es una actividad crucial que garantiza la relevancia,
funcionalidad y eficiencia continuas de los productos de software. A medida que la
industria del software ha evolucionado, las prácticas de mantenimiento también han
cambiado significativamente. Este documento analiza estos cambios, presenta una línea
de tiempo con hitos importantes relacionados con el mantenimiento de software, define
un escenario para una empresa con un producto de software específico y ejemplifica los
costos asociados a las diferentes categorías de mantenimiento según el SWEBOK.
2. Análisis de la Evolución del Mantenimiento de Software
Fases de Evolución del Mantenimiento de Software
1960-1970: Mantenimiento Reactivo y Corrección de Errores
En los primeros días de la informática, el mantenimiento de software era principalmente
reactivo, centrado en corregir errores una vez que se descubrían. La falta de metodologías
estructuradas y herramientas limitadas significaba que los desarrolladores pasaban mucho
tiempo solucionando problemas que surgían después de que el software había sido
desplegado.
1980: Aumento de la Complejidad y el Mantenimiento Adaptativo
Con el incremento en la complejidad de los sistemas y la introducción de aplicaciones más
sofisticadas, el mantenimiento adaptativo se convirtió en una necesidad. Las empresas
comenzaron a modificar sus aplicaciones para adaptarse a nuevos entornos y requisitos.
La introducción de metodologías de desarrollo estructurado ayudó a gestionar esta
complejidad.
1990: Emergence de Aplicaciones Empresariales y Mantenimiento Perfectivo
La década de 1990 vio el surgimiento de grandes aplicaciones empresariales, como
sistemas ERP, que requerían mantenimiento perfectivo para optimizar y mejorar
continuamente sus funcionalidades. El mantenimiento preventivo también comenzó a
tomar relevancia, enfocándose en evitar problemas futuros mediante la mejora de la
infraestructura del software.
2000: Internet y Software como Servicio (SaaS)
La explosión de internet y la popularidad del software como servicio (SaaS) llevaron a un
cambio hacia un mantenimiento más proactivo y evolutivo. Las empresas necesitaban
actualizar y mejorar sus aplicaciones de manera continua para mantenerse competitivas.
Las prácticas de integración y entrega continua comenzaron a integrarse en el
mantenimiento de software.
2010 en Adelante: DevOps y Metodologías Ágiles
La adopción de DevOps y metodologías ágiles integró el mantenimiento de software
dentro del ciclo de vida continuo del desarrollo. La retroalimentación constante y la
mejora continua se convirtieron en pilares fundamentales, permitiendo a las empresas
reaccionar rápidamente a los cambios y necesidades del mercado.
3. Línea de Tiempo de la Evolución del Mantenimiento de
Software
1968: Conferencia de Garmisch, donde se acuñó el término "Ingeniería de Software".
1976: Lehman y Belady publican las leyes de la evolución del software, destacando la
naturaleza inevitable del cambio y la complejidad creciente.
1981: Barry Boehm publica "Software Engineering Economics", introduciendo el modelo
COCOMO para estimar costos de mantenimiento.
1985: Se popularizan las metodologías de desarrollo estructurado, enfatizando la
importancia del mantenimiento adaptativo.
1991: Se lanzan los primeros sistemas ERP, destacando la necesidad de mantenimiento
perfectivo y preventivo.
2001: Publicación del Manifiesto Ágil, promoviendo iteraciones rápidas y continuas en el
desarrollo y mantenimiento de software.
2005: Surge el concepto de DevOps, uniendo desarrollo y operaciones para mejorar la
entrega continua y el mantenimiento.
2009: Publicación de ITIL v3, que incluye prácticas de gestión de servicios de TI, integrando
el mantenimiento como una actividad esencial.
2014: Publicación de SWEBOK v3, formalizando las categorías de mantenimiento de
software.
2020: Aumento de la adopción de la inteligencia artificial y el machine learning en el
mantenimiento predictivo del software.
4. Escenario de Empresa con Producto de Software
Características de la Empresa y Producto
Empresa: TechSolutions Inc.
Producto: EasyManage - una solución SaaS para la gestión de proyectos.
Particularidades del Producto:
Basado en la nube: Permite acceso global y escalabilidad, eliminando la necesidad de
infraestructura local.
Integración con otras herramientas: APIs abiertas para integración con CRM y otras
aplicaciones empresariales.
Actualizaciones automáticas: Despliegue continuo de mejoras
Monitoreo en tiempo real: Supervisión continua del rendimiento y la seguridad, con alertas
y respuestas automáticas.
Interfaz amigable para el usuario: Diseñada para ser intuitiva y fácil de usar, mejorando la
adopción por parte de los usuarios.
5. Ejemplo de Costos de Mantenimiento
Tipos de Mantenimiento según SWEBOK
Mantenimiento Correctivo
Enfocado en la reparación de fallos y errores descubiertos después de que el software ha
sido desplegado. Esto incluye problemas que afectan la funcionalidad y la usabilidad del
sistema.
Actividades: Identificación de errores, corrección de código, pruebas y despliegue
Costos: $100,000/año.
Mantenimiento Adaptativo
Ajuste del software para que funcione en nuevos entornos o con nuevos requisitos. Esto
puede incluir la adaptación a nuevos sistemas operativos, navegadores o hardware.
Actividades: Modificaciones para compatibilidad con nuevos sistemas, pruebas de
regresión, actualización de documentación.
Costos: $150,000/año.
Mantenimiento Perfectivo
Mejoras y optimizaciones del software para mejorar su rendimiento y usabilidad. Esto
incluye el desarrollo de nuevas funcionalidades y la optimización de las existentes.
Actividades: Desarrollo de nuevas características, mejoras de rendimiento, optimización de
la interfaz de usuario, refactorización del código.
Costos: $200,000/año.
Mantenimiento Preventivo
Prevención de futuros problemas y mejora de la estructura interna del software. Esto
puede incluir la refactorización del código y la mejora de la documentación para facilitar
futuros mantenimientos.
Actividades: Refactorización del código, auditorías de seguridad, mejora de la
documentación, actualización de librerías y frameworks.
Costos: $120,000/año.
Resumen de Costos
Tipo de Mantenimiento Actividades Costos Anuales
Correctivo Reparación de errores y fallos $100,000
Adaptativo Ajustes para nuevos entornos $150,000
Perfectivo Mejoras y optimizaciones $200,000
Preventivo Prevención y refactorización $120,000
Total $570,000
6. Conclusión
El mantenimiento de software ha evolucionado significativamente desde sus inicios,
adaptándose a los cambios en la tecnología y las metodologías de desarrollo. Desde una
actividad principalmente reactiva y correctiva, ha pasado a ser una parte integral y
proactiva del ciclo de vida del software. La integración de prácticas ágiles y DevOps ha
permitido una mayor flexibilidad y eficiencia, asegurando que los productos de software
se mantengan relevantes y funcionales en un entorno en constante cambio.
7. Referencias
• Lehman, M.M. & Belady, L.A. (1985). Program Evolution: Processes of Software
Change. Academic Press.
• Boehm, B. (1981). Software Engineering Economics. Prentice Hall.
• Fowler, M. (1999). Refactoring: Improving the Design of Existing Code. Addison-
Wesley.
• Pressman, R. (2014). Software Engineering: A Practitioner's Approach. McGraw-Hill
Education.
• Bass, L., Clements, P., & Kazman, R. (2012). Software Architecture in Practice.
Addison-Wesley.