lunes, 24 de febrero de 2014

Proceso Unificado Racional

RUP
Proceso Unificado Racional

1.- Introducción
Al momento de realizar un software hay varias metodologías que podemos usar para desarrollarlo y debemos hacer la pregunta ¿Cuál vamos a usar?, ¿Cuál nos conviene más?... Y estas preguntas deben ser respondidas en base al estudio de cada una de esas metodologías. El software no debe ser realizado creyendo que ese producto está bien porque nosotros creemos que esta correcto, cuando en realidad debe ser pensado, analizado y diseñado de tal forma que la calidad que le demos al cliente sea la más propicia a que cumpla con todas sus necesidades. Vamos a ver a continuación una de las metodologías de desarrollo que se aplica al desarrollo de software (sistemas) que el RUP o proceso racional unificado el cual tiene tanto ventajas como desventajas y veremos sus características principales.


2.- Definición de la metodología
El Proceso Unificado Racional, Rational Unified Process en inglés, y sus siglas RUP, es un proceso de desarrollo de software y junto con el Lenguaje Unificado de Modelado UML, constituye la metodología estándar más utilizada para el análisis, implementación y documentación de sistemas orientados a objetos. El RUP no es un sistema con pasos firmemente establecidos, sino que trata de un conjunto de metodologías adaptables al contexto y necesidades de cada organización, donde el software es organizado como una colección de unidades atómicas llamados objetos, constituidos por datos y funciones, que interactúan entre sí. RUP es un proceso para el desarrollo de un proyecto de un software que define claramente quien, cómo, cuándo y qué debe hacerse en el proyecto
RUP es explícito en la definición de software y su trazabilidad, es decir, contempla en relación causal de los programas creados desde los requerimientos hasta la implementación y pruebas e identifica claramente a los profesionales (actores) involucrados en el desarrollo del software y sus responsabilidades en cada una de las actividades.

3.- Características Principales
Sus características es que es iterativo e incremental y está basada mucho en los casos de uso, también sus características es que verifica de manera seguida la calidad del software y administrar los requisitos. Este proceso de desarrollo tiene tanto artefactos como roles (que son las personas que están encargadas dentro del desarrollo o proceso).


4.- Estructura o elementos específicos de la metodología
Fases de desarrollo del software
· Inicio
· Elaboración
· Construcción
· Transición

1.- Fase de inicio
Se hace un plan de fases, donde se identifican los principales casos de uso y se identifican los riesgos. Se concreta la idea, la visión del producto, como se enmarca en el negocio, el alcance del proyecto. El objetivo en esta etapa es determinar la visión del proyecto.

1.1.- 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.
1.2.- 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 stakeholders 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.
2.- Fase de elaboración
Se realiza el plan de proyecto, donde se completan los casos de uso y se mitigan los riesgos. Planificar las actividades necesarias y los recursos requeridos, especificando las características y el diseño de la arquitectura. En esta etapa el objetivo es determinar la arquitectura Óptima.
2.1.- Análisis y Diseño
En esta actividad se especifican los requerimientos y se describen sobre cómo se van a implementar en el sistema.
· Transformar los requisitos al diseño del sistema.
· Desarrollar una arquitectura para el sistema.
· Adaptar el diseño para que sea consistente con el entorno de implementación.
3.- Fase de construcción
Se basa en la elaboración de un producto totalmente operativo y en la elaboración del manual de usuario. Construir el producto, la arquitectura y los planes, hasta que el producto está listo para ser enviado a la comunidad de usuarios. En esta etapa el objetivo es llevar a obtener la capacidad operacional inicial.
3.1- 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 qué orden deben ser integrados, formando el Plan de Integración.
· Cada implementador decide en qué orden implementa los elementos del subsistema.
· Si encuentra errores de diseño, los notifica.
· Se integra el sistema siguiendo el plan.
3.2.- 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.
4.- Etapa de transición
El objetivo es llegar a obtener el release del proyecto. Se realiza la instalación del producto en el cliente y se procede al entrenamiento de los usuarios. Realizar la transición del producto a los usuarios, lo cual incluye: manufactura, envío, entrenamiento, soporte y mantenimiento del producto, hasta que el cliente quede satisfecho, por tanto en esta fase suelen ocurrir cambios.
4.1.- 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.
5.- Ciclo de Vida de desarrollo de software utilizado
· Proceso Iterativo e Incremental: Es el modelo utilizado por RUP para el desarrollo de un proyecto de software. Este modelo plantea la implementación del proyecto a realizar en Iteraciones, con lo cual se pueden definir objetivos por cumplir en cada iteración y así poder ir completando todo el proyecto iteración por iteración, con lo cual se tienen varias ventajas, entre ellas se puede mencionar la de tener pequeños avances del proyectos que son entregables al cliente el cual puede probar mientras se está desarrollando otra iteración del proyecto, con lo cual el proyecto va creciendo hasta completarlo en su totalidad.
6.- Roles que participan
Analistas:
· Analista de procesos de negocio.
· Diseñador del negocio.
· Analista de sistema.
· Especificador de requisitos.
Desarrolladores:
· Arquitecto de software.
· Diseñador.
· Diseñador de interfaz de usuario
· Diseñador de cápsulas.
· Diseñador de base de datos.
· Implementador.
· Integrador.
Gestores:
· Jefe de proyecto
· Jefe de control de cambios.
· Jefe de configuración.
· Jefe de pruebas
· Jefe de despliegue
· Ingeniero de procesos
· Revisor de gestión del proyecto
· Gestor de pruebas.
Apoyo:
· Documentador técnico
· Administrador de sistema
· Especialista en herramientas
· Desarrollador de cursos
· Artista gráfico
Especialista en pruebas:
· Especialista en Pruebas
· Analista de pruebas
· Diseñador de pruebas
Otros roles:
· Stakeholders (personas afectadas o pueden ser afectados por la actividad de una empresa)
· Revisor
· Coordinación de revisiones
· Revisor técnico
7.- Ventajas y Desventajas
Ventajas:
-Requiere de conocimientos del proceso y de UML
-Progreso visible en las etapas tempranas
-El uso de iteraciones
-Evaluación de riesgos en lugar de descubrir en la integración final del sistema
-Facilita la reutilización del código
Desventajas:
-Por el grado de complejidad puede no resultar no muy adecuado
-Mal aplicado en el estilo cascada
8.- Conclusión:
La metodología RUP como se pudo observar es la mejor al momento de obtener software de calidad. También la complejidad que lleva el desarrollar un software ya sea grande o chico como su base fundamental que son las iteraciones y la reutilización de recursos, los roles que tiene la metodología cada uno tiene impartido las prioridades que conlleva el desarrollar software por este medio, y concluimos que al momento de elegir cualquier metodología es la que mejor se adapte a los requerimientos de las empresas y que cumpla con un software de calidad.
9.- Bibliografía
· Tesis Aplicación de la metodología RUP para el desarrollo rápido de aplicaciones basado en el Estándar J2EE de la universidad San Carlos de Guatemala
· Libro Técnicas cuantitativas para la gestión en la ingeniería del software Escrito por Javier Dolado Cosín
· Tekhne Revista de la facultad de ingeniería de la universidad Católica Andrés Bello Caracas, Venezuela N°10 año 2007

· Libro Gestión del conocimiento en Sistemas basado en objetos de aprendizaje, cualitativa y pedagógicamente definidos. De la colección VITOR Escruto por Erla Mariela MORALES MORGADO

19 comentarios:

  1. esta metodología es interesante ya que junto con UML ya que juntos constituyen un análisis mas utilizada por la mayoria

    ResponderEliminar
  2. Es una la mas completa metodología hasta el momento, junta a la ayuda de UML, constituyen lo mejor para el desarrollo de un software de calidad, ya que esta ampliamente detallado en todos sus aspectos, aunque se necesita de un alto grado de organización y solo empresas ambiciosas de grandes proyectos la pueden aplicar.

    ResponderEliminar
  3. esta es una metodologia muy completa.. pero tambien me parece es es la mas compleja y tardada es mas larga por tener un procedimiento interactivo e incremental, aunque tiene mucho apoyo gracias a los diagramas UML, pero muy buena opcion para grandes empresas con grandes proyectos.

    ResponderEliminar
  4. Esta metodología me parece la mas fuerte y mas adecuada para aplicarse, ya que suficientes procesos para sostener tanto la documentación como la elaboración, lo mas sobresaliente son los diagramas UML que complementa una forma de entender mejor la interacción de todo el proceso.

    Por Jose de Jesus Moreno Blanco

    ResponderEliminar
  5. Lo que es esta metedologia se usa lo que es el programa en diagramas de UML donde se lleva una documentacion muy compleja, pero a la vez muy completa, y se puede a plicar a empresas con un alto nivel de competencia y para grandes proyectos

    ResponderEliminar
  6. Una metodología que permite desarrollar proyectos y productos de alta calidad, supongo que era de esperarse que fuera la más complicada, las mejores cosas de la vida llevan su esfuerzo y dedicación. Es bueno saber que RUP junto al Lenguaje Unificado de Modelado se han convertido en la metodología más utilizada para el análisis, implementación y documentación de sistemas orientados a objetos.

    ResponderEliminar
  7. RUP:
    Es utilizado para el diseño de proyectos grandes, es costoso y para grupos de trabajo grandes
    Consta de las siguientes disciplinas:
    flujos de trabajo de procesos = disiplina de desarrollo
    flujos de trabajo de soporte = disiplina de gestion
    Ciclo de vida es iterativo e incremental

    ResponderEliminar
  8. RUP es la metodología que se utiliza en desarrollo de software para largo plazo, es usado cuando el equipo de trabajo es muy grande y tiene varios usos de los casos de uso que es la metodología que los usa mas. Este se recomienda a empresas de software grandes que tiene la inversión necesaria para afrontar el precio que se requiere del proyecto desarrollado con RUP.

    ResponderEliminar
  9. Es una metodología muy completa, ya que maneja diagramas UML, podria parecer muy compleja, pero en realidad esta mas completa, ya que permite ver todo detalladamente.

    ResponderEliminar
  10. Me gusto ya que utlizando UML se análiza, implementa y documenta de sistemas orientados a objetos en el desarollo de software paso a paso

    ResponderEliminar
  11. Esta meteorologista tiene como uso los diagramas UML, ya que en esta se usa una documentación un poco complicada, pero al fusionarla con este programa (UML) se hace completa.
    Y pues se aplica a empresas de alto rango, ya que se vasa para grandes proyectos.

    ResponderEliminar
  12. Con la compatibilidad que existe entre RUP y UML, esta metodología llega a ser muy util para las grandes empresas con grandes proyectos, pero gracias a que se utiliza en busca de calidad en grandes proyectos, se considera complicada.
    personalmente si tuviera en mis manos un proyecto de tal magnitud, RUP seria la metodología que utilizaria

    ResponderEliminar
  13. esta metodologia es la mas usada ya que se puede hacer un software con mas calidad que las otras metodologias, aunque considero que implementar esta metodologia es mas dificil.
    Duarte Dueñas Daniel

    ResponderEliminar
  14. con el uso de esta metodogia aunque se lleva una documentacion muy extensa es muy buena con proyectos grandes en los que se necesitan conocer e ilustrar muchos detalles y gracias a UML se puede ver con claridad en donde se está y hacia donde se va.

    ResponderEliminar
  15. La metodologia es muy extensa en el aspecto de realizarla ya que es para proyectos muy grandes basandose con UML con el que se puede ayudar para ir viendo como va el proyecto

    ResponderEliminar
  16. Esta metodología se caracteriza por ser usada en proyectos grandes debido a su complejidad, refiriéndose a la estructura y cantidad de roles que participan.

    ResponderEliminar
  17. Esta metodologia se basa mucho en grandes rasgos en UML y concurdo con todos que es muy interesante esta metodologia

    ResponderEliminar
  18. esta es una de las metodología estándar más utilizada para el análisis, implementación y documentación de sistemas orientados a objetos podemos decir que a la vez es un poco complicado y la ves lleva una lleva una documentación muy extensa.
    una de las características es que verifica de manera seguida la calidad del software y administrar los requisito.....

    ResponderEliminar
  19. Buena información, quedó claro que es la metodología más usada y considerada como un estándar para los proyectos de desarrollo de software, pero puede resultar costosa y compleja, por ello se dispuso de una simplificación: OpenUP.

    ResponderEliminar