43
UML 2.3 UML 2.3 Aplicando UML en el Aplicando UML en el Proceso Unificado Proceso Unificado DESARROLLO DE SOFTWARE EN DESARROLLO DE SOFTWARE EN OBJETOS BASADO EN RUP Y UML OBJETOS BASADO EN RUP Y UML Ing° Denny John Fuentes Adrianzén Docente ICI - FACFyM - UNPRG CIP Nº 80286

002 ISOO (Introduccion a RUP)

Embed Size (px)

DESCRIPTION

RUP

Citation preview

Page 1: 002 ISOO (Introduccion a RUP)

UML 2.3UML 2.3

Aplicando UML en el Proceso Aplicando UML en el Proceso UnificadoUnificado

DESARROLLO DE SOFTWARE EN OBJETOS DESARROLLO DE SOFTWARE EN OBJETOS BASADO EN RUP Y UMLBASADO EN RUP Y UML

Ing° Denny John Fuentes AdrianzénDocente ICI - FACFyM - UNPRG

CIP Nº 80286

Page 2: 002 ISOO (Introduccion a RUP)

ISOOISOO

• Que es RUP• Evolución• Mejores practicas• Características• Iteraciones y fases• Definiciones

Agenda

Page 3: 002 ISOO (Introduccion a RUP)

ISOOISOO

Introducción

• 1960’s - 70’s– COBOL, FORTRAN, C, etc.– Técnicas de análisis y diseño Estructurado

• 1980’s – inicios de 1990’s– Smalltalk, Ada, C++, Visual Basic– Inicios de métodos OO

• Mediados de 1990’s– Java– UML– Unified Process

Page 4: 002 ISOO (Introduccion a RUP)

ISOOISOO

Proceso de Desarrollo

• Un proceso de desarrollo de software es un conjunto de actividades necesarias para transformar los Requi- sitos de un usuario en un sistema software.

Proceso de Desarrollo de Software (PU)

Requisitos delUsuario

Sistema Software

“SQA”

Page 5: 002 ISOO (Introduccion a RUP)

ISOOISOO

Que es RUP

• RUP es un proceso de desarrollo de software:– Forma disciplinada de asignar tareas y

responsabilidades en una empresa de desarrollo (quién hace qué, cuándo y cómo).

• Objetivos:– Asegurar la producción de software de calidad dentro

de plazos y presupuestos predecibles.– Dirigido por casos de uso, centrado en la arquitectura,

iterativo (mini-proyectos) e incremental (versiones) y Configurable.

Page 6: 002 ISOO (Introduccion a RUP)

ISOOISOO

Que es RUP

• Es también un producto:– Desarrollado y mantenido por Rational.– Actualizado constantemente para tener en cuenta las

mejores prácticas de acuerdo con la experiencia.

• Es un proceso de la Ingeniería de Software.• Provee un enfoque disciplinario para asignar tareas y

responsabilidades durante la organización del desarrollo de software.

• Es una guía de cómo usar efectivamente UML.

Page 7: 002 ISOO (Introduccion a RUP)

ISOOISOO

Que es RUP

• Es un marco de trabajo genérico que puede

especializarse para una gran variedad de

sistemas software, para diferentes áreas de

aplicación, diferentes tipos de organizaciones,

diferentes niveles de aptitud y diferentes

tamaños de proyectos.

Page 8: 002 ISOO (Introduccion a RUP)

ISOOISOO

Evolución

Rational Unified Process 5.0

Rational Objectory Process 4.1

Rational Objectory Process 4.0

Rational Approach Objectory

Process

Pruebas de rendimiento y carga(Performance Awareness)

Ingeniería de Negocios

Diseño OO de IU

Ingeniería de Datos(Vigortech)

UML 1.2

Proceso SQA(SQA Inc.)

UML 1.0

Administración de Configuración y Cambios

(Pure-Atria)

Escuela de Requerimientos(Requisite Inc.)

OMTBooch

UML 0.8

1998

1997

1996

1995

Ericsson method1967

1987

Page 9: 002 ISOO (Introduccion a RUP)

ISOOISOO

Las Mejores Practicas

• RUP pretende implementar las mejores prácticas actuales en ingeniería de software:

1) Desarrollo iterativo del software.

2) Administración de requerimientos.

3) Uso de arquitecturas basadas en componentes.

4) Modelamiento visual del software.

5) Verificación de la calidad del software.

6) Control de cambios.

Page 10: 002 ISOO (Introduccion a RUP)

ISOOISOO

Desarrollo Iterativo

• El software moderno es complejo y novedoso. No es realista usar un modelo lineal de desarrollo como el de cascada.

• Un proceso iterativo permite una comprensión creciente de los requerimientos a la vez que se va haciendo crecer el sistema.

• RUP sigue un modelo iterativo que aborda las tareas más riesgosas primero.

• Con esto se logra reducir los riesgos del proyecto y tener un subsistema ejecutable tempranamente.

Page 11: 002 ISOO (Introduccion a RUP)

ISOOISOO

Administración de Requerimientos

• RUP describe cómo:– Obtener los requerimientos

– Organizarlos

– Documentar requerimientos de funcionalidad y restricciones

– Rastrear y documentar decisiones

– Captar y comunicar requerimientos del negocio

• Los casos de uso y los escenarios indicados por el proceso han probado ser una buena forma de captar requerimientos y guiar el diseño, la implementación y las pruebas.

Page 12: 002 ISOO (Introduccion a RUP)

ISOOISOO

Arquitectura basada en Componentes

• El proceso se basa en diseñar tempranamente una arquitectura base ejecutable.

• La arquitectura debe ser:– Flexible– Fácil de modificar– Intuitivamente comprensible– Promueve la reutilización de componentes

• RUP apoya el desarrollo basado en componentes, tanto nuevos como preexistentes.

Page 13: 002 ISOO (Introduccion a RUP)

ISOOISOO

Modelamiento Visual

• Modelamiento visual de la estructura y el comportamiento de la arquitectura y los componentes.

• Bloques de construcción:– Ocultan detalles– Permiten la comunicación en el equipo de desarrollo– Permiten analizar la consistencia:

• Entre las componentes• Entre diseño e implementación

• UML es la base del Modelamiento Visual de RUP.

Page 14: 002 ISOO (Introduccion a RUP)

ISOOISOO

Verificación de Cualidades

• No sólo la funcionalidad es esencial, también el rendimiento y la confiabilidad.

• RUP ayuda a planificar, diseñar, implementar, ejecutar y evaluar pruebas que verifiquen estas cualidades.

• El aseguramiento de la calidad es parte del proceso de desarrollo y no la responsabilidad de un grupo independiente.

Page 15: 002 ISOO (Introduccion a RUP)

ISOOISOO

Control de Cambios

• Los cambios son inevitables, pero es necesario evaluar si éstos son necesarios y rastrear su impacto.

• RUP indica como controlar, rastrear y monitorear los cambios dentro del proceso iterativo de desarrollo.

Page 16: 002 ISOO (Introduccion a RUP)

ISOOISOO

Características del RUP

Conducido por casos de uso

Conducido por casos de uso

Centrado en la Arquitectura

Centrado en la Arquitectura

Iterativo e incrementalIterativo e

incremental

ConfigurableConfigurable

Page 17: 002 ISOO (Introduccion a RUP)

ISOOISOO

Conducido por casos de uso

Modela-miento del Negocio

Requeri-mientos

Análisis & Diseño

Implemen-tación Pruebas

BienBienMal

Flujo de Trabajo del Proceso

Modelos

Realizado por

Modelo de Casos de Uso del Negocio

Modelo de Objetos del

Negocio

Modelo de Casos de Uso

Automatizado por

Realizado por

Modelo de Diseño

Implementado por

Modelo de Implementación

Verificado por

Modelo de Pruebas

El proceso de desarrollo sigue un flujo:Los casos de uso son especificados,Los casos de uso son diseñados y

Por último los casos de uso sirven de fuente para desarrollar los casos de prueba.

Page 18: 002 ISOO (Introduccion a RUP)

ISOOISOO

Centrado en la Arquitectura

Integradores de Sistemas

Analistas/Diseñadores Programadores

Ingeniería de Sistemas

VISTA LOGICAEstructura

VISTA DE PROCESOPerformanceEscalabilidad

VISTA DE IMPLEMENTACIONAdministración de

Software

VISTA DE PUESTA EN MARCHA

Topología del sistemaEntrega

InstalaciónComunicación

Usuario Final

VISTA DE CASOS DE USOFuncionalidad

Page 19: 002 ISOO (Introduccion a RUP)

ISOOISOO

Relación entre los casos de uso y la arquitectura

Funcionalidad:Casos de uso

Forma: Arquitectura

Servidores de Base de Datos

Cliente A

Aplicación

Servicios

Kernel

Cliente B

Aplicación

Servicios

Cliente C

Navegador Web

Servidor de Objetos de Negocios

Objetos ORBKernel

Servidor Web

Objetos ORBKernel

HTML, CGI, Java

Page 20: 002 ISOO (Introduccion a RUP)

ISOOISOO

El Proceso Unificado es iterativo e incremental

Concepción Elaboración Construcción Transición Evolución

Escenario de Producción Manteni-miento

Escenario de Requerimientos, Análisis y Diseño

Visión, planesOtros documentos de administraciónProducto, manualesOtros documentos técnicos

Iteración Preliminar

Iteración #1

Iteración #2...

Iteración #n+1

Iteración #...

Iteración #m

Iteración #m+1

Iteración #m+2...

Pro

toti

po

C

on

ce

ptu

al

Pro

toti

po

de

la

A

rqu

ite

ctu

ra

Lín

ea

ba

se

de

la

Aq

uit

ec

tura

La

nza

mie

nto

1

La

nza

mie

nto

3

La

nza

mie

nto

2

En

tre

ga

ble

1

En

tre

ga

ble

2

Page 21: 002 ISOO (Introduccion a RUP)

ISOOISOO

Características de RUP

Page 22: 002 ISOO (Introduccion a RUP)

ISOOISOO

Ciclos y Fases

Page 23: 002 ISOO (Introduccion a RUP)

ISOOISOO

Ciclo de vida

Concepción EvoluciónTransiciónConstrucciónElaboración

Concepción EvoluciónTransiciónConstrucciónElaboración

El ciclo inicial de desarrollo

El siguiente ciclo de evolución

Generación 1

Generación 2

Page 24: 002 ISOO (Introduccion a RUP)

ISOOISOO

Ciclos y fases

• RUP divide el proceso de desarrollo en ciclos, teniendo un producto al final de cada ciclo.

• Cada ciclo se divide en cuatro Fases:– Inicio– Elaboración– Construcción– Transición

• Cada fase concluye con un hito bien definido donde deben tomarse ciertas decisiones.

Page 25: 002 ISOO (Introduccion a RUP)

ISOOISOO

Fases e Iteraciones

Una fase es el intervalo de tiempo entre dos hitos importantes del proceso.

Una iteración es una sucesión de actividades con un plan establecido y criterio de evaluación, mientras se va produciendo las versiones del sistema.

ArchIteration

... Dev Iteration

Dev Iteration

... TransIteration

...

Release Release Release Release Release Release Release Release

PrelimIteration

...

Inception Elaboration Construction TransitionElaboration Construction Transition

Page 26: 002 ISOO (Introduccion a RUP)

ISOOISOO

1. Fase de Inicio

• Se establece la oportunidad y alcance el proyecto.

• Se identifican todas las entidades externas con las que se trata (actores) y se define la interacción a un alto nivel de abstracción:– Identificar todos los casos de uso– Describir algunos en detalle

• La oportunidad del negocio incluye:– Criterios de éxito.– Identificación de riesgos.– Estimación de recursos necesarios.– Plan de las fases incluyendo hitos.

Page 27: 002 ISOO (Introduccion a RUP)

ISOOISOO

• Un documento de visión general:– Requerimientos

generales del proyecto– Características

principales– Restricciones

• Modelo inicial de casos de uso (10% a 20 % listos).

• Glosario.

• Caso de negocio:– Contexto– Criterios de éxito– Pronóstico financiero

• Identificación inicial de riesgos.

• Plan de proyecto.• Uno o más prototipos.

Productos:

1. Fase de Inicio

Page 28: 002 ISOO (Introduccion a RUP)

ISOOISOO

Inicio Elaboración Construcción Transición

Objetivos del Ciclo de Vida

• Las partes interesadas deben acordar el alcance y la estimación de tiempo y costo.

• Comprensión de los requerimientos plasmados en casos de uso.

Hito:

1. Fase de Inicio

Page 29: 002 ISOO (Introduccion a RUP)

ISOOISOO

2. Fase de Elaboración

• Objetivos:– Analizar el dominio del problema– Establecer una arquitectura base sólida– Desarrollar un plan de proyecto– Eliminar los elementos de mayor riesgo para el desarrollo

exitoso del proyecto

• Visión de “una milla de amplitud y una pulgada de profundidad” porque las decisiones de arquitectura requieren una visión global del sistema.

Page 30: 002 ISOO (Introduccion a RUP)

ISOOISOO

• Es la parte más crítica del proceso:– Al final toda la ingeniería

“dura” está hecha

– Se puede decidir si vale la pena seguir adelante

• A partir de aquí la arquitectura, los requerimientos y los planes de desarrollo son estables.

• Ya hay menos riesgos y se puede planificar el resto del proyecto con menor incertidumbre.

• Se construye una arquitectura ejecutable que contemple:– Los casos de uso críticos

– Los riesgos identificados

Productos:

2. Fase de Elaboración

Page 31: 002 ISOO (Introduccion a RUP)

ISOOISOO

• Modelo de casos de uso (80% completo) con descripciones detalladas.

• Otros requerimientos no funcio-nales o no asociados a casos de uso.

• Descripción de la Arquitectura del Software.

• Un prototipo ejecutable de la arquitectura.

• Lista revisada de riesgos y del caso de negocio.

• Plan de desarrollo para el resto del proyecto.

• Un manual de usuario preliminar.

Productos:

2. Fase de Elaboración

Page 32: 002 ISOO (Introduccion a RUP)

ISOOISOO

• Condiciones de éxito de la elaboración:– ¿Es estable la visión del producto?– ¿Es estable la arquitectura?– ¿Las pruebas de ejecución demuestran que los riesgos han

sido abordados y resueltos?– ¿Es el plan del proyecto algo realista?– ¿Están de acuerdo con el plan todas las personas

involucradas?

Concepción Elaboración Construcción Transición

Arquitectura de Ciclo de Vida

Hito:

2. Fase de Elaboración

Page 33: 002 ISOO (Introduccion a RUP)

ISOOISOO

3. Fase de Construcción

• En esta fase todas las componentes restantes se desarrollan e incorporan al producto.

• Todo es probado en profundidad.

• El énfasis está en la producción eficiente y no ya en la creación intelectual.

• Puede hacerse construcción en paralelo, pero esto exige una planificación detallada y una arquitectura muy estable.

Page 34: 002 ISOO (Introduccion a RUP)

ISOOISOO

• El producto de software integrado y corriendo en la plataforma adecuada.

• Manuales de usuario.

• Una descripción del “release” actual.

Productos:

3. Fase de Construcción

Page 35: 002 ISOO (Introduccion a RUP)

ISOOISOO

• Se obtiene un producto Beta que debe decidirse si puede ponerse en ejecución sin mayores riesgos.

• Condiciones de éxito:– ¿El producto está maduro y estable para instalarlo

en el ambiente del cliente?– ¿Están los interesados listos para recibirlo?

Concepción Elaboración Construcción Transición

CapacidadOperacional

Hito:

3. Fase de Construcción

Page 36: 002 ISOO (Introduccion a RUP)

ISOOISOO

4. Fase de Transición

• El objetivo es traspasar el software desarrollado a la comunidad de usuarios.

• Una vez instalado surgirán nuevos elementos que implicarán nuevos desarrollos (ciclos).

• Incluye:– Pruebas Beta para validar el producto con las

expectativas del cliente– Ejecución paralela con sistemas antiguos– Conversión de datos– Entrenamiento de usuarios– Distribuir el producto

Page 37: 002 ISOO (Introduccion a RUP)

ISOOISOO

• Obtener autosuficiencia de parte de los usuarios.• Concordancia en los logros del producto de parte de

las personas involucradas.• Lograr el consenso cuanto antes para liberar el

producto al mercado.

Concepción Elaboración Construcción Transición

Producto

Objetivos:

4. Fase de Transición

Page 38: 002 ISOO (Introduccion a RUP)

ISOOISOO

Definiciones

Page 39: 002 ISOO (Introduccion a RUP)

ISOOISOO

Trabajador

• Un trabajador define el comportamiento y las responsabilidades de un individuo.

• Es como un “sombrero” que la persona usa durante el proyecto:– Una persona puede tener varios sombreros– Es el rol que desempeña en un momento dado

• Responsabilidades:– Hacer una serie de actividades– Ser el responsable de una serie de artefactos

Page 40: 002 ISOO (Introduccion a RUP)

ISOOISOO

Actividades

• Una actividad es una unidad de trabajo que se asigna a un trabajador. Ej.:

– Crear o modificar un artefacto

• Una actividad lleva entre un par de horas y un par de días, involucra un solo trabajador y un número pequeño de artefactos.

• Las actividades se consideran en la planificación y evaluación del progreso del proyecto.

• Ejemplos:

– Planificar una iteración - Administrador de proyecto

– Encontrar actores y casos de uso - Analista

– Revisar el diseño - Revisor de diseño

– Ejecutar pruebas de performance - Ing. de pruebas de performance

Page 41: 002 ISOO (Introduccion a RUP)

ISOOISOO

Asignación de actividades

Recurso Trabajador Actividad

Pablo Diseñador Diseño de Objetos

María Autor de Casos de Uso Detallar un Caso de Uso

José Diseñador de Casos de Uso Diseñar un Caso de Uso

Silvia Revisor de Diseño Revisar el Diseño

Eduardo Arquitecto Análisis de Arquitectura Diseño de Arquitectura

Page 42: 002 ISOO (Introduccion a RUP)

ISOOISOO

Artefacto

• Elementos de información producidos, modificados o usados por el proceso.

• Son los productos tangibles del proyecto.

• Son usados por los trabajadores para realizar nuevas actividades y son el resultado de esas actividades.

• Ejemplos:– Un modelo, como el

modelo de casos de uso o el modelo de diseño.

– Un elemento del modelo, como una clase o un caso de uso.

– Un documento tal como el Caso del Negocio o la Arquitectura del Software.

– Código fuente.

– Código ejecutable.

Page 43: 002 ISOO (Introduccion a RUP)

ISOOISOO

Flujos de Trabajo

• Una lista de actividades, trabajadores y artefactos constituye un proceso.

• Un flujo de trabajo es una secuencia de actividades que produce un resultado valioso.

• No siempre es posible representar flujos de trabajo.

Análisis deArquitectura

Diseño deArquitectura

DescribirConcurrencia

DescribirDistribución

Análisis deCasos de Uso

Diseño deCasos de Uso

Análisis deObjetos Diseño de

Objetos

Revisar elAnálisis

Revisar elDiseño

Revisar laArquitecturaRevisor de

Diseño

Diseñador

Diseñador deCasos de Uso

Arquitecto