Que es RUP?
Es un proceso de ingeniería de software, que hace una propuesta orientada por disciplinas para lograr las tareas y responsabilidades de una organización que desarrolla software.
Cual es la meta del RUP?
Su meta principal es asegurar la producción de software de alta calidad que cumpla con las necesidades de los usuarios, con una planeación y presupuesto predecible.
Algunos puntos del por que usar RUP.
-Provee un entorno de proceso de desarrollo configurable, basado en estándares
-Permite tener claro y accesible el proceso de desarrollo que se sigue
-Permite ser configurado a las necesidades de la organización y del proyecto
-Provee a cada participante con la parte del proceso que le compete directamente, filtrando el resto
Caracteristicas del modelo RUP.
Dirigido por Casos de Uso
-Los casos de uso son los artefactos primarios para establecer el comportamiento deseado del sistema
Centrado en la Arquitectura
-La arquitectura es utilizada para conceptualizar, construir, administrar y evolucionar el sistema en desarrollo
Iterativo e Incremental
-Maneja una serie de entregas ejecutables
-Integra continuamente la arquitectura para producir nuevas versiones mejoradas
Conceptualmente amplio y diverso
Enfoque orientado a objetos
En evolución continua
Adaptable
Repetible
Permite mediciones
- Estimación de costos y tiempo, nivel de avance, etc.
A continuacion se presenta una imagen del ciclo de vida de un producto explicado mediante el modelo RUP con sus fases.
La metodología RUP, llamada así por sus siglas en inglés Rational Unified Process, divide en 4 fases el desarrollo del software:
FASE DE INICIO
Durante la fase de inicio las iteraciones hacen ponen mayor énfasis en actividades modelado del negocio y de requisitos.
Modelado del negocio
En esta fase el equipo se familiarizará más al funcionamiento de la empresa, sobre conocer sus procesos.
-Entender la estructura y la dinámica de la organización para la cual el sistema va ser desarrollado
-Entender el problema actual en la organización objetivo e identificar potenciales mejoras.
-Asegurar que clientes, usuarios finales y desarrolladores tengan un entendimiento común de la organización objetivo.
Requisitos
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.
· Establecer y mantener un acuerdo entre clientes y otros stakeholder s sobre lo que el sistema podría hacer.
·Proveer a los desarrolladores un mejor entendimiento de los requisitos del sistema.
· Definir el ámbito del sistema.
· Proveer una base para estimar costos y tiempo de desarrollo del sistema.
· Definir una interfaz de usuarios para el sistema, enfocada a las necesidades y metas del usuario.
FASE DE ELABORACIÓN
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.
Análisis y Diseño
En esta actividad se especifican los requerimientos y se describen sobre como se van a implementar en el sistema.
· Transformar los requisitos al diseño delsistema.
· Desarrollar una arquitectura para el sistema.
· Adaptar el diseño para que sea consistente con el entorno de implementación.
FASE DE CONSTRUCCIÓN
Implementación
Se implementan las clases y objetos en ficheros fuente, binarios, ejecutables y demás. El resultado final es un sistema ejecutable.
·Planificar qué subsistemas deben ser implementados y en que orden deben ser
·integrados, formando el Plan de Integración.
·Cada implementador decide en que orden implementa los elementos del subsistema.
·Si encuentra errores de diseño, los notifica.
·Se integra el sistema siguiendo el plan.
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.
·Encontrar y documentar defectos en la calidad del software.
·Generalmente asesora sobre la calidad del software percibida.
·Provee la validación de los supuestos realizados en el diseño y especificación de
·requisitos por medio de demostraciones concretas.
·Verificar las funciones del producto de software según lo diseñado.
·Verificar que los requisitos tengan su apropiada implementación.
FASE DE TRANSMICION
Despliegue
Esta actividad tiene como objetivo producir con éxito distribuciones del producto y distribuirlo a los usuarios. Las actividades implicadas incluyen:
·Probar el producto en su entorno de ejecución final.
·Empaquetar el software para su distribución.
·Distribuir el software.
·Instalar el software.
·Proveer asistencia y ayuda a los usuarios.
·Formar a los usuarios y al cuerpo de ventas.
·Migrar el software existente o convertir bases de datos
Cada una de estas etapas es desarrollada mediante el ciclo de iteraciones, la cual consiste en reproducir el ciclo de vida en cascada a menor escala. Los Objetivos de una iteración se establecen en función de la evaluación de las iteraciones precedentes.
Vale mencionar que el ciclo de vida que se desarrolla por cada iteración, es llevada bajo dos disciplinas:
1. Disciplina de Desarrollo
Ingeniería de Negocios: Entendiendo las necesidades del negocio.
Requerimientos: Trasladando las necesidades del negocio a un sistema automatizado.
Análisis y Diseño: Trasladando los requerimientos dentro de la arquitectura de software.
Implementación: Creando software que se ajuste a la arquitectura y que tenga el comportamiento deseado.
Pruebas: Asegurándose que el comportamiento requerido es el correcto y que todo los solicitado esta presente.
2. Disciplina de Soporte
Configuración y administración del cambio: Guardando todas las versiones del proyecto.
Administrando el proyecto: Administrando horarios y recursos.
Ambiente: Administrando el ambiente de desarrollo.
Distribución: Hacer todo lo necesario para la salida del proyecto.
Cuando puedes usar RUP?
RUP puede utilizarse
En proyectos de nuevos productos de software
En ciclos de desarrollo subsecuentes
Consideraciones que alteran cuándo y cómo usar partes de RUP
-El ciclo de vida del proyecto
-Los objetivos del negocio, la visión, el alcance y los riesgos
-El tamaño del esfuerzo de desarrollo