jueves, 10 de diciembre de 2015

Metodologías orientadas a objetos: RUP

Vimos cómo evolucionaron las metodologías para responder al paradigma de la programación orientada a objetos. Ha habido varias metodologías, pero la que se ha consolidado actualmente y tiene más presencia en la ingeniería del software es el Proceso Unificado (RUP) que utiliza las técnicas proporcionadas por el Lenguaje de Modelado Unificado (UML). RUP ha unificado distintas metodologías y técnicas en una sola metodología. Así, RUP constituye la metodología estándar más utilizada para el análisis, implementación y documentación de sistemas orientados a objetos.

Sus principales características son:
• Forma disciplinada de asignar y organizar tareas y responsabilidades (quién, cómo, qué, cuándo).
• Desarrollo iterativo e incremental.
• Proporciona mecanismos de gestión del proyecto administrando       horarios y recursos.
• Facilita la gestión de requisitos a través de un proceso completo       para su recogida y documentación     guiado por casos de uso.
• Centrada en la arquitectura para buscar su robustez con un                producto que tenga el comportamiento deseado.
• Basada en componentes re-utilizables.
• Modelado visual del software utilizando el estándar UML (asegura el uso de herramientas CASE).
• Resulta fácil dividir el sistema en varios subsistemas                         independientes.

• Facilita el control de cambios a lo largo de todo el proceso,             guardando todas las versiones del proyecto.
• Permite la verificación de la calidad del software a través de             diferentes mecanismos de control en los que participa todo el           equipo de desarrollo.
• Adaptable a cualquier tipo de proyecto y organización                     independientemente del tamaño o complejidad.

Hemos indicado que RUP asigna y organiza disciplinadamente las tareas, para ello define estos elementos:
• Perfiles o roles de las personas y entidades implicadas (quién).
• Actividades que guían el proceso (cómo).
• Artefactos o productos intermedios a obtener (qué).
• Flujos de trabajo: indican la secuencia de actividades y los               procedimientos a seguir (cuándo).

􀂾 De desarrollo e ingeniería, incluyen:
􀂃 Modelado de Negocio: describe la estructura y dinámica del negocio.
􀂃 Requisitos: descripción de las necesidades del negocio mediante casos de uso.
􀂃 Análisis y Diseño: describe la arquitectura de software mediante distintos modelos.
􀂃 Implementación: desarrollo del software según el diseño y cumpliendo los requisitos.
􀂃 Pruebas: para asegurar que el comportamiento es correcto y satisface las necesidades.
􀂃 Implantación: puesta en marcha y configuración del sistema.

􀂾 De ayuda y apoyo, incluyen:
􀂃 Configuración y gestión de cambios: controla los productos intermedios.
􀂃 Administración del proyecto: establece estrategias de trabajo, horarios y recursos.
􀂃 Entorno: para controlar la infraestructura ligada al desarrollo del proyecto.

En las características, hemos dicho que la metodología RUP sigue un ciclo de vida iterativo e incremental. Para ello RUP divide el proceso de desarrollo en ciclos, teniendo un producto al final de
cada ciclo. Las fases o etapas de desarrollo son:
Fase de Inicio: El objetivo es estudiar la viabilidad del proyecto, para ello se hace un plan temporal, se identifican los riesgos, se detectan los casos de uso, se hace una estimación de
costos, etc.
Fase de Elaboración: El objetivo es determinar la arquitectura óptima, para lo que se hace un plan de proyecto, se completan los casos de uso y se eliminan los riesgos.
Fase de Construcción: El objetivo es la elaboración de un producto totalmente operativo y eficiente y el manual de usuario.
Fase de Transición: El objetivo es implantar el producto y ponerlo a disposición de los usuarios.

Como consecuencia de esto suelen surgir nuevos requisitos a ser analizados, lo que presentamos en esta fase es una versión inicial o beta del sistema.
Cada una de estas etapas es desarrollada mediante un ciclo de iteraciones, que reproducen el ciclo de vida a menor escala. Los objetivos de una iteración se establecen en función de la evaluación de las iteraciones precedentes. Cada iteración obtiene un producto intermedio operativo revisable por el cliente y que será un punto de partida para la siguiente. Con esto se consigue una retroalimentación con el cliente en cada iteración. Hay un alto grado de iteración y solapamiento, lo que lleva a una forma de
trabajo muy dinámica donde es posible realizar distintas etapas al mismo tiempo. Se eliminan fronteras entre fases debido a la naturaleza iterativa del desarrollo orientado al objeto.


En la imagen podemos ver una descripción de las fases, las iteraciones (el sistema es flexible por lo que podría haber más o menos de las que aparecen, una para la fase de inicio I1, dos para la fase de elaboración E1 E2…), y los flujos de trabajo (las figuras de colores indican cuando se realizan los flujos de trabajo y con qué volumen de trabajo).
Una característica importante de una metodología orientada a objetos como RUP es que establecen mecanismos para tratar el riesgo y la incertidumbre, por lo que son necesarios cuando nos
enfrentamos a desarrollos de software donde la incertidumbre es una componente significativa.

Modelado de objetos con UML.
Hemos dicho que RUP utiliza UML como técnica de modelado de los objetos, pero ¿en qué consiste UML?
El Lenguaje Unificado de Modelado (UML) consiste en un conjunto de notaciones y diagramas estándar para modelar sistemas orientados a objetos, y describe la semántica esencial de estos diagramas y los símbolos en ellos utilizados. UML es de libre uso y se trata de una estandarización o consolidación de muchas notaciones y modelos usados anteriormente. Por tanto, UML es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema de software. Como técnica de trabajo de la metodología, UML proporciona varios tipos de diagramas que muestran diferentes aspectos de las entidades o elementos representados.
Podemos clasificar estos diagramas en:
Diagramas de estructura: describen los elementos del sistema. Incluye:
􀂃 Diagrama de clases.
􀂃 Diagrama de componentes.
􀂃 Diagrama de objetos.

Diagramas de comportamiento: indican lo que deben hacer los elementos del sistema, para lo
que incluye:
􀂃 Diagrama de actividades.
􀂃 Diagrama de casos de uso.
􀂃 Diagrama de estados.
Diagramas de Interacción: indican el flujo de control y de datos entre los elementos del sistema,
para lo que utiliza:
􀂃 Diagrama de secuencia,
􀂃 Diagrama de comunicaciones,
􀂃 Diagrama de tiempos, etc.
Una de las grandes ventajas de UML es que existen múltiples herramientas CASE que lo soportan, lo cual facilita y automatiza el trabajo. En la imagen podemos ver un diagrama de comunicaciones que representa la gestión de una cola de trabajos realizado con una herramienta CASE.





No hay comentarios:

Publicar un comentario