Como vimos anteriormente, un problema no necesariamente
implica un defecto del software. Estos aparecen
simplemente porque el comportamiento esperado del
sistema no coincide con el actual. Esto puede ser de un
defecto del software, pero también puede ser fácilmente
el resultado de: un desconocimiento de las capacidades
del sistema, de la utilización incorrecta del flujo de
trabajo, de una documentación pobre de cambios en las
directrices de la empresa, o de otras tantas razones.
La gestión de respuestas a los problemas del sistema
cubre muchas de las potenciales actividades. Algunas
de las posibles soluciones a los problemas del sistema
podrían incluir:
• Liberación de nuevas versiones.
• Sesiones de planificación.
• Identificación de la formación necesaria.
• Actualización de la documentación, etc.
La gran mayoría de los estándares relacionados con el
mantenimiento de software, definen las siguientes categorías:
a) Mantenimiento adaptativo
Es la modificación de un software (después de su puesta
en producción), para mantenerlo en funcionamiento en
un ambiente que ha cambiado o que lo va a hacer. Tiene
por objetivo la modificación de un sistema debido a
cambios en el entorno (sistema operativo, por ejemplo),
o en el hardware (por ejemplo pasar de un sistema de
16 bits a uno de 32) o en el software (por ejemplo, los
cambios de un cliente clásico desarrollado en Visual Basic,
Delphi o C/C++ a uno “ligero” Thin Client para ejecutarse
sobre un navegador de internet; etc.) en el que
se realiza.
Este tipo de mantenimiento es el más usual debido a
los rápidos cambios que se producen en la tecnología
informática, que en la mayoría de las ocasiones dejan
obsoletos los softwares desarrollados, no por su inoperancia,
sino por la competitividad entre las empresas, en
las que cada vez influye más el software utilizado.
b) Mantenimiento correctivo
Es la modificación de un software, después de su puesta
en producción, para corregir los fallos descubiertos.
Tiene por objetivo localizar y eliminar los posibles defectos
de los programas.
A pesar de las pruebas y verificaciones que se deben
realizar durante el ciclo de vida del software, los programas
pueden tener desperfectos. Estos se producen
cuando el comportamiento del sistema es diferente al
esperado por su especificación. Estos pueden ser: de
procesamiento, de rendimiento, de programación o de
documentación. La mayoría de los defectos se originan
en la etapa de especificación de requisitos y en la de
codificación, por lo que también son importantes las
primeras fases del ciclo de vida para el mantenimiento
del software.
c) Mantenimiento perfectivo
Es la modificación de un software, después de su puesta
en producción y para mejorar el rendimiento. Estos
cambios pueden ser: la inclusión de un monitor transaccional
y su gestión, para mejorar los accesos a la base
de datos, la utilización de cachés en los usuarios de un
sistema cliente-servidor, para liberar la carga de la red
de comunicaciones, etc.
El aumento del número de usuarios del sistema, como
el incremento de las funcionalidades, puede repercutir
en el rendimiento de este y requerir un mantenimiento
perfectivo.
d) Mantenimiento preventivo
Este mantenimiento es citado en algunos importantes
textos de Ingeniería de software (Pressman, R. (2010). Ingeniería del software. Editorial McGraw-Hill,
7° edición), sin embargo, no se
menciona como tal en el estándar IEEE 1219, sino que
se incluye como parte del Mantenimiento perfectivo.
Éste consiste en la modificación del software sin alterar
las especificaciones del mismo. Es decir, no se quitan ni
agregan funcionalidades ni propiedades, pero se cambian
para mejorar los atributos del producto y facilitar
así futuras tareas de mantenimiento.
Los cambios que se llevan a cabo son en cuanto a los
comentarios del código y la reestructuración de los programas
para mejorar su comprensión.
Se debe realizar cuando sabemos que un sistema tiene
un alto grado de probabilidad de que requiera modificaciones,
de manera que sea más fácil su mantención.
Como ejemplo, podemos citar el agregar comentarios
en el código, explicando lo que hace cada grupo de instrucciones.
Referencias bibliográficas Pressman R. (2010). Ingeniería del software, séptima edición. Mexico: Mc Graw Hill Educación. Estándar IEEE 1219. Estándar IEEE/ISO 12207.
No hay comentarios:
Publicar un comentario