Evolución de Software

Marcello Visconti & Hernán Astudillo Departamento de Informática Universidad Técnica Federico Santa María <hernan|visconti at inf.utfsm.cl>

Evolución de Software
? Mantención de Software ? Gestión de Configuración de Software

Page 1

? Software envejece: se corrigen errores.. se efectúan mejoras ... se producen ajustes.Mantención de Software Mantención de Software ? Software no se gasta. cambian las plataformas. se parcha ? Impacto del cambio (inevitable) debe ser evaluado y controlado Page 2 .. no pueden reemplazarse sus partes .

reingeniería) Mantención de Software ? Mantención más recurrente: perfectiva ? ¿mantención? o ¿desarrollo evolutivo? Page 3 .Mantención de Software: Tipos ? Correctiva ? diagnóstico y corrección de errores ? Adaptativa ? adecuación a un ambiente cambiante ? Perfectiva ? mejoramientos y adición de nuevas capacidades ? Preventiva ? mejoramiento de mantenibilidad futura (ingeniería inversa.

pérdida de imagen ? Diferencias de productividad: hasta 40:1 con desarrollo Page 4 .Mantención de Software ? Mantención es típicamente no estructurada ? normalmente solo existe el código fuente. insatisfacción de clientes. hay mala o nula documentación ? se dilapidan esfuerzos ? frustración Mantención de Software: Costos ? 60%+ de los costos totales ? Costos intangibles: oportunidades de desarrollo perdidas.

estructuración del producto ? Métricas fundamentales ? tiempos (detección.Mantención de Software: Problemas ? Cambios no documentados ? Comprensión del trabajo ajeno ? Documentación ? Diseño inadecuado ? Mala actitud Mantención de Software: Mantenibilidad ? Facilidad de hacer mantención ? Factores diversos ? personal. corrección) ? Importancia de revisiones ? todas las fases del desarrollo deben considerar la mantenibilidad Page 5 . estandarización. análisis.

Mantención de Software: Tareas ? Unidad de mantención ? Documentos estándar ? Flujo de eventos ? Registro ? Evaluación Gestión de Configuración de Software Page 6 .

documentar. o líneas base. puede ser modificado solo a través de un procedimiento formal de control de cambios ? Control de cambio ? proceso y procedimiento para identificar. organizar y controlar los cambios al producto que se desarrolla ? SCM cubre el proceso completo ? Configuración del software corresponde a todos los artefactos que se producen durante el desarrollo y mantención ? Para administrar el cambio: “baselines”. hitos en el desarrollo y que constituyen los ítemes de la configuración ? Los cambios se hacen sobre una copia del “baseline” SCM: Terminología Básica ? “Baseline” ? producto formalmente revisado y aprobado.Gestión de Configuración de Software ? Software Configuration Management (SCM) ? Consiste en identificar. revisar y autorizar cambios Page 7 . base para futuros desarrollos.

usualmente apoyado por una herramienta ? Auditoría de configuración ? exámenes independientes de ítems de la configuración y actividades para evaluar cumplimiento de criterios establecidos Page 8 .SCM: Terminología Básica ? “Release” ? acción mediante la cual una versión particular de un producto se hace disponible para un propósito específico ? Versión ? instancia de un ítem de la configuración. una vez transformado en “baseline” no puede ser cambiado sin crear un nueva versión SCM: Terminología Básica ? Control de versiones ? proceso y procedimiento para identificar y gestionar ítems según cambian en el tiempo.

Datos de Prueba Sistema en funcionamiento SCM: Tareas ? Identificación de ítems ? Control de versiones ? Control de cambios ? Auditoría de configuración ? Informe de cambios Page 9 . Procedimientos.SCM: Ejemplo de “Baselines” Ingeniería del Sistema Especificación del Sistema Análisis de Requerimientos Especificación de Requerimientos del Software Diseño del Software Especificación del Diseño Codificación Código Fuente Prueba Planes.

más que el simple establecimiento de una base de datos Page 10 .SCM: Disciplina Ingenieril Efectiva ? SCM como parte efectiva de ingeniería ? Todos los productos deben ser liberados por SCM ? Sistema de acción correctiva (clave) ? Automatización adecuada del proceso -.

Sign up to vote on this title
UsefulNot useful