PROCESO GENÉRICO
El
siguiente es un Modelo de Proceso de Desarrollo de Software para ser aplicado
en el curso de Taller de
Ingeniería
de Software del segundo semestre de 2000.
El Modelo
de Proceso planteado es:
Ø
Iterativo e incremental: se divide el trabajo en
miniproyectos donde cada uno es una iteración que resulta en un incremento del
producto.
Ø
Guiado por Casos de Uso: el flujo de actividades en el
desarrollo es guiado por los Casos de Uso los cuales especifican
funcionalidades.
Ø
Centrado en la Arquitectura: la arquitectura prioriza los
Casos de Uso más significativos y especifica la estructura del Sistema.
Ø
El Proceso
consta de 3 fases: Inicial, de Elaboración y de Construcción las cuales se
dividen en iteraciones de distinta duración según los objetivos de cada fase y
la duración total del curso.
Cada iteración se encuentra dividida en Líneas de
Trabajo:
Básicas: Las líneas de trabajo básicas son:
Requerimientos, Análisis, Diseño, Implementación y Verificación.
En estas
Líneas de Trabajo nos basamos en el enfoque del Modelo de Proceso Unificado de
Jacobson, Rumbaugh y Booch y en el Plan de Actividades del curso de Taller IV
del año 1999.
De Gestión: son las líneas de Trabajo que
acompañan el desarrollo del proceso: Gestión del Proyecto,
Gestión de Configuración, Gestión de Calidad,
Capacitación y Documentación.
Para estas Líneas de Trabajo,usamos como referencia el
CMM, Pressmann, Métrica y SPICE.
Durante una iteración, las líneas de Trabajo Básicas se
realizan en forma secuencial mientras que las líneas de Trabajo de Gestión se
realizan todo el tiempo durante la iteración, en paralelo con las líneas
básicas.
Los objetivos de cada Fase son:
Ø
Planificar el Proyecto: en base a este Modelo de Proceso,
se debe adaptar a las fechas y tiempos del proyecto, esto incluye hacer los
planes de Verificación, gestión de Calidad, gestión del Proyecto y gestión de
Configuración de forma que estén conectados.
Ø
Entender el Sistema a construir, haciendo un bosquejo de
la Arquitectura candidata
Ø
Delimitar el Alcance del Sistema propuesto
Ø
Realizar las distintas estimaciones del Proyecto
Ø
Definir el ambiente controlado
Ø
Identificar los principales riesgos de construir el
Sistema
Los objetivos de esta
Fase son:
Ø
Definir el Alcance final del Sistema
Ø
Definir y construir la línea base de la Arquitectura, a
partir de ella se construirá todo el sistema en la siguiente fase
Ø
Realizar el seguimiento y control del Proyecto
Ø
Realizar mediciones de avance en cada área y esfuerzo
asociado
Ø
Revisar la calidad de los productos y el ajuste al
Proceso
Ø
Realizar Revisiones Técnicas Formales
Ø
Controlar las versiones
Los principales objetivos en esta Fase son:
Ø
Implementar todas las funcionalidades del Sistema, de
acuerdo al alcance fijado en la fase anterior
Ø
Realizar el seguimiento y control del Proyecto
Ø
Realizar mediciones de avance en cada área y esfuerzo
asociado
Ø
Revisar la calidad de los productos y el ajuste al
Proceso
Ø
Realizar Revisiones Técnicas Formales
Ø
Controlar las versiones y los cambios
La fase inicial se completa en una iteración, mientras
que las fases de Elaboración y Construcción se
completan en dos iteraciones.
Los participantes en cada línea de Trabajo cumplen al
realizar las actividades un determinado rol.
Existen 10 roles distintos :
Analista: Es responsable de entender el sistema
a construir y ayuda al Arquitecto en el Diseño del Sistema
Arquitecto: Es responsable de la Arquitectura del
Sistema
Administrador: Es
responsable del seguimiento y control del proyecto, del cumplimiento y registro
de las actividades realizadas, de las mediciones y estimaciones del proyecto.
Especialista Técnico: Es
responsable de definir la herramienta de desarrollo que mejor se adapte al
sistema a construir, y del ejecutable de cada fase
Implementador: Es
responsable de los componentes y subsistemas que debe implementar y de su
documentación Técnica, también de que la actividad Realizar Revisión por Pares
se cumpla.
Responsable
de verificación: Es responsable de que el Sistema cumpla con los
requerimientos establecidos para el
mismo, de realizar verificación de documentos y pruebas unitarias, de
integración y del Sistema.
Asistente
de Verificación: Es responsable de ayudar al Responsable de Verificación
en la realización de las pruebas.
Responsable
de SQA: Es responsable de la calidad del Sistema y del apego al
Proceso en la construcción del mismo, y de realizar Revisiones Técnicas
Formales (RTF).
Responsable
de SCM: Es responsable de definir el ambiente controlado, del
control de las versiones y los
cambios, y
de la consistencia de la línea base del Software
Documentador
de Usuario: Es responsable del Manual de Usuario
Para el proyecto del curso, se establecerán roles
combinados como por ejemplo: Arquitecto/Asistente de
Verificación.