Proceso Unificado Racional
Proceso Unificado Racional
Proceso Unificado Racional
El Proceso Racional Unificado o RUP (por sus siglas en inglés de Rational Unified Process)
es un proceso de desarrollo de software desarrollado por la empresa Rational Software,
actualmente propiedad de IBM.1 Junto con el Lenguaje Unificado de Modelado (UML),
constituye la metodología estándar más utilizada para el análisis, diseño, implementación y
documentación de sistemas orientados a objetos.
El RUP no es un sistema con pasos firmemente establecidos, sino un conjunto de
metodologías adaptables al contexto y necesidades de cada organización. También se conoce
por este nombre al software, también desarrollado por Rational, que incluye información
entrelazada de diversos artefactos y descripciones de las diversas actividades. Está incluido
en el Rational Method Composer (RMC), que permite la personalización de acuerdo con las
necesidades.
Originalmente se diseñó un proceso genérico y de dominio público, el Proceso Unificado, y
una especificación más detallada, el Rational Unified Process, que se vendiera como
producto independiente.
Principios de desarrollo[editar]
La Filosofía del RUP está basado en 6 principios clave que son los siguientes:
Adaptar el proceso[editar]
El proceso deberá adaptarse a las necesidades del cliente ya que es muy importante
interactuar con él. Las características propias del proyecto, el tamaño del mismo, así como su
tipo o las regulaciones que lo condicionen, influirán en su diseño específico. También se
deberá tener en cuenta el alcance del proyecto.
Equilibrar prioridades[editar]
Los requisitos de los diversos participantes pueden ser diferentes, contradictorios o disputarse
recursos limitados. Debe poder encontrarse un equilibrio que satisfaga los deseos de todos.
Gracias a este equilibrio se podrán corregir desacuerdos que surjan en el futuro.
Demostrar valor iterativamente[editar]
Los proyectos se entregan, aunque sea de un modo interno, en etapas iteradas. En cada
iteración se analiza la opinión de los inversores, la estabilidad y calidad del producto, y se
refina la dirección del proyecto así como también los riesgos involucrados.
Colaboración entre equipos[editar]
El desarrollo de software no lo hace una única persona sino múltiples equipos. Debe haber
una comunicación fluida para coordinar requisitos, desarrollo, evaluaciones, planes,
resultados, etc.
Enfocarse en la calidad[editar]
El control de calidad no debe realizarse al final de cada iteración, sino en todos los aspectos
de la producción. El aseguramiento de la calidad forma parte del proceso de desarrollo y no de
un grupo independiente, también es una estrategia de desarrollo de software.
Elevar el nivel de abstracción[editar]
Artículo principal: Abstracción (informática)
Este principio dominante motiva el uso de conceptos reutilizables tales como patrones de
diseño del software, lenguajes 4GL o esquemas (frameworks) por nombrar algunos. Estos se
pueden acompañar por las representaciones visuales de la arquitectura, por ejemplo con UML.
Ciclo de vida[editar]
El ciclo de vida RUP es una implementación del desarrollo en espiral. Fue creado
ensamblando los elementos en secuencias semi-ordenadas. El ciclo de vida organiza las
tareas en fases e iteraciones.
RUP divide el proceso en cuatro fases, dentro de las cuales se realizan pocas pero grandes y
formales iteraciones en número variable según el proyecto. En la Figura muestra cómo varía el
esfuerzo asociado a las disciplinas según la fase en la que se encuentre el proyecto RUP.
Las primeras iteraciones (en las fases de Inicio y Elaboració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 baseline (línea base)2 de la
arquitectura.
Durante la fase de inicio las iteraciones hacen mayor énfasis en actividades de 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 requisitos, 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 seleccionan algunos Casos de Uso, se refinan 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 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 dependiendo de la
fase el esfuerzo dedicado a una disciplina varía.
Principales características[editar]
Desarrollo iterativo
Administración de requisitos
Uso de arquitectura basada en componentes
Control de cambios
Modelado visual del software
Verificación de la calidad del software
Pretende implementar las mejores prácticas en Ingeniería de Software, de forma que se
adapte a cualquier proyecto
El RUP es un producto de Rational (IBM). Se caracteriza por ser iterativo e incremental, estar
centrado en la arquitectura y guiado por los casos de uso. Incluye artefactos (que son los
productos tangibles del proceso como por ejemplo, el modelo de casos de uso, el código
fuente, etc.) y roles (papel que desempeña una persona en un determinado momento, una
persona puede desempeñar distintos roles a lo largo del proceso).
Fases[editar]
Establece oportunidad y alcance
Identifica las entidades externas o actores con las que se trata
Identifica los casos de uso
RUP comprende 2 aspectos importantes por los cuales se establecen las disciplinas:
Proceso
Las etapas de esta sección son: (revisar nuevamente la gráfica)
Modelado de negocio
Requisitos
Análisis y Diseño
Implementación
Pruebas
Despliegue
Soporte
En esta parte nos encontramos con las siguientes etapas:
Artefactos[editar]
RUP en cada una de sus fases (pertenecientes a la estructura dinámica) realiza una
serie de artefactos que sirven para comprender mejor tanto el análisis como el diseño
del sistema (entre otros). Estos artefactos (entre otros) son los siguientes:
Inicio[editar]
Documento Visión
Diagramas de caso de uso
Especificación de Requisitos
Diagrama de Requisitos
Elaboración[editar]
Documento Arquitectura que trabaja con las siguientes vistas:
Vista Lógica
Diagrama de clases
Modelo E-R (Si el sistema así lo requiere)
Vista de Implementación
Diagrama de Secuencia
Diagrama de estados
Diagrama de Colaboración
Vista Conceptual
Modelo de dominio
Vista física
Historia[editar]
Los orígenes de RUP se remontan al modelo espiral original de Barry Boehm. Ken
Hartman, uno de los contribuidores claves de RUP colaboró con Boehm en la
investigación. En 1995, Rational Software compró una compañía sueca llamada
Objectory AB, fundada por Ivar Jacobson, famoso por haber incorporado los casos de
uso a los métodos de desarrollo orientados a objetos. El Rational Unified Process fue
el resultado de una convergencia de Rational Approach y Objectory (el proceso de la
empresa Objectory AB). El primer resultado de esta fusión fue el Rational Objectory
Process, la primera versión de RUP, fue puesta en el mercado en 1998, siendo el
arquitecto en jefe Philippe Kruchten.
El primer libro para describir el proceso fue titulado The Unified Software Development
Process3
En 2006, IBM creó un subconjunto de RUP ajustado para proyectos de desarrollo
ágil - publicado como un método libre, llamado OpenUP a través del sitio de Eclipse.4
Referencias[editar]
1. Volver arriba↑ IBM Acquires Rational
2. Volver
arriba↑ http://esl.proz.com/kudoz/english_to_spanish/international_org_dev_coop/2221
427-baseline.html
3. Volver arriba↑ "The Unified Software Development Process (ISBN 0-201-57169-2)" El
Proceso Unificado de Desarrollo de Software (ISBN 0-201-57169-2), publicado en
1999 por Ivar Jacobson, Grady Booch y James Rumbaugh.
4. Volver arriba↑ http://epf.eclipse.org/wikis/openup/
Categorías:
Gestión de proyectos de software
Métodos f