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.