El documento habla sobre el mantenimiento de software. Define el mantenimiento como modificar un sistema de software entregado para corregir errores, mejorar el rendimiento u otros atributos, o adaptarlo a cambios en el entorno. Explica los tipos de mantenimiento, incluyendo perfectivo, adaptativo, correctivo y preventivo. También cubre temas como métricas de mantenimiento, planeación del proceso de mantenimiento y técnicas como la reingeniería.
1. Mantenimiento del Software
Los modelos de ciclo de vida tradicionales representan
el mantenimiento como una fase que comienza una
ves que se han finalizado las pruebas.
Definición según la IEEE:
El proceso de modificar un sistema o componente de
software entregado para corregir defectos, mejorar el
desempeño o algún otro atributo, o adaptarlo al
cambio del entorno
2.
3. Cualidades del Mantenimiento
Brinda oportunidad para demostrar buen servicio al
cliente, y se asocia directamente con la satisfacción del
mismo.
METRICAS DE MANTENIMIENTO.
Primero determinar las metas de mantenimiento para
la aplicación y después se seleccionas las métricas
adicionales para el grado de éxito en el logro de esas
metas.
Números de líneas de código en mantenimiento.
Persona mes para realizar las diferentes tareas de
mantenimientos .
Cuentas de defectos.
4. La Planeación del Proceso de Manteniendo
del Software
Pasos:
1. Diseñar para el Mantenimiento:
Trata de prever la dirección en la que se dirijan los
requerimientos y tener esto en cuenta en el diseño
ayudando a lograr la sustentabilidad
2. Determinar el alcance y mantenimiento.
En esencia se determina si incluir mejoras o no.
3. Identificar quien hará el mantenimiento.
4. Desarrollar plan de Mantenimiento.
5. Se estiman costos.
6. Realizar mantenimientos.
6. Mantenimiento perfectivo:
Conjunto de actividades para mejorar o añadir nuevas
funcionalidades requeridas por el usuario, mejorar el
rendimiento de un programa, aumentar la facilidad
para mantener un programa ante cambios futuros.
Mantenimiento adaptativo:
Es el conjunto de actividades que se realizan para
adaptar el sistema a los cambios(Hardware o
Software), en su entorno tecnológico.
Los cambios pueden ocurrir en:
En el entorno de datos.
En el entorno de procesos.
7. Mantenimiento Correctivo:
Es el conjunto de actividades dedicadas a corregir
defectos en hardware o en Software detectados
por los usuarios durante la explotación del
sistema.
Los fallos pueden ser de:
Procesamiento.
Rendimiento.
Implementación.
Mantenimiento Preventivo:
Conjunto de actividades para facilitar el
mantenimiento futuro del sistema.
8. Técnicas del Mantenimiento
Reingeniería:
Se concibe como una nueva área de la ingeniería que
engloba un gran conjunto de actividades y estrategias
tanto para la reducción del esfuerzo de mantenimiento
de los sistemas como para la reutilización de
componentes de sistemas existentes, estas actividades
se pueden dividir en tres grupos:
Las de mejoras del Software.
Las de comprensión del software.
Las relacionadas con la captura, conservación y la
extensión del conocimiento sobre el software.
9. Importancia de la Reingeniería
Pueden Reducir los riesgos evolutivos de una
organización.
Puede ayudar a la organización a recuperar sus
inversiones en software.
Puede hacer el software mas fácilmente
modificable.
Ayuda en la automatización del mantenimiento
del software.
10. Pasos en un proceso de Reingeniería:
Análisis de código.
Procesos de examinar los sistemas existentes con el
objeto de identificar los principales
candidatos(componentes) para renovar y medir su
calidad.
Restructuración.
Consiste en obtener representaciones semánticas y
funcionalmente equivalente dentro de un mismo nivel
de abstracción, se puede realizar en varios niveles:
De análisis.
De diseño.
De implementación.
11. Ingeniería inversa.
recrea modelos pertenecientes a niveles
superiores, su principal objetivo incrementar la
compresión global del sistema para el
mantenimiento o nuevo desarrollo, trae otros
beneficios:
Reducir la complejidad del sistema.
Recuperar información perdida.
Detectar efectos colaterales.
Facilitar la reutilización
12. Rediseño.
Consiste en modificar y consolidar los modelos
obtenidos añadiendo nuevas funciones
requeridas por los usuarios, se puede realizar a
nivel de análisis o rediseño, así como a nivel de
datos y nivel de procesos.
Ingeniería directa.
Corresponde al desarrollo de software
convencional.