metodo rup

Upload: carlos-ibarra

Post on 11-Jul-2015

304 views

Category:

Documents


0 download

TRANSCRIPT

Descripcin del Proceso Unificado

Descripcin del Proceso Unificado

1

Flujos Fundamentales:DiseoEl objetivo final de este flujo de trabajo es producir un Modelo Lgico del sistema a implementar: los requisitos no funcionales, restricciones impuestas por el lenguaje de programacin a usar, el sistema operativo donde se va a ejecutar, el tipo de interfaz, etc. punto de partida para implementacin capturando requisitos de las clases de anlisis. Ser capaz de visualizar y razonar acerca del diseo usando una notacin comn.

-

Flujos Fundamentales:DiseoModelo de Anlisis Es un modelo conceptual y genrico, es una abstraccin del sistema. Es menos formal. Es un bosquejo del diseo del sistema. Puede no mantenerse durante todo el ciclo de vida del software. Define una estructura para modelar el sistema. Modelo de Diseo Es un modelo fsico y concreto, es un plano de la implementacin. Es ms formal. Es una realizacin del diseo del sistema. Debe ser mantenido durante todo el ciclo de vida del software. Da forma al sistema.

2

Flujos Fundamentales:Diseo

Artefactos:Clase de Diseo: Son abstracciones de clases directamente utilizables en la implementacin . El lenguaje utilizado para especificar las clases es el mismo que el lenguaje de programacin. (UML) Visibilidad de atributos y operaciones de la clase. Las clases se mapean directamente en el lenguaje de programacin Las relaciones entre clases tienen un significado directo en el lenguaje de programacin. Por ejemplo, la generalizacin se implementa como un mecanismo de Herencia. Los mtodos de una clase de diseo son los mtodos de una clase implementada. Las clases que provean interfaces pueden implementarse directamente en algunos lenguajes de programacin. Por ejemplo, una clase de diseo en Java puede implementar una interfaz. Una clase de diseo puede ser activa, en el sentido de que los objetos instanciados pueden mantener su propio hilo de ejecucin (thread) concurrentemente con otros objetos.Nombre Clase Atributos Operaciones

Flujos Fundamentales:Diseo

Artefactos:1. Realizacin de Casos de Uso-Diseo: describe cmo un caso de uso se llevaa cabo en trminos de clases de diseo y sus objetos. Hay una correspondencia directa entre la Realizacin de un Caso de Uso de Diseo y la Realizacin de un Caso de Uso de Anlisis. A. Diagrama de Clases: que contiene las clases que participan en el caso de uso, aunque algunas de ellas puedan participar en varios. B. Diagrama de Secuencia: que muestra una secuencia detallada de interaccin entre los objetos de diseo. En algunos casos es posible incluir Subsistemas dentro de los diagramas. Los diagramas de secuencia visualizan el intercambio de mensajes entre objetos. C. Descripcin del Flujo de Eventos de Diseo: descripcin textual que explica y completa a los diagramas de colaboracin

3

Flujos Fundamentales:Diseo

Artefactos:2. Modelo de Diseo: conjunto formado por las Clases de Diseo y la Realizacin de los Casos de Uso. 3. Modelo de Despliegue: que describe la distribucin fsica del sistema en trminos de cmo las funcionalidades se distribuyen entre los nodos de computacin sobre los que se va a instalar el sistema. A. Cada nodo representa un recurso de computacin. B. Los nodos tiene relaciones entre ellos que representan los medios de comunicacin que hay entre ellos como una Intranet o Internet. C. La funcionalidad de un nodo viene representada por los componentes que se ejecutan en l. D. El modelo de despliegue representa un mapeo claro entre la arquitectura software y la hardware. Modelo Fsico = Modelo de Diseo + Modelo de Despliegue

Flujos Fundamentales:Diseo

Actividades:1. Disear la Arquitectura (identificar nodos y configuraciones, clases relevantes) 2. Disear Casos de Uso (identificar clases de diseo, interacciones entre objetos) 3. Disear Clases de Diseo (identificar operaciones, atributos, relaciones)

4

Flujos Fundamentales:Diseo: 1) Disear la Arquitectura (identificar nodos y configuraciones, clases relevantes) Modelo de Despliegue. Todos los actores del caso de uso interactuarn con el sistema en el mismo sitio fsico? Qu requerimientos de computacin necesito en cada nodo? Qu tipo de conexiones o red existe entre los nodos? Qu protocolos manejan? Cules son sus caractersticas? Tengo requisitos del tipo Copias Redundantes para caso de fallos? Copia de seguridad de BBDD?

Banco

* Internet *Sistema Local

*

1Sistema CentralSistema Contable

Usuario

Internet

Dispensador

Modelo Despliegue Videoclub

Flujos Fundamentales:Diseo: 1) Disear la Arquitectura (identificar nodos y configuraciones, clases relevantes) Clases Activas, que necesiten estar ejecutndose concurrentemente. Estas clases pueden derivarse directamente de las Clases de Anlisis, aunque se suelen identificar observando la distribucin del sistema en nodos. Debe existir al menos un objeto activo por cada nodo. Clases relacionadas con las comunicaciones ente nodosClases de Anlisis Clases Activas de Diseo

Sistema Local I. Sistema Contable I. SC. Local

*

1

Sistema Central I. SC. Central

Internet

Clases Relevantes Videoclub

5

Flujos Fundamentales:Diseo: 2) Disear Casos de Uso (identificar clases de diseo, interacciones entre objetos)

Objetivos: para cada Caso de Uso: Identificar clases de diseo cuyas instancias se necesiten para realizar el flujo de eventos del caso de uso. Distribuir el comportamiento del caso de uso entre los objetos de diseo que interactan entre ellos. Definir los requisitos sobre las operaciones de diseo. Capturar requisitos de implementacin para el caso de uso

Flujos Fundamentales:Diseo: 2) Disear Casos de Uso (identificar clases de diseo, interacciones entre objetos) Objetivos: para cada Caso de Uso: Identificar clases de diseo cuyas instancias se necesiten para realizar el flujo de eventos del caso de uso. Distribuir el comportamiento del caso de uso entre los objetos de diseo que interactan entre ellos. Definir los requisitos sobre las operaciones de diseo. Capturar requisitos de implementacin para el caso de uso Identificar Clases de Diseo como sigue: Identificar clases de diseo que permitan implementar las clases de anlisis (utilizar clases de diseo del modelo de despliegue). Estudiar los requisitos especiales (de rendimiento, de memoria, de diseo) de las clases de anlisis, e identificar clases de diseo necesarias. Crear Tabla de Correspondencias

6

Flujos Fundamentales:Diseo: 2) Disear Casos de Uso (identificar clases de diseo, interacciones entre objetos)Requisito especial sobre las Clases de Anlisis Ficha de Pelcula y Ficha de Cliente del caso de uso Coger Pelcula. Las clases de anlisis Ficha de pelcula y Ficha de Cliente que se generalizaron en el Anlisis a la clase Ficha deben poder manejarse de una manera organizada y eficiente, por lo que es necesario crear Clases de Diseos que manejen Listas de cada tipo de Ficha. Requisito especial sobre la Clase de Anlisis I. Usuario La clase de anlisis I. Usuario debe ser una clase activa ya que debe estar lista para responder a cualquier peticin del usuario en cualquier momento (como cancelar un alquilar mientras se procesa o salir del sistema mientras ste busca la informacin de una pelcula). Unificacin de las Clases de Anlisis I. Usuario e I. Pelculas La clase de anlisis I. Pelculas se absorbe en la clase de diseo I. Usuario con objeto de reunir en una sola clase todas las interfaces grficas.

Flujos Fundamentales:Diseo: 2) Disear Casos de Uso (identificar clases de diseo, interacciones entreobjetos)Clase de Anlisis I. Usuario Gestor I. Pelculas Lista Fichas Clientes Lista Fichas Pelculas Ficha Pelcula Ficha Cliente I. Dispensador I. Sistema Contable (1) I. Sistema Contable (2) I. Banco Ficha Pelcula Ficha Cliente I. Dispensador I. SC. Local I. SC. Central I. Banco Del Modelo de Despliegue Del Modelo de Despliegue. Activa Clase de Diseo I. Usuario Gestor Absorbida en I. Usuario Incluida para manejar Clientes Incluida para manejar Pelculas Requisito de Diseo Activa

7

Flujos Fundamentales:Diseo: 2) Disear Casos de Uso (identificar clases de diseo, interacciones entreobjetos)I. BancoBanco

* 1I. UsuarioUsuario

Gestor

I. SC. Local

I. SC. CentralSistema Contable

Lista Fichas Pelicul

Lista de Fichas Client

1 *Ficha pelculas

1I. Dispensador

*Ficha ClienteDispensador

Flujos Fundamentales:Diseo: 2) Disear Casos de Uso (identificar clases de diseo, interacciones entre objetos) Diagramas de Secuencia: instancias de los actores participantes, los objetos de diseo y las transmisiones de mensajes entre ellos. Si los casos de uso tienen distintos caminos, es preferible crear un diagrama para cada uno de ellos. Primer boceto del diagrama de secuencia del diseo: Diagrama de Colaboracin de anlisis El caso de uso es invocado, iniciado, por un mensaje que va desde una instancia de actor a un objeto de diseo. Cada clase de diseo de un caso de uso debe tener al menos un objeto de diseo que participe en la secuencia. Los mensajes se envan entre Lneas de Vida de los objetos. Se pueden usar etiquetas y descripciones textuales tipo Flujo de Eventos para enriquecer el diagrama.

8

Flujos Fundamentales:Diseo: 2) Disear Casos de Uso (identificar clases de diseo, interacciones entreobjetos) Diagrama de Secuencia para la primera parte de la realizacin del Caso de Uso Coger Pelcula

:U s u a r io B usca r

: I. U s u a r io

:L is ta d e F ic h a s

:F ic h a P e lc u la

:G e s to r

: I. B a n c o

:B a n c o

B u s c a r() O b t e n e r In f o ( ) S e le c c io n a r

O r d e n a r P e li( )

O rd e na r P a g o () O rd e n a rP a g o ()

Flujos Fundamentales:Diseo: 3) Disear Clases de Diseo (identificar operaciones, atributos, relaciones)Identificar: 1. Sus operaciones 2. Sus atributos 3. Sus relaciones como asociaciones, agregaciones y generalizaciones. 4. Sus mtodos 5. Sus estados A. Clases Interfaz: su diseo depende mucho de la tecnologa que se vaya a emplear. Por ejemplo se pueden utilizar controles Active X de Visual Basic, Clases de Swing en Java, etc. Clases Entidad: a menudo su diseo depende de si es necesario emplear tecnologa para gestionar una base de datos. Por ejemplo, se puede incluir la creacin de clases de diseo para hacer la correspondencia con tablas en el modelo de datos relacional. Clases Control: son las ms delicadas. Su diseo depende de aspectos tales como que si los objetos estn distribuidos en diferentes nodos, o si es posible mezclar sus funcionalidades con otras clases Interfaz o de Entidad. El diseador deber elegir la opcin ms fcil de implementar teniendo en cuenta los requisitos de implementacin.

B.

C.

9

Flujos Fundamentales:Diseo: 3) Disear Clases de Diseo (identificar operaciones, atributos, relaciones)Identificar las Operaciones Identificando las responsabilidades de la clase de anlisis de la que deriva. Una responsabilidad a menudo implica una o varias operaciones. Identificando los mensajes a los que debe responder en el diagrama de secuencia. Contemplando los requisitos especiales de la clase de anlisis de la que deriva, por ejemplo el acceso a un gestor de BBDD. Inspeccionando las realizaciones de casos de uso de diseo en que participa. Aadiendo la visibilidad de cada operacin. Usando la sintaxis del lenguaje de implementacin a utilizar. Las operaciones de la clase de diseo necesitan soportar todos los roles que la clase desempea en las diferentes realizaciones de casos de uso .

G e sto r

I. B a nco

+s olic itarD atosP ag o(): D atos TC + ord en arP eli(): R etorn oO p er aci n + entreg arP elculaR ecib o() + ac tualizarB alanc e() + ac tualizarC liente() + ac tualizarP elc ulas () +rec ord atorios () +d evolv er P elcula(): R etorn oO p er ac ion +c arg arP elc ula() +d esc arg arP elcula

+ ord en ar P ag o(): R etorn oP ag o

Flujos Fundamentales:Diseo: 3) Disear Clases de Diseo (identificar operaciones, atributos, relaciones)Identificar Atributos Los atributos deben ser los requeridos para realizar sus operaciones. Hay que tener en cuenta los atributos obtenidos en la fase de Anlisis. Los tipos de atributos se restringen a los tipos disponibles en el lenguaje de programacin a usar. Hay que reutilizar tipos de atributos. Si una clase de diseo resulta compleja por culpa de sus atributos, se pueden agrupar atributos en clases independientes .

FichaCliente-DatosTarjetaCredito: TarjetaCredito -NombreApellidos: String -NumeroAlquiladas: int

TarjetaCredito-NombreApellidos: String -NumeroTarjeta: int[10] -FechaCaducidad: Date

10

Flujos Fundamentales:Diseo: 3) Disear Clases de Diseo (identificar operaciones, atributos, relaciones)Identificar Asociaciones, Agregaciones y Generalizaciones. Estudiar el diagrama de secuencias y ver qu asociaciones o agregaciones son necesarias. Instancias de asociaciones para mantener referencias a otros objetos. Agrupar objetos en agregaciones para mandarles mensajes a todos ellos. Asociaciones creadas en la fase de anlisis por si hiciera falta crear una instancia de asociacin que ayudara a resolverla Estudiar el diagrama de secuencias para mejorar la navegabilidad entre las asociaciones entre clases. Si el lenguaje de programacin no soporta el mecanismo de generalizacin o herencia se deben emplear los mecanismos de asociacin y agregacin.Ficha Pelculas0 .. M 0 .. N

Gestor

+solicitarDatosPago(): DatosTC +ordenarPeli(): RetornoOperacin +entregarPelculaRecibo() +actualizarBalance() +actualizarCliente() +actualizarPelculas() +recordatorios() +devolverPelcula(): RetornoOperacion +cargarPelcula() +descargarPelcula

1

Lista Ficha Peliculas1

* *

Lista Ficha Clientes

Ficha Clientes

En la operacin devolverPelicula() se ha estimado que es mejor que exista esta agregacin entre las clases Ficha Pelcula y Ficha Cliente, para evitar el tener que recorrer las dos listas buscando primero la pelcula y despus al cliente.

Flujos Fundamentales:Diseo: 3) Disear Clases de Diseo (identificar operaciones, atributos, relaciones)Describir los Mtodos Descripcin del Mtodo ActualizarPelcula de la clase Gestor /* En el diagrama de colaboraciones del caso de uso Coger Pelcula, se observa que la operacin Actualizar F. Pelculas se realiza despus de Acualizar F. Cliente, por lo que se puede pasar al mtodo toda la informacin respecto del cliente que la ha alquilado */ void ActualizarPelicula(Cliente, codigoPeli){ Pelcula = BuscaPelicula en listaFichaPelculas (codigoPeli); Pelcula