METODOLOGIA RUP
XP Xtreme Programming RUP Rational Unified Process
XP Xtreme Programming RUP Rational Unified Process
Rational Unified Process (RUP)
CARACTERÍSTICAS ESENCIALES
Los autores de RUP destacan que el proceso de software
propuesto por RUP tiene tres características esenciales: está dirigido por los
Casos de Uso, está centrado en la arquitectura, y es iterativo e incremental.
PROCESO DIRIGIDO POR CASOS DE USO
Los Casos de Uso son una técnica de captura
de requisitos que fuerza a pensar en términos de importancia para el usuario y
no sólo en términos de funciones que seria bueno contemplar. Se define un Caso
de Uso como un fragmento de funcionalidad del sistema que proporciona al
usuario un valor añadido. Los Casos de Uso representan los requisitos
funcionales del sistema.
En RUP los Casos de Uso no son sólo una
herramienta para especificar los requisitos del sistema. También guían su
diseño, implementación y prueba. Los Casos de Uso constituyen un elemento
integrador y una guía del trabajo como se muestra en la Figura 2.
Figura
2: Los Casos de Uso integran el
trabajo
Los Casos de Uso no sólo inician el proceso
de desarrollo sino que proporcionan un hilo conductor, permitiendo establecer
trazabilidad entre los artefactos que son generados en las diferentes
actividades del proceso de desarrollo.
Como se muestra en la Figura 3, basándose en los Casos de Uso se crean
los modelos de análisis y diseño, luego la implementación que los lleva a cabo,
y se verifica que efectivamente el producto implemente adecuadamente cada Caso
de Uso. Todos los modelos deben estar sincronizados con el modelo de Casos de
Uso.
Figura
3: Trazabilidad a partir de los
Casos de Uso
PROCESO CENTRADO EN LA ARQUITECTURA
La arquitectura de un sistema es la organización o estructura de sus
partes más relevantes, lo que permite tener una visión común entre todos los involucrados (desarrolladores y
usuarios) y una perspectiva clara del sistema completo, necesaria para controlar
el desarrollo.
En la Figura 4 se ilustra la evolución de la arquitectura
durante las fases de RUP. Se tiene una arquitectura más robusta en las fases
finales del proyecto. En las fases iniciales lo que se hace es ir consolidando
la arquitectura por medio de vaselinas y se va modificando dependiendo de las
necesidades del proyecto.
Figura
4: Evolución de la arquitectura
del sistema
Es conveniente ver el sistema desde diferentes
perspectivas para comprender mejor el diseño por lo que la arquitectura se
representa mediante varias vistas que se centran en aspectos concretos del
sistema, abstrayéndose de los demás
Figura
5: Los modelos se completan, la
arquitectura no cambia drásticamente
PROCESO ITERATIVO E INCREMENTAL
El equilibrio correcto entre los Casos de Uso
y la arquitectura es algo muy parecido al equilibrio de la forma y la función
en el desarrollo del producto, lo cual se consigue con el tiempo. Para esto, la
estrategia que se propone en RUP es
tener un proceso iterativo e incremental en donde el trabajo se divide en
partes más pequeñas o mini proyectos.
Figura
6: Una iteración RUP
RUP divide el proceso en cuatro fases, dentro
de las cuales se realizan varias iteraciones en número variable según el
proyecto y en las que se hace un mayor o menor hincapié en los distintas
actividades. En la Figura 7 se muestra cómo varía el esfuerzo asociado a las
disciplinas según la fase en la que se
Encuentre el proyecto RUP.
Figura
7: Esfuerzo en actividades según
fase del proyecto
Las primeras iteraciones (en las fases de
Inicio y Elaboraciónón) se enfocan hacia la comprensión del problema y la
tecnología, la delimitación del ámbito del proyecto, la eliminación de los
riesgos críticos, y al establecimiento de una base de la arquitectura.
Durante la fase de inicio las iteraciones
hacen ponen mayor énfasis en actividades modelado del negocio y de requisitos.
En la fase de elaboración, las iteraciones se
orientan al desarrollo de la baseline de la arquitectura, abarcan más los
flujos de trabajo de requerimientos, modelo de negocios (refinamiento),
análisis, diseño y una parte de implementación orientado a la baseline de la
arquitectura.
En la fase de construcción, se lleva a cabo
la construcción del producto por medio de una serie de iteraciones.
Para cada iteración se selecciona algunos
Casos de Uso, se refina su análisis y diseño y se procede a su implementación y
pruebas. Se realiza una pequeña cascada para cada ciclo. Se realizan tantas
iteraciones hasta que se termine la implementación de la nueva versión del
producto.
En la fase de transición se pretende
garantizar que se tiene un producto preparado para su entrega a la comunidad de
usuarios.
Como se puede observar en cada fase
participan todas las disciplinas, pero que dependiendo de la fase el esfuerzo
dedicado a una disciplina varía.
RUP identifica 6 best practices con las que
define una forma efectiva de trabajar para los equipos de desarrollo de
software.
GESTIÓN DE REQUISITOS
RUP brinda una guía para encontrar,
organizar, documentar, y seguir los cambios de los requisitos funcionales y
restricciones. Utiliza una notación de Caso de Uso y escenarios para
representar los requisitos.
DESARROLLO DE SOFTWARE ITERATIVO
Desarrollo del producto mediante iteraciones
con hitos bien definidos, en las cuales se repiten las actividades pero con
distinto énfasis, según la fase del proyecto.
DESARROLLO BASADO EN COMPONENTES
La creación de sistemas intensivos en
software requiere dividir el sistema en componentes con interfaces bien definidas, que posteriormente serán ensamblados
para generar el sistema. Esta característica en un proceso de desarrollo
permite que el sistema se vaya creando a medida que se obtienen o se
desarrollan sus componentes.
MODELADO VISUAL (USANDO UML)
UML es un lenguaje para visualizar, especificar,
construir y documentar los artefactos de un sistema software. Es un estándar de
la OMG (http://www.omg.org). Utilizar herramientas
de modelado visual facilita la gestión de dichos modelos, permitiendo ocultar o
exponer detalles cuando sea necesario. El modelado visual también ayuda a
mantener la consistencia entre los artefactos del sistema: requisitos, diseños e
implementaciones. En resumen, el modelado visual ayuda a mejorar la capacidad
del equipo para gestionar la complejidad del software.
ESTRUCTURA DEL PROCESO
El proceso puede ser descrito en dos dimensiones o ejes [RSC98]:
Eje horizontal: Representa el tiempo y es considerado el eje de los
aspectos dinámicos del proceso. Indica las características del ciclo de vida
del proceso expresado en términos de fases,
iteraciones e hitos. Se puede observar
en la Figura 8 que RUP consta de cuatro fases: Inicio, Elaboración,
Construcción y Transición. Como se mencionó anteriormente cada fase se
subdivide a la vez en iteraciones.
Eje vertical: Representa los aspectos estáticos del proceso. Describe
el proceso en términos de componentes de proceso, disciplinas, flujos de
trabajo, actividades, artefactos y roles.
Figura
8: Estructura de RUP
ESTRUCTURA DINÁMICA DEL PROCESO. FASES E ITERACIONES
RUP se repite a lo largo de una serie de
ciclos que constituyen la vida de un producto. Cada ciclo concluye con una
generación del producto para los clientes. Cada ciclo consta de cuatro fases:
Inicio, Elaboración, Construcción y Transición. Cada fase se subdivide a la vez
en iteraciones, el número de iteraciones en cada fase es variable.
Figura
9: Ciclos, releases, baseline
Cada fase se concluye con un hito bien
definido, un punto en el tiempo en el cual se deben tomar ciertas decisiones
críticas y alcanzar las metas clave
antes de pasar a la siguiente fase, ese hito principal de cada fase se compone
de hitos menores que podrían ser los criterios aplicables a cada iteración. Los hitos para cada una de las fases son:
Lifecycle Objectives,
Elaboración - Lifecycle Architecture, Construcción
Initial Operational Capability, Transición -
Product Release. Las fases y sus respectivos
hitos se ilustran en la Figura 10.
figura
10: fases e hitos en rup
La duración y esfuerzo dedicado en cada fase
es variable dependiendo de las características del proyecto. Sin embargo, la
Figura 11 ilustra porcentajes frecuentes al respecto. Consecuente con el
esfuerzo señalado, la Figura 12 ilustra una distribución típica de recursos
humanos necesarios a lo largo del proyecto.
|
Inicio
|
Elaboración
|
Construcción
|
Transición
|
Esfuerzo
|
5 %
|
20 %
|
65 %
|
10%
|
Tiempo Dedicado
|
10 %
|
30 %
|
50 %
|
10%
|
Figura
11: Distribución típicas de
esfuerzo y tiempo
Figura
12: Distribución típica de recursos
humanos
ESTRUCTURA ESTÁTICA DEL PROCESO,ROLES, ACTIVIDADES, ARTEFACTOS Y FLUJOS DE TRABAJO
Un proceso de desarrollo de software define
quién hace qué, cómo y cuándo. RUP define cuatro elementos los roles, que
responden a la pregunta ¿Quién?, las actividades que responden a la pregunta
¿Cómo?, los productos, que responden a la pregunta ¿Qué? y los flujos de
trabajo de las disciplinas que responde a la pregunta ¿Cuándo? (ver Figura 13 y
14) [RSC98].
Figura
13: Relación entre roles,
actividades, artefactos
Figura
14: Detalle de un workflow mediante
roles, actividades y artefactos roles
Un rol define el comportamiento y
responsabilidades de un individuo, o de un grupo de individuos trabajando
juntos como un equipo. Una persona puede desempeñar diversos roles, así como un
mismo rol puede ser representado por varias personas.
Las responsabilidades de un rol son tanto el llevar a cabo un conjunto
de actividades como el ser el dueño de un conjunto de artefactos [MMA].
RUP define grupos de roles, agrupados por participación en actividades
relacionadas. Estos grupos son [RSC02]:
Analistas:
·
Analista de procesos de negocio.
·
Diseñador del negocio.
·
Analista de sistema.
·
Especificador de requisitos.
Desarrolladores:
·
Arquitecto de software.
·
Diseñador
·
Diseñador de interfaz de usuario
·
Diseñador de cápsulas.
·
Diseñador de base de datos.
·
Implementador.
·
Integrador.
Gestores:
·
Jefe de proyecto
·
Jefe de control de cambios.
·
Jefe de configuración.
·
Jefe de pruebas
·
Jefe de despliegue
·
Ingeniero de procesos
·
Revisor de gestión del proyecto
·
Gestor de pruebas.
Apoyo:
·
Documentador técnico
·
Administrador de sistema
·
Especialista en herramientas
·
Desarrollador de cursos
·
Artista gráfico
Especialista en pruebas:
·
Especialista en Pruebas (tester)
·
Analista de pruebas
·
Diseñador de pruebas
Otros roles:
·
Stakeholders.
·
Revisor
·
Coordinación de revisiones
·
Revisor técnico
·
Cualquier rol
ACTIVIDADES
Una actividad en concreto es una unidad de trabajo que una persona que
desempeñe un rol puede ser solicitado a que realice. Las actividades tienen un
objetivo concreto, normalmente expresado en términos de crear o actualizar
algún producto.
ARTEFACTOS
Un producto o artefacto es un trozo de
información que es producido, modificado o usado durante el proceso de
desarrollo de software. Los productos son los resultados tangibles del
proyecto, las cosas que va creando y usando hasta obtener el producto final [MMA].
Un artefacto puede ser cualquiera de los siguientes [RSC02]:
·
Un documento, como el documento de la arquitectura del software.
·
Un modelo, como el modelo de Casos de Uso o el modelo de diseño.
·
Un elemento del modelo, un elemento que pertenece a un modelo como una
clase, un Caso de Uso o un subsistema.
En este apartado se describe una posible
configuración de RUP para un proyecto pequeño. Por las características del
proyecto, se han incluido muy pocos artefactos, roles y actividades de la
metodología, manteniendo los más esenciales. Dicha configuración está basada en
la siguiente selección de artefactos:
ENTREGABLES DEL PROYECTO
A continuación se describen brevemente cada
uno de los artefactos que se generarán y usarán durante el proyecto.
1.
FLUJOS DE TRABAJO
Se utilizarán Diagramas de Actividad para modelar los
Flujos de Trabajo (workflows) del área problema, tanto los actuales (previos a
la implantación de nuevo sistema) como los propuestos, que serán soportados por
el sistema desarrollado
2.
CARACTERÍSTICAS DEL PRODUCTO SOFTWARE
Es una lista de las características principales del
producto, deseables desde una perspectiva de las necesidades del cliente.
3.
MODELO DE CASOS DE USO
El modelo de Casos de Uso presenta la funcionalidad del
sistema y los actores que hacen uso de ella. Se representa mediante Diagramas
de Casos de Uso.
4.
MODELO DE ANÁLISIS Y DISEÑO
Este modelo establece la realización de los casos de uso
en clases y pasando desde una representación en términos de análisis (sin
incluir aspectos de implementación) hacia una de diseño (incluyendo una
orientación hacia el entorno de implementación). Está constituido esencialmente
por un Diagrama de Clases y algunos Diagramas de Estados para las clases que lo
requieran.
5.
MODELO DE IMPLEMENTACIÓN
Este modelo es una colección de componentes y los
subsistemas que los contienen. Estos componentes incluyen: ficheros
ejecutables, ficheros de código fuente, y todo otro tipo de ficheros necesarios
para la implantación y despliegue del sistema.
6.
MODELO DE PRUEBAS
Para cada Caso de Uso se establecen pruebas de Aceptación
que validarán la correcta implementación del Caso de Uso. Cada prueba es
especificada mediante un documento que establece las condiciones de ejecución,
las entradas de la prueba, y los resultados esperados.
Figura
15. Trazabilidad entre artefactos.
Las relaciones de trazabilidad son enlaces entre artefactos que establecen
cómo se generan unos a partir de otros. Esto permite por ejemplo asegurar la
cobertura de los requisitos o determinar el posible impacto de los cambios. En
la Figura 15 se ilustran los modelos y artefactos utilizados, indicando las
relaciones de trazabilidad entre ellos, lo cual se resume a continuación:
- Se modelarán los procesos de negocio de la situación actual utilizando Diagramas de Actividad para representar Flujos de Trabajo Actuales. Esto se complementará mediante un Glosario que establecerá la terminología.
- El modelo de procesos de la solución propuesta incluirá Flujos de Trabajo Propuestos junto con una lista de Características del Producto Software.
- Los requisitos serán establecidos mediante un Modelo de Casos de Uso que incluirá Diagramas de Casos de Uso, Prototipos de Interfaces de Usuario y Especificaciones de Casos de Uso.
- El Modelo de Pruebas incluirá las Pruebas de Aceptación establecidas para cada Caso de Uso.
- El Modelo de Análisis y Diseño establecerá el particionamiento interno del sistema. Estará compuesto por un Diagrama de Clases y algunos Diagramas de Estados. Las clases determinarán la estructura y las operaciones necesarias para implementar las funcionalidades descritas en los Casos de Uso. Los Diagramas de Estados detallarán el comportamiento para las clases que lo requieran.
- A partir del Diagrama de Clases, y considerando las clases que requieran persistencia, se derivará el Modelo Lógico Relacional, representado mediante Diagramas de Tablas.
- En el Modelo de Implementación se organizarán las operaciones de las clases en términos de componentes de dicha arquitectura. Esto se representará mediante Diagramas de Componentes.
- La implementación del Modelo Lógico Relacional y de los componentes de la aplicación constituirán el Producto, el cual se complementará con el Manual de Instalación y el Manual de Usuario.
No hay comentarios:
Publicar un comentario