Tipos y Estrategias de Mantenimiento de Software: Adaptación y Evolución
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 3,77 KB
Describa brevemente tres tipos principales de mantenimiento del software. ¿Por qué en ocasiones es difícil diferenciarlos? El mantenimiento del software es el proceso de cambiar un sistema después de que este se entregó. Existen tres tipos de mantenimiento de software:
- Reparación de fallas: Los errores de codificación por lo general son relativamente baratos de corregir; los errores de diseño son más costosos, ya que quizás impliquen la reescritura de muchos componentes del programa. Los errores de requerimientos son los más costosos de reparar debido a que podría ser necesario un extenso rediseño del sistema.
- Adaptación Ambiental: Este tipo de mantenimiento se requiere cuando algún aspecto del entorno del sistema, como el hardware, la plataforma operativa del sistema u otro soporte, cambia el software. El sistema de aplicación tiene que modificarse para lidiar con dichos cambios ambientales.
- Adición de funcionalidad: Este tipo de mantenimiento es necesario cuando varían los requerimientos del sistema, en respuesta a un cambio organizacional o empresarial. La escala de los cambios requeridos en el software suele ser mucho mayor que los otros tipos de mantenimiento.
En ocasiones es difícil diferenciar los tres tipos de mantenimiento debido a que cuando se adapta el sistema a un nuevo entorno, se puede agregar funcionalidad para sacar ventaja de las nuevas características del entorno. Las fallas de desarrollo del software con frecuencia quedan expuestas debido a que los usuarios usan el sistema en formas no anticipadas. Cambiar el sistema para adaptar su forma de trabajar es la mejor forma de corregir dichas fallas.
Defina y explique cuáles son las estrategias de cambio para el software. Explique en qué casos se utiliza cada una. Las estrategias de cambio de software son:
- Mantenimiento: Se realiza cuando hay un cambio en un requerimiento o nuevos requerimientos. Se realiza para que el software se adapte a los cambios de su entorno. También puede ser solicitado por cambio del sistema operativo o se puede realizar cuando se encuentran fallas en el sistema, este caso es soportado económicamente por la empresa desarrolladora. El mantenimiento debe ser encarado como un proyecto, realizando todos los workflows para obtener la documentación del cambio, planificar el proceso, decidir si es costeable, los recursos que son necesarios, etc. Para realizarlo es necesario contar con la mayor cantidad de documentación del sistema posible, y si el sistema posee una estructura flexible que fue diseñada para soportar cambios, facilita el proceso de mantenimiento. En cambio, una estructura compleja, de la cual se cuenta con poca documentación, no se podrá comprender fácilmente el sistema y un cambio puede generar muchas fallas en otro subsistema. El mantenimiento no modifica la estructura del sistema.
- Evolución de la arquitectura: Cambiar el software y continuar dándole mantenimiento conforme se implementan cambios más importantes en la arquitectura del mismo. Comúnmente, los sistemas evolucionan de una arquitectura de datos centralizada a un cliente-servidor.
- Reingeniería de software: Se refiere a re implementar sistemas heredados para hacerlos más mantenibles. La reingeniería comprende la re documentación del sistema, la organización y reestructura del sistema, la traducción del sistema a un lenguaje de programación más moderno y la modificación y actualización de la estructura y los valores de los datos del sistema. La funcionalidad del software no se cambia y, normalmente, la arquitectura del sistema también permanece igual.