Ir al contenido principal

Metodología de desarrollo RUP (Rational Unified Process)

.
El Proceso Lógico Unificado (RUP) es una metodología de desarrollo de software orientada a objetos que define la base, los patrones y los ejemplos para todos los aspectos y etapas del desarrollo de software. RUP es una herramienta de ingeniería de software que combina aspectos del proceso de desarrollo (como etapas, tecnologías y prácticas específicas) con otros componentes de desarrollo (como documentación, modelos, manuales, código fuente, etc.) en un marco unificado.

Los autores de RUP declaran que el proceso de software propuesto por RUP tiene 3 características principales: está dirigido por los Casos De Uso, está centrado en la arquitectura y es iterativo e incremental.

En cada iteración se realizan las actividades correspondientes a la mayoría o a todas las disciplinas.

Flujos de trabajo

Un flujo de trabajo es una relación de actividades que nos producen unos resultados observables. RUP determina los siguientes flujos de trabajo:



Modelado de negocio

Con este flujo de trabajo pretendemos llegar a un mejor entendimiento de la organización donde se va a implantar el producto. En esta disciplina se intenta comprender las necesidades del negocio, describir su funcionamiento y los servicios que ofrece.

Describe como desarrollar una visión de la nueva organización, basado en esta visión se definen procesos, roles y responsabilidades de la organización por medio de un modelo de Casos de Uso del negocio y un Modelo de Objetos del Negocio.

Requerimientos

·         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 la planeación de los contenidos técnicos de las iteraciones. 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.

Análisis y diseño

Aquí se le da forma a los requisitos para implementarlos en el sistema. Se desarrolla una arquitectura para el sistema y se adapta el diseño para que sea consistente con el entorno de implementación, diseñando para el rendimiento.

El análisis consiste en obtener una visión del sistema que se preocupa de ver qué hace (tomando en cuenta los requisitos funcionales), y el diseño es un refinamiento del análisis que tiene en cuenta los requisitos no funcionales, en definitiva, cómo cumple el sistema sus objetivos.

Implementación

Consiste en convertir el diseño en código fuente utilizando los mecanismos lingüísticos de un lenguaje de programación, establecer y seguir un estándar de codificación, definir la organización del código en términos de implementación e implementar clases y objetos en términos de componentes. El producto final de este flujo de trabajo es un sistema ejecutable.

La estructura de todos los elementos implementados forma el modelo de implementación. La integración debe ser incremental, es decir, en cada momento sólo se añade un elemento. De este modo es más fácil localizar fallos y los componentes se prueban más a fondo.

Pruebas

En este apartado se evalúa la calidad del producto que se está desarrollando, y es importante recalcar que no se debe hacer solo al final del proceso de desarrollo, si no que constantemente se debe integrar a todas las etapas.

Entre las actividades realizadas en este flujo están:

  • Encontrar errores y corregirlos.
  • Validar que el producto funcione tal como fue diseñado.
  • Verificar que los requerimientos hayan sido implementados.

Transición

Consiste en la producción exitosa del producto desarrollado y su distribución a los usuarios. Entre las actividades realizadas tenemos:

  • -       Probar el producto en su entorno de ejecución final.
  • -       Empaquetar el software para su distribución.
  • -       Proveer asistencia y apoyo a los usuarios.
  • -       Formar al usuario y al cuerpo de ventas.
  • -       Migrar el software existente o convertir bases de datos.

Configuración y control de cambios

Aquí el objetivo es mantener íntegros todos los artefactos creados en el proceso. También se mantiene la información del proceso evolutivo que se ha seguido.

Gestión del proyecto

En este flujo de trabajo se gestionan objetivos, riesgos y restricciones de forma equilibrados para desarrollar un producto que sea acorde a los requisitos de los clientes y los usuarios.

Sus objetivos se resumen en proveer un marco de trabajo para la gestión de proyectos y otro para riesgo, así como proveer guías prácticas para monitores el proyecto.

Ambiente

En este flujo se brindan las herramientas, procesos y métodos necesarios para ajustarse a la organización.

También se configura y mejora el proceso, así como se dan servicios técnicos.

Modelos en RUP-GDIS y sus Dependencias 

Roles.

Como bien la mayoría sabe, un rol define qué hará y cómo actuará una persona, Un individuo puede tener varios roles o un rol puede ser de varias personas.

RUP define grupos de roles, agrupados por participación en actividades relacionadas. Estos grupos son:

Analistas (investigan el hardware y el software que forman parte de los sistemas informáticos de una organización, además de las formas en que se utilizan los sistemas):

·         Analista de procesos de negocio.

·         Diseñador del negocio.

·         Analista de sistema.

·         Especificador de requisitos.


  Desarrolladores (especialistas en informática que son capaces de concebir y elaborar sistemas informáticos):

·         Arquitecto de software.

·         Diseñador de interfaz de usuario.

·         Diseñador de cápsulas.

·         Diseñador de base de datos.

·         Implementador.

·         Integrador.


  Gestores (encargados de los trámites y los procesos que pueden llevarse a cabo en una empresa):

·         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 (brindan asistencia o soporte a la empresa o a los empleados acerca de cuestiones relacionadas con el mantenimiento de hardware, redes y sistemas):

·         Documentador técnico.

·         Administrador de sistema.

·         Especialista en herramientas.

·         Desarrollador de cursos.


  Artista gráfico. 

Especialistas en pruebas (planifican y llevan a cabo pruebas de software de los ordenadores para comprobar si funcionan correctamente):

·         Especialista en Pruebas (tester).

·         Analista de pruebas.

·         Diseñador de pruebas.


       Otros roles:

·         Stakeholders.

·         Revisor.

·         Coordinación de revisiones.

·         Revisor técnico.

·         Cualquier rol.


Relación con otros modelos de desarrollo de software.

El modelo RUP se distingue por ser iterativo e incremental, características que se presentan en otros como el modelo espiral y de cascada. 
Otra relación que podemos encontrar, es que las etapas (que son inicio, elaboración, construcción y transición), a pesar de variar un poco, siguen la misma estructura básica que otros modelos.
Una gran diferencia que hace resaltar a este modelo del resto, es la documentación masiva de las actividades realizadas durante el proceso, y esto es gracias a la presentación de artefactos, los cuales se encargan de evidenciar de forma muy específica las acciones realizadas durante las etapas de desarrollo.
Otra pequeña distinción de este modelo respecto a los demás, es la cantidad de roles que se pueden asignar, ya que aquí la variedad es muy elevada. Lo anterior resalta aún más la complejidad y detalle con la que trabaja está metodología.



Este modelo es muy completo, ya que, si ponemos atención a sus etapas, vemos que son diversas, lo cual permite que se abarque prácticamente todo lo que se debe de revisar a la hora de desarrollar un proyecto. Otro aspecto que me hace considerar al modelo RUP muy completo son sus artefactos, los cuales son productos de los distintos procesos realizados por los responsables de determinadas áreas. Estos artefactos ayudan a tener una mejor claridad de lo que se hace en cada etapa, así como documentarlo. Al igual que pasa con las etapas, en este modelo existen artefactos en abundancia, por lo que el proceso es mucho más organizado que otros.



Bibliografía:

Torossi, G. (s. f.). El Proceso Unificado de Desarrollo de Software. http://dsc.itmorelia.edu.mx/~jcolivares/courses/pm10a/rup.pdf

Niño, N., Metzner, C. (11 de mayo de 2016). El Proceso de Desarrollo RUP-GDIS. https://www.sctc.org.ve/memorias/SCTC2016/SCTC2016-p002-011.pdf

UNAM. (s. f.). Proceso Unificado Rational Aplicado. http://www.ptolomeo.unam.mx:8080/xmlui/bitstream/handle/132.248.52.100/175/A8%20Capítulo%205.pdf?sequence=8



 


Comentarios

Entradas más populares de este blog

Perfil y Mapa Curricular de la carrera

. Puedes acceder al documento original del Mapa Curricular de la carrera de Ingeniería en Software dándole click al siguiente link:  https://www.itson.mx/oferta/isw/Documents/MapaISW2016_V5_SeriacionSimplificadaFebrero2020.pdf PERFIL DE LA CARRERA DE INGENERIA EN SOFTWARE Perfil de Ingreso • Habilidades de aplicación de las matemáticas (razonamiento lógico-  matemático), localización de información (interpretación de información  gráfica), y lectura de información (comprensión lectora). • Competencia lingüística en inglés a un nivel de dominio A2 de acuerdo al  Marco de Referencia Europeo (MCER). • Poseer capacidad de razonamiento verbal. • Capacidad para resolver problemas básicos en las áreas de aritmética,  álgebra, geometría, trigonometría y cálculo. • Capacidad de identificar y resolver problemas mediante algoritmos  computacionales. Preferentemente deberá contar con: • Interés por el desarrollo de programas computacionales que den solución a  los...

Ética Profesional del Ingeniero en Software

. Código de ética El propósito del Código es inspirar y guiar el comportamiento ético de todos los profesionales, incluidos los actuales y futuros, como profesores, estudiantes, personas influyentes y todos los profesionales que utilizan la tecnología de la información para generar impacto. El Código es la base para la corrección de la infracción. Contiene principios formulados como declaraciones de responsabilidad, basado en la idea de que el interés público siempre es lo primero. Cada principio es complementado con guías que brindan explicaciones para ayudar a los profesionales a comprenderlo y aplicarlo. El Código, en general, aborda el modo en el que los principios éticos fundamentales se aplican a las conductas de un profesional de la informática. El Código no es un algoritmo para resolver problemas éticos; sino que sirve como un punto de partida para la toma de decisiones éticas. Al abordar un problema particular, un profesional de la informática puede enfrentarse a múltiples...