Rational Unified Process (RUP)
Características esenciales
Proceso dirigido por 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.
Proceso centrado en la arquitectura
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.
Proceso iterativo e incremental
El proceso iterativo e incremental consta de una secuencia de iteraciones. Cada iteración aborda una parte de la funcionalidad total, pasando por todos los flujos de trabajo relevantes y refinando la arquitectura. Cada iteración se analiza cuando termina. Se puede determinar si han aparecido nuevos requisitos o han cambiado los existentes, afectando a las iteraciones siguientes. Durante la planificación de los detalles de la siguiente iteración, el equipo también examina cómo afectarán los riesgos que aún quedan al trabajo en curso.
Otras prácticas
Gestión de requisitos
RUP brinda una guía para encontrar, organizar, documentar, y seguir los cambios de los requisitos funcionales y restricciones.
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.
Modelado visual (usando UML)
Es un lenguaje para visualizar, especificar, construir y documentar los artefactos de un sistema software. Utilizar herramientas de modelado visual facilita la gestión de dichos modelos, permitiendo ocultar o exponer detalles cuando sea necesario.
Verificación continua de la calidad
Es importante que la calidad de todos los artefactos se evalúe en varios puntos durante el proceso de desarrollo, especialmente al final de cada iteración. En esta verificación las pruebas juegan un papel fundamental y se integran a lo largo de todo el proceso.
Gestión de los cambios
El cambio es un factor de riesgo crítico en los proyectos de software. Los artefactos software cambian no sólo debido a acciones de mantenimiento posteriores a la entrega del producto, sino que durante el proceso de desarrollo, especialmente importantes por su posible impacto son los cambios en los requisitos.
Estructura del proceso
Estructura Dinámica del proceso. Fases e iteraciones
Inicio
Durante la fase de inicio se define el modelo del negocio y el alcance del proyecto.
Elaboración
En esta fase se construye un prototipo de la arquitectura, que debe evolucionar en iteraciones sucesivas hasta convertirse en el sistema final.
Construcción
Durante esta fase todos los componentes, características y requisitos deben ser implementados, integrados y probados en su totalidad, obteniendo una versión aceptable del producto.
Transición
La finalidad de la fase de transición es poner el producto en manos de los usuarios finales, para lo que sere quiere desarrollar nuevas versiones actualizadas del producto, completar la documentación, entrenar al usuario en el manejo del producto, y en general tareas relacionadas con el ajuste, configuración, instalación y facilidad de uso del producto.
Estructura Estática del proceso. Roles, actividades, artefactos y flujos de trabajo
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.
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
Flujos de trabajo
Un flujo de trabajo es una relación de actividades que nos producen unos resultados observables.
Modelado del negocio
Con este flujo de trabajo pretendemos llegar a un mejor entendimiento de la organización donde se va a implantar el producto
Requisitos
Este es uno de los flujos de trabajo más importantes, porque en él se establece qué tiene que hacer exactamente el sistema que construyamos. En esta línea los requisitos son el contrato que se debe cumplir, de modo que los usuarios finales tienen que comprender y aceptar los requisitos que especifiquemos.
Análisis y Diseño
El objetivo de este flujo de trabajo es traducir los requisitos a una especificación que describe cómo
implementar el sistema.
Implementación
En este flujo de trabajo se implementan las clases y objetos en ficheros fuente, binarios, ejecutables y demás. Además se deben hacer las pruebas de unidad: cada implementador es responsable de probar las unidades que produzca. El resultado final de este flujo de trabajo es un sistema ejecutable.
Pruebas
Este flujo de trabajo es el encargado de evaluar la calidad del producto que estamos desarrollando, pero no para aceptar o rechazar el producto al final del proceso de desarrollo, sino que debe ir integrado en todo el ciclo de vida.
Despliegue
El objetivo de este flujo de trabajo es producir con éxito distribuciones del producto y distribuirlo a los
usuarios
Gestión del proyecto
La Gestión del proyecto es el arte de lograr un balance al gestionar objetivos, riesgos y restricciones para desarrollar un producto que sea acorde a los requisitos de los clientes y los usuarios.
Configuración y control de cambios
La finalidad de este flujo de trabajo es mantener la integridad de todos los artefactos que se crean en el proceso, así como de mantener información del proceso evolutivo que han seguido.
Entorno
La finalidad de este flujo de trabajo es dar soporte al proyecto con las adecuadas herramientas, procesos y métodos. Brinda una especificación de las herramientas que se van a necesitar en cada momento, así como definir la instancia concreta del proceso que se va a seguir.
Una configuración RUP para proyecto pequeño
Entregables del proyecto
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
Características del Producto Software
Es una lista de las características principales del producto, deseables desde una perspectiva de las
necesidades del cliente.
Glosario
Es un documento que define los principales términos usados en el proyecto. Permite establecer una terminología consensuada.
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.
Especificaciones de Casos de Uso
Se realiza una descripción detallada utilizando una plantilla de documento
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).
Modelo Lógico Relacional
Este modelo describe la representación lógica de los datos persistentes, de acuerdo con el
enfoque para modelado relacional de datos
Modelo de Implementación
Este modelo es una colección de componentes y los subsistemas que los contienen
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
Manual de Instalación
Este documento incluye las instrucciones para realizar la instalación del producto.
Material de Usuario
Corresponde a un conjunto de documentos y facilidades de uso del sistema.
Producto
Todos los ficheros fuente y ejecutable del producto.