El mantenimiento de software es el proceso de modificar un producto de software después de haberlo entregado al cliente. El objetivo principal del mantenimiento del software es modificar y actualizar las aplicaciones de software después de la entrega para corregir fallas y mejorar el rendimiento.
Necesidad de mantenimiento:
el mantenimiento del software debe realizarse para:
- Corregir fallas.
- Mejorar el diseño.
- Implementar mejoras.
- Interfaz con otros sistemas.
- Acomodar los programas de modo que se puedan usar diferentes hardware, software, características del sistema e instalaciones de telecomunicaciones.
- Migrar software heredado.
- Retirar software.
Desafíos en el Mantenimiento de Software:
Los diversos desafíos en el mantenimiento de software se dan a continuación:
- La edad popular de cualquier programa de software se toma en consideración hasta diez o quince años. Como la actualización del programa de software es abierta y puede mantenerse durante décadas, lo que la hace muy costosa.
- Los programas de software más antiguos, que estaban destinados a funcionar en máquinas lentas con menos memoria y capacidad de garaje, no pueden mantenerse firmes en comparación con el software más ventajoso que viene en el hardware moderno.
- Los cambios a menudo se dejan sin documentar, lo que también puede causar mayores conflictos en el futuro.
- A medida que avanza la era, se vuelve costoso preservar el software antiguo.
- A menudo, los ajustes realizados pueden dañar fácilmente la forma original del software, lo que dificulta los próximos ajustes.
Categorías de mantenimiento de software:
el mantenimiento se puede dividir en lo siguiente:
- Mantenimiento correctivo:
el mantenimiento correctivo de un producto de software puede ser esencial para corregir algunos errores observados mientras el sistema está en uso o para mejorar el rendimiento del sistema.
- Mantenimiento adaptativo:
esto incluye modificaciones y actualizaciones cuando los clientes necesitan que el producto se ejecute en nuevas plataformas, en nuevos sistemas operativos o cuando necesitan que el producto interactúe con nuevo hardware y software.
- Mantenimiento perfectivo:
un producto de software necesita mantenimiento para soportar las nuevas funciones que los usuarios desean o para cambiar diferentes tipos de funcionalidades del sistema de acuerdo con las demandas del cliente.
- Mantenimiento preventivo:
Este tipo de mantenimiento incluye modificaciones y actualizaciones para prevenir futuros problemas del software. Su objetivo es atender problemas, que no son significativos en este momento pero pueden causar problemas graves en el futuro.
Ingeniería inversa: la ingeniería
inversa es un proceso de extracción de conocimiento o información de diseño de cualquier cosa hecha por el hombre y su reproducción en función de la información extraída. También se le llama Ingeniería.
Ingeniería inversa de
software: la ingeniería inversa de software es el proceso de recuperar el diseño y la especificación de requisitos de un producto a partir de un análisis de su código. La ingeniería inversa se está volviendo importante, ya que varios productos de software existentes carecen de la documentación adecuada, están muy desestructurados o su estructura se ha degradado debido a una serie de esfuerzos de mantenimiento.
¿Por qué ingeniería inversa?
- Proporcionar la documentación adecuada del sistema.
- Recuperación de información perdida.
- Ayudando con el mantenimiento.
- Facilidad de reutilización de software.
- Descubrir fallas o fallas inesperadas.
Utilizado de Ingeniería Inversa de Software –
- La ingeniería inversa de software se utiliza en el diseño de software, la ingeniería inversa permite al desarrollador o programador agregar nuevas funciones al software existente con o sin conocer el código fuente.
- La ingeniería inversa también es útil en las pruebas de software, ayuda a los probadores a estudiar el virus y otros códigos de malware.