domingo, 2 de febrero de 2014

Mantenimiento de Software

Aun cuando son las últimas en el ciclo de vida del software, las actividades  de mantenimiento no son las menos importantes. Muy al contrario demasiada importancia pues logran un mejor funcionamiento del software.

Definición de Mantenimiento
 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”.
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”.

En la definición de mantenimiento aparecen indicados, directa o  indirectamente, cuatro tipos de mantenimiento:
– Corregir defectos →correctivo
– Mejorar el rendimiento →preventivo/perfectivo u otras propiedades
– Adaptar a un cambio de entorno →adaptativo

Mantenimiento Correctivo
A pesar de las pruebas y verificaciones que aparecen en etapas anteriores del  ciclo de vida del software, los programas pueden tener defectos. 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.
• Los cambios pueden afectar a:
– el sistema operativo (cambio a uno más moderno),
– 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).
• La envergadura del cambio necesario puede ser muy diferente: desde un  pequeño retoque en la estructura de un módulo hasta tener que reescribir prácticamente todo el programa para su ejecución en un ambiente distribuido  en una red.
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.
• Este tipo de mantenimiento es cada vez más frecuente debido principalmente  al cambio, cada vez más rápido, en los diversos aspectos de la informática:  nuevas generaciones de hardware, nuevos sistemas operativos -o versiones de  los antiguos-, 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).


 Mantenimiento perfectivo:
Cambios en la especificación, normalmente debidos a cambios en los requerimientos de un producto software, implican un nuevo tipo de  mantenimiento llamado perfectivo. La casuística es muy variada. Desde algo tan simple como cambiar el formato de impresión de un informe, hasta la incorporación de un nuevo módulo funcional. Podemos definir el mantenimiento perfectivo como el conjunto de actividades para mejorar o añadir nuevas funcionalidades requeridas por el usuario. Se divide en dos:
 - Mantenimiento de Ampliación: incorporación de nuevas funcionalidades.
- Mantenimiento de Eficiencia: mejora de la eficiencia de ejecución.

Mantenimiento preventivo:
 Modificación del software para mejorar las propiedades de dicho software  (calidad y mantenibilidad) sin alterar sus especificaciones funcionales. Incluir  sentencias que comprueben la validez de los datos de entrada, reestructuración de los  programas para aumentar su legibilidad o incluir nuevos comentarios. Este tipo de  mantenimiento utiliza las técnicas de ingeniería inversa y reingeniería. El  mantenimiento para la reutilización especializado en mejorar la reusabilidad del software se incluye en este tipo.


El mantenimiento tiene una importancia muy grande debido a que si queremos  tener un  software libre de fallos o con fallos mínimos debemos darle mantenimiento para que tenga buena funcionabilidad y así satisfaga las necesidades del usuario.

Trabajos citados

ESCUELA SUPERIOR DE INFORMÁTICA, U. D.-L. (2010). Grupo Alarcos. Recuperado el 31 de Enero de 2014, de Grupo Alarcos: http://alarcos.inf-cr.uclm.es/doc/mso/slides/S1.pdf
Facultad de Estadística e Informática, U. V. (2000). http://www.uv.mx/fei/. Recuperado el 31 de Enero de 2014, de http://www.uv.mx/fei/: http://informatica.uv.es/iiguia/2000/IPI/material/tema7.pdf
Tlaxcala, U. A. (Agosto de 2011). http://ingenieria.uatx.mx/. Recuperado el 30 de Enero de 2014, de http://ingenieria.uatx.mx/: http://ingenieria.uatx.mx/





No hay comentarios.:

Publicar un comentario