Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 10

RUP (Rational Unified Process)

Fases de la metodología

Características
 Desarrollo Iterativo e incremental
 Administración de Requerimientos
 Arquitectura Basada en Componentes
 Modelado Visual
 Verificación de calidad
 Control de Cambios

Fase de inicio
 Planificación de fases
 Identificación de los Casos de Uso
 Identifican de Riesgos
 Visión del producto asociado al negocio
 Alcance del proyecto

Fase de inicio: Modelado del negocio


 Determinación del funcionamiento y procesos de la empresa.
 Determinación de la estructura organizativa
 Identificación del problema y revisión de posibles mejoras.
 Asegurar la comunicación entre usuarios y desarrolladores.

Fase de inicio: Requisitos


 Definición de requisitos, funcionalidad de la aplicación
 Acuerdo entre los stakeholders (partes interesadas) y las funcionalidades de la aplicación
 Especificar las funcionalidades de los desarrolladores
 Definir el contexto del sistema
 Información para la estimación de costos y tiempo de desarrollo
 Definición de interfaz de usuarios

Fase de elaboración
 Generación de plan de proyecto
 Definición detallada de casos de uso
 Mitigación de riesgos
 Planificar Actividades, recursos, tiempos, hitos (acontecimientos)
 Determinación de arquitectura definitiva

Fase de elaboración: Análisis y Diseño


 Trazabilidad de requerimientos: Funcional
 Trazabilidad de requerimientos: caso de uso
 Adecuación Diseño de la arquitectura con el entorno de implementación

Fase de construcción
 Elaboración de una aplicación totalmente operativa
 Elaboración de manuales de usuario
 Elaboración de la infraestructura donde se hosterá la aplicación
 Planificación de implementación para una operatividad inicial

Fase de construcción: Implementación


 Implementación de clases, objetos, librerías, ejecutables
 Planificación de implementación de módulos con su plan de integración
 Notificación de Bugs

Fase de construcción: Pruebas


 Evaluación de la calidad del producto desarrollado
 Identificación y documentación de errores y fallas en la calidad del software
 Asesoría sobre la mejora en la calidad del software
 Validación de trazabilidad, especificación de requisitos y funcionalidad
 Verificación de la implementación de cada una de las funcionalidades

Fase de transición
 Release del proyecto
 Instalación del software
 Capacitación a usuarios
 Soporte

Fase de transición: Despliegue


 Probar el producto en su entorno de ejecución final
 Empaquetar el software para su distribución
 Distribuir el software
 Instalarlo
 Proveer asistencia y ayuda a los usuarios
 Formar a los usuarios
 Migrar el software existente o convertir bases de datos
Desarrollo iterativo

Roles que participan


 Analistas
o Analista de procesos de negocio
o Diseñador del negocio
o Analista de sistema
o Especificador de requisitos
 Desarrolladores
o Arquitecto de software
o Diseñador
o Diseñador de IU
o Diseñador de imágenes
o Diseñador de base de datos
o Implementador
o Integrador
 Gestores
o Jefe de proyecto
o Jefe de control de cambios.
o Jefe de configuración.
o Jefe de pruebas
o Jefe de despliegue
o Ingeniero de procesos
o Revisor de gestión del proyecto
o Gestor de pruebas.
 Apoyo
o Documentador técnico
o Administrador de sistema
o Especialista en herramientas
o Desarrollador de cursos
o Artista grafico
 Especialista en pruebas
o Analista de pruebas
o Diseñador de pruebas
 Otros roles
o Stakeholders (personas afectadas por la actividad de la empresa)
o Revisor
o Coordinación de revisiones
o Revisor técnico

Ventajas
 Planificación exhaustiva
 Modelización con varias vistas (estáticas y dinámicas)
 Progreso visible en las etapas tempranas
 El uso de iteraciones
 Evaluación de riesgos
 Facilita la reutilización de código

Desventajas
 Sólo adecuado para proyectos grandes
 Elevado en costos
 Tiempos excesivos de modelización
 Equipos con alto grado de capacitación en UML
 Desarrollares en lenguajes orientados a objetos

Estrategias de Implantación de Herramientas Case


 Identificar la magnitud de problemas a resolver en la Institución.
 Identificar el nivel estratégico que deben tener los sistemas.
 Evaluar los recursos de hardware y software disponibles en la Institución y el medio.
 Evaluar el nivel del personal.
 Efectuar un estudio de costo-beneficio definiendo metas a lograr.
 Elegir las herramientas apropiadas para la Institución.
 Establecer un programa de capacitación de personal de sistemas y usuarios
 Elegir una aplicación que reúna la mayor parte de los siguientes requisitos:
– Gran impacto de resultados.
– Disponibilidad de recursos.
– Mínimo nivel de riesgos.
– Máxima colaboración de usuarios.
– Tamaño reducido de solución.

Integración a otras tecnologías


La tecnología Case tendrá el mayor impacto si se integra a proyectos de innovación tecnológica
que hoy en día contemple:
 Interfases de programación visual.
 Soluciones cliente-servidor.
 Manejo de múltiples Bases de Datos.
 Independencia de la plataforma de hardware y software.
 Reingeniería de proceso de negocios.

Diccionario de Recursos de Información.


Las características más importantes respecto a los datos almacenados son
– Que no existan datos no definidos.
– Que no existan datos autodefinidos (datos que se emplean en una definición pero
que no han sido definidos previamente).
– Que todos los alias (referencias a un mismo dato empleando nombres distintos)
sean correctos y estén actualizados.

Las características más importantes de un repositorio son:


– Tipo de información. Que contiene alguna metodología concreta, datos, gráficos,
procesos, informes, modelos o reglas.
– Tipo de controles. Si incorpora algún módulo de gestión de cambios, de
mantenimiento de versiones, de acceso por clave, de redundancia de la información. La
gestión de cambios y el mantenimiento de versiones, ayudarán en el caso de que convivan
diferentes versiones de la misma aplicación o se tengan que realizar cambios en la versión en
producción y en la de desarrollo, simultáneamente.
– Tipo de actualización. Si los cambios en los elementos de análisis o diseño se ven
reflejados en el repositorio en tiempo real o mediante un proceso por lotes (batch). Esto será
importante en función a la necesidad de que los cambios sean visibles por todos los usuarios,
en el acto.
– Reutilización de módulos para otros diseños. El repositorio es la clave para
identificar, localizar y extraer código para su reutilización.
– Posibilidad de exportación e importación para extraer información del repositorio
y tratarla con otra herramienta (formateo de documentos, mejora de presentación) o
incorporar al repositorio, información generada por otros medios.
– Interfases automáticas con otros repositorios o bases de datos externos.

Módulos de diagramación y modelización


 Diagrama de flujo de datos.
 Modelo entidad - interrelación.
 Historia de la vida de las entidades.
 Diagrama Estructura de datos.
 Diagrama Estructura de cuadros.
 Técnicas matriciales.

 Número máximo de niveles para poder soportar diseños complejos.


 Número máximo de objetos que se pueden incluir para no encontrarse limitado en el
diseño de grandes aplicaciones.
 Número de diagramas distintos en pantalla o al mismo tiempo en diferentes ventanas.
 Dibujos en formato libre con la finalidad de añadir comentarios, dibujos, información
adicional para aclarar algún punto concreto del diseño.
 Actualización del repositorio por cambios en los diagramas. Siempre resulta más fácil
modificar de forma gráfica un diseño y que los cambios queden reflejados en el repositorio.
 Control sobre el tamaño, fuente y emplazamiento de los textos en el diagrama.
 Comparaciones entre gráficos de distintas versiones. De esta forma será más fácil
identificar qué diferencias existen entre las versiones.
 Inclusión de pseudocódigo que servirá de base a los programadores para completar el
desarrollo de la aplicación.
 Posibilidad de deshacer el último cambio facilitando que un error no conlleve perder el
trabajo realizado.
Generador de código
 Lenguaje generado. Si se trata de un lenguaje estándar o un lenguaje propietario.
 Portabilidad del código generado. Capacidad para poder ejecutarlo en diferentes
plataformas físicas y/o lógicas.
 Generación del esqueleto del programa o del programa completo. Si únicamente genera
el esqueleto será necesario completar el resto mediante programación.
 Posibilidad de modificación del código generado. Suele ser necesario acceder
directamente al código generado para optimizarlo o completarlo.
 Generación del código asociado a las pantallas e informes de la aplicación. Mediante
esta característica se obtendrá la interfase de usuario de la aplicación.

Módulo generador de documentación


 Generación automática a partir de los datos del repositorio, sin necesidad de un esfuerzo
adicional.
 Combinación de información textual y gráfica, lo que hace más fácil su comprensión.
 Generación de referencias cruzadas. Con ello se podrá localizar fácilmente en qué partes
de la aplicación se encuentra un determinado objeto o elemento, con el fin de analizar el
impacto de un cambio o identificar los módulos afectados por un determinado error.
 Ayuda de tratamiento de textos. Facilidad para la introducción de textos
complementarios a la documentación que se genera de forma automática.
 Interfase con otras herramientas: procesadores de textos, editores gráficos, etc.

Tendencias Tecnológicas y del Mercado de las Herramientas CASE


 CASE para sistemas bajo arquitectura cliente/servidor
 CASE multiplataforma
 CASE para trabajo en grupo (groupware)
 CASE para ingeniería inversa y directa

A mediano y largo plazo otras posibles líneas de evolución serán:


 La utilización de la tecnología multimedia.
 La incorporación de técnicas de inteligencia artificial.
 Sistemas de realidad virtual.

Consideraciones
– Si tiene un gran volumen de aplicativos desarrollados, es conveniente contrastar lo
realizado versus las técnicas de Análisis y Diseño.
– Si tiene presión por resultados a corto plazo, el empleo de un Lower Case le será
de utilidad, si se basa en modelos de datos y procesos claros y definidos.
– Si desea realizar proyectos de gran envergadura es recomendable aplicar Upper y
Lower Case.
– Si trabaja con archivos de grandes dimensiones, es recomendable que el Case
soporte el Diseño de Bases de Datos.
– Si no tiene formación y experiencia en el manejo de metodologías es
recomendable contar con asesoría especializada, que capacite al personal y supervise los
avances de Análisis y Diseño.

Lenguajes de cuarta generación


Son entornos de desarrollo de aplicaciones constituidos por un conjunto de herramientas
integradas, entre las que se encuentran editores, compiladores, sistemas para el acceso a bases de
datos, generadores de informes, generadores de pantallas (modo carácter, interfases gráficas

Editor
 Ayuda de tratamiento de textos.
 Facilidades para incorporar el nombre de variables, objetos o funciones.
 Chequeo preliminar de errores de sintaxis.
 Utilidades de selección, copia o movimiento de bloques.
 Posibilidad de deshacer el último cambio.

Compilador
 Posibilidad de separar la interpretación del código fuente, de la generación del código.
Esto permite la ejecución inmediata de una parte del código sin haber generado el fichero
ejecutable.
 Gestión avanzada de errores. Recuperación desde un estado erróneo del código, para
poder continuar con el proceso de interpretación y así detectar el mayor número posible
de errores en una única compilación.
 Optimización del código. La traducción del código fuente va acompañada por una
optimización del código (en tamaño y/o en rendimiento), a la hora de ejecutar la
aplicación.

Modulo de acceso a base de datos


Incorpora la interfase con el gestor de base de datos. Facilita toda la comunicación con la base de
datos, desde el diseño de las tablas hasta la construcción de sentencias para recuperar
información. La mayoría de los 4GL soportan el lenguaje SQL estándar como lenguaje de acceso a
base de datos relacionales, lo que garantiza la portabilidad.

Modulo de ayuda a pruebas


Hay 4GL que permiten una ejecución controlada del código para poder aislar un error, con técnicas
de ejecución paso a paso, localizando los puntos de parada y permitiendo la modificación del
contenido de las variables durante la ejecución

Diccionario
Algunos 4GL cuentan con un diccionario en el que almacenan la información referente a los
objetos de la aplicación. Esto facilita la gestión de los objetos generados especialmente para
trabajos en grupo.

Gestor de librería
Permite:
 La distribución de los objetos por las librerías siguiendo los criterios que se establezcan.
 La localización rápida de los objetos con el fin de analizar el impacto de una modificación o
corregir un error.
 La coordinación de los trabajos en equipo.

Módulo de control de versiones


Algunos lenguajes de cuarta generación incorporan facilidades para el control de versiones o
tienen interfase con alguna herramienta del mercado para el control de versiones.
Tendencias Tecnológicas y del Mercado de Lenguajes de cuarta generación
 Independencia de plataformas hardware y software.
 Independencia de estructuras de datos y acceso a información distribuida.
 Interoperabilidad con herramientas ofimáticas.
 Soporte para diferentes interfases gráficas de usuario.
 Soporte para diferentes entornos de red.
 La aplicación de forma más extendida del modelo cliente/servidor, tanto en el
funcionamiento del propio 4GL como en las aplicaciones generadas.
 Mayor apertura para la interfase con herramientas CASE.
 Incorporación de la tecnología de orientación a objetos.
 Aplicación de capacidades multimedia

Toolkits

Gestión de proyectos
Las principales funcionalidades son:
 Posibilidad de parametrización o personalización de las opciones de utilización del
programa (opciones de cálculo, selección de datos a visualizar, etc.).
 Presentación de diferentes vistas del proyecto (por tareas, por recursos, por fechas...).
 Definición de calendario a nivel de proyecto y de recurso.
 Establecimiento de diferentes relaciones entre tareas (final- inicio, final-final, inicio-inicio).
 Facilidades gráficas para la planificación (diagrama de GANTT, diagrama de PERT).
 Resolución de conflictos de los recursos.
 Facilidades para la impresión de programas de trabajo.
 Posibilidad de desarrollar macros.
 Conexión entre varios proyectos.
 Facilidades de importación / exportación.
 Facilidad de comunicación con otras herramientas (hojas de cálculo, aplicaciones gráficas,
correo electrónico, etc.).

Gestión de la Configuración
Las principales funcionalidades de una herramienta de gestión de la configuración son:
 Identificación de cada uno de los elementos de la aplicación: número de versión e
información de carácter general.
 Soporte para jerarquías de elementos.
 Control de versiones. Utilización de técnicas de bloqueo de objetos o código para evitar
actualizaciones simultáneas por varios desarrolladores.
 Definición de las configuraciones. Criterio que se sigue para seleccionar elementos de una
versión.
 Posibilidad de recuperación de versiones anteriores de determinados objetos o partes del
código.

Herramientas de ayuda en las pruebas


Los principales componentes de una herramienta de ayuda a las pruebas y sus funcionalidades
son:
 Utilidades de datos. Describen las características de los datos implicados en la prueba del
software.
 Simuladores. Permiten representar partes del sistema no desarrollado todavía o simular la
interacción del mismo con otros sistemas o con el usuario final.
 Trazadores. Permiten seguir paso a paso el funcionamiento de un determinado proceso e
introducir paradas dentro de la ejecución para analizar el contenido de variables.
 Sistemas de captura y repetición. Permiten capturar datos para utilizarlos como entrada
de un proceso, interceptar el flujo de ejecución de un programa, retener una secuencia de
acciones desde el teclado o ratón y repetirlos posteriormente.
 Comparadores de datos. Sirven para comparar los resultados esperados de la prueba con
los obtenidos.

Herramientas de control de calidad


 Comprobadores de requisitos. Chequean las sentencias de los requisitos para verificar
que no existe ambigüedad, inconsistencia o falta de integridad. Estas herramientas sólo
comprueban sobre los requisitos incluidos en la documentación, lo que no hacen es informar
que falta algún requisito importante.
 Generadores de condiciones de prueba basados en las especificaciones del diseño.
Generan las condiciones por métodos aleatorios, algorítmicos y/o heurísticos. El método
aleatorio utiliza procedimientos de muestreo estadístico para elegir las condiciones. El método
algorítmico se basa en técnicas de análisis de causa-efecto y análisis de enlaces. El método
heurístico se construye sobre experiencias previas con errores de aplicaciones.
 Trazadores de requisitos a probar. Desarrollan una traza (log) para un requisito en
particular.
 Generadores de resultados esperados. Ejecutan las condiciones de prueba por primera
vez. Las salidas obtenidas son juzgadas por la herramienta como correctas o erróneas y según
ésto, son utilizadas como resultados esperados.
 Generadores de métricas. Analizan el código existente y obtienen métricas sobre el flujo
de datos, el control del flujo, la estructura de datos, la estructura del proceso, el número de
líneas de código, etc.
 Verificadores de código. Son analizadores de código a la búsqueda de variables no
inicializadas, índices fuera de Ran

Bibliotecas de clases de objetos


Hay bibliotecas de clases que se han diseñado para:
 La creación de interfases gráficas de usuario (IGU).
 El acceso a bases de datos.
 La integración de funcionalidades multimedia.
 El tratamiento de documentos.
 El intercambio electrónico de datos.
 El desarrollo de aplicaciones científicas, matemáticas o de ingeniería.

Tendencias tecnológicas y del mercado de otras herramientas de ayuda al desarrollo


 Herramientas más abiertas para poder conectarse con mayor facilidad unas con otras.
 Soporte para diferentes plataformas físicas y lógicas.
 Mejor aprovechamiento de los recursos físicos y los servicios de red e interconexión.
 Decidida aplicación de lo que parece ser la tecnología con mayor futuro: la orientación a
objetos.
 Interfase de usuario más amigable apoyándose en tecnologías multimedia.

También podría gustarte