El estándar IEEE 1219 [IEEE, 1993] define el
Mantenimiento del Software como “la
modificación de un producto software
después de haber sido entregado [a los
usuarios o clientes] con el fin de corregir
defectos, mejorar el rendimiento u otros
atributos, o adaptarlo a un cambio en el
entorno”.
En el estándar ISO 12207, de Procesos del Ciclo de
Vida del Software [ISO/IEC, 1995] se establece que
“el Proceso de Mantenimiento contiene las
actividades y tareas realizadas por el mantenedor.
Este proceso se activa cuando el producto software
sufre modificaciones en el código y la
documentación asociada, debido a un problema o
a la necesidad de mejora o adaptación. El objetivo
es modificar el producto software existente
preservando su integridad. Este proceso incluye la
migración y retirada del producto software. El
proceso termina con la retirada del producto
software”. El mantenedor es la organización que
proporciona el servicio de mantenimiento.
Pressman [1998] dice que “la fase
mantenimiento se centra en el cambio que va
asociado a la corrección de errores, a las
adaptaciones requeridas a medida que
evoluciona el entorno del software, y a
cambios debidos a las mejoras producidas por
los requisitos cambiantes del cliente”.
Mantenimiento Correctivo
El mantenimiento correctivo tiene por objetivo localizar y
eliminar los posibles defectos de los programas. Un defecto
en un sistema es una característica del sistema con el
potencial de causar un fallo. Un fallo ocurre cuando el
comportamiento de un sistema es diferente del
establecido en la especificación. Entre otros, los fallos en el software pueden ser de:
- Procesamiento, por ejemplo, salidas incorrectas de un programa.
- Rendimiento, por ejemplo, tiempo de respuesta demasiado alto en una búsqueda de información.
- Programación, por ejemplo, inconsistencias en el diseño de un programa.
- Documentación, por ejemplo, inconsistencias entre la funcionalidad de un programa y el manual de usuario.
Mantenimiento Adaptativo
Este tipo de mantenimiento consiste en la modificación de
un programa debido a cambios en el entorno (hardware o
software) en el cual se ejecuta.
Estos cambios pueden afectar al sistema operativo
(cambio a uno más moderno), a la arquitectura física del
sistema informático (paso de una arquitectura de red de
área local a Internet/Intranet) o al entorno de desarrollo
del software (incorporación de nuevos elementos o
herramientas como ODBC).
El tipo de cambio necesario puede ser muy diferente:
desde un pequeño retoque en la estructura de un módulo
hasta tener que re escribir prácticamente todo el
programa para su ejecución en un ambiente distribuido en
una red.
Mantenimiento Adaptativo
Los cambios en el entorno software pueden ser de dos clases:
- En el entorno de los datos, por ejemplo, al dejar de trabajar con un sistema de ficheros clásico y sustituirlo por un sistema de gestión de bases de datos relacionales.
- En el entorno de los procesos, por ejemplo, migrando a una nueva plataforma de desarrollo con componentes distribuidos, Java, ActiveX, etc.
El mantenimiento adaptativo es cada vez más usual debido
principalmente al cambio, cada vez más rápido, en los
diversos aspectos de la informática: nuevas generaciones de
hardware cada dos años, nuevos sistemas operativos -ó
versiones de los antiguos- que se anuncian regularmente, y
mejoras en los periféricos o en otros elementos del sistema. Frente a esto, la vida útil de un sistema software puede superar
fácilmente los diez años [Pressman, 1993].
Mantenimiento Perfectivo
Cambios en la especificación, normalmente
debidos a cambios en los requisitos de un
producto software, implican un nuevo tipo de
mantenimiento llamado perfectivo.
Desde algo tan simple como cambiar el formato
de impresión de un informe, hasta la
incorporación de un nuevo módulo aplicativo.
Podemos definir el mantenimiento perfectivo
como el conjunto de actividades para mejorar o
añadir nuevas funcionalidades requeridas por el
usuario.
Algunos autores dividen este tipo de
mantenimiento en dos:
- Mantenimiento de Ampliación: orientado a la incorporación de nuevas funcionalidades.
- Mantenimiento de Eficiencia: que busca la mejora de la eficiencia de ejecución.
Este tipo de mantenimiento aumenta cuando un
producto software tiene éxito comercial y es
utilizado por muchos usuarios, ya que cuanto más
se utiliza un software, más peticiones de los
usuarios se reciben demandando nuevas
funcionalidades o mejoras en las existentes.
Mantenimiento Preventivo
Este tipo de mantenimiento consiste en la
modificación del software para mejorar sus
propiedades (por ejemplo, aumentando su calidad y/o
su mantenimiento) sin alterar sus especificaciones
funcionales.
Por ejemplo, se pueden incluir sentencias
que comprueben la validez de los datos de entrada, re
estructurar los programas para mejorar su legibilidad, o
incluir nuevos comentarios que faciliten la posterior
comprensión del programa. Este tipo de mantenimiento
es el que más partido saca de las técnicas de
ingeniería inversa y reingeniería.
En algunos casos se ha planteado el Mantenimiento
para la Reutilización, consistente en modificar el
software (buscando y modificando componentes para
incluirlos en bibliotecas) para que sea mas fácilmente
reutilizable. En realidad este tipo de mantenimiento es
preventivo, especializado en mejorar la propiedad de
reusabilidad del software.
Actividades de Mantenimiento
Basili et al. [1996] identifican las siguientes once
actividades, que se realizan con cada modificación del
software:
- Análisis de impacto y de costes/beneficios: se dedica esta actividad a analizar diferentes alternativas de implementación y/o a comprobar su impacto en la planificación, coste y facilidad de operación.
- Comprensión del cambio: puede consistir en localizar el error y determinar su causa, o en comprender los requisitos de una mejora solicitada.
- Diseño del cambio: se refiere al diseño propuesto para el cambio, pudiéndose incluir un rediseño del sistema.
- Codificación y pruebas unitarias: se codifica y prueba el funcionamiento de cada componente modificado.
- Inspección, certificación y consultoría: esta actividad se dedica a inspeccionar el cambio, comprobar otros diseños, reuniones de inspección, etc.
- Pruebas de integración: se refiere a comprobar la integración de los componentes modificados con el resto del sistema.
- Pruebas de aceptación: en esta actividad, el usuario comprueba, junto al personal encargado del mantenimiento, la adecuación del cambio a sus necesidades.
- Pruebas de regresión: en esta actividad se somete el software modificado a casos de pruebas previamente almacenados y por los que ya pasó.
- Documentación del sistema: se revisa y reescribe, en caso necesario, la documentación del sistema para que se ajuste al producto software ya modificado.
- Otra documentación (del usuario, por ejemplo): se revisa y reescribe, en caso necesario, los diferentes manuales de usuario y otra documentación, excepto la documentación del sistema.
- Otras actividades, como las dedicadas a la gestión del proyecto de mantenimiento.
Tomado de https://swcb37.files.wordpress.com/2013/08/mantenimiento-de-software.pdf
No hay comentarios:
Publicar un comentario