Partes esenciales que distinguen al RUP
Manejo de casos de uso. Para construir un software exitoso se tiene que conocer las perspectivas del usuario de lo que quiere y necesita. Los usuarios no abarcan sólo a personas sino también a otros sistemas. Un caso de uso es una pieza de funcionalidad en un sistema que proporciona al usuario un resultado. Los casos de uso capturan los requerimientos. El conjunto de casos de uso forma un modelo de casos de uso que describe la funcionalidad del sistema. Existe una influencia recíproca entre los casos de uso y la arquitectura de manera que van madurando durante el ciclo de vida.
Centrado en la arquitectura. Involucra aspectos estáticos y dinámicos del sistema. La arquitectura va creciendo con las necesidades de la organización, de los usuarios y clientes. También influyen otros factores como la plataforma de software, los componentes reutilizables, consideraciones de desarrollo, sistemas heredados y requerimientos no funcionales. La arquitectura es vista como un diseño completo de las características más importantes. Una función corresponde a un caso de uso y forma la arquitectura, estos dos últimos deben elaborarse en paralelo. El arquitecto trabaja con un conjunto de casos de uso. Cada caso de uso es especificado y realizado en subsistemas, clases y componentes. Los casos de uso son especificados y madurados con los descubrimientos de la arquitectura.
Iterativo e incremental. En desarrollos largos resulta práctico realizar divisiones en el trabajo, en mini proyectos. Cada mini proyecto es una iteración que resulta en un incremento. Las iteraciones hacen referencia a los flujos de trabajo (workflow) y los incrementos al crecimiento del producto. Para ser más efectivos, las iteraciones deben ser controladas.
El desarrollador basa su selección de lo que se implementará en una iteración con los casos de uso asignados y los riesgos implicados en cada iteración. Cada mini proyecto incluye su trabajo de desarrollo: análisis, diseño, implementación y pruebas. En cada iteración los desarrolladores identifican y especifican los casos de uso relevantes, crean un diseño utilizando la arquitectura seleccionada como guía, implementan el diseño en componentes y verifican que los casos de uso satisfagan los casos de uso. Si la iteración alcanza las metas entonces se continúa a la siguiente iteración.
UP repite una serie de ciclos que se realizan en la vida de un sistema. Cada ciclo entrega un producto liberado al cliente. Cada ciclo consiste en cuatro fases: principio, elaboración, construcción y transición. Cada fase se encuentra dividida en iteraciones.
Fuente: Apuntes de Ingeniería del Software de la FCA de la UNAM