Title: MANTENIMIENTO DE SOFTWARE
1INTEGRANTES GARCIA VAZQUEZ AMALIA ROSALES JUAREZ
HERMINIO ALMANZA TORRES JOSE JUAN CABRERA
HERNANDEZ MARIA DEL CARMEN
2MANTENIMIENTO DE SOFTWARE
3I N T R O D U C C I Ó N
El término mantenimiento de software se usa
para describir las actividades de la ingeniería
de software que ocurren después de entregar un
producto al cliente.
- Las actividades de mantenimiento implican
- Mejorar los productos de software
- Adaptarlos a nuevos ambientes
- Corregir problemas
4I N T R O D U C C I Ó N
Las actividades del mantenimiento consumen gran
parte del presupuesto total del ciclo de vida. No
es raro que el mantenimiento del software importe
un 70 de los costos totales del ciclo de vida
del software. La distribución del esfuerzo para
el mantenimiento de software se reparte mejoras
60, adaptación 20 y corrección
20.
5I N T R O D U C C I Ó N
Los atributos primarios del producto que
contribuyen al mantenimiento son la claridad, la
modularidad y la documentación interna del código
fuente.
Todas las tareas realizadas durante el
mantenimiento de software se deben efectuar
mediante un enfoque sistemático ordenado que
analice bien los requisitos de las modificaciones
y con un cuidadoso rediseño, reimplantación,
revalidación y redocumentación de los cambios.
6- MEJORAMIENTO DEL MANTENIMIENTO DURANTE EL
DESARROLLO. - ASPECTOS ADMINISTRATIVOS DEL MANTENIMIENTO DE
SOFTWARE. - ADMINISTRACION DE LA CONFIGURACION.
- METRICAS DEL CODIGO FUENTE.
- HERRAMIENTAS Y TECNICAS PARA LOGRAR EL
MANTENIMIENTO.
7MEJORAMIENTO DEL MANTENIMIENTO DURANTE EL
DESARROLLO
ACTIVIDADES DE DESARROLLO QUE MEJORAN EL
MANTENIMIENTO DEL SOFTWARE
Actividades de análisis Desarrollo de
estándares y guías Fijar logros en los
documentos de apoyo Especificar logros en los
documentos de apoyo Identificar probables
mejoras del producto Determinar recursos
requeridos Estimar costos Actividades de
diseño arquitectónico Claridad y modularidad
Diseñar para facilitar probables mejoras Usar
notaciones estandarizadas Actividades de diseño
detallado
8MEJORAMIENTO DEL MANTENIMIENTO DURANTE EL
DESARROLLO
ACTIVIDADES DE DESARROLLO QUE MEJORAN EL
MANTENIMIENTO DEL SOFTWARE
Actividades de implementación Usar estructuras
de una sola entrada y una sola salida Usar
sangrado estándar en las estructuras Usar un
estilo de codificación simple y claro Usar
constantes simbólicas Proporcionar prólogos
estándar de documentación Otras actividades
(documentos de apoyo) Guía de mantenimiento
Juego de pruebas Proporcionar la documentación
del juego de pruebas
9ASPECTOS ADMINISTRATIVOS DE LA INGENIERIA DEL
SOFTWARE
- Uno de los aspectos mas importantes del
mantenimiento del software implica rastrear y
controlar las actividades del mantenimiento, esta
suele llevarse acabo como respuesta a una
solicitud de modificación por parte de un
usuario.
10Solicitud
ASPECTOS ADMINISTRATIVOS DE LA INGENIERIA DEL
SOFTWARE
- Una solicitud de cambios puede implicar mejora,
adaptación corrección de errores. - Las mejoras y las adaptaciones mayores pueden
requerir analisis exaustivo y negociacion con el
cliente , estos se manejan como nuevos proyectos
de desarrollo mas que una actividad de
mantenimiento de rutina
11Junta de control de cambios
ASPECTOS ADMINISTRATIVOS DE LA INGENIERIA DEL
SOFTWARE
- La junta de control de cambios revisa y aprueba
todas las solicitudes de modificación. - Puede rechazar una solicitud, recomendar una
versión modificada del cambio o aprobarlo sin
alteraciones. - La composición de esta junta de control de
cambios puede estar integrada por varios
administradores de alto nivel relacionados con
software y ajenos a este que sean miembros de
organizaciones de mantenimiento y de los
usuarios.
12Resumenes de la solicitud de cambios
ASPECTOS ADMINISTRATIVOS DE LA INGENIERIA DEL
SOFTWARE
- El estado de las solicitudes de cambios y de las
actividades de mantenimiento del software se
deben resumir semanal o mensualmente. - El resumen debe de notificar los problemas de
emergencia y las soluciones temporales en efecto
desde el ultimo informe. - Incluir una sintesis de la tendencias del
mantenimiento en cada resumen de de solicitudes
de cambios. - Los resumenes de las solicitudes de cambios y de
las tendencias del manteniento son valiosas
fuentes de informacion.
13Actividades de control de calidad
ASPECTOS ADMINISTRATIVOS DE LA INGENIERIA DEL
SOFTWARE
- La principal funcion del grupo de control de
calidad durante el mantenimiento del software es
asegurar que la calidad del software no disminuya
como resultado de las actividades de
mantenimiento. - Debe de conducir auditorias y reconocimientos
rapidos sobre el software. -
14Organización de los programadores de
mantenimiento.
ASPECTOS ADMINISTRATIVOS DE LA INGENIERIA DEL
SOFTWARE
- El mantenimiento del software puede realizarse
por el grupo de desarrollo o por miembros de un
grupo separado. Existen ventajas y desventajas en
ambos enfoques -
-
15Miembros del grupo de desarrollo
ASPECTOS ADMINISTRATIVOS DE LA INGENIERIA DEL
SOFTWARE
- Ventajas
- Estan intimamente familiarizados con el producto.
- Entienden muy bien la estructura y filosofía del
diseño del sistema. - El porque de su funcionamiento.
- Cuidadosos al diseñar e implementar el sistema
para mejorar el mantenimiento - Desventajas
- Es menos minucioso al preparar la documentacion
de apoyo. - Las actividades de mantetimiento pueden
desviarlos denuevos proyectos. - Provoca que sea vulnerable en la rotacion de
personal.
16Miembros de un grupo separado
ASPECTOS ADMINISTRATIVOS DE LA INGENIERIA DEL
SOFTWARE
- Ventajas
- Estándares y documentación de alta calidad.
- Puede liberar al grupo de desarrollo para atender
otras actividades. - Puede volverse experto de ciertos detalles del
producto por que dedica su atención completa al
producto. - Desventajas
- Se puede caer en el problema del programador de
mantenimiento.
17ASPECTOS ADMINISTRATIVOS DE LA INGENIERIA DEL
SOFTWARE
- Otro método de organizar la programación de
mantenimiento es rotar con periodicidad a los
programadores entre el desarrollo y
mantenimiento. - Ventajas
- Los programadores pueden seguir cursos de carrera
sin temor a atascarse en una tarea de
mantenimiento de fin de camino. - Los programadores novatos pueden aprender
habilidades de los expertos. - El nivel general del personal se eleva con la
rotación del personal. - Código de alta calidad y documentación adecuada.
- Desventajas
- La principal desventaja es el costo burocrático
incurrido en la rotación de personal en las
diferentes tareas.
18Algoritmo para la administración del
mantenimiento del software
- Solicitud de modificación al software iniciada
- Solicitud analizada
- Si (solicitud no valida) entonces
- - Solicitud cerrada
- De otro modo
- - Solicitud y recomendaciones sometidas a
la junta de control de cambios - Si (la junta de control de cambios accede)
entonces - - Modificaciones realizadas con prioridad y
restricciones establecidas por la junta de
control de cambios - - Pruebas de regresión realizada
- - Cambios sometidos a la junta de control de
cambios - Si (la junta de control aprueba ) entonces
- - Sistema actualizado
- - Documentación externa actualizada
- - Actualización distribuida como ordene la junta
de control de cambios - De otro modo
- - Objeciones de la junta de control de cambios
satisfechas y cambios vueltos a someter a la
junta de control. - De otro modo
- - Solicitud Cerrada
19Administración de la configuración
- Rastreo y control del producto
- Cambios subsecuentes al producto sólo a través de
acuerdo formal - Estandarización del producto
20- Plan y herramientas para la administración de la
configuración - Seguir la pista y controlar a las distintas
versiones - Herramientas software
- Bases de datos
- Sistemas de biblioteca para el control de las
versiones
21Cinco Leyes de la Evolución del Software
- Evolución dentro de familias de versiones
- Desarrollada por Belady y Lehman
- CAMBIO CONTINUO
- COMPLEJIDAD CRECIENTE
- LA LEY FUNDAMENTAL DE LA EVOLUCIÓN DEL PROGRAMA
- CONSERVACIÓN DE LA ESTABILIDAD DE LA ORGANIZACIÓN
- CONSERVACIÓN DE LA FAMILIARIDAD
22Bases de datos para la administración de la
configuración
- Herramienta software de apoyo que ofrece una
macrovisión de una familia de productos - Proporciona información acerca del producto
- Estructura
- Numero de revisión en curso
- Estado
- Historia de solicitudes de cambio
23Cuántas versiones de cada producto
existen? Cómo difieren las versiones? Qué
versiones de cuáles productos están distribuidas
en qué instalaciones ? Qué configuración de
hardware se requiere para operar una versión
específica de cada producto? Cuál es la historia
de revisión de cada componente de cada versión de
cada producto?
24Bibliotecas para el control de versiones
- Puede ser parte de una base de datos o puede ser
independiente - Controla los diferentes archivos que constituyen
las diferentes versiones de un software - Entidades que la componen
- Código fuente
- Código objeto
- Comandos para el control de trabajos
- Archivos de datos
- Documentos de apoyo
25Nº de versión Fecha/hora Programador
- Operaciones
- Creación de la biblioteca
- Adición y borrado de componentes
- Copias de respaldo
- Edición de archivos
- Listado de estadísticas
- Compilación y ensamblado de versiones
- especificadas
26RCS (Revision Control System)
- Sistema de biblioteca para el control de
revisiones - Trata a los archivos como texto.
- Se pueden crear, guardar y recuperar diferentes
versiones de archivos de textos - Se cargan los cambios y estos archivos se pueden
fusionar para crear versiones
27Otras herramientas y técnicasde mantenimiento
- Herramientas automatizadas
- Soporte Técnico
- Soporte Administrativo
28Soporte Técnico
Herramientas de análisis y diseño, de
implantación, hasta la depuración y pruebas
Editores de texto Ayudas de depuración Generadores
de referencia cruzada Editores de
enlace Comparadores Calculadores métricos de
complejidad Sistemas de control de
versión Configuración de bases de datos
administrativas
La herramienta necesaria en el momento preciso