Tipos de mantenimiento de software: alternativas después del despliegue

El mantenimiento de software busca corregir errores encontrados durante la utilización del software o mejorar tecnologías y funcionalidades, sin afectar el sistema de manera general.

A pesar de la amplia cultura que se ha alcanzado en temas relacionados con el desarrollo de software, para muchos clientes, el despliegue e instalación del sistema es el final del ciclo.

¡Y realmente no es así!

Las etapas de desarrollo de software son varias y justo después del despliegue, o implantación como se conoce en algunas metodologías, se encuentra el mantenimiento, que puede expresarse también como una actividad dentro del soporte al software.

tipos de mantenimiento de software

El objetivo del mantenimiento es crear el espacio para poder corregir errores encontrados durante la utilización del software, o mejorar tecnologías y funcionalidades, sin afectar el sistema de manera general.

Habitualmente esta etapa es ampliamente estudiada como parte de la ingeniería de software y es la base para favorecer que un sistema o producto perdure en el tiempo, y continúe funcionando de manera adecuada.

Además, es la principal vía para alinear las tecnologías con las mejoras que estas alcanzan con los años.

👉 También te puede interesar leer: ¿Cómo hacer la arquitectura de la información de un sitio web?Guía práctica

Este comportamiento se encuentra registrado en las leyes de Lehman, donde se plantea el mantenimiento como un tipo de desarrollo evolutivo, donde se eliminan funciones obsoletas, se optimiza el código y se mejoran las condiciones de crecimiento del software.

En este caso la acciones que se realizan en esta etapa permiten:

  • Prever posibles problemas, errores o mejoras, antes que se materialicen.
  • Adaptar el software a nuevos entornos de despliegue o ambientes de ejecución.
  • Mejorar tecnologías, requisitos o implementar funcionalidades nuevas.
  • Solucionar errores encontrados por los usuarios.

Cada una de estas acciones, mencionadas anteriormente, corresponden a diferentes tipos de mantenimientos.

👉 Te puede interesar: Software en línea: características, ventajas, desventajas y ejemplos

Mantenimiento adaptable

Este tipo de mantenimiento suele conocerse como adaptativo y está asociado a todas las actividades que se realizan con el objetivo de lograr estabilizar el software en cambios de entornos, logrando que este se mantenga funcionando, a pesar de las modificaciones que ocurran.

El alcance no está limitado, pues incluye en ocasiones la reescritura de grandes bloques de código.

La única condición que debe cumplir es que estas actualizaciones no impliquen modificar requisitos principales ni la arquitectura del sistema.

Incluso, su mayor ámbito de aplicación es para incorporar nuevos parámetros, aun cuando el software se encuentre funcionando de la manera esperada.

El mantenimiento adaptativo se agrupa, según el área de impacto, en dos grupos:

  • Entornos de datos
  • Entornos de procesos.

👉 También te puede interesar leer: Los patrones de diseño en el desarrollo de software

Mantenimiento evolutivo

Habitualmente este mantenimiento es similar al anterior, pero su objetivo final varía considerablemente.

Lo esencial del mantenimiento evolutivo es incorporar nuevos requerimientos y cubrir las necesidades que surjan en los clientes o usuarios finales.

También incorpora la eliminación de aquellas funcionalidades que ya no son útiles, o resultan conflictivas en el funcionamiento del software.

Entre las cuestiones que favorece aplicar este mantenimiento, se encuentran:

  • Lograr que el software sea reutilizable.
  • Actualizar el software a las tendencias del mercado.
  • Aplicar desarrollo novedoso a las funcionalidades que se incorporen.
  • Disminuir el impacto de cambios que se incorporen al resto de las funcionalidades existentes.

Mantenimiento programado

Esta clasificación no aplica en acciones de mantenimiento en sí, sino que implica diferentes tipos y sus objetivos es organizar como se realizan los mantenimientos.

Las empresas utilizan esta categoría para establecer cronogramas y tareas donde se especifican dónde, cuándo y cómo se ejecutarán los mantenimientos, por lo que su enfoque es más organizacional que técnico.

Un ejemplo de ámbito de aplicación es en los centros de hospedaje, o hosting, donde estas tareas deben ser informadas a los clientes, y por lo tanto su organización debe ser lo más estricta posible.

Esto explica, que, en un mantenimiento programado, se deben tener bien declaradas que actividades incluyen, en que entorno impacta y especialmente, un plan de contingencia.

👉 También te puede interesar leer: WebPack: una mirada al empaquetado de aplicaciones en la web

Mantenimiento preventivo

El objetivo principal de este mantenimiento es, como indica su nombre, prevenir la ocurrencia de fallos o comportamientos no deseados.

Cuando una empresa dedicada al soporte (por ejemplo) recibe un sistema, debe simular su funcionamiento en un entorno lo más cercano al real, y probarlo con el interés de buscar errores y corregirlos antes de que se materialicen en los usuarios.

Otra tarea que puede ubicarse en esta categoría es la actualización de versiones de tecnologías para anteponerse a brechas de seguridad que puedan surgir en el futuro.

De esta forma el mantenimiento programado es una alternativa dentro del mantenimiento preventivo, como forma de organizarlo y aplicarlo.

Otros tipos de mantenimientos preventivos son:

  • Mantenimiento predictivo: determina el momento en que se deben realizar las correcciones.
  • Mantenimiento de oportunidad: programa correcciones o mejoras aprovechando los períodos de no utilización del software.

Mantenimiento perfectivo

Durante el levantamiento de requisitos, tanto los clientes como los analistas, pueden ver el sistema de un punto de vista que luego con la explotación de estos puede cambiar.

También ocurre que la experticia de los clientes mejora, y con ellos su visión de cómo debe ser el software que gestiona su proceso principal.

Con este objetivo surge el mantenimiento perfectivo, el cual se centra en evolucionar un software desde sus requisitos, sus tecnologías y su visualidad.

Incorpora acciones de adición, modificación o eliminación de funcionalidades que sean necesarias en la misión de incrementar la usabilidad de un sistema.

Este tipo de mantenimiento debe ser manejado con tacto, pues tiene impacto en los usuarios y puede provocar resistencia al cambio, lo que implica negociación con los clientes y debe ser aplicado de a poco, evitando modificaciones bruscas o a gran escala.

Mantenimiento correctivo

A pesar de la existencia de etapas de pruebas antes del despliegue del software y múltiples clasificaciones de mantenimientos que son aplicables para prevenir fallas, es altamente probable que algunas de ellas se materialicen.

Las acciones de corrección de estos errores se organizan como parte del mantenimiento correctivo, el cual indica políticas y saberes adquiridos de cómo proceder en estos casos.

La característica principal de este mantenimiento es su urgencia, y por tanto los equipos que lo ejecutan deben estar altamente preparados.

Las actividades de solución de los problemas que se presenten deben ejecutarse en un corto plazo y los sistemas deben ser reactivados con la mayor inmediatez.

Se conoce que el mantenimiento correctivo es muy común dentro de los servicios de soporte técnico.

Existen tres subtipos dentro de esta categoría:

  • Mantenimiento correctivo no planeado: el error se genera de manera inesperada, pero su solución no es urgente, pues el sistema continúa funcionando.
  • Mantenimiento correctivo programado: se realiza después de haber incorporado una solución alternativa. Luego de esto se programa un mantenimiento para aplicar soluciones más eficientes al problema ya resuelto.
  • Mantenimiento correctivo de emergencia: Ocurre de manera inesperada, pero debe ser resuelto con rapidez pues afecta el funcionamiento del sistema o parte esencial de este. En ocasiones desencadena posteriormente un mantenimiento correctivo no programado.

Espero que la información que te brindo sea de utilidad. Te esperamos para seguir aprendiendo del mundo del software y su desarrollo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.