Flujos de Trabajo (RUP)

Un flujo de trabajo es una secuencia de actividades que producen un resultado de valor observable. Los flujos RUP tienen nombres parecidos a los de las etapas del desarrollo de cascada, pero pueden usarse tanto en procesos de cascada como en procesos iterativos.


En esencia, un flujo de trabajo es un algoritmo, y por lo tanto se puede representar de muchas formas, desde diagramas de flujo hasta diagramas de secuencia o de actividades UML. Es común usar diagramas de actividades.

No todas las actividades deben o pueden ser diagramadas, pero de acuerdo a la metodología RUP hay flujos de trabajo particularmente importantes que deben representarse siempre que sea posible. Estos se llaman "flujos de trabajo de procesos núcleo" y se dividen en seis flujos de "ingeniería" y tres flujos de "apoyo":

Modelado de proceso de negocio.

Resultado de imagen para " proceso de negocio"

Se documentan los procesos de negocios en forma de casos de uso de negocios y deben brindar una especie de "lenguaje común" entre los especialistas del software y de ingeniería/administración de negocios.


Requerimientos.

Resultado de imagen para requerimientos


Describen "que" debe hacer un sistema y le permiten a los desarrolladores y al cliente estar de acuerdo en el producto final. Se detallan los casos de uso mediante diagramas, se da una descripción detallada y textual, y los requerimientos no funcionales (los que hablan del "cómo" o detalles de como debe "ser" un producto) se enlistan en especificaciones suplementarias.


Análisis y diseño.

Resultado de imagen para analisis y diseño de sistemas png


Esta fase se enfoca en el "como" debe cumplir el sistema con los requerimientos anteriores durante la implementación. El proceso de analisis y diseño idealmente debe generar un modelo de diseño, y opcionalmente un modelo de análisis (dependiendo de la complejidad del problema), y estos modelos actuan como un plano para codificar el sistema.

El modelo de diseño consiste en clases de diseño estructuradas en paquetes y subsistemas con interfaces definidas, que representan lo que serán componentes o módulos en la implementación, así como descripciones de como colaboran estas clases de diseño para cumplir con casos de uso. Todo esto está centrado en la noción de arquitectura de un software.



Implementación.


La implementación define la organización del código en capas, implementa el diseño en términos de componentes de software (codigo fuente y codigo objeto, binarios, ejecutables, etc.), prueba los componentes de manera individual (pruebas unitarias), e integra los resultados producidos por colaboradores o equipos en un sistema ejecutable completo.

Parte de las ventajas de RUP es que, desde esta etapa, ya se considera que el sistema debe ser robusto (es decir, fácil de mantener y extender) y que muchos de los componentes deben ser reutilizables.



Pruebas.

Resultado de imagen para pruebas de software

El propósito de este flujo de trabajo es:


  • Verificar la interacción.
  • Verificar la integración de los componentes.
  • Verificar que todos los recursos estén correctamente implementados.
  • Identificar y asegurar que los defectos sean corregidos antes de desplegar el software.

El RUP propone un enfoque iterativo, lo cual significa que las pruebas se realizan a través del proyecto, lo que permite encontrar y corregir los defectos de manera rápida y barata. El proceso describe como pasar por las etapas del ciclo de vida del desarrollo de software implementando pruebas en cada una.


Desplegamiento



El propósito de este flujo de trabajo es producir releases y entregar el software a los usuarios finales de manera exitosa, y cubre un amplio rango de actividades como:


  • Producir releases externos.
  • Empaquetar, distribuir e instalar el software.
  • Brindar ayuda y asistencia a los usuarios.
  • Planear y conducir pruebas beta.
  • Migración de software existente y datos.
  • Aceptación formal.

Las actividades de este flujo se centran en la fase de trancisión, pero muchos de los artefactos de esta fase empezaron a generarse en la etapa de transición o en las etapas anteriores. La etapa ambiental y de desplegamiento de RUP son menos detalladas que otros flujos de trabajo.


Gestión de proyectos



La gestión de proyectos de software es el arte de balancear objetivos en competencia, gestionar el riesgo, y superar los problemas para entregar exitosamente un producto que cumple las necesidades de los usarios. El flujo de trabajo se concentra principalmente en el aspecto específico de un proyecto de desarrollo iterativo. Nuestra meta con esta sección es facilitar la tarea brindando los siguientes elementos:


  • Un marco conceptual para gestionar proyectos de software
  • Lineamientos prácticos para planear, asignar, ejecutando y monitoreando proyectos
  • Un marco conceptual para gestionar el riesgo

No es una receta para el éxito, pero presenta un enfoque que incrementa las posibilidades de éxito en el desarrollo.


Gestión del cambio y configuración



En este flujo de trabajo, se describe como controlar los numerosos artefactos producidos por las personas que trabajan en un proyecto común. El control ayuda a evitar los costos de la confusión, y asegura que los artefactos resultantes no están en conflictos debido a alguno de los siguientes problemas:
  • Actualizaciones simultaneas: Cuando dos o más trabajadores trabajan por separado en el mismo artefacto, el último en trabajar el artefacto destruye los cambios del anterior.
  • Notificacion limitada: Cuando el problema está en artefactos compartidos por multiples desarrolladores y algunos de ellos no te han notificado del cambio.
  • Versiones multiples: La mayoría de los grandes programas son desarrollados en etapas evolutivas, una etapa puede estar en uso del cliente, mientras otro está en pruebas, y el tercero está aún en desarrollo. Si los problemas se encuentran en una versión, las correcciones tienen que propagarse por todas las versiones. Pueden surgir confusiones que conllevan costosas reparaciones y retrabajos a menos que se controlen y monitoreen cuidadosamente.

En general, este flujo de trabajo brinda lineamientos para rastrear multiples versiones de 
Este flujo de trabajo brinda lineamientos para rastrear multiples versiones de software, cuales versiones son dadas en un build determinado, desempeñar builds de programas individuales o releases especificos según especificaciones definidas por el usuario, y aplicar políticas especificas de desarrollo.


Ambiente



El propósito de este flujo es dar a la organización de desarrollo de software con el ambiente de software requerido, tanto herramientas y procesos, que sean necesarios para apoyar al equipo de desarrollo. Este flujo de trabajo se enfoca en las actividades para configurar el proceso en el contexto de un proyecto. También se enfoca en las actividades para apoyar al desarrollo de un proyecto.

Se proporciona un procedimiento paso por paso que describe como se implementa un proceso en una organización, además de un kit de desarrollo que brinda los lineamientos, formatos y herramientas necesarios para customizar el proceso.



Pruebe su conocimiento de los flujos de trabajo aquí

No hay comentarios:

Publicar un comentario