El problema del software se reduce a la
dificultad que afrontan los desarrolladores para coordinar las
múltiples cadenas de trabajo de un
gran proyecto de
software. El Proceso
Unificado de Desarrollo
(RUP) es una solución a este problema porque:
Proporciona una guía para organizar las actividades
de un equipo.Dirige las tareas de cada desarrollador por separado y las
del equipo como un todo.Especifica los artefactos a desarrollar.
Ofrece criterios para el control, la medición de
los productos y actividades del proyecto.
RUP utiliza el UML para preparar
los esquemas del software y esta basado en componentes de
software interconectados entre si a través de interfaces
bien definidas. Tiene como características principales que
es dirigido por casos de uso, centrado en la arquitectura y es
iterativo e incremental. Es práctico subdividir el trabajo en
partes más pequeñas o mini-proyectos donde
cada uno resulta en un incremento o versión del producto.
El ciclo de vida
un proyecto consta de cuatro fases: concepción,
elaboración, construcción y transición. Cada fase
termina con un hito donde se dispone de un conjunto de artefactos
(documentos,
modelos,
código
ejecutable, etc), su objetivo
más importante es que los directores del proyecto pueden
tomar decisiones para continuar a la siguiente fase. Al finalizar
las fases del ciclo de vida se termina una versión del
producto.
En la fase de concepción se desarrolla una descripción del producto final a partir de
una buena idea y se presenta el análisis del negocio para el producto.
Durante la fase de elaboración se especifican en
detalle la mayoría de los casos de uso del producto y se
diseña la arquitectura del sistema. Al final
de esta fase el director esta en disposición de planificar
las actividades y estimar los recursos
necesarios para terminar el proyecto.
En la fase de construcción se crea el producto, la
arquitectura crece hasta convertirse en sistema completo y ya
contiene todos los casos de uso acordados.
En la fase de transición se realizan las pruebas del
sistema con un número reducido de usuarios para detectar
defectos y deficiencias. Los desarrolladores corrigen errores e
introducen mejoras propuestas.
Cada fase puede tener varias iteraciones y cada
iteración puede abracar varios procesos del
flujo de trabajo.
Los grupos de
desarrollo de software trabajando de una forma iterativa tienen
algunos miembros que sobrepasan la planificación y logran un conjunto de metas
hechas para iteraciones posteriores. La técnica de
iteraciones solapadas puede ser beneficiosa si es comprendida y
manipulada de forma correcta.
Iteraciones estándar l1, l2 y l3, ocurren de forma
secuencial de izquierda a derecha, ocurriendo de forma secuencial
hacia abajo en cada iteración (Requirements, Design, Code
and Test).
Estas iteraciones pueden solaparse como muestra el
siguiente gráfico:
En el siguiente a continuación se aprecia las
iteraciones solapadas controladas por la técnica de
time-boxes:
Esta técnica de iteraciones solapadas tiene los
siguientes riesgos:
Incrementa el trabajo.
Incrementa el costo de cancelación de un
proyecto.Disminución de la moral.
Impacto en el proceso de mejora.
Mentalidad de disciplina.
El peligro de la cascada.
Para evitar las iteraciones solapadas en el proyecto se puede
utilizar al personal en:
Dos proyectos.
Múltiples roles.
Aceptar la situación de pérdida de
tiempo.Reducir el tamaño del grupo.
Las iteraciones solapadas pueden ser de gran ayuda, pero debe
tener un riguroso control para que
no se conviertan en un arma de doble filo, para ello se deben
seguir estas dos importantes reglas:
No permitir solapamiento de iteraciones durante la
elaboración, si en la construcción.Durante la construcción no permitir ir más
allá de una iteración.
Referencias Bibliográficas:
Philippe Kruchten. "The Racional Unified Process: An
introduction". Addison – Wesley. 2000.Barry Boehm. "Get ready for Agile Methods , with care".
Computer, pp. 64 – 69, 2002.
Página siguiente |