Вы находитесь на странице: 1из 40

Liberando el sistema

• Ayudar a los usuarios a entender y usar el


sistema
Distintos tipos de usuarios
• Entrenamiento
• Documentación
• Solución de Problemas
• Conversión
• Instalación

May-12 Ing. de Software Liberación y Mantenimiento - 1


Entrenamiento
• Dos grupos a entrenar:
 Usuarios finales
 Operadores/Administradores
• Usuarios
 Presentar lo que hace el sistema
 Cómo usarlo
• Operadores o Administradores
 Funciones de soporte
 Explicar cómo funciona
• Diferentes necesidades
 usuarios frecuentes/eventuales
 usuarios nuevos/experientes

May-12 Ing. de Software Liberación y Mantenimiento - 2


Revisión del entrenamiento
• Evaluar el entrenamiento
Grado de uso del sistema
Eficiencia en el uso
Cumplimiento de objetivos
• Entrenamiento debe tomar en cuenta:
características y preferencias personales
estilos de trabajo
presiones de la organización

May-12 Ing. de Software Liberación y Mantenimiento - 3


Ayudas al entrenamiento
• Documentos
 cuidado con el tamaño (asegurar lectura y relación
costo/beneficio)
° Guías/referencias
• Ayuda en línea
• Demostraciones Parte importante de la
• Talleres Validación
 ¿cuándo hacerlo?
° conflictos por: disponibilidad, validación temprana, olvido por
desuso
• Usuarios expertos
 entrenadores
 pueden dar primer nivel de soporte (descentralización)
May-12 Ing. de Software Liberación y Mantenimiento - 4
Documentación
• Parte de enfoque adecuado del entrenamiento
• Facilita soporte y solución de problemas
• Importancia depende de:
 número de usuarios (+)
 dispersión (+)
• Atributos de calidad
 legibilidad
° estructura
° tamaño
° ilustraciones
° facilidad para ubicar información relevante
 completo
 correcto

May-12 Ing. de Software Liberación y Mantenimiento - 5


Documentación
• atender las distintas visiones/necesidades
 usuarios finales
 administradores/operadores
 instalación/configuración
 personalización/mantenimiento
 visión general/detalles específicos
• Para operador
 configuraciones de hardware y software
 procedimientos para
° autorizar acceso a usuarios
° agregar o suprimir equipo periférico
° generar copias de respaldo
° solucionar problemas

May-12 Ing. de Software Liberación y Mantenimiento - 6


Soporte y solución de problemas

• Guía de mensajes de error


ayuda para detectar, informar y manejar
problemas
utilizado para solución de problemas
• Guía rápida
con las funciones más importantes
• Ayuda en línea
• Asistencia activa y entrenamiento en línea

May-12 Ing. de Software Liberación y Mantenimiento - 7


Conversión
• Sustituir un sistema anterior por uno nuevo
manual o automatizado
carga inicial de
° datos básicos
° información histórica (calidad de datos)
• Estrategia de conversión
big-bang
paulatina
° convivencia (-)
° ajuste de procedimientos (+)
procesamiento en paralelo
° uno en producción, el otro en prueba/control
May-12 Ing. de Software Liberación y Mantenimiento - 8
Instalación
• Instalar el software de forma que quede
disponible y operativo
Su complejidad depende de:
° Tecnología utilizada
° Restricciones funcionales (por ejemplo temporales)
° Requerimientos de disponibilidad
La facilidad de instalación afecta la liberación
inicial y las sucesivas liberaciones durante el
mantenimiento

May-12 Ing. de Software Liberación y Mantenimiento - 9


Preguntas
• ¿Cuándo corresponde comenzar la planificación de la
liberación de un sistema? ¿Por qué?
• ¿Qué aspectos resulta necesario atender durante la
liberación?
• ¿Qué relevancia tiene la documentación del software
para su puesta en funcionamiento?
• ¿Por qué resulta conveniente asignar recursos para la
solución de problemas durante el período inicial de la
implantación de un sistema?
• ¿Qué distintas estrategias de conversión existen?
¿Qué ventajas y desventajas presenta cada una de
ellas?

May-12 Ing. de Software Liberación y Mantenimiento - 10


Manteniendo el Sistema
• El sistema cambiante...
• Naturaleza del mantenimiento
• Problemas
• Medición de las características
• Técnicas y Herramientas
• Rejuvenecimiento del software

May-12 Ing. de Software Liberación y Mantenimiento - 11


El sistema cambiante...
• Cualquier modificación realizada a un
sistema luego de entrar en operación se
considera mantenimiento
• El hardware se gasta y deteriora ¿el
software también?
• Tipos de sistemas: S, P, E

May-12 Ing. de Software Liberación y Mantenimiento - 12


Sistema S – solución bien conocida
“Specifiable”
S No es candidato a Realidad Se puede
cambiar. especificar
Otra especificación formalmente y de
Problema forma completa.Un
corresponde a otro
problema cambio en la
Especificación especificación
de Requerimientos cambia el problema
¿Cumple la Sistema
Especificación?
Comparación
Puede cambiar
Información

May-12 Ing. de Software Liberación y Mantenimiento - 13


Sistema P – basado en una
abstracción práctica del problema
“Problem-Solving”
Realidad Se especifica una
P es candidato a abstracción
cambiar (simplificación) del
Problema problema

¿Es una
Especificación
solución de Requerimientos
aceptable al
problema? Sistema
Comparación
Pueden haber Puede cambiar
soluciones
Información
mejores
May-12 Ing. de Software Liberación y Mantenimiento - 14
Sistema E – embebido en el mundo
real y cambia con la realidad
Realidad Termina
formando parte
de la realidad
Problema que modela
¿Es una Especificación
solución
aceptable al
de Requerimientos
problema en
Sistema
determinado
contexto? Comparación
Puede cambiar
Información

May-12 Ing. de Software Liberación y Mantenimiento - 15


Cambio durante el ciclo de vida

• Todo puede cambiar


• Considerar el cambio durante el desarrollo
• Facilitar el cambio durante el mantenimiento

• ¿Es posible construir el sistema correcto la 1a.


vez?
• Mantenimiento = evolución
• Sistemas legados (legacy) construidos para
otras necesidades y ambiente

May-12 Ing. de Software Liberación y Mantenimiento - 16


Sistemas legados (legacy)

• construidos hace años


• normalmente con herramientas y
tecnología hoy obsoletas
• pueden resultar críticos para las
organizaciones
aplicación central al negocio
difícil (costo, riesgo) de sustituir
alto costo de mantenimiento/operación
(personal, conocimiento, documentación,...)

May-12 Ing. de Software Liberación y Mantenimiento - 17


Desarrollo vs. Mantenimiento

• Desarrollo típico 6 meses – 2 años


• Mantenimiento: 5, 10, + años...
• Evolución ¿declinación?
Costo de mantenimiento
Confiabilidad
Adaptabilidad
Desempeño
Funciones de poca utilidad
Otros sistemas hacen lo mismo a menor costo
May-12 Ing. de Software Liberación y Mantenimiento - 18
“Leyes de la evolución del software”
(Lehman 80)
a partir de observación de sistemas grandes en orgs. grandes
• Continuidad del Cambio:
 cambia o se vuelve menos útil
• Complejidad creciente:
 deterioro de la estructura y complejidad crece (a menos que se
actúe para disminuirla)
• Ley fundamental de la evolución de un programa
 Dinámica con tendencia e invariantes estadísticos
• Conservación de la estabilidad organizacional
 La producción tiende a ser estadísticamente invariante (agregar más
personas no la incrementa)
• Conservación de la familiaridad (complejidad percibida)
 Contenido de las sucesivas versiones es estadísticamente invariante

May-12 Ing. de Software Liberación y Mantenimiento - 19


Naturaleza del mantenimiento
• Correctivo
 Respuesta a los problemas que surgen en el uso
diario
• Adaptativo
 Respuesta a cambios en el ambiente
• Perfectivo
 Mejorar algún aspecto ya presente
• Preventivo
 Introducir cambios para prever fallas

May-12 Ing. de Software Liberación y Mantenimiento - 20


Distrib. Esfuerzo mantenimiento en 487
proyectos (Lientz-Swanson 81)

Adaptativo
25%
Perfectivo
50% Preventivo 4%
Correctivo
21%

May-12 Ing. de Software Liberación y Mantenimiento - 21


Problemas con el mantenimiento
• Necesidad de balancear la necesidad de
cambio con la disponibilidad del sistema
• Problemas
de Personal
Técnicos
Necesidades conflictivas
Costo

May-12 Ing. de Software Liberación y Mantenimiento - 22


Problemas de Personal
• Comprensión limitada
 47% de esfuerzo dedicado a entender el sistema
(Parikh-Zvegintzov 83)
 Impacto de un cambio
 Información incompleta o incorrecta al reportar
problemas
• Prioridades de la gerencia
 Mantenimiento y mejora más o menos importante que
desarrollar nuevas aplicaciones
 Según estudio de Lientz-Swanson 81:
- Motivación - 11,9% de problemas
- Prioridades múltiples o cambiantes - 8% de
problemas

May-12 Ing. de Software Liberación y Mantenimiento - 23


Problemas Técnicos
• Especificaciones de diseño inadecuadas
• Programas y documentos de mala calidad
• Dificultades en pruebas
Ambiente
Datos – volumen

May-12 Ing. de Software Liberación y Mantenimiento - 24


Necesidades conflictivas
• elegancia y principios de diseño y urgencia
de la solución
• Solucionar un problema en un sistema que
no domina
Solución adecuada y a la vez rápida
Impacto del cambio
• Necesidades de corto plazo y de largo plazo
Costos actuales vs. Futuros
• Política de versiones
Planificación de incorporación de cambios

May-12 Ing. de Software Liberación y Mantenimiento - 25


Costo del mantenimiento
• Todos los problemas contribuyen a elevar los
costos de mantenimiento
• Tendencia creciente de los costos de
mantenimiento
 40-60 % del costo total en los 80
 ¿80% en 2000?
• Factores adicionales
 Secuencia de reparaciones y mejoras centradas en
soluciones de corto plazo incrementan costos de
mantenimientos subsiguientes
 Especialización del personal

May-12 Ing. de Software Liberación y Mantenimiento - 26


Factores que inciden en el
costo del mantenimiento
• Estabilidad del equipo de mantenimiento
• Responsabilidad contractual
 desarrolladores sin responsabilidad por el
mantenimiento pueden no haber diseñado para el
cambio
• habilidades del personal
 a menudo con poca formación/entrenamiento en
herramientas y dominio de aplicación
• Edad y estructura de los programas
 Con el paso del tiempo, los programas “envejecen” y se
degrada la estructura, con lo que se vuelven más
difíciles de entender y modificar

May-12 Ing. de Software Liberación y Mantenimiento - 27


Técnicas y Herramientas

• Gestión de la Configuración
Comité de Control de Cambios
Procedimiento de cambios

• Análisis de Impacto

May-12 Ing. de Software Liberación y Mantenimiento - 28


Comité de Control de Cambios
Objetivo: controlar los cambios (mejoras o corrección de
defectos)
° Integra Cliente, Usuarios, Desarrolladores
Pasos
 Solicitud de Cambio (o reporte de problema)
 CCC califica (defecto, cambio)
 evalúa (severidad, impacto)
 prioriza
 Asigna su atención
Procedimiento
 Asegura que se cumplan los pasos y su registro
 Cuándo, quién, por qué, qué cambió, aprobó

May-12 Ing. de Software Liberación y Mantenimiento - 29


Procedimientos de cambios

• Solicitud de cambio (normal)


 evaluación
 priorización
 análisis de impacto
 implementación
 pruebas
 puesta en producción
• Solicitud de cambio (emergencia)

May-12 Ing. de Software Liberación y Mantenimiento - 30


Preventivo
Actividades
Adaptativo
Correctivo
Perfectivo

Gestionar Nuevo
mantenimiento Sistema
del software
Solicitud de
Cambio
Entender Implementar Evaluar efectos
Analizar (Re)test
software cambio
impacto secundarios Software
a cambiar
afectado

Sistema Guía para definir Complejidad Adaptabilidad Estabilidad Facilidad


Existente Impacto/Alcance Modularidad Consistencia de Pruebas
Trazabilidad Documentación Verificación
Auto descripcíon Completitud

May-12 Ing. de Software Liberación y Mantenimiento - 31


Trazabilidad Horizontal
Diseño de Código de Pruebas
componentes componentes Test t.1
Documento de d1 Code m.1 Test t.2
Requerimientos d2 ... Test t.3 ...
. Code m.2
. Test t.4
... Test t.5 ...
r1 Code m.3
r2 d1 Test t.6
d2 Code m.4... ... Prueba
r2.2 Test t.7 Acep-
r3 d3 Test t.8 ... tación
Code m.5...
. Test t.9 n.2
. ...
d1 Test t.10 ...
d2 Code m.6 Test t.11
. ... ...
. Test t.12
May-12 Ing. de Software Liberación y Mantenimiento - 32
Grafo subyacente
D1 C1 T1
R1
D2 C2 T2
R2 D3 C3 T3
D4 C4 T4
R3
D5 C5 T5
R4 D6 C6 T6
R5 D7 C7 T7
D8 C8 T8
R6 . . .
. . . .
. . . .
Rj Dk Cm Tn

Requerimientos Diseño Código Pruebas


May-12 Ing. de Software Liberación y Mantenimiento - 33
Herramientas para Mantenimiento
• Editores de Texto
• Compiladores y Linkers
• Debuggers
• Analizadores estáticos de código
• Generadores de Referencias Cruzadas (impacto)
• Gestión de Configuración
 Manejo de versiones (original + delta; último y deltas inversos)
 Control de acceso concurrente
 Facilidades para reconstruir ejecutable (make)
 Comparadores de archivos (diff)
 Gestión de Paquetes de Cambio (versiones asociadas- etiquetas)

May-12 Ing. de Software Liberación y Mantenimiento - 34


Métricas del proceso

• Permiten evaluar la mantenibilidad


 número de solicitudes de mantenimiento correctivo
 tiempo promedio para análisis de impacto
 tiempo promedio para implementar solicitud de
cambio
 número de solicitudes de cambio pendientes
• un incremento en cualquiera de ellos puede
estar indicando problemas de mantenibilidad

May-12 Ing. de Software Liberación y Mantenimiento - 35


Métricas del producto

• Complejidad
 estructuras de control
 estructuras de datos
 tamaño de procedimientos y módulos
• permite predecir esfuerzo de mantenimiento

May-12 Ing. de Software Liberación y Mantenimiento - 36


Historia de esfuerzo de
mantenimiento
• Por componente, permite
 evaluar conveniencia de re-escribir/re-diseñar en
lugar de mantener
• Estudios muestran
 concentración de esfuerzo de mantenimiento en
pocos módulos

May-12 Ing. de Software Liberación y Mantenimiento - 37


Rejuvenecimiento del software
• Trata de mejorar la calidad global de un producto
(normalmente sistema heredado)
• Redocumentar – análisis del código fuente para proveer
más información para asistir al mantenimiento
• Reestructurar – transformar código mal estructurado en
código bien estructurado – transformar arquitectura
• Ingeniería Reversa – recrear diseño y especificación a
partir del código
• Reingeniería – ingeniería reversa seguida de ingeniería
directa para ajustar especificación, rediseñar y construir

May-12 Ing. de Software Liberación y Mantenimiento - 38


Rejuvenecimiento del software
ESPECIFICACION

DISEÑO

CODIGO FUENTE

Ingeniería Reestructura Redocumentar Ingeniería Reingeniería


Directa • a partir del • desde el códigoReversa • A partir del código
• sigue el código • análisis estático•A partir del código • ingeniería
proceso •Representar • informe sobre • produce diseño Reversa seguida de
internamente estructura, y especificación •Ingeniería directa
•Simplificar la complejidad, basada en métodos
estructura y volumen, datos, de software aceptados
eliminar código etc. • controla la representación
muerto
•Regenerar
May-12 código Ing. de Software Liberación y Mantenimiento - 39
Preguntas
• ¿Por qué resulta necesario realizar mantenimiento del
software? ¿Qué le pasa usualmente a un software que no
se mantiene?
• ¿Cómo es posible clasificar los tipos de mantenimiento en
función de sus objetivos?
• ¿Qué porcentaje del costo total del software corresponde
a mantenimiento?
• ¿Qué problemas plantea el mantenimiento?
• ¿Qué necesidades conflictivas aparecen durante el
mantenimiento?
• ¿Qué hay que hacer para que los atributos de calidad del
software no se degraden durante el mantenimiento?
• ¿Qué problema plantean los “sistemas legados”? ¿Por qué
siguen existiendo?
• ¿Qué técnicas hay para rejuvenecer el software?
May-12 Ing. de Software Liberación y Mantenimiento - 40

Вам также может понравиться