domingo, 23 de noviembre de 2014

Metodologia RUP

Proceso Unificado de Rational (RUP)

Es un proceso de desarrollo de software desarrollado por la empresa Rational Software, actualmente propiedad de IBM. 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. 

Fases

  • 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: (Revise 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:
  • Gestión del cambio y configuraciones
  • Gestión del proyecto
  • Entorno
La estructura dinámica de RUP es la que permite que éste sea un proceso de desarrollo fundamentalmente iterativo, y en esta parte se ven inmersas las 4 fases descritas anteriormente:
  • Inicio (también llamado Incepción o Concepción).
  • Elaboración.
  • Desarrollo (también llamado Implementación, Construcción).
  • Cierre (también llamado Transición).
Fase de Inicio: Esta fase tiene como propósito definir y acordar el alcance del proyecto con los patrocinadores, identificar los riesgos asociados al proyecto, proponer una visión muy general de la arquitectura de software y producir el plan de las fases y el de iteraciones posteriores.
Fase de elaboración: En la fase de elaboración se seleccionan los casos de uso que permiten definir la arquitectura base del sistema y se desarrollaran en esta fase, se realiza la especificación de los casos de uso seleccionados y el primer análisis del dominio del problema, se diseña la solución preliminar.
Fase de Desarrollo: El propósito de esta fase es completar la funcionalidad del sistema, para ello se deben clarificar los requisitos pendientes, administrar los cambios de acuerdo a las evaluaciones realizados por los usuarios y se realizan las mejoras para el proyecto.
Fase de Transición: El propósito de esta fase es asegurar que el software esté disponible para los usuarios finales, ajustar los errores y defectos encontrados en las pruebas de aceptación, capacitar a los usuarios y proveer el soporte técnico necesario. Se debe verificar que el producto cumpla con las especificaciones entregadas por las personas involucradas en el proyecto.

Diciplinas y Caso de uso

  • Forma disciplinada de asignar tareas y responsabilidades (quién hace qué, cuándo y cómo)
  • Pretende implementar las mejores prácticas en Ingeniería de Software
  • 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
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).
El RUP está basado en 5 principios clave que son los siguientes:

Adaptar el proceso

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 en un área subnormal. prueba etica danny rivas

Equilibrar prioridades

Los requisitos de los diversos participantes pueden ser diferentes, contradictorios o disputarse recursos limitados. Debe 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

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

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

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.

Artefactos

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:
  • Documento Visión
  • Diagramas de caso de uso
  • Especificación de Requisitos
  • Diagrama de Requisitos
Elaboración:
  • 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
    • Mapa de comportamiento a nivel de hardware.
  • Diseño y desarrollo de casos de uso, o flujos de casos de uso arquitectónicos
  • Pruebas de los casos de uso desarrollados, que demuestran que la arquitectura documentada responde adecuadamente a requerimientos funcionales y no funcionales.
Construcción:
  • Especificación de requisitos faltantes
  • Diseño y desarrollo de casos de uso y/o flujos de acuerdo con la planeación iterativa
  • Pruebas de los casos de uso desarrollados, y pruebas de regresión según sea el caso
Transición:
  • Pruebas finales de aceptación
  • Puesta en producción
  • Estabilización
Flujo de trabajo

Modelado del negocio
Con este flujo de trabajo pretendemos llegar a un mejor entendimiento de la organización donde se va a implantar el producto.
Los objetivos del modelado de negocio son :
· Entender la estructura y la dinámica de la organización para la cual el sistema va ser desarrollado (organización objetivo).
· 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.
· Derivar los requisitos del sistema necesarios para apoyar a la organización objetivo.

Análisis y Diseño
El objetivo de este flujo de trabajo es traducir los requisitos a una especificación que describe cómo implementar el sistema.
Los objetivos del análisis y diseño son [RSC02]:
· Transformar los requisitos al diseño del futuro sistema.
· Desarrollar una arquitectura para el sistema.
· Adaptar el diseño para que sea consistente con el entorno de implementación, diseñando para el rendimiento.

Implementación
En este flujo de trabajo se implementan las clases y objetos en ficheros fuente, binarios, ejecutables y demás. Además 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 iteración habrá que hacer lo siguiente:
· Planificar qué subsistemas deben ser implementados y en que orden deben ser integrados, formando el Plan de Integración.
· Cada implementador decide en que orden implementa los elementos del subsistema.
· Si encuentra errores de diseño, los notifica.
· Se prueban los subsistemas individualmente.
· Se integra el sistema siguiendo el plan.

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 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.

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 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.

Gestión del proyecto
La Gestión del proyecto es el arte de lograr un balance al gestionar objetivos, riesgos y restricciones para desarrollar un producto que sea acorde a los requisitos de los clientes y los usuarios.
Los objetivos de este flujo de trabajo son:
· Proveer un marco de trabajo para la gestión de proyectos de software intensivos.
· Proveer guías prácticas realizar planeación, contratar personal, ejecutar y monitorear el proyecto.
· Proveer un marco de trabajo para gestionar riesgos.

Configuración y control de cambios
La finalidad de este flujo de trabajo es mantener la integridad de todos los artefactos que se crean en el proceso, así como de mantener información del proceso evolutivo que han seguido.
Entorno
La finalidad de este flujo de trabajo es dar soporte al proyecto con las adecuadas herramientas, procesos y métodos. Brinda una especificación de las herramientas que se van a necesitar en cada momento, así como definir la instancia concreta del proceso que se va a seguir.
En concreto las responsabilidades de este flujo de trabajo incluyen:
· Selección y adquisición de herramientas
· Establecer y configurar las herramientas para que se ajusten a la organización.
· Configuración del proceso.
· Mejora del proceso.
· Servicios técnicos.
 Roles

Analista:



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 (tester)



Analista de pruebas



Diseñador de pruebas




Otros roles:



Stakeholders.



Revisor 




Coordinación de revisiones
                                                                        Revisor técnico


 Herramientas


Para apoyar la construcción de sistemas y debido al auge de las metodologías se han creado herramientas que facilitan el trabajo de los desarrolladores y automatizan la mayor parte del proceso. Además mejoran de la calidad de los desarrollos realizados y aumentan la productividad de los equipos de trabajo.

Rational Rose
Hoy día, muchas empresas se han extendido a la adquisición de herramientas CASE (Ingeniería Asistida por Computadora), con el fin de automatizar los aspectos claves de todo el proceso de desarrollo de un sistema, desde el inicio hasta el final.
Rational Rose [49] es una herramienta CASE que da soporte al modelado visual con UML ofreciendo distintas perspectivas del sistema.
Da soporte al Proceso Unificado de Rational (RUP) para el desarrollo de los proyectos de software, desde la etapa de Ingeniería de Requerimientos hasta la etapa de pruebas. Para cada una de estas etapas existe una herramienta que ayuda en la administración de los proyectos, Rose es la herramienta de Rational para la etapa de análisis y diseño de sistemas.

• Modelado de Negocio
• Captura de Requisitos (parcial)
• Análisis y Diseño (Completo)
• Implementación (como ayuda)
• Control de Cambio y gestión de configuración

Rational Rose ofrece un diseño dirigido por modelos que redundan en una mayor productividad de los desarrolladores, admitiendo el lenguaje de modelado UML y técnicas de modelado de objetos (OMT). Asimismo favorece el diseño centrado en casos de uso y enfocado al negocio que genera un software de mayor calidad. Utiliza un lenguaje estándar común a todo el equipo de desarrollo que facilita la comunicación. Posee capacidades de ingeniería inversa. Con Rational Rose el modelo y código permanece sincronizado en todo el ciclo de desarrollo. Además se encuentra disponible en múltiples plataformas.

Sprintometer
Sprintometer [50] es una aplicación simple y fácil de usar en el desarrollo ágil de proyectos. Es una herramienta para la gestión y el seguimiento de Scrum. Con el fin de simplificar el intercambio de datos con programas externos todas las hojas de cálculo en Sprintometer se pueden exportar a Microsoft Excel, también se puede utilizar el formato XML para los archivos locales.

Algunas de las principales características de este software son:
• Seguimiento de proyectos con Scrum y XP.
• Moderno y fácil de usar con una interfaz estilo Microsoft Office 2007.
• Aumento de información en los gráficos.
• Seguimiento separado de desarrollo y pruebas.
• Seguimiento de iteraciones (Sprint) en equipos de composición variable.
• Predicción de la desviación prevista de la iteración de la fecha de finalización.
• Asignación de recursos a tareas e historias de usuarios.
• Exportación para Microsoft Excel de todos los gráficos y las hojas de cálculo.
• Exportación / Importación de los datos del proyecto en formato XML. 

Link para el juego (Relacionado con el tema):

https://docs.google.com/uc?export=download&id=0B4Wu3u_JdntcQlo1Mll1ZzdSZVk 






 

2 comentarios: