lunes, 16 de noviembre de 2015

METODOLOGÍA RUP: ENSAYO

"RUP ES UNA METODOLOGÍA INCOMPRENDIDA, NO SE ENTIENDE, NO SE USA"


En la actualidad el desarrollo web es planteado de manera en el cual no es posible usar una metodología web o RUP volviéndola incomprendida y poco usada, esto se interpone en el desarrollo eficiente y más practico continuando con una forma de desarrollo demasiado rudimentaria. Tradicionalmente encontramos que la persona que ofrece los servicios de desarrollo web, se reúne con un usuario que presenta una serie de requerimientos y hablan de lo que necesita el mismo, hasta llegar a un acuerdo entre los dos. Posteriormente se realizan y envían las pruebas gráficas de cómo se solicitó que quedara la página web,  esto realizado sin poner al tanto a los diseñadores o programadores quienes no han interactuado con el usuario solicitante. Después que el usuario está satisfecho y autoriza el diseño de la página web, se asignan determinados tiempos para el desarrollo de la misma en los cuales tanto diseñadores como programadores se someten.

Al no realizar ningún tipo de documentación o algún diagrama, los diseñadores tienen que dejar un poco a su imaginación las maquetas de desarrollo,  dando la información a los programadores basadas en las explicaciones de los requerimientos de la persona que se reunió con el usuario inicialmente. No existen requerimientos establecidos por tanto se puede generar un teléfono roto donde la comunicación va a ser muy alternativa y el usuario tiende a estar insatisfecho y pueda realizar cambios constantemente.  

Es muy poco frecuente que un programador utilice la metodología RUP, pues esta presenta siempre cierto impacto en cuanto a su implementación debido a que puede afectar los tiempos de entrega establecidos en cada proyecto, por tanto se debe ir estableciendo de a poco evaluando a nivel individual el tiempo de desarrollo. La persona encargada de la realización de cada proyecto debe ser el líder de desarrollo y no una persona externa quien con dificultad estimara tiempos de entrega y puede que no de la metodología adecuada para la ejecución del mismo. Esta persona encargada debe tener conocimientos sobre desarrollo de software y leguajes de programación pues las consecuencias de desconocer esto implica la poca calidad del software entregado debido a que no se puede implementar ningún tipo de metodología.

Ahora bien para poder implementar la metodología RUP es importante conocer en que consiste la misma.

"METODOLOGÍA RUP"

La metodología RUP o Metodología de Proceso Unificado Racional se define como un proceso de ingeniería de software dirigido al desarrollo de software, en donde se crea un producto por medio de un proceso diseñado. La metodología de Proceso Unificado Racional, es un modelo de software el cual permite el desarrollo del mismo a gran escala, mediante un proceso de  recolección de pruebas y requerimientos y una continua retroalimentación, con lo cual se da una garantía de cumplimiento de los estándares de calidad.  Se enfrenta al inconveniente de generar mayor complejidad en cuanto a la administración del mismo, aunque los beneficios que obtendrá recompensan este esfuerzo.

Esta metodología presenta un proceso de desarrollo con un marco metodológico el cual incluye las estrategias, objetivos, actividades y artefactos, es decir toda la documentación requerida durante el desarrollo. Esto se asocia con todos los recursos humanos hábiles, competentes y capaces para asumir responsabilidades definidas y roles específicos. RUP muestra dos dimensiones: una es donde se representa el tiempo de desarrollo del proyecto y donde encontramos los ciclos de vida de cada aspecto del proceso. Y la otra dirige hacia las disciplinas de los procesos, es decir la lógica de las actividades de la ingeniería de software. Estas dimensiones son las dos caras del Proceso Racional Unificado (RUP)  que usándolas en conjunto logran una metodología de gran ayuda para el desarrollo de proyectos dentro de una organización. Muchas de las ventajas de la utilización de la metodología RUP empleada para el desarrollo de software son:
  •  La obtención de un desarrollo reiterativo de software.
  • Manejo directo de requerimientos y componentes para el diseño y arquitectura de software.
  • Realización de soporte y análisis de requerimientos de cambio al software.
  • Aumento en la calidad del software.
Estas ventajas son atrayentes en el momento de crear aplicaciones eficientes y que satisfagan las necesidades de los usuarios, también presentar por parte de los desarrolladores ideas repetitivas con la reutilización de estos software para poder generar ideas nuevas. Algunas de las entidades que en la actualidad manejan la metodología RUP con fin de ser más versátiles y adaptarse más fácilmente a nuevas ideas son las empresas de transporte, telecomunicaciones, manufactura, empresas generadoras de sistemas, entre otras.

Este proceso proporciona muchas disciplinas que dan una organización para la asignación de tareas y responsabilidades, en todas las entidades u organizaciones en especial a las dedicadas al desarrollo de software. Como objetivo principal tienen el desarrollo de software de alta calidad, con la garantía necesaria de satisfacción del usuario dentro de un límite de tiempo establecido y un presupuesto conveniente para las dos partes. Quienes implementan  RUP se transforman en un equipo de desarrollo dentro del cual se incluye al usuario y todos los socios, de esta manera se asegura que el proceso este continuamente actualizado y en constante mejora, dando a los desarrolladores mayores experiencias, practicas productivas. La mejora de la productividad del equipo genera una base de conocimientos con plantillas y mejores herramientas para el desarrollo de nuevas actividades.

El proceso unificado garantiza que todo un equipo pueda acceder a la misma base de conocimientos creando y manteniendo los modelos que se han establecido dentro de la organización y dejando que esta sea a la vez flexible a nuevas sugerencias de cambios en cuanto a sus requisitos, diseños, pruebas, gestión de proyectos, gestión de configuraciones, entre otros. RUP  no se centra en el almacenamiento de gran cantidad de documentos físicos (papel), si no en el desarrollo y mantenimiento de modelos y presentación del sistema de software que se está desarrollando. Es muy importante mencionar como el Proceso Racional Unificado sirve como orientación para la adecuada utilización del Lenguaje Unificado de Modelado o UML.

"RUP vs UML"

Más que un enfrentamiento el Proceso Racional Unificado es una guía para saber cómo se utiliza el Lenguaje Unificado de Modelado. El UML se define como un lenguaje estándar que nos dirige a definir los requisitos, arquitecturas y diseños. RUP  presenta una serie de herramientas que mecanizan el proceso de ingeniería, esto sirve en el momento de crear y mantener modelamientos en cuanto al desarrollo de software. El proceso de ingeniería es decir la programación, modelamiento, pruebas, entre otras, son de gran apoyo en la gestión de cambios que acompaña los cambios que pueda presentar la RUP. Es bueno aclarar que no solo el Proceso Racional Unificado es el adecuado para el desarrollo de software. Este proceso por lo general encaja en equipos de trabajo de desarrollo de software pequeño y también en grandes organizaciones de desarrollo.

"ARQUITECTURA DE PROCESO SIMPLE"

RUP se basa en una arquitectura de proceso simple, sin embargo tiene la capacidad de adaptarse a diferentes situaciones.  Este Proceso Unificado proporciona soporte para satisfacer las necesidades de la organización que lo aplique. Las mejores prácticas de la modernidad se basan en RUP, pues en el desarrollo de software manifiesta una amplia gama de proyectos y organizaciones.

"RUP A TRAVÉS DEL TIEMPO"

El Proceso Racional Unificado surge como sucesor del Proceso Racional Objetivo lanzado en 1996 en su última versión.  El RUP surge con material más completo en las áreas de ingeniería de datos, proyectos de administración y gestión, trayendo también mayor integración de gran cantidad de herramientas de software. RUP es el resultado de la combinación del Enfoque Racional”  y  el “Proceso Objetivo” en 1995. Desde su surgimiento, el RUP ha recibido de la estructura del Proceso Racional Objetivo diferentes conceptos de casos de uso, desde su fondo racional el proceso a adquirió la formulación de ser iterativo en cuanto a su desarrollo y arquitectura. RUP se considera la primera metodología en asociarse con UML o Lenguaje Unificado de Modelado quien en esos momentos estaba surgiendo. El Proceso Racional Objetivo surge en 1987 como resultado de la experiencia de Ivar Jacobson en su paso por Ericsson. Con este proceso Jacobson crea su propia empresa centrado en conceptos de casos de uso y una metodología de diseño orientada a objetos.

RUP fue ganando reconocimiento rápidamente dentro de las industrias desarrolladoras de software y fue yendo transportada e integrada en muchas empresas de todo el mundo.

"RUP Y SUS PERSPECTIVAS"

El Proceso Racional Unificado presenta tres perspectivas:
  • Perspectiva dinámica: Encontramos las fases RUP en el tiempo, las cuales son dinámicas es decir que poder ir cambiando permanentemente.
  • Perspectiva estática: Encontramos las fases RUP en el tiempo, las cuales son estáticas es decir las cosas que están establecidas previamente y que no cambian pero que influyen en el cambio dinámico del proceso. 
  •  Perspectiva práctica: Son las buenas prácticas que se realizan durante el proceso, que se dan a través de la experiencia.

"RUP Y SUS DIMESIONES"

Existe una asociación entre las perspectivas y las dimensiones que a lo largo de este documento se han ido mencionando, en donde podemos definirlas como dos ejes:
  • Un eje horizontal en cual representamos el tiempo y las perspectivas dinámicas del RUP. Esto se expresa en términos de ciclos, fases, iteraciones, entre otros.
  • Un eje vertical en cual se muestran las perspectivas estáticas del RUP. Esto se expresa en términos de actividades, artefactos, entre otros.


Todas las dimensiones son acompañadas de las fases de inicio del RUP las cuales son: inicio, elaboración, construcción y transición. Cada fase completa diferentes iteraciones para posteriormente poder tomar decisiones importantes dentro de la organización que está implementando la metodología RUP y poder producir informes técnicos que irán dando cumplimiento a los objetivos propuestos.

RUP es una metodología incomprendida, no se entiende, no se usa, aun cuando esta práctica metodología se considera una Ingeniería de Procesos de Software. La conciencia que han ido tomando poco a poco las organizaciones de lo importante que es documentar y estructurar un proceso de desarrollo de software ha generado un gran cambio de éxito en surgimiento de sus nuevos proyectos. 

Si realizamos una asociación con el desarrollo del CMM (Modelo de Capacidad y Madurez), que fue desarrollado por la SEI (Instituto de Ingeniería de Software), observamos cómo se ha convertido en una guía para muchas organizaciones cuando se esmeran en cumplir sus objetivos en niveles superiores. Se identifican organizaciones que han ido compartiendo sus conocimientos con los desarrolladores de software, lo que ha vuelto el colectivo conocimiento no relacionado con los métodos de diseño o los libros de texto publicados, lo que lo convierte en un conocimiento poco reutilizable, demasiado obsoleto y sin actualizaciones permanentes.  Existen otras organizaciones que no presentan un proceso en cuanto a desarrollo de software, lo cual presenta muchas limitaciones pues al no tener un punto de partida no se sabe por qué camino se va a realizar el desarrollo desmejorando en cantidades la calidad del producto del software.

La metodología RUP, puede ayudar a todo este tipo de organizaciones dando a su disposición una serie de procesos de ingeniería de software maduros, rigorosos y flexibles, por eso es muy importante para las empresas comprenderla, entenderla y así finalmente utilizarla. Cuando conocemos la metodología RUP estamos enterados de que:
  • RUP es una lista de procesos de organización.
  • RUP no es un libro escrito y estandarizado, es un método de desarrollo, que se modifica, actualiza y publica.  El software inicia desde la construcción de todo su proceso de desarrollo, es decir que la metodología RUP contribuye al diseño, desarrollo, entrega y mantenimiento como cualquier herramienta de software.
Este tipo de acciones de la metodología RUP, transfieren a unas características que traerán los productos de software que serán desarrollados:
  • Todos los productos de software desarrollados mediante la metodología RUP, están diseñados y documentados con el Lenguaje Unificado de Modelado o UML, quien se considera como una columna vertebral que mantiene muy coherente todo el proceso.
  • Cuando el software ya está terminado, se entrega en línea utilizando la tecnología Web, no se entrega ningún tipo de libro o carpeta, lo que permite estar más en contacto con los desarrolladores del mismo.
  • Se garantiza que las actualizaciones de software serán dadas regularmente dos veces al año, lo que no permite que este sea un proceso obsoleto y se beneficien los usuarios teniendo un producto de mayor calidad, esto ayuda a que todo el equipo maneje una misma versión del proceso.
  • Gracias a que los procesos de la metodología RUP son modulares, estos se pueden ajustar o configurar para que se adapten a las necesidades de cada empresa u organización desarrolladoras de software, algo que es demasiado complicado cuando se planta en un libro escrito.
  • RUP es adaptable con muchas herramientas desarrolladoras de software, con lo cual los desarrolladores tienen mayor facilidad de innovar los procesos y dar mejoría a las herramientas que están desarrollando.

"RUP, LA METODOLOGÍA DE LOS PROCESOS"

El Proceso Racional Unificado, como se ha venido mencionando, es una metodología que presenta un marco de procesos que se adaptan y ajustan a las necesidades de la organización. Es tan general y amplio como para ser adoptado por cualquier empresa u organizaciones desarrolladoras de software sin importar si son pequeñas, medianas o grandes, o si no presentan alguna estructura de proceso fuerte u organizado. La organización que adopte esta metodología puede modificar y ajustar RUP con el fin de adaptar el proceso a sus necesidades, características o limitaciones, siguiendo con la historia, cultura y dominio que ha conservado la organización. Cuando un proceso es seguido ciegamente, el trabajo tiende a ser inútil e innecesario, dando productos con muy poco valor y con tendencia a ser olvidados. Es mejor realizar un proceso que aunque no sea tan llamativo, cumpla de una forma precisa la misión y los objetivos propuestos y ayudar a los desarrolladores de software para producir un producto con alta calidad.  La adaptación de mejores prácticas dentro de la organización y todos sus procedimientos deben complementar estos procesos.

Dado a que el proceso no es estático, cada uno de sus elementos puede modificarse, personalizándose, incluyendo o suprimiendo, las diferentes actividades o flujos de trabajo. La metodología RUP es tan abierta que presenta funciones, actividades y ejemplos necesarios para realizar las modificaciones convenientes y los ajustes para ser adaptada en la organización. 

Existe otra herramienta asociada a las actividades de desarrollo de Software como el Proceso Racional Workbench las cuales también utilizan un Lenguaje Unificado de Modelado o UML y es una herramienta de RUP que apoya las actividades de diseño y creación de procesos, ayuda a las variantes de cada proyecto desarrollado por las empresas o por el mismo RUP, en conclusión esta herramienta se enfatiza en el progreso de los casos de desarrollo. Desde el año 2000, se incrementaron muchas más variantes para los casos de desarrollo en la metodología RUP implementada en las diferentes organizaciones desarrolladoras de Software.

"DESARROLLO DE SOFTWARE ITERATIVO"

Es común observar como la mayoría de equipos de trabajo desarrolladores de software, utilizan procesos de cascada es decir secuencias estrictas en las fases de análisis de los requerimientos, en el diseño, la implementación y todas las posteriores pruebas de funcionamiento. Este es un enfoque poco eficiente pues lo que hace es retrasar durante periodos prolongados a los miembros del equipo desarrollador y aplazando las pruebas hasta el ciclo final de todo el proyecto, cuando se pudo haber presentado problemas durante el camino del desarrollo. Todos los problemas presentados ya resultan muy difíciles de resolver y sobre todo costosos, representarse como amenaza en la calidad del producto. Es algo que tendría solución luego de la implementación de RUP, pues esta ofrece un enfoque iterativo que permite:

*  Tomar en cuenta siempre al usuario.
Se toma en cuenta las exigencias que esté presente ya sea para cambios o para nuevas apreciativas. Los requisitos son cambiantes a medida que se realiza el desarrollo, esta es una de las principales causas de los problemas de software, dando prolongaciones a las entregas finales, generando un usuario insatisfecho y un desarrollador desmotivado. La integración de nuevas exigencias con la metodología RUP se deben realizar de a poco por el camino del desarrollo, así estas serán mucho más pequeñas e implicaran menor número de elementos.

*  Identificación de riesgos durante la integración.
Generalmente los riesgos deben ser tratados y detectados durante la integración, con la metodología RUP se pueden mitigar los riesgos desde antes. Cuando se van desenrollando las iteraciones poco a poco, estamos poniendo en prueba cada uno de los componentes del proceso, se evalúan muchas cosas del proyecto como las herramientas a utilizar, el profesionalismo de las personas, entre otros. Se da la oportunidad de mostrar los riesgos reales que se presentan en el desarrollo o también prevenir riesgos futuros que serán más fáciles y menos costosos de superar.

*  Gestión de cambios para el producto.
La metodología RUP garantiza una gestión en los cambios del producto desarrollado, así la organización se transforma en más competitiva. Esto nos permite entregar primeros planos del producto funcional al usuario, mientras se mueve en el mercado a la par de sus competidores.

·       *  La reutilización del producto o alguna de sus partes.
Durante la planificación del proyecto, se pueden identificar partes que presenten en común con proyectos ya desarrollados. En las primeras iteraciones en la fase de diseño, podemos asociar por parte de los arquitectos oportunidades de reutilización, y después iniciar desarrollando código en común para el desarrollo de este nuevo software.

*  Corregir errores durante el desarrollo.
La arquitectura se vuelve más completa, cuando durante su desarrollo en las diferentes iteraciones, se pueden corregir los errores. A medida que se va avanzando en el desarrollo, se van detectando fallas, que si son tratadas en su transcurso tienen mayor facilidad en la solución que si se acumulan al finalizar el software, en la fase de prueba. 

En estas pruebas iterativas los técnicos en programación inician a escribir, luego se generan diseños y así sucesivamente se va llevando a cabo el desarrollo. Cuando el desarrollo no es iterativo, no existe un proceso concreto, por el contrario cada persona aportaría su proceso desde el usuario hasta el programador.  Cada persona del equipo de desarrollo de software puede ir mejorando los procesos a lo largo del camino. La última iteración que realiza RUP no solo se encarga de evaluar el estado del proyecto pretendiendo que se entregue un producto o programa, sino que también da un análisis de los cambios que debe realizar la organización o empresa para evitar errores en próximos proyectos.

Muchos equipos desarrolladores temen a la implementación de metodologías iterativas, pues las entienden como una propuesta sin fin y en donde pueden presentar una serie de vulnerabilidades en sus procesos. El comprender y utilizar “RUP” demuestra cómo controlar esas iteraciones en cuanto a la cantidad y duración que son planeadas con anterioridad, también controlar las tareas y responsabilidades que tiene cada integrante del equipo desarrollador. En esa planeación se captura el desarrollo de todo el proceso, con esto se puede tener una mejor organización, un producto de alta calidad y finalmente un usuario satisfecho.

Elaborado por: 
NARDY PAOLA JAIME RINCÓN
COD. 066102014

No hay comentarios:

Publicar un comentario