Post Top Ad

Your Ad Spot

DEFINICIONES Y TERMINOLOGIA

 

MANTENIMIENTO DE SOFTWARE

 

El Ciclo De Vida y Mantenimiento De Software


Las fases principales en el Ciclo de Vida del Software son:  
  • Análisis y Definición de Requisitos. 
  • Especificación.  
  • Diseño.  
  • Programación (escritura del código).  
  • Prueba e instalación.  
  • Operación y mantenimiento.

En la ingeniería de software, el mantenimiento de software es la modificación de un producto de software después de la entrega, para corregir errores, mejorar el rendimiento u otros atributos. 
 
El mantenimiento del software es también una de las fases del ciclo de vida del desarrollo del sistema (SDLC), que se aplica al desarrollo de software. La fase de mantenimiento es la fase que sigue al despliegue (implementación) del software en el campo. Una percepción común del mantenimiento es que se trata simplemente de la corrección de defectos. 
 
El mantenimiento del software y la evolución de los sistemas fue abordado por primera vez por Meir M. Lehman en 1969. Su investigación condujo a la formulación de las leyes de Lehman (Lehman 1997). Las principales conclusiones de su investigación incluyen que el mantenimiento es realmente un desarrollo evolutivo y que las decisiones de mantenimiento son ayudadas por la comprensión de lo que sucede con los sistemas (y el software) a lo largo del tiempo. Lehman demostró que los sistemas siguen evolucionando con el tiempo. A medida que evolucionan, se vuelven más complejos a menos que se tomen algunas medidas como la refactorización del código para reducir la complejidad.
 
Los principales problemas de mantenimiento del software son administrativos y técnicos. Las cuestiones clave de la gestión son: la alineación con las prioridades del cliente, la dotación de personal, qué organización se encarga del mantenimiento y la estimación de los costes. Las cuestiones técnicas clave son: comprensión limitada, análisis de impacto, pruebas, medición de la mantenibilidad. 
 
Entre las características sobresalientes del mantenimiento del software destacan que: 
* El software no envejece.  
* El mantenimiento del software supone adaptar el paquete o sistema a nuevas situaciones como:
 Cambio de hardware.  
 • Cambio de software de base (S.O.).  
 * Todo sistema software conlleva mejoras o añadidos indefinidamente. Al cerrar todo proyecto se debe considerar y preveer las normas del mantenimiento del sistema (tanto en connotaciones hardware como software).
 
 

Tipos De Mantenimiento De Software

 

A lo largo de su vida útil, la aplicación puede necesitar modificaciones por diferentes razones, que determinan diferentes tipos de mantenimiento:

  • Mantenimiento preventivo: Consiste en la revisión constante del software para detectar posibles fuentes de problemas que puedan surgir en el futuro.
  • Mantenimiento predictivo: Evalúa el flujo de ejecución del programa para predecir con certeza cuándo ocurrirá la falla, y así determinar cuándo es apropiado hacer los ajustes correspondientes.
  • Mantenimiento correctivo: Corrige los defectos encontrados en el software, y que originan un comportamiento diferente al deseado. Estas fallas pueden ser de procesamiento, rendimiento, seguridad o estabilidad, entre otras.
  • Mantenimiento adaptativo: Si es necesario cambiar el entorno en el que se utiliza la aplicación (que incluye el sistema operativo, la plataforma de hardware o, en el caso de las aplicaciones web, el navegador), puede ser necesario modificarla para mantener su plena funcionalidad en estas nuevas condiciones.
  • Mantenimiento evolutivo: Es un caso especial donde la adaptación es prácticamente obligatoria, ya que de lo contrario el programa quedaría obsoleto con el paso del tiempo. Por ejemplo, el cambio de versión en un navegador (a menudo impuesto sin el consentimiento del usuario) suele requerir ajustes en los plugins y aplicaciones web.
  • Mantenimiento perfecto: Por diferentes razones, el usuario puede solicitar la adición de nuevas funcionalidades o características no consideradas en el momento de la implementación del software. Un mantenimiento perfecto adapta la aplicación a este requisito. 

 Proceso De Mantenimiento De Software

El proceso de mantenimiento contiene actividades y medidas para el encargado del mantenimiento. Este proceso se activa cuando:

  • Los procesos primarios de Adquisición y Entrega pueden iniciar la actividad de Implementación por medio de un acuerdo o contrato.
  • El proceso de operación principal puede iniciar el proceso de mantenimiento del software enviando una solicitud de modificación o un informe de problemas.
  • Los procesos de soporte de documentación, gestión de configuración, control de calidad, verificación, revisión conjunta, auditoría y resolución de problemas se utilizan en el proceso de mantenimiento del software.
  • La gestión, la infraestructura y la formación son procesos que el encargado del mantenimiento emplea al iniciar un proyecto de mantenimiento.
  • El proceso de mejora se centra en mejorar el proceso de mantenimiento para que la adaptación sea apropiada para eventos no rutinarios como el mantenimiento de emergencia.

El proceso del ciclo de vida del Mantenimiento de Software comienza con la implementación de este proceso donde se planifica el mantenimiento y termina con la retirada del producto.

  • Incluye la modificación del código y la documentación debido a un problema o a la necesidad de mantenimiento.
  • El objetivo del Proceso de Mantenimiento es modificar un producto de software existente preservando su integridad.
 

 Costes Del Mantenimiento De Software

El coste del mantenimiento de un producto software a lo largo de su vida útil es superior al doble de los costes de su desarrollo.  
 


Las causas a las que se debe este incremento de trabajo de mantenimiento son:
  
1) Gran cantidad de software antiguo (más de 10 años); aún siendo construidos con las mejores técnicas de diseño y codificación del momento, su creación se produjo con restricciones de tamaño y espacio de almacenamiento y con herramientas desfasadas tecnológicamente.  
2) Los programas sufren migraciones continuas de plataformas o Sistemas Operativos. 3) El software ha experimentado modificaciones, correcciones, mejoras y adaptaciones a nuevas necesidades de los usuarios. Además, estos cambios se realizaron sin técnicas de reingeniería o ingeniería inversa, dando como resultado sistemas que funcionan con baja calidad.

Dificultades del Mantenimiento

Código Heredado 

La mayor parte del software en la actualidad está formado por código antiguo “heredado” (legacy code); esto es, código desarrollado hace tiempo, con técnicas y herramientas en desuso, por personas que actualmente no se encargan de su mantenimiento. Además puede que incluso este código haya pasado varias actividades de mantenimiento; y por otra parte, el volver a reescribirlo no compensa por la carga financiera que supuso.

Ante esto es muy importante acatar ciertas leyes y directrices que aseguren el funcionamiento y una operatividad prolonga de nuestro software, estos se mencionan a continuación: 

 
  • Continuidad del cambio: Un programa utilizado en un entorno del mundo real debe cambiar si no quiere dejar de ser usado. Esto se debe a que surgen nuevas funcionalidades, nuevo hardware puede permitir mejoras en el software, se corrigen defectos, se instala en otro sistema operativo/máquina o el software necesita ser más eficiente.
  • Incremento de la Complejidad: Cuando se realizan cambios en un programa la estructura se hace más compleja si no se utilizan técnicas de ingeniería del software.
  • Evolución del programa: Es un proceso autorregulado. Se mantienen las tendencias e invariantes de las propiedades del programa.
  • Conservación de la Estabilidad Organizacional: La carga que supone el desarrollo de un programa es aproximadamente constante e independiente de los recursos dedicados a lo largo del tiempo de vida del mismo. 
  • Conservación de la Familiaridad: El incremento en el número de cambios introducidos con cada versión (release) es aproximadamente constante.  
 
 
Bibliografia
 
https://mantenimiento.win/mantenimiento-de-software/

http://informatica.uv.es/iiguia/2000/IPI/material/tema7.pdf
 


No hay comentarios:

Publicar un comentario

Post Top Ad

Your Ad Spot