Sus siglas en inglés Rational Unified Process, es un producto del proceso de la ingeniería de software el cual proporciona una orientación disciplinada en la asignación de tareas y responsabilidades dentro del grupo de desarrollo. El objetivo es asegurar un software de alta calidad conforme al presupuesto y tiempo establecidos
40
2.7.1.1 Características del RUP
Encaminado por casos de uso. Los casos de uso son utilizados para el desenvolvimiento y desarrollo de las disciplinas con los artefactos, roles y actividades necesarias, además con la base para la implementación de las fases y disciplinas del RUP.
Los casos de uso son secuencias de pasos a seguir para llegar a un fin o propósito, tienen relación directa con los requerimientos ya que conlleva la realización e implementación de un requerimiento planteado por el cliente.
Proceso iterativo o incremental. Plantea la implementación del proyecto en iteraciones, definiendo objetivos en cada una de ellas y convirtiéndolos en entregables para pruebas mientras se desarrolla la siguiente iteración.
Proceso centrado en la arquitectura. Define la arquitectura de un sistema y una arquitectura ejecutable construida como un prototipo evolutivo. “El prototipado es el framework de actividades dedicada al desarrollo de software prototipo, es decir, versiones incompletas del software a desarrollar” (Floría, 2011),
La arquitectura de un sistema es la organización o estructura de sus partes más relevantes. Una arquitectura ejecutable es la implementación parcial del sistema, construida para simular funcionalidad y propiedades.
2.7.1.2 Fases del RUP
Consiste en una serie de ciclos, cada uno de estos genera una nueva versión del producto, además cada ciclo está compuesto por fases y cada una de estas fases compuesta por iteraciones, siendo las fases de cada ciclo las detalladas a continuación:
41 Se centra en las actividades de modelamiento de la empresa y sus requerimientos, define el ámbito y objetivos del proyecto así como también la funcionalidad y capacidades del producto
Elaboración
Se centraliza en el desarrollo del diseño, los flujos de trabajo de requerimientos, modelo de la organización, análisis, diseño y una parte de implementación orientada a la arquitectura básica, además se planifica considerando los recursos disponibles.
Construcción
Se orienta a la construcción del producto a través de una serie de iteraciones las cuales seleccionan ciertos casos de uso, se redefine su análisis y diseño y se encamina a su implementación y pruebas. Dentro de esta fase se inicia una pequeña cascada para cada ciclo y se realizan iteraciones hasta la nueva implementación del producto.
En esta fase se permite cambios en la estructura de la arquitectura y se inicia con la documentación de la construcción del sistema y el manejo del mismo.
Transición
Esta fase busca garantizar que se tiene un producto preparado para la entrega al usuario, se incluyen tareas de marketing, empaquetado, instalación, configuración, entrenamiento, soporte, mantenimiento, etc. con el objetivo de entregar el sistema y completar los manuales de usuario.
2.7.1.3 RUP y UML
Según Sommerville, RUP se ha diseñado conjuntamente con el lenguaje unificado de modelado UML, el cual es un lenguaje orientado a objetos, por lo que la descripción del flujo de trabajo se orienta alrededor de los modelos UML asociados.
42 Las diferentes partes de un sistema pueden ser representadas a través de la esquematización de varios elementos UML, los cuales se utilizan para crear diagramas alguna parte o punto de vista del sistema.
UML ofrece diferentes tipos de diagramas sin embargo se detallan a continuación los más importantes para el desarrollo de una aplicación:
Diagrama de casos de uso: muestra a los actores, las situaciones que se producen cuando utilizan el sistema y sus relaciones.
Diagrama de clases: muestra las clases y la relaciones entre ellas.
Diagrama de secuencia: muestra los objetos y sus múltiples relaciones entre ellos.
2.7.2 CICLO DE VIDA Y MODELO EN CASCADA
El ciclo de vida es el conjunto de fases por las que pasa un sistema en desarrollo desde que nace la idea hasta que el software es retirado o reemplazado.
“Un ciclo de vida para un proyecto se compone de fases sucesivas compuestas por tareas que se pueden planificar” (Weitzenfeld, 2005). Según el modelo de ciclo de vida clásico, la sucesión de fases puede ampliarse con bucles de realimentación, así una misma fase se pueda ejecutar más de una vez a lo largo de un proyecto, recibiendo en cada pasada aportaciones a los resultados intermedios que se van produciendo y garantizando la calidad del software.
43
Figura 13 Modelo de cascada
Fuente: Universidad de Oriente. (s.f.). Metodologías para el desarrollo de software. Obtenido de Modelo en Cascada :
http://wiki.monagas.udo.edu.ve/index.php/Metodolog%C3%ADas_para_el_desarrollo_de_so ftware#Metodolog.C3.ADas_Vs._Ciclo_de_vida
Las principales etapas de este modelo según Sommerville (2005) son: 1. Análisis y definición de requerimientos. Los servicios,
restricciones y metas del sistema se definen a partir de las consultas con los usuarios. Se define una especificación del sistema.
2. Diseño del sistema y del software. El proceso de diseño del sistema divide los requerimientos en sistemas hardware o software. Establece una arquitectura completa del sistema. El diseño del software identifica y describe las abstracciones fundamentales del sistema software y sus relaciones.
3. Implementación y prueba de unidades. Durante esta etapa, el diseño del software se lleva a cabo como un conjunto o unidades de programas.
4. Integración y prueba del sistema. Los programas o las unidades individuales de programas se integran y prueban como
44 un sistema completo para asegurar que se cumplan los requerimientos del software.
5. Funcionamiento y mantenimiento. El sistema se instala y se pone en funcionamiento práctico. El mantenimiento implica corregir errores no descubiertos en las etapas anteriores del ciclo de vida.