lunes, 22 de febrero de 2016

MANTENIMIENTO DE SOFTWARE

NOMBRE: DIANA CAROLINA HERNANDEZ ARDILA

GRADO: UNDECIMO


¿QUE ES EL MANTENIMIENTO 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 el software es una de las actividades más comunes en la ingeniería de software.
El mantenimiento de software es una actividad muy amplia que incluye la corrección de errores, mejoras de las capacidades, eliminación de funciones obsoletas y optimizan. Debido a que el cambio es inevitable, se debe desarrollar mecanismos para la evaluación, controlar y hacer modificaciones.
IMPORTANCIA DEL MANTENIMIENTO DEL SOFTWARE
A finales de los años 1970, una famosa y ampliamente citada estudio de encuesta por Lientz y Swanson, expuso la muy alta fracción de los costos de ciclo de vida que estaban siendo gastados en mantenimiento. Clasificaron las actividades de mantenimiento en cuatro clases:
·         Adaptable – modificar el sistema para hacer frente a cambios en el ambiente del software (DBMS, OS)
·         Perfectivo – implementar nuevos, o cambiar requerimientos de usuario referentes a mejoras funcionales para el software
·         Correctivo, diagnosticar y corregir errores, posiblemente los encontrados por los usuarios
·         Preventiva – aumentar la capacidad de mantenimiento de software o fiabilidad para evitar problemas en el futuro
FACTORES DE MANTENIMIENTO

Especialistas de mantenimiento
35%
Experiencia alta del personal
34%
Variables y datos manejados por tablas
33%
Baja complejidad de la base de código
32%
YAK y motores especiales de búsqueda
30%
Herramientas de reestructuración de código
29%
Herramientas de reingeniería
27%
Lenguajes de programación de alto nivel
25%
Herramientas de ingeniería inversa
23%
Herramientas de análisis de complejidad
20%
Herramientas de seguimiento de defectos
20%
Especialistas en "actualización masiva" Y2K
20%
Herramientas de control de cambio automático
18%
Horas extras no pagadas
18%
Mediciones de calidad
16%
Inspecciones formales de la base de código
15%
Bibliotecas de pruebas de regresión
15%
Tiempo de respuesta excelente
12%
Formación anual de > 10 días
12%
Experiencia de la alta gerencia
12%



CLASES DE  MANTENIMIENTOS

·         Mantenimiento preventivo. Consiste en la revisión constante del software para detectar posibles focos de problemas que puedan surgir en el futuro.
·         Mantenimiento predictivo. Evalúa el flujo de ejecución del programa para predecir con certeza el momento en el que se producirá la falla, y así determinar cuándo es adecuado realizar los ajustes correspondientes.
·         Mantenimiento correctivo. Corrige los defectos encontrados en el software, y que originan un comportamiento distinto al deseado. Estas fallas pueden ser de procesamiento, rendimiento (por ejemplo, uso ineficiente de los recursos de hardware ), programación (inconsistencias en la ejecución), seguridad o estabilidad, entre otras.
·         Mantenimiento adaptativo.Si se requiere cambiar el entorno de uso de la aplicación (que incluye al sistema operativo, a la plataforma de hardware o, en el caso de las aplicaciones web, al navegador), puede ser indispensable modificarla para mantener su plena funcionalidad en estas nuevas condiciones.
·         Mantenimiento evolutivo. Es un caso especial donde la adaptación resulta 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 (muchas veces impuesto sin el consentimiento del usuario) suele obligar a realizar ajustes en plugins y aplicaciones web.
·         Mantenimiento perfectivo. Por distintas razones, el usuario puede solicitar el agregado de nuevas funcionalidades o características no contempladas al momento de la implementación del software. El mantenimiento perfectivo adapta la aplicación a este requerimiento.