PROCESO UNIFICADO
Introducción
El Proceso Unificado (UP) es un proceso de desarrollo de software que transforma una serie de requerimientos en un sistema de software. Para ello utiliza una serie de actividades que siguen una serie de fases, disciplinas y artefactos.Características
Iterativo e incremental
El proyecto se divide en muchos miniproyectos llamados iteraciones que dan como resultado un incremento de los productos que se desarrollan.
Las iteraciones están controladas de modo que se seleccionan y ejecutan de forma planificada, dependiendo del caso de uso especificado y seleccionado por los desarrolladores. Si una iteración no cumple sus objetivos no se sigue con la siguiente y se prueba otro punto de vista.
Dirigido por casos de uso
Cada iteración que forma parte del proceso unificado sigue un criterio establecido por un conjunto de casos de uso, y se guía también por medio de las disciplinas que define ese conjunto.
Centrado en la arquitectura
La arquitectura es el conjunto de los aspectos más significativos del software de un sistema que se define mediante múltiples vistas de este sistema.
La arquitectura debe permitir que se puedan utilizar todos los casos de uso elegidos, ya que van ligados y se relacionan bastante.
Enfocado en los riesgos
Se detectan los riesgos críticos y se ordenan las iteraciones de manera que los riegos principales son atendidos antes.
Fases
El ciclo de vida de un proceso unificado viene definido por los ciclos que lo constituyen, siendo cada ciclo una versión del sistema.Cada ciclo está formado por cuatro fases: Inicio, elaboración, construcción y transición.
Cada una de estas fases esta subdividida en iteraciones y en cada iteración tienen lugar un conjunto de disciplinas que explicaremos más adelante.
Hitos
Llamamos hito a un conjunto de modelos o documentos que han sido desarrollados hasta alcanzar un estado predefinido. Los objetivos más importantes de los hitos son:- La toma de decisión por parte del director sobre el avance o no a la siguiente fase.
- Realizar un control de la dirección y el progreso que esta llevando el proyecto.
- Obtener datos como tiempo y esfuerzo invertido en cada fase para realizar estimaciones en proyectos que realicemos más adelante.
Como comprobaremos más adelante cada fase finaliza con un hito. Dicho hito incluye los artefactos realizados en la fase correspondiente.
Fase de inicio
La finalidad de esta fase es determinar si el proyecto se lleva a cabo o no. Para ello se investigan puntos como:- Determinación del objetivo
- Coste de desarrollo
- Modo en el que se llevará a cabo el desarrollo
- Identificación de los riesgos más importantes y su posible solución
- Búsqueda de la arquitectura con la que se va a trabajar
En esta fase no se profundiza en los puntos sino que se tratan de una forma generalizada. Si se decide seguir adelante con el desarrollo, en la fase de elaboración se hará un examen más intenso sobre cada problema.
La fase finaliza con el hito de Objetivos del Ciclo de Vida, lo que significará que ya tenemos una planificación y una arquitectura preliminar.
Fase de elaboración
Esta fase esta dedicada principalmente al diseño de la linea base de la arquitectura. Se llevan a cabo tareas como:- Entender de una forma firme el problema que se debe solucionar
- Establecer un plan detallado para las siguientes iteraciones
- Eliminar los riesgos más críticos
- Definir la mayoría de casos de uso que definen la funcionalidad del sistema
Cuando el equipo de desarrollo alcance un acuerdo con las personas involucradas en el proyecto sobre los usos que describen la funcionalidad del sistema, la linea base de la arquitectura seleccionada, se haya generado un plan del proyecto y lo más importante, se hayan solucionado los riegos mayores, habremos finalizado la fase de elaboración, consiguiendo así el hito de la Arquitectura del Ciclo de Vida.
Para acabar, si pensamos que la fase de elaboración ha finalizado, debemos realizarnos una serie de preguntas como ¿Se ha creado una base de la arquitectura adaptable, robusta y con posibilidad de evolucionar?¿Se han solucionado los problemas críticos?¿Se ha desarrollado un plan de proyecto que nos aporta datos como agenda, costes y calidad de un modo realista?¿Es adecuada la recuperación de la inversión necesaria?
Si podemos responder a todas estas preguntas de forma afirmativa entonces efectivamente hemos finalizado la fase de elaboración pero de lo contrario habría que plantearse el tema que no se ha podido responder afirmativamente.
Fase de construcción
La fase de construcción es la creación en sí del producto. En esta fase se parte de la base de la arquitectura de la fase de elaboración para crear un sistema completo y funcional. Dicho sistema contendrá todos los casos de uso especificados en la fase de elaboración, con o sin defectos. Además de desarrollarse el sistema también se lleva a cabo la creación de los manuales de usuario y se llevan a cabo varios casos de prueba.Si todos los implicados en el proyecto llegan al acuerdo de que es producto es estable y puede ser usado, tiene una funcionalidad de valor y está todo listo para empezar la transición se consigue el hito de Capacidad Operativa Inicial, finalizando así la fase.
Fase de transición
La finalidad de esta fase es que el producto llegue a su versión beta. Se siguen añadiendo características y funcionalidades al software mientras el usuario lo esta utilizando de forma activa. Las principales tareas que se llevan a cabo son la de identificación y corrección de errores y extender la funcionalidad del sistema creado en la fase de construcción. Al igual que en la fase de construcción, al mismo tiempo se desarrolla o amplia los manuales de usuario.Cuando esta fase finalice habremos alcanzado el hito de Lanzamiento del Producto y eso querrá decir que se han alcanzado los objetivos fijados en la fase de inicio y el usuario se encuentra satisfecho con el producto.
Disciplinas
Cada una de las cuatro fases de las que se compone el PU, a su vez están divididas en una serie de iteraciones, ya que el sistema es iterativo e incremental, y en estas iteraciones se desarrolla en secuencia un conjunto de disciplinas o flujos de trabajo, parecidos al modelo tradicional en cascada, estas disciplinas son un conjunto de actividades realizadas en un área determinada.Las más importantes son: Requerimientos, Análisis, Diseño, Codificación, y Prueba.
Cada disciplina está asociada con un conjunto de modelo, los cuales están compuestos por artefactos.
Disciplinas Básicas
Disciplinas:
- Modelado de negocio.
- Requisitos.
- Análisis y diseño.
- Codificación.
- Prueba.
- Instalación.
Disciplinas de soporte:
- Gestión de configuraciones y cambio.
- Gestión del proyecto.
- Ambiente.
Disciplinas avanzadas
Las disciplinas pueden están divididas en tres categorias:
Disciplinas de Desarrollo:
- Modelamiento de Negocio.
- Requerimientos.
- Análisis y Diseño.
- Implementación.
- Pruebas.
- Despliegue.
Disciplinas de Soporte:
- Control de cambios y configuraciones.
- Gerencia de Proyecto.
- Ambiente e Ingeniería de Procesos.
- Implementación.
- Pruebas.
- Despliegue.
Disciplinas de Gerencia Corporativa:
- Disciplina de Modelamiento de Negocio Empresarial.
- Disciplina de Administración de Portafolio.
- Disciplina de Arquitectura Empresarial.
- Disciplina de Reutilización Estratégica.
- Disciplina de Administración de Personas.
- Disciplina de Administración Empresarial.
- Disciplina de Mejoramiento de Proceso de Software.
Artefactos
Los artefactos son productos utilizados por los trabajadores para crear otros artefactos.
Un artefacto tiene un trabajador como propietario, pero puede ser usado por más trabajdores e incluso modificado si tienen permiso.
Modelos
Algunos de los artefactos que se utilizan en el proceso unificado en las fases de inicio y de elaboración son las siguientes:
FASE DE INICIO:
- Visión y análisis del negocio
- Modelado de casos de uso
- Especificación complementaria
- Glosario
- Plan de gestión del riesgo
- Prototipos, prueba de conceptos
- Plan de iteración
- Plan de fase
- Marco de desarrollo
FASE DE ELABORACIÓN
- Modelo del dominio
- Modelo de diseño
- Documento de arquitectura
- Modelo de datos
- Modelo de pruebas
- Modelo de implementación
- Prototipos UI
- Guiones de casos de uso
Diagramas
Modelo de caso de uso
Modelo de análisis
Modelo de diseño
Modelo de implementación
Referencias
- http://es.wikipedia.org/wiki/Proceso_Unificado
- http://www.utim.edu.mx/~pmendoza/ftp/rup.pdf
- http://iie.fing.edu.uy/ense/asign/desasoft/Teorico2/ProcesoUnificado.pdf
- http://www.slideshare.net/Sofylutqm/el-proceso-unificado-3943047