Professional Documents
Culture Documents
Ciclo de vida
RUP (Rational Unified Process)
RUP es un marco de desarrollo, te indica una forma de enfocar un proyecto de desarrollo de
software y despus en funcin de la naturaleza del mismo haces las adaptaciones oportunas (sin
salirte de las fronteras que te marca la metodologa porque de lo contrario estaramos hablando
de algo que no sera RUP).
RUP sigue principios de ingeniera del software para la obtencin de sistemas de informacin de
calidad y de esta forma proporcionar una alternativa que permita evitar que los productos que se
obtengan caigan en los aspectos que caracterizan a la crisis del software (todava muy presente en
nuestros das).
RUP sigue una estrategia de ciclo de vida iterativo e incremental, pero de una forma un tanto
peculiar, como vamos a ver a continuacin.
El ciclo de vida RUP se divide en 4 fases: Iniciacin, Elaboracin, Construccin y Transicin.
En cada fase se realizan una o ms iteraciones (con el objeto de ir perfeccionando los objetivos,
mediante el feedback del usuario) y hasta que no finaliza una fase no se comienza con la siguiente.
Por regla general, la fase en la que se realizan ms iteraciones es la Construccin.
En cada fase se refinan los objetivos de las fases anteriores en el proceso de conseguir el objetivo
u objetivos de la fase, por ejemplo, en la fase de construccin se pueden modificar, aadir o
eliminar requisitos, casos de uso, etc lo que tiene un impacto en lo obtenido en fases anteriores,
acercndonos cada vez ms a un sistema que satisfaga las necesidades de los usuarios.
En cada fase y en cada iteracin se realiza un ciclo de vida en cascada con las siguientes etapas:
Anlisis, Diseo, Construccin (las tareas de programacin que se realizan, sobre todo las fases de
Construccin y Transicin son perfectamente compatibles con la utilizacin de tcnicas de
integracin continua y anlisis esttico de cdigo), Pruebas/Integracin/Implantacin. El alcance
del ciclo de vida depende en la fase en la que nos encontremos, es decir, aunque se realice un
ciclo de vida en cascada en la fase de Iniciacin, lo ms probable es que no se llegue a construir
nada o se llegue a algn a hacer algn prototipo de muy alto nivel.
Los objetivos que se persiguen en cada fase son los siguientes:
- Iniciacin: Obtencin de los objetivos, catlogo de requisitos, identificacin de casos de uso.
- Elaboracin: Refinamiento de los objetivos de la fase anterior, casos de uso, anlisis, diseo,
definicin y establecimiento de la arquitectura base del sistema.
- Construccin: Refinamiento de los objetivos de las fases anteriores y construccin del sistema de
informacin.
- Transicin: Refinamiento de los objetivos de las fases anteriores e implantacin del sistema de
informacin (preparacin del producto para su entrega y pasos a produccin de versiones no
finales (porque hay que hacer ajustes) y de la versin final prevista).
Por tanto, como se coment anteriormente, en cada etapa y en cada iteracin se perfeccionan los
productos previos que hayan requerido algn cambio, todo eso mientras se intentan conseguir los
objetivos concretos de la fase. De esta forma el ciclo de vida RUP sigue un modelo adaptativo de
desarrollo de software.
De esta forma, el reparto de esfuerzos entre actividades vara de una fase a otra.
Una caracterstica importante del RUP es que todo el proceso est guiado por los casos de uso,
algo que resulta lgico cuando hablamos de modelos incrementales, ya que estn orientados al
usuario y como tal es importante tener siempre presente el esquema de interaccin
usuarios/sistema, los cuales vienen definidos por los casos de uso y sus escenarios.
RUP pretende la obtencin de productos de muy alta calidad (extendindose esta no solo al
cumplimiento de las expectativas del usuario, sino a la obtencin de productos con una deuda
tcnica aceptable), si bien sus caractersticas: varias fases, mltiples iteraciones por fases, pueden
provocar que el proceso de desarrollo sea costoso y que no se adapte a proyectos de pequea
escala, aunque el hecho de que siga un esquema incremental permitira dar flexibilidad en el caso
de que fuera necesario.
Los flujos de trabajo de RUP
Modelado del negocio
Con este flujo de trabajo pretendemos llegar a un mejor entendimiento de la organizacin donde
se va a implantar el producto.
Adaptar el diseo para que sea consistente con el entorno de implementacin, diseando para el
rendimiento.
El anlisis consiste en obtener una visin del sistema que se preocupa de ver qu hace, de modo
que slo se interesa por los requisitos funcionales. Por otro lado el diseo es un refinamiento del
anlisis que tiene en cuenta los requisitos no funcionales, en definitiva cmo cumple el sistema sus
objetivos.
Al principio de la fase de elaboracin hay que definir una arquitectura candidata: crear un
esquema inicial de la arquitectura del sistema, identificar clases de anlisis y actualizar las
realizaciones de los Casos de Uso con las interacciones de las clases de anlisis. Durante la fase de
elaboracin se va refinando esta arquitectura hasta llegar a su forma definitiva. En cada iteracin
hay que analizar el comportamiento para disear componentes. Adems si el sistema usar una
base de datos, habr que disearla tambin, obteniendo un modelo de datos.
El resultado final ms importante de este flujo de trabajo ser el modelo de diseo. Consiste en
colaboraciones de clases, que pueden ser agregadas en paquetes y subsistemas.
Otro producto importante de este flujo es la documentacin de la arquitectura de software, que
captura varias vistas arquitectnicas del sistema.
Implementacin
En este flujo de trabajo se implementan las clases y objetos en ficheros fuente, binarios,
ejecutables y dems. Adems 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.
En cada iteracin habr que hacer lo siguiente:
Planificar qu subsistemas deben ser implementados y en que orden deben ser integrados,
formando el Plan de Integracin.
Cada implementador decide en que orden implementa los elementos del subsistema.
Si encuentra errores de diseo, los notifica.
Se prueban los subsistemas individualmente.
Se integra el sistema siguiendo el plan.
La estructura de todos los elementos implementados forma el modelo de implementacin. La
integracin debe ser incremental, es decir, en cada momento slo se aade un elemento. De este
modo es ms fcil localizar fallos y los componentes se prueban ms a fondo. En fases tempranas
del proceso se pueden implementar prototipos para reducir el riesgo. Su utilidad puede ir desde
ver si el sistema es viable desde el principio, probar tecnologas o disear la interfaz de usuario.
Los prototipos pueden ser exploratorios (desechables) o evolutivos. Estos ltimos llegan a
transformarse en el sistema final.
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.
Esta disciplina brinda soporte a las otras disciplinas. Sus objetivos son [RSC02]:
Encontrar y documentar defectos en la calidad del software.
Generalmente asesora sobre la calidad del software percibida.
Provee la validacin de los supuestos realizados en el diseo y especificacin de requisitos por
medio de demostraciones concretas.
Verificar las funciones del producto de software segn lo diseado.
Verificar que los requisitos tengan su apropiada implementacin.
Las actividades de este flujo comienzan pronto en el proyecto con el plan de prueba (el cual
contiene informacin sobre los objetivos generales y especficos de las prueba en el proyecto, as
como las estrategias y recursos con que se dotar a esta tarea), o incluso antes con alguna
evaluacin durante la fase de inicio, y continuar durante todo el proyecto.
El desarrollo del flujo de trabajo consistir en planificar que es lo que hay que probar, disear
cmo se va a hacer, implementar lo necesario para llevarlos a cabo, ejecutarlos en los niveles
necesarios y obtener los resultados, de forma que la informacin obtenida nos sirva para ir
refinando el producto a desarrollar.
Despliegue
El objetivo de este flujo de trabajo es producir con xito distribuciones del producto y distribuirlo a
los usuarios. Las actividades implicadas incluyen:
Probar el producto en su entorno de ejecucin final.
Empaquetar el software para su distribucin.
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.
Este flujo de trabajo se desarrolla con mayor intensidad en la fase de transicin, ya que el
propsito del flujo es asegurar una aceptacin y adaptacin sin complicaciones del software por
parte de los usuarios. Su ejecucin inicia en fases anteriores, para preparar el camino, sobre todo
con actividades de planificacin, en la elaboracin del manual de usuario y tutoriales.
(material complementario)