Apéndice B Diagramas UML - Universidad de las Américas ...

26
Apéndice B Diagramas UML UML (Unified Modeling Lenguage) es un lenguaje de modelado visual que se usa para especificar, visualizar, construir y documentar componentes de un sistema de software. UML ofrece una notación estándar y semánticas esenciales para el modelado de un sistema orientado a objetos. Este apéndice presenta los diagramas UML de los sistemas implementados. B.1 Casos de uso Los casos de uso modelan el sistema desde el punto de vista del usuario. Se basan en los requerimientos del sistema mostrando las distintas operaciones que se esperan de una aplicación o sistema y cómo se relaciona con su entorno (usuario u otras aplicaciones). El caso de uso es un documento narrativo que describe la secuencia de eventos de un actor que utiliza un sistema para completar un proceso. Los casos de uso son historias o casos de utilización de un sistema; no son exactamente los requerimientos ni las especificaciones funcionales, sino que ejemplifican e incluyen tácticamente los requerimientos en las historias que narran. La figura B.1 presenta los casos de uso que modelan el sistema activo de tolerancia a fallas basados en los requerimientos del sistema. Caso de uso: Inicio del sistema activo de tolerancia a fallas. Actor: Usuario. Propósito: Iniciar el sistema activo de tolerancia a fallas. Resumen: Inicia el servidor del sistema activo de tolerancia a fallas e inicia el J2EE a través de la GUI que el administrador del sistema de tolerancia a fallas proporciona. Curso normal de los eventos Actor Sistema Paso Acción Paso Acción 1. Ejecuta administrador del sistema. 2. Presenta GUI. 3. Presiona el botón de iniciar RMI Registry.

Transcript of Apéndice B Diagramas UML - Universidad de las Américas ...

Page 1: Apéndice B Diagramas UML - Universidad de las Américas ...

Apéndice B Diagramas UML UML (Unified Modeling Lenguage) es un lenguaje de modelado visual que se usa para especificar, visualizar, construir y documentar componentes de un sistema de software. UML ofrece una notación estándar y semánticas esenciales para el modelado de un sistema orientado a objetos. Este apéndice presenta los diagramas UML de los sistemas implementados. B.1 Casos de uso Los casos de uso modelan el sistema desde el punto de vista del usuario. Se basan en los requerimientos del sistema mostrando las distintas operaciones que se esperan de una aplicación o sistema y cómo se relaciona con su entorno (usuario u otras aplicaciones). El caso de uso es un documento narrativo que describe la secuencia de eventos de un actor que utiliza un sistema para completar un proceso. Los casos de uso son historias o casos de utilización de un sistema; no son exactamente los requerimientos ni las especificaciones funcionales, sino que ejemplifican e incluyen tácticamente los requerimientos en las historias que narran. La figura B.1 presenta los casos de uso que modelan el sistema activo de tolerancia a fallas basados en los requerimientos del sistema.

Caso de uso: Inicio del sistema activo de tolerancia a fallas.

Actor: Usuario.

Propósito: Iniciar el sistema activo de tolerancia a fallas.

Resumen: Inicia el servidor del sistema activo de tolerancia a fallas e inicia el J2EE a través de la GUI que el administrador del sistema de tolerancia a fallas proporciona.

Curso normal de los eventos

Actor Sistema

Paso Acción Paso Acción

1. Ejecuta administrador del sistema.

2. Presenta GUI.

3. Presiona el botón de iniciar RMI Registry.

Page 2: Apéndice B Diagramas UML - Universidad de las Américas ...

124 Diagramas UML

4. Presenta dialogo de obtención de

puerto. 5. Proporciona el número de puerto.

6. Verificación de puerto disponible.

7. Presiona el botón de iniciar sistema

8. Inicia el servidor del sistema y el J2EE.

Cursos alternos

Paso 4: El número de puerto está ocupado. Se notifica al usuario para que proporcione otro número de puerto.

Notas

Paso 2: La GUI que el administrador del sistema proporciona, presenta cuatro botones de activación secuencial para el inicio del sistema.

Caso de uso: Configuración del sistema activo de tolerancia a fallas.

Actor: Aplicación distribuida.

Propósito: Permitir que una aplicación distribuida configure el sistema activo de tolerancia a fallas.

Resumen: Una aplicación distribuida configura el sistema activo de tolerancia a fallas a través de la proporción de un archivo XML de definición de comunicación entre los servidores (entidades) que la conforman y el nivel de tolerancia requerido.

Curso normal de los eventos

Actor Sistema

Paso Acción Paso Acción

1. Creación del archivo XML de configuración que define el nivel de tolerancia requerido y la comunicación entre entidades de la aplicación.

2. Invoca de manera remota el método de configuración del sistema enviando el archivo XML de configuración.

3. Parsea el archivo XML de configuración.

4. Envía el nivel de tolerancia a fallas y la comunicación entre entidades al monitor.

Notas

Paso 1: La creación del archivo XML se realiza en base a la estructura definida por el sistema activo de tolerancia a fallas en el capítulo 5.

Paso 2: El archivo XML es empaquetado y enviado en bytes al sistema activo de tolerancia a fallas.

Caso de uso: Suscripción al sistema activo de tolerancia a fallas.

Page 3: Apéndice B Diagramas UML - Universidad de las Américas ...

Diagramas UML 125

Actor: Módulo de la aplicación distribuida.

Propósito: Permitir que los módulos de la aplicación distribuida se suscriban al sistema activo de tolerancia a fallas.

Resumen: Los módulos de la aplicación distribuida se suscriben al sistema activo de tolerancia a fallas a través de la proporción de un archivo XML de definición de eventos a ser monitoreados y los parámetros que definen sus condiciones.

Curso normal de los eventos

Actor Sistema

Paso Acción Paso Acción

1. Creación del archivo XML de suscripción que define los eventos y los parámetros de la condición de las reglas.

2. Invoca de manera remota el método de suscripción del sistema enviando el archivo XML de suscripción.

3. Parsea el archivo XML de suscripción.

4. Envía la definición de tipos de evento y los parámetros al servidor de eventos.

5. El servidor de eventos crea el objeto escucha correspondiente al módulo de la aplicación suscrito y la cola de mensajes en el JMS.

Notas

Paso 1: La creación del archivo XML se realiza en base a la estructura definida por el sistema activo de tolerancia a fallas en el capítulo 5.

Paso 2: El archivo XML es empaquetado y enviado en bytes al sistema activo de tolerancia a fallas. El proceso de suscripción se realiza para la definición/actualización de los tipos de eventos de un módulo. Si el módulo ya está suscrito al sistema activo de tolerancia y desea conservar sus tipos de eventos, el proceso de suscripción no es necesario.

Caso de uso: Notificación de inicio al sistema activo de tolerancia a fallas.

Actor: Módulo de la aplicación distribuida.

Propósito: Permitir a los módulos de la aplicación distribuida notificar su inicio al sistema activo de tolerancia a fallas.

Resumen: Los módulos de la aplicación distribuida notifican su inicio al sistema activo de tolerancia para iniciar el monitoreo de sus eventos.

Curso normal de los eventos

Actor Sistema

Paso Acción Paso Acción

1. Notificación de inicio.

2. Informa del módulo iniciado al servidor de eventos. El servidor de

Page 4: Apéndice B Diagramas UML - Universidad de las Américas ...

126 Diagramas UML

eventos activa el objeto escucha correspondiente al módulo para la recepción de sus mensajes.

3. Regresa la referencia del objeto escucha del módulo.

4. Obtiene la referencia de su objeto escucha.

Notas

Paso 1: El módulo de la aplicación no está suscrito al sistema activo de tolerancia a fallas. La suscripción del módulo al sistema es necesaria.

Caso de uso: Monitoreo de los eventos

Actor: Módulo de la aplicación

Propósito: Proporcionar el monitoreo de los eventos producidos por los módulos de la aplicación.

Resumen: Los módulos de la aplicación distribuida envían sus mensajes de acción de comunicación con otros módulos al JMS. El sistema activo de tolerancia a fallas consume los mensajes y monitorea los eventos producidos por el módulo.

Curso normal de los eventos

Actor Sistema

Paso Acción Paso Acción

1. Envía mensaje de ejecución de acción de comunicación al JMS.

2. El objeto escucha correspondiente al módulo de la aplicación consume el mensaje y lo verifica con respecto a los tipos de eventos definidos, creando un objeto Evento

3. El objeto evento es enviado al servidor de eventos. El servidor de eventos mantiene en un stack los eventos recibidos para enviarlos al monitor. Si el monitor está disponible, el servidor de eventos envía el evento correspondiente.

Notas

Paso 1: El mensaje enviado del módulo de la aplicación al JMS es un mensaje de tipo Metodo que incluye los objetos Parametro que conforman la acción de comunicación.

Paso 2: Si un mensaje recibido no verifica con respecto a los tipos de eventos definidos para el módulo, no es considerado como un evento.

Caso de uso: Diagnóstico de fallas

Actor:

Propósito: Diagnosticar las fallas ocurridas en un módulo de la aplicación.

Resumen: El monitor del sistema activo de tolerancia a fallas evalúa un evento

Page 5: Apéndice B Diagramas UML - Universidad de las Américas ...

Diagramas UML 127

recibido en base a los eventos recibidos anteriormente, verificando que los eventos que conforman una petición hayan sido recibidos. La falta de uno de los eventos indica una falla en la aplicación.

Curso normal de los eventos

Actor Sistema

Paso Acción Paso Acción

1. El monitor evalúa el evento recibido en base a los eventos recibidos anteriormente: verifica que el ciclo de una petición esté completo en un tiempo establecido. La falta de uno de los eventos diagnostica una falla en el sistema aplicativo.

2. Detecta el tipo de falla ocurrido a través de las condiciones de verificación de tipos de falla.

3. Envía la falla al ejecutor de reacciones.

Notas

Paso 1: La verificación de los eventos se realiza en procesos que se ejecutan de manera simultánea.

Caso de uso: Corrección de fallas

Actor:

Propósito: Corrección de las fallas ocurridas en la aplicación para que ésta cumpla con la especificación de su servicio.

Resumen: Dependiendo del nivel de tolerancia con que la aplicación configura el sistema, el sistema activo de tolerancia a fallas, a través del ejecutor de reacciones, lleva a cabo la acción correspondiente para la falla detectada.

Curso normal de los eventos

Actor Sistema

Paso Acción Paso Acción

1. Invoca de manera remota los métodos de los módulos de la aplicación, necesarios para la corrección de fallas (rehacer petición).

Notas

Paso 1: La acción de corrección es realizada dependiendo del nivel de tolerancia a fallas definido para la aplicación distribuida.

Figura B.1 Casos de uso

del sistema activo de tolerancia a fallas B.2 Diagramas de casos de uso

Page 6: Apéndice B Diagramas UML - Universidad de las Américas ...

128 Diagramas UML

El UML incluye formalmente el concepto de casos de uso y sus diagramas. Un diagrama de casos de uso explica gráficamente un caso de uso de un sistema, los actores y la relación entre éstos y el caso de uso. La figura B.2 presenta los diagramas de casos de usos del sistema activo de tolerancia a fallas.

INICIA SISTEMA ACTIVO DE TOLERANCIA A FALLAS

USUARIO

SISTEMA ACTIVO DE TOLERANCIA A FALLAS

CONFIGURACIÓN

APLICACIÓN

SISTEMA ACTIVO DE TOLERANCIA A FALLAS

SUSCRIPCIÓN

MÓDULO PLICACIÓNA

JAVA MESSAGE SERVICE (JMS)

ENVÍO DE ACCIONES

MÓDULO APLICACIÓN

NOTIFICACIÓN DE INICIO

Page 7: Apéndice B Diagramas UML - Universidad de las Américas ...

Diagramas UML 129

SISTEMA ACTIVO DE TOLERANCIA A FALLAS

CONSUMO DE MENSAJES

JMS

SISTEMA ACTIVO DE TOLERANCIA A FALLAS

MONITOREO EVENTOS

Figura B.2 Diagramas de casos de uso

del sistema activo de tolerancia a fallas (continuación) B.3 Diagramas de paquetes Cualquier sistema grande se debe dividir en unidades más pequeñas, de modo que las personas puedan trabajar con una cantidad de información limitada, a la vez y de modo que los equipos de trabajo no interfieran con el trabajo de los otros. Un paquete es una parte de un modelo. Cada parte del modelo debe pertenecer a un paquete. Pero para ser funcional, la asignación debe seguir un cierto principio racional, tal como funcionalidad común, implementación relacionada y punto de vista común. UML no impone una regla para componer los paquetes. Los paquetes ofrecen un mecanismo general para la organización de los modelos/subsistemas agrupando elementos de modelado. Cada paquete corresponde a un submodelo (subsistema) del modelo (sistema). Los paquetes son unidades de organización jerárquica de uso general de los modelos de UML. Un paquete puede contener otros paquetes, sin límite de anidamiento pero cada elemento pertenece a (está definido en) sólo un paquete.

APLICACIÓN DIAGNÓSTICO DE FALLAS

<< include >>

<< include >>

CORRECCIÓN DE FALLAS

Page 8: Apéndice B Diagramas UML - Universidad de las Américas ...

130 Diagramas UML

Los paquetes contienen elementos del modelo al más alto nivel, tales como clases y sus relaciones, máquinas de estado, diagramas de casos de uso, interacciones y colaboraciones; atributos, operaciones, estados, líneas de vida y mensajes están contenidos en otros elementos y no aparecen como contenido directo de los paquetes. La figura B.3 presenta el diagrama de paquete STF del sistema activo de tolerancia a fallas.

STF

Figura B.3 Diagrama del paquete STF

La figura B.4 presenta el diagrama de paquete Transporte del sistema distribuido de transporte junto con los paquetes que incluye.

<< interface >> SistemaTFInterfaz

AdministradorSTF Dialogo NamingSevice

ParserXML

FileUnpacket

Monitor

Evaluador

Ejecutor Reacciones

Parametros

Metodo

Evento

ObjetoEscucha

ServidorEventos

SistemaTFImpl Terminal

Impresion

Comunicacion

Entidad

Condicion

Escritura

<< interface >> NamingService

MBean

LecturaSTF

Procesador

RMIRegistry

Page 9: Apéndice B Diagramas UML - Universidad de las Américas ...

Diagramas UML 131

Transporte

Figura B.4 Diagrama del paquete Transporte

B.4 Diagramas de clases El diagrama de clases es el diagrama principal para el análisis y diseño. Describe gráficamente las especificaciones de las clases de software y de las interfaces en una aplicación. Un diagrama de clases presenta las clases del sistema con sus relaciones estructurales y de herencia. La definición de clase incluye definiciones para atributos y operaciones. La figura B.5 presenta los diagramas de clases implementadas del sistema activo de tolerancia a fallas.

Figura B.5 Diagramas de clases del sistema activo de tolerancia a fallas

Administrador

SDT

Mapa

Accesorios

Chasis

Metal

Motor

Ruta Llantas

<< interface >> SistemaTFImpl SistemaTFInterfaz

+ configuracion(data : byte[]) + suscripción(idServidor : String, nombreArchivo : String, data : byte[]) + notificacionInicio(idServidor : String, referencia : String) : String

servidorEventos : ServidorEventos monitor : Monitor referenciasEntidades : Vector

+ SistemaTFImpl() + configuracion(data : byte[]) + suscripción(idServidor : String, nombreArchivo : String, data : byte[]) + notificacionInicio(idServidor : String, referencia : String) : String + main(args[] : String)

Page 10: Apéndice B Diagramas UML - Universidad de las Américas ...

132 Diagramas UML

ServidorEventos ObjetoEscucha

Figura B.5 Diagramas de clases del sistema activo de tolerancia a fallas (continuación)

+ ObjetoEscucha() + ObjetoEscucha(idObjetoEscucha : String, idServidor : String, eventos : Vector, servidorEventos : ServidorEventos) + run() + recepcionMensaje(msg : Metodo) + getIdObjetoEscucha() : String + getIdServidor() : String + getEventos() : Vector + setIdObjetoEscucha(idObjetoEscucha : String) + setIdServidor(idServidor : String) + setEventos(eventos : Vector)

- servidorEventos : ServidorEventos - idObjetoEscucha : String - idServidor : String - eventos : Vector

- objetoEscucha : ObjetoEscucha - idsObjetosEscucha: Vector - objetosEscucha : Vector - procesador : Procesador - monitor : Monitor - eventosStack : Stack

+ ServidorEventos() + verificaSuscripcion(idServidor : String) : String + generaIdObjetoEscucha() : String + obtencionIdObjetoEscucha(idServidor : String) : String + creaObjetoEscucha(idOE : String, idServidor : String, eventos : Vector) + recepcionEvento(evento : Evento) + actualizacionMonitor(monitor : Monitor) + ejecucionComando(comando : String)

Evento Evento

+ Evento() + Evento(idEvento : String, nombreEvento : String, entidad : Entidad, idPeticion: String, petición : Metodo) + getIdEvento() : String + getNombreEvento() : String + getEntidad() : Entidad + getIdPeticion() : String + getPeticion() : Metodo + setIdEvento(idEvento : String) + setNombreEvento(nombreEvento : String) + setEntidad(entidad : Entidad) + setIdPeticion(idPeticion : String) + setPeticion(petición : Metodo)

- idEvento: String - nombreEvento: String - entidad : Entidad - idPeticion: String - peticion: Metodo

- idServidor : String - nombreServidor : String

+ Entidad() + Entidad(idServidor : String, nombreServidor : String) + getIdServidor() : String + getNombreServidor() : String + setIdServidor(idServidor : String) + setNombreServidor(nombreServidor : String)

Parametros

- posicion : int - tipo : String - valor : String

+ Parametros() + Parametros(posición : int, tipo : String, valor : String) + getPosicion () : int + getTipo() : String + getValor () : String + setPosicion (posicion : int) + setTipo(tipo : String) + setValor(valor : String)

Page 11: Apéndice B Diagramas UML - Universidad de las Américas ...

Diagramas UML 133

Metodo Comunicacion

Figura B.5 Diagramas de clases del sistema activo de tolerancia a fallas (continuación)

+ Comunicacion() + Comunicacion(entidad : String, entidades: Vector) + getEntidad(): String + getEntidades() : Vector + setEntidad(entidad : String) + setEntidades(entidades : Vector)

- entidad : String - entidades : Vector

- ID : String - nombre : String - parametros : Parametros - entidadOrigen : String - entidadDestino : String - referencia : String

+ Metodo() + Metodo(ID : String, nombre : String, parametros : Parametros, entidadOrigen : String, entidadDestino : String, referencia : String) + getID() : String + getNombre() : String

Monitor + getParametros() : Parámetros + getEntidadOrigen() : String + getEntidadDestino() : String + getReferencia() : String + setID(ID : String) + setNombre(nombre : String) + setParametros(parametros : Parametros) + setEntidadOrigen(entidadOrigen : String) + setEntidadDestino(entidadDestino : String) + setReferencia(referencia : String)

Condicion

+ Condicion() + Condicion(limiteInferior: int, limiteSuperior : int, tiempoEspera : int) + getLimiteInferior(): int + getLimiteSuperior(): int + getTiempoEspera(): int + setLimiteInferior(limiteInferior: int) + setLimiteSuperior(limiteSuperior: int) + setTiempoEspera(tiempoEspera: int)

- limiteInferior : int - limiteSuperior : int - tiempoEspera : int

- nivelTF : String - condicion : Condicion - comunicacionEntidades : Vector - referenciasEntidades : Vector - monitorDisponible : boolean - grupoThread : ThreadGroup - thread : Thread - evaluador : Evaluador - contadorThreads : int

+ Monitor() + Monitor(nivelTF : String, condicion : Condicion, comunicacionEntidades : Vector) + verificacionEstado() : boolean + recepcionEvento(evento : Evento) + identificacionReferencia(metodo : Metodo) : Metodo + verificacionTolerancia(metodo : Metodo) : boolean + getNivelTF() : String + getCondicion() : Condicion + getComunicacionEntidades() : Vector + getReferenciasEntidades() : Vector + setNivelTF(nivelTF : String) + setCondicion(condicion : Condicion) + setComunicacionEntidades (comunicacacionEntidades : Vector) + setReferenciasEntidades (referenciasEntidades : Vector)

Page 12: Apéndice B Diagramas UML - Universidad de las Américas ...

134 Diagramas UML

Evaluador EjecutorReacciones

Figura B.5 Diagramas de clases del sistema activo de tolerancia a fallas (continuación)

+ reaccion(tipoFalla : String, evento : Evento)

- nivelTF : String

ParserXML

+ ParserXML() + ParserXML(archivo : String, opcion : String) + startDocument() + endDocument() + startElement(nameSpaceURI : String, localName : String, qName : String, attr : Attributes) + endElement(nameSpaceURI : String, localName : String, qName : String) + characters(ch : char[], start : int, length : int) +parseoEventos(archivo : String) +parseoConfiguracion(archivo : String) + obtieneTipoEventos() : Vector + obtieneNivel() : String + obtieneComunicacionEntidades() : Vector + obtieneCondicion() : Condicion

- tiposEventos : Vector - nivelTF : String - condicion : Condicion - entidadesV : Vector - opcion : String - contenido : CharArrayWriter

- E1 : Evento - E2 : Evento - E3 : Evento - E4 : Evento - verificacionReglaCompleta : boolean - lapso : long - timer : Timer - nombreThread : String - nivelTF : String - condicion : Condicion - esEspera : boolean - repeticiones : int

+ Evaluador() + Evaluador(grupoThread : ThreadGroup, nombreThread : String, lapso, long, timer : Timer, evento : Evento, verificacionReglaCompleta : boolean, nivelTF : String, condicion : Condicion) + run() + verificacionEvento(evento : Evento) : boolean + verificacionRegla() : boolean + espera (tiempoEspera : long) + getE1 () : Evento + getE2 () : Evento + getE3 () : Evento + getE4 () : Evento + getNivelTF() : String + getCondicion() : Condicion + setE1 (E1 : Evento) + setE2 (E1 : Evento) + setE3 (E1 : Evento) + setE4 (E1 : Evento) + setRegla(verificaciónReglaCompleta : boolean) + setLapso(lapso : long) + setNivelTF(nivelTF : String) + setCondicion(condicion : Condicion)

Page 13: Apéndice B Diagramas UML - Universidad de las Américas ...

Diagramas UML 135

Procesador NamingService

Figura B.5 Diagramas de clases del sistema activo de tolerancia a fallas (continuación)

+ Procesador() + Procesador(in : InputStream, out : OutputStream) + Procesador(commando : String) + run() + getFrame() : JInternalFrame + creaTerminal() + impression(impresion : String)

- terminal : Terminal - in : InputStream - out : OutputStream - contadorFrames : int - coordenadaX : int - coordenadaY : int - textArea : JTextArea - scrollPane : JScrollPane

Dialogo

+Dialogo(framePrincipal : JFrame, opcion : String) + dialogoRMI(framePrincipal : JFrame, inicio : boolean) : JDialog + dialogoAcercaDe(framePrincipal : JFrame) : JDialog + getNumeroPuerto() : String

- optionPane : JOptionPane - numeroPuerto : String

FileUnpacket

+ FileUnpacket() + writeTo(out : OutputStream, data : byte[])

Escritura

+ Escritura() + escribeArchivo(nombreArchivo : String, puerto : int)

- path : String

LecturaSTF

+ LecturaSTF() + obtieneServidorEjecucion(archivo : String) : String + obtieneNumeroPuerto (archivo : String) : int

- path : String

Impresion

+ Impresion(in : InputStream, textArea : JTextArea) + run() + impresion(impresion : String)

- in : InputStream - textArea : JTextArea

- mport : int - m_registry : Remote - m_running : boolean

+ NamingService() + NamingService(port : int) + setPort(port : int) + getPort() : int + isRunning() : boolean + start() + stop()

<< interface >> NamingServiceMBean

+ setPort(port : int) + getPort() : int + isRunning() : boolean + start() + stop()

Page 14: Apéndice B Diagramas UML - Universidad de las Américas ...

136 Diagramas UML

AdministradorSTF Terminal

Figura B.5 Diagramas de clases del sistema activo de tolerancia a fallas (continuación)

+ Terminal(commando : String, desktop : JDesktopPane) + Terminal(in : InputStream, out : OutputStream) + run() + cierraTerminal()

- comando : String - desktop : JDesktopPane - in : InputStream - out : OutputStream - frame : JInternalFrame - openFrameCount : int - textArea : JTextArea - scrollPane : JScrollPane

RMIRegistry

+ RMIRegistry(Puerto : int, desktop : JDesktopPane) + cierraTerminal() + iniciarRMIRegistry() + detenerRMIRegistry() + verificacionPuerto() : boolean

- comando : String - desktop : JDesktopPane - in : InputStream - out : OutputStream - frame : JInternalFrame - openFrameCount : int - textArea : JTextArea - scrollPane : JScrollPane - rmiRegistry : NamingService - puertoEnUso : boolean - Puerto : int

- comando : String - dialogo : Dialogo - dialogoError : Dialogo - framePrincipal : JFrame - tabbed : JTabbedPane - desktop : JDesktopPane - antSTF : Terminal - j2ee : Terminal - j2eeStop : Terminal - rmiRegistry : RMIRegistry - iconActivarServer : ImageIcon - iconDesactivarServer : ImageIcon - iconExit : ImageIcon - iconInformacion : ImageIcon - iconOpenWindow : ImageIcon - iconCloseWindow : ImageIcon - iconActivarServer24 : ImageIcon - iconDesactivarServer24 : ImageIcon - iconExit24 : ImageIcon - iconInformacion24 : ImageIcon - iconOpenWindow24 : ImageIcon - iconCloseWindow24 : ImageIcon - buttonIniciarRMI : JButton - buttonCerrarRMI : JButton - buttonIniciarSTF : JButton - buttonCerrarSTF : JButton - menuItemIniciarRMI : JMenuItem - menuItemCerrarRMI : JMenuItem - menuItemIniciarSTF : JMenuItem - menuItemCerrarSTF : JMenuItem - menuItemSalir : JMenuItem - menuItemAcercaDe : JMenuItem - statusArea : JTextArea - split : JSplitPane - splitP : JSplitPane - newline : String - calendar : Calendar

+ AdministradorSTF() + makeMenuBar() : JMenuBar + makeSplitPane() : Component + makeSplitPanel() : Component + makeButtons() : Component + makeDesktopPane() : Component + makeStatusBar() : Component + actionPerformed(e : ActionEvent) + salir() + inicioRMIRegistry() + inicioJ2EE() + inicioSTF() + bajaRMIRegistry() + bajaJ2EE() + bajaSTF() + main(args[] : String)

Page 15: Apéndice B Diagramas UML - Universidad de las Américas ...

Diagramas UML 137

La figura B.6 presenta los diagramas de clases implementadas del sistema distribuido de transporte.

<< interface >> AdministradorImpl AdministradorInterfaz

Figura B.6 Diagramas de clases del sistema distribuido de transporte

+ agregaAuto(auto : Auto) + quitaAuto(claveAuto : String) + obtieneListaAutos() : String + obtieneClaveAuto(nombreAuto : String) : String + verDetallesAuto(claveAuto : String) : Vector + obtieneListaPiezas(claveAuto : String) : Vector + creaEntidad(entidad : EntidadMovil) + eliminaEntidad(identidad : String) + eliminaEntidades() + obtieneIdEntidad() : int + obtieneProveedores() : Vector + obtieneListaProveedores() : Vector + obtieneNombreProv(idProveedor : String) : String + obtieneIdProv(nombreProveedor : String) : String + obtienePosProveedor(idProveedor : String) : int + obtienePosProv(nombreProveedor : String) : int + recibePeticion(claveAuto : String) + recibeSolicitud(idEntidad : String, listaRecolectadoEntidad : Vector) + ensamble() : boolean + requiereTolerancia(opcionTolerancia : boolean, opcionSuscripcion : boolean) + getReferencia() : String

- obj : AdministradorImpl - con : AdministradorConectaDB - proveedoresArchivo : Proveedores - idEntidades : Vector - listaPiezasRecolectadas : Vector - listaPiezasRequeridas : Vector - ensamblado : boolean - nombreServidor : String - idServidor : String - referencia : String - opcionTolerancia : boolean - opcionSuscripcion : boolean - idObjetoEscucha : String - enviadorMensajes : EnviadorMensajes - path : String

+ AdministradorImpl() + estableceProveedores() + agregaAuto(auto : Auto) + quitaAuto(claveAuto : String) + obtieneListaAutos() : String + obtieneClaveAuto(nombreAuto : String) : String + verDetallesAuto(claveAuto : String) : Vector + obtieneListaPiezas(claveAuto : String) : Vector + creaEntidad(entidad : EntidadMovil) + eliminaEntidad(identidad : String) + eliminaEntidades() + obtieneIdEntidad() : int + obtieneProveedores() : Vector + obtieneListaProveedores() : Vector + obtieneNombreProv(idProveedor : String) : String

AdministradorLectura + obtieneIdProv(nombreProveedor : String) : String + obtienePosProveedor(idProveedor : String) : int + obtienePosProv(nombreProveedor : String) : int + recibePeticion(claveAuto : String) + recibeSolicitud(idEntidad : String, listaRecolectadoEntidad : Vector) + ensamble() : boolean + requiereTolerancia(opcionTolerancia : boolean, opcionSuscripcion : boolean) + getReferencia() : String + getIdObjetoEscucha() : String + inicio() + main(args[] : String)

- path : String

+ AdministradorLectura() + getCaminos(archivo : String) : Vector + getNodos(archivo : String) : Vector + getProveedores(archivo: String) : Vector + getDependencias(archivo : String) : Vector + getFronteras(archivo : String) : Vector + obtieneServidorEjecucion(archivo : String) : String + obtieneNumeroPuerto (archivo : String) : int

Page 16: Apéndice B Diagramas UML - Universidad de las Américas ...

138 Diagramas UML

AdministradorConectaDB Auto

Figura B.6 Diagramas de clases del sistema distribuido de transporte (continuación)

+ AdministradorConectaDB() + query(s String) : ResultSet + ejecuta(e String) : boolean + cierraConexion() + agragaAuto(auto : Auto) + quitaAuto(idAuto : String) + obtieneListaAutos() : Vector + obtieneClaveAuto(nombreAuto : String) : String + verDetallesAuto(idAuto: String) : Vector + obtieneListaPiezas(idAuto : String) : Vector

- url : String - login : String - passwd : String - con : Connection - stmt : Statement

- idAuto : String - nombreAuto : String - marcaAuto : String - precioAuto : String - descripcion : String - piezas : Vector

+ Auto() + Auto(idAuto : String, nombreAuto : String, marcaAuto : String, precioAuto : String, descripcion : String, piezas : Vector) + getIdAuto() : String + getNombreAuto() : String + getMarcaAuto() : String + getPrecioAuto() : String + getDescripcion() : String + getPiezas() : Vector + setIdAuto(idAuto : String) + setNombreAuto(nombreAuto : String) + setMarcaAuto(marcaAuto : String) + setPrecioAuto(precioAuto : String)

+ setDescripcion(descripcion : String) Proveedor + setPiezas(piezas : Vector)

- idProveedor : String - nombreProveedor : String - posicion : int

+ Proveedor() Proveedores + Proveedor(idProveedor : String, nombreProveedor : String, posicion : int) + getIdProveedor() : String + getNombreProveedor() : String + getPosicion() : int + getIdProveedor(idProveedor : String) + getNombreProveedor(nombreProveedor : String) + getPosicion(psocion : int)

- proveedor : Proveedor - proveedores : Vector

+ Proveedores() + estableceProveedores() + getProveedores() : Vector

Page 17: Apéndice B Diagramas UML - Universidad de las Américas ...

Diagramas UML 139

EntidadMovil (Administrador) AdministradorCliente

Figura B.6 Diagramas de clases del sistema distribuido de transporte (continuación)

+ EntidadMovil() + EntidadMovil(idEntidad : String, origin : int, destino : int, ruta : Vector, listaPiezas : Vector, enviadorMensajes : EnviadorMensajes) + run() + realizaRecorrido() + obtieneRuta(int origen, int destino) : Vector + realizaRuta(ruta : Vector) + getIdEntidad() : String + getOrigen() : int + getDestino() : int + getRuta() : Vector + getListaPiezas() : Vector + getEnviadorMensajes() : EnviadorMensajes + setIdEntidad(idEntidad : String) + setOrigen(origen : int) + setDestino(destino : int) + setRuta(ruta : Vector) + setListaPiezas(listaPiezas : Vector) + setEnviadorMensajes(enviadorMensajes : EnviadorMensajes) + setServidor(administradorImpl : AdministradorImpl)

- administradorImpl : AdministradorImpl - mapaCliente : MapaCliente - motorCliente : MotorCliente - metalCliente : MetalCliente - chasisCliente : ChasisCliente - llantasCliente : LlantasCliente - accesoriosCliente : AccesoriosCliente - rutaCuadrante1Cliente : RutaCuadrante1Cliente - rutaCuadrante2Cliente : RutaCuadrante2Cliente - rutaCuadrante3Cliente : RutaCuadrante3Cliente - rutaCuadrante4Cliente : RutaCuadrante4Cliente - identidad : String - origen : int - destino : int - nodoOrigenInicial : int - ruta : Vector - listaPiezas : Vector - enviadorMensajes : EnviadorMensajes

- obj : AdministradorInterfaz

+ AdministradorCliente() + + agregaAuto(auto : Auto) + quitaAuto(claveAuto : String) + obtieneListaAutos() : String + obtieneClaveAuto(nombreAuto : String) : String + verDetallesAuto(claveAuto : String) : Vector + obtieneListaPiezas(claveAuto : String) : Vector + creaEntidad(entidad : EntidadMovil) + eliminaEntidad(identidad : String) + eliminaEntidades() + obtieneIdEntidad() : int + obtieneProveedores() : Vector + obtieneListaProveedores() : Vector + obtieneNombreProv(idProveedor : String) : String + obtieneIdProv(nombreProveedor : String) : String + obtienePosProveedor(idProveedor : String) : int + obtienePosProv(nombreProveedor : String) : int + recibePeticion(claveAuto : String) + recibeSolicitud(idEntidad : String, listaRecolectadoEntidad : Vector) + ensamble() : boolean + requiereTolerancia(opcionTolerancia : boolean, opcionSuscripcion : boolean) + getReferencia() : String

Page 18: Apéndice B Diagramas UML - Universidad de las Américas ...

140 Diagramas UML

Metodo EnviadorMensajes

Figura B.6 Diagramas de clases del sistema distribuido de transporte (continuación)

+ EnviadorMensajes(idObjetoEscucha : String) + envio(mensaje : Metodo)

- queueName : String - jndiContext : Context - queueConnectionFactory : QueueConnectionFactory - queueConnection : QueueConnection - queueSession : QueueSession - queue : Queue - queueSender : QueueSender - message : ObjectMessage

FilePacket

- nombre : String

+ FilePacket(nombre : String) + getName() : String + readIn() : byte[]

ParserXML

+ ParserXML() + ParserXML(archivo : String, opcion : String) + startDocument() + endDocument() + startElement(nameSpaceURI : String, localName : String, qName : String, attr : Attributes) + endElement(nameSpaceURI : String, localName : String, qName : String) + characters(ch : char[], start : int, length : int) +parseo(archivo : String) + obtieneOpcionTolerancia() : Vector

- tolerancia : String - suscripción : String - nombreEn : String - nombreAtributo : String - opcionTolerancia : Vector - contenido : CharArrayWriter

- ID : String - nombre : String - parametros : Parametros - entidadOrigen : String - entidadDestino : String - referencia : String

+ Metodo() + Metodo(ID : String, nombre : String, parametros : Parametros, entidadOrigen : String, entidadDestino : String, referencia : String) + getID() : String + getNombre() : String + getParametros() : Parámetros + getEntidadOrigen() : String + getEntidadDestino() : String + getReferencia() : String + setID(ID : String) + setNombre(nombre : String) + setParametros(parametros : Parametros) + setEntidadOrigen(entidadOrigen : String) + setEntidadDestino(entidadDestino : String) + setReferencia(referencia : String)

Parametros

- posicion : int - tipo : String - valor : String

+ Parametros() + Parametros(posición : int, tipo : String, valor : String) + getPosicion () : int + getTipo() : String + getValor () : String + setPosicion (posicion : int) + setTipo(tipo : String) + setValor(valor : String)

Page 19: Apéndice B Diagramas UML - Universidad de las Américas ...

Diagramas UML 141

<< interface >> MapaImpl MapaInterfaz

Figura B.6 Diagramas de clases del sistema distribuido de transporte (continuación)

+ creaMapa() + getCuadrante(idCuadrante : String) : Cuadrante + obtieneCuadrante(nodo : int) : String + obtieneProveedor(nodo : int) : String + perteneceA(idProveedor : String) : String + obtieneNodosFrontera(cuaranteOrigen : String, cuadranteDestino : String) : Vector + getReferencia() : String

- creacionMapa : CreacionMapa - referencia : String - idObjetoEscucha : String

+ MapaImpl() + creaMapa() + getCuadrante(idCuadrante : String) : Cuadrante + obtieneCuadrante(nodo : int) : String + obtieneProveedor(nodo : int) : String + perteneceA(idProveedor : String) : String + obtieneNodosFrontera(cuaranteOrigen : String, cuadranteDestino : String) : Vector

MapaLectura + getReferencia() : String + getIdObjetoEscucha() : String

- path : String

+ LlantasLectura() + getCaminos(archivo : String) : Vector

+ getNodos(archivo : String) : Vector Cuadrante + getProveedores(archivo : String) : Vector + getDeoendencias(archivo : String) : Vector + getFronteras(archivo : String) : Vector + obtieneServidorEjecucion(archivo : String) : String + obtieneNumeroPuerto (archivo : String) : int

CreacionMapa

+ CreacionMapa() + creacionMapa() + getFronteras() : Vector + getCuadrantes() : Vector

- cuadrante1 : Cuadrante - cuadrante2 : Cuadrante - cuadrante3 : Cuadrante - cuadrante4 : Cuadrante - fronteras : Vector - cuadrantes : Vector

- idCuadrante : String - caminos : Vector - proveedores : Vector

+ Cuadrante() + Cuadrate(idCuadrante : String, caminos : Vector, proveedores : Vector) + getIdCuadrante() : String + getCaminos() : Vector + getProveedores() : Vector + setIdCuadrante(idCuadrante : String)

MapaCliente + setCaminos(caminos : Vector) + setProveedores(proveedores : Vector)

- obj : MapaInterfaz

+ MapaCliente() + creaMapa() + getCuadrante(idCuadrante : String) : Cuadrante + obtieneCuadrante(nodo : int) : String + obtieneProveedor(nodo : int) : String + perteneceA(idProveedor : String) : String + obtieneNodosFrontera(cuaranteOrigen : String, cuadranteDestino : String) : Vector + getReferencia() : String + getIdObjetoEscucha() : String

Page 20: Apéndice B Diagramas UML - Universidad de las Américas ...

142 Diagramas UML

<< interface >> RutaCuadrante#Impl RutaCuadrante#Interfaz

Figura B.6 Diagramas de clases del sistema distribuido de transporte (continuación)

+ obtieneTopologia(idCuadrante : String) : Cuadrante + obtieneCosto(nodoOrigen : int, nodoFrontera : int) : int + calculaRuta(nodoOrigen : int, nodoDestino : int) : Vector + getReferencia() : String

- mapaCliente : MapaCliente - referencia : String - idObjetoEscucha : String

+ RutaCuadrante#Impl() + obtieneTopologia(idCuadrante : String) : Cuadrante + obtieneCosto(nodoOrigen : int, nodoFrontera : int) : int + calculaRuta(nodoOrigen : int, nodoDestino : int) : Vector

RutaLectura + getReferencia() : String + getIdObjetoEscucha() : String - path : String

+ RutaLectura() + getCaminos(archivo : String) : Vector

+ getNodos(archivo : String) : Vector Grafo + getProveedores(archivo : String) : Vector + getDeoendencias(archivo : String) : Vector + getFronteras(archivo : String) : Vector + obtieneServidorEjecucion(archivo : String) : String + obtieneNumeroPuerto (archivo : String) : int

Arista

- origen : int - destino : int - peso : int

- vertices : Vector - origen : Vertice

+Grafo() + getVertices() : Vector + insertarVertice(v : Vertice) + insertarArista(uno : Vertice, dos : Vertice) + insertarAristaNoDir(uno : Vertice, dos : Vertice) + getDistancia(origen : Vertice, destino : Vertice) : int + getRuta(origen : Vertice, destino : Vertice) : String + calcular(origen : Vertice) +

Nodo

Camino

- papa : int - hijo : int

- etiqueta : int - valorDijkstra : int

Page 21: Apéndice B Diagramas UML - Universidad de las Américas ...

Diagramas UML 143

Dijkstra Vertice

Figura B.6 Diagramas de clases del sistema distribuido de transporte (continuación)

+ estructuraNodo(nombre : int, valor : int) : Nodo + construccionGrafoAristas(caminos : Vector) + estructuraGrafo(grafo : Vector) + inicializaPesosVertices() + copiaGrafoOriginal() + buscaNodo(etiqueta : int) : Nodo + buscaVecinos(nodoTemporal : Nodo) : Vector + perteneceConjunto(nodo : Nodo) : int + buscaPeso(nodoUno : int, nodoDos : int) : int + buscaMinimo() : Nodo + caminos(hijo : Nodo, padre : Nodo) + existeArista(padre : int, hijo : int) : int + imprimeCamino() : Vector + Proceso() + ProcesoCosto() : int + obtieneCosto(nodoOrigen : int, nodoDestino : int, caminos : Vector) : int + calculaRuta(nodoOrigen : int, nodoDestino : int, caminos : Vector) : V

- grafoCompleto : Vector - grafoTemporal : Vector - camino : Vector - grafoAristas : Vector - nodoInicial : Nodo - nodoFinal : Nodo - nodoTemporal : Nodo - INFINITO : int

- int : distancia - anterior : Vertice - adyacentes : Vector - nombre : String

+ Vertice(nombre : String) + reset() + insertaArista(destino : Vertice) + getDistancia() : int + getAnterior() : Vértice + getAdyacentes() : Vector + setDistancia(distancia : int) + setAnterior(anterior : Vertice) + setAdyacentes(adyacentes : Vector)

RutaCuadrante#Cliente

- obj : MapaInterfaz

+ RutaCuadrante#Cliente() + + obtieneTopologia(idCuadrante : String) : Cuadrante + obtieneCosto(nodoOrigen : int, nodoFrontera : int) : int + calculaRuta(nodoOrigen : int, nodoDestino : int) : Vector + getReferencia() : String + getIdObjetoEscucha() : String

Page 22: Apéndice B Diagramas UML - Universidad de las Américas ...

144 Diagramas UML

Figura B.6 Diagramas de clases del sistema distribuido de transporte (continuación)

AccesoriosImpl

+ AccesoriosImpl() igen : String,

ducto :

il)

: String,

a :

<< interface >> AccesoriosInterfaz

+ compra( ducto :

il)

: String,

- con : AccesoriosConectaDB

String

olean

entidadOrigen : String,entidadDestino : String, nombreProString, cantidad : int, idProveedor : String) + ensamble(nombrePieza : String)

- administradorCliente : AdministradorCliente - nombrePiezaAEnsamblar : - identidades : Vector

s : Vector + creaEntidad(entidad : EntidadMov - listaPiezasRecolectada+ eliminaEntidad(identidad : String) - listaPiezasRequeridas : Vector + eliminaEntidades()

int - nombreServidor : String

+ obtieneIdEntidad() : - idServidor : String + recibeSolicitud(idEntidad - referencia : String listaRecolectadoEntidad : Vector) + getReferencia() : String

- ensamble : boolean- opcionTolerancia : bo

- opcionSuscripcion : boolean - idObjetoEscucha : String

orMensajes - enviadorMensajes : Enviad- path : String

+ compra(entidadOrentidadDestino : String, nombreProString, cantidad : int, idProveedor : String) + ensamble(nombrePieza : String) + creaEntidad(entidad : EntidadMov+ eliminaEntidad(identidad : String) + eliminaEntidades()

int + obtieneIdEntidad() :+ recibeSolicitud(idEntidad listaRecolectadoEntidad : Vector) + requiereTolerancia(opcionToleranciboolean, opcionSuscripcion : boolean) + getReferencia() : String

tring + getIdObjetoEscucha() : S+ inicio()

s[] : String) + main(arg

AccesoriosLectura

- path : String

AccesoriosConectaDB

- url : String

- login : String- passwd : String- con : Connection - stmt : Statement

+ AccesoriosConectaDB() + query(s String) : ResultSet

+ ejecuta(e String) : boolean + cierraConexion()

oducto : String, + compra(nombrePrcantidad : int, idProveedor : String) + ensamble(nombrePieza : String, idProveedor : String)

AccesoriosCliente

- obj : AccesoriosInterfaz - em : EnviadorMensajes

+ AccesoriosCliente() + AccesoriosLectura()

cion(archivo :

+ compra(idObjetoEscucha : String, o :

il :

+ obtieneServidorEjecuentidadOrigen : String, entidadDestinString, nombreProducto : String, cantidad: int, idProveedor : String) + ensamble(idObjetoEscucha : String,

String) : String + obtieneNumeroPuerto (archivo : String): int

entidadOrigen : String, entidadDestino : String, nombrePieza : String) + recibeSolicitud(idObjetoEscucha : String, entidadOrigen : String, entidadDestino : String, idEntidadMovString, listaRecolectadoEntidad : Vector)

Page 23: Apéndice B Diagramas UML - Universidad de las Américas ...

Diagramas UML 145

ChasisImpl

+ ChasisImpl() dOrigen : String,

ducto :

il)

: String,

a :

<< interface >> ChasisInterfaz

+ compra(enducto :

il)

: String,

- con : ChasisConectaDB

String

olean

tidadOrigen : String, entidadDestino : String, nombreProString, cantidad : int, idProveedor : String) + ensamble(nombrePieza : String)

- administradorCliente : AdministradorCliente - nombrePiezaAEnsamblar : - identidades : Vector

s : Vector + creaEntidad(entidad : EntidadMov - listaPiezasRecolectada+ eliminaEntidad(identidad : String) - listaPiezasRequeridas : Vector + eliminaEntidades()

int - nombreServidor : String

+ obtieneIdEntidad() : - idServidor : String + recibeSolicitud(idEntidad - referencia : String listaRecolectadoEntidad : Vector) + getReferencia() : String

- ensamble : boolean- opcionTolerancia : bo

- opcionSuscripcion : boolean - idObjetoEscucha : String

orMensajes - enviadorMensajes : Enviad- path : String

ChasisLectura

+ compra(entida

Figura B.6 Diagramas de clases del sistema distribuido de transporte (continuación)

entidadDestino : String, nombreProString, cantidad : int, idProveedor : String) + ensamble(nombrePieza : String)

+ ChasisLectura() + obtieneServidorEjecucion(archivo :

String) : String + obtieneNumeroPuerto (archivo : String)

+ creaEntidad(entidad : EntidadMov+ eliminaEntidad(identidad : String)

: int

- path : String

ChasisConectaDB

+ eliminaEntidades() int + obtieneIdEntidad() :

+ recibeSolicitud(idEntidad listaRecolectadoEntidad : Vector) + requiereTolerancia(opcionToleranciboolean, opcionSuscripcion : boolean) + getReferencia() : String

tring + getIdObjetoEscucha() : S- url : String

g

+ inicio() s[] : String) - login : String + main(arg

- passwd : Strin- con : Connection - stmt : Statement

ChasisCliente + ChasisConectaDB() ltSet + query(s String) : Resu

+ ejecuta(e String) : boolean + cierraConexion()

oducto : String, + AccesoriosCliente()

- obj : AccesoriosInterfaz - em : EnviadorMensajes

+ compra(nombrePr+ compra(idObjetoEscucha : String,

o :

il :

cantidad : int, idProveedor : String) + ensamble(nombrePieza : String, entidadOrigen : String, entidadDestin

String, nombreProducto : String, cantidad: int, idProveedor : String) + ensamble(idObjetoEscucha : String,

idProveedor : String)

entidadOrigen : String, entidadDestino : String, nombrePieza : String) + recibeSolicitud(idObjetoEscucha : String, entidadOrigen : String, entidadDestino : String, idEntidadMovString, listaRecolectadoEntidad : Vector)

Page 24: Apéndice B Diagramas UML - Universidad de las Américas ...

146 Diagramas UML

Figura B.6 Diagramas de clases del sistema distribuido de transporte (continuación)

LlantasImpl

+ LlantasImpl() Origen : String,

ducto :

il)

: String,

a :

<< interface >> LlantasInterfaz

+ compra(en g, ducto :

il)

: String,

- con : LlantasConectaDB

String

olean

tidadOrigen : StrinentidadDestino : String, nombreProString, cantidad : int, idProveedor : String) + ensamble(nombrePieza : String)

- administradorCliente : AdministradorCliente - nombrePiezaAEnsamblar : - identidades : Vector

s : Vector + creaEntidad(entidad : EntidadMov - listaPiezasRecolectada+ eliminaEntidad(identidad : String) - listaPiezasRequeridas : Vector + eliminaEntidades()

int - nombreServidor : String

+ obtieneIdEntidad() : - idServidor : String + recibeSolicitud(idEntidad - referencia : String listaRecolectadoEntidad : Vector) + getReferencia() : String

- ensamble : boolean- opcionTolerancia : bo

- opcionSuscripcion : boolean - idObjetoEscucha : String

orMensajes - enviadorMensajes : Enviad- path : String

LlantasLectura

+ compra(entidadentidadDestino : String, nombreProString, cantidad : int, idProveedor : String) + ensamble(nombrePieza : String)

+ LlantasLectura() + obtieneServidorEjecucion(archivo :

String) : String + obtieneNumeroPuerto (archivo : String)

+ creaEntidad(entidad : EntidadMov+ eliminaEntidad(identidad : String)

: int

- path : String

LlantasConectaDB

+ eliminaEntidades() int + obtieneIdEntidad() :

+ recibeSolicitud(idEntidad listaRecolectadoEntidad : Vector) + requiereTolerancia(opcionToleranciboolean, opcionSuscripcion : boolean) + getReferencia() : String

tring + getIdObjetoEscucha() : S- url : String

+ inicio() s[] : String) - login : String + main(arg

- passwd : String- con : Connection - stmt : Statement

LlantasCliente + LlantasConectaDB() ltSet + query(s String) : Resu

+ ejecuta(e String) : boolean + cierraConexion()

oducto : String, + AccesoriosCliente()

- obj : AccesoriosInterfaz - em : EnviadorMensajes

+ compra(nombrePr+ compra(idObjetoEscucha : String,

o :

il :

cantidad : int, idProveedor : String) + ensamble(nombrePieza : String, entidadOrigen : String, entidadDestin

String, nombreProducto : String, cantidad: int, idProveedor : String) + ensamble(idObjetoEscucha : String,

idProveedor : String)

entidadOrigen : String, entidadDestino : String, nombrePieza : String) + recibeSolicitud(idObjetoEscucha : String, entidadOrigen : String, entidadDestino : String, idEntidadMovString, listaRecolectadoEntidad : Vector)

Page 25: Apéndice B Diagramas UML - Universidad de las Américas ...

Diagramas UML 147

MetalImpl

+ MetalImpl() adOrigen : String,

ducto :

il)

: String,

a :

<< interface >> MetalInterfaz

+ compra(ent ng, ducto :

il)

: String,

- con : MetalConectaDB

String

olean

idadOrigen : StrientidadDestino : String, nombreProString, cantidad : int, idProveedor : String) + ensamble(nombrePieza : String)

- administradorCliente : AdministradorCliente - nombrePiezaAEnsamblar : - identidades : Vector

s : Vector + creaEntidad(entidad : EntidadMov - listaPiezasRecolectada+ eliminaEntidad(identidad : String) - listaPiezasRequeridas : Vector + eliminaEntidades()

int - nombreServidor : String

+ obtieneIdEntidad() : - idServidor : String + recibeSolicitud(idEntidad - referencia : String listaRecolectadoEntidad : Vector) + getReferencia() : String

- ensamble : boolean- opcionTolerancia : bo

- opcionSuscripcion : boolean - idObjetoEscucha : String

orMensajes - enviadorMensajes : Enviad- path : String

MetalLectura

+ compra(entid

Figura B.6 Diagramas de clases del sistema distribuido de transporte (continuación)

entidadDestino : String, nombreProString, cantidad : int, idProveedor : String) + ensamble(nombrePieza : String)

+ LlantasLectura() + obtieneServidorEjecucion(archivo :

String) : String + obtieneNumeroPuerto (archivo : String)

+ creaEntidad(entidad : EntidadMov+ eliminaEntidad(identidad : String)

: int

- path : String

MetalConectaDB

+ eliminaEntidades() int + obtieneIdEntidad() :

+ recibeSolicitud(idEntidad listaRecolectadoEntidad : Vector) + requiereTolerancia(opcionToleranciboolean, opcionSuscripcion : boolean) + getReferencia() : String

tring + getIdObjetoEscucha() : S- url : String

g

+ inicio() s[] : String) - login : String + main(arg

- passwd : Strin- con : Connection - stmt : Statement

MetalCliente + MetalConectaDB() sultSet + query(s String) : Re

+ ejecuta(e String) : boolean + cierraConexion()

oducto : String, + AccesoriosCliente()

- obj : AccesoriosInterfaz - em : EnviadorMensajes

+ compra(nombrePr+ compra(idObjetoEscucha : String,

o :

il :

cantidad : int, idProveedor : String) + ensamble(nombrePieza : String, entidadOrigen : String, entidadDestin

String, nombreProducto : String, cantidad: int, idProveedor : String) + ensamble(idObjetoEscucha : String,

idProveedor : String)

entidadOrigen : String, entidadDestino : String, nombrePieza : String) + recibeSolicitud(idObjetoEscucha : String, entidadOrigen : String, entidadDestino : String, idEntidadMovString, listaRecolectadoEntidad : Vector)

Page 26: Apéndice B Diagramas UML - Universidad de las Américas ...

148 Diagramas UML

Figura B.6 Diagramas de clases del sistema distribuido de transporte (continuación)

MotorImpl

+ MotorImpl() adOrigen : String,

ducto :

il)

: String,

a :

<< interface >> MotorInterfaz

+ compra(ent ng, ducto :

il)

: String,

- con : MotorConectaDB

String

olean

idadOrigen : StrientidadDestino : String, nombreProString, cantidad : int, idProveedor : String) + ensamble(nombrePieza : String)

- administradorCliente : AdministradorCliente - nombrePiezaAEnsamblar : - identidades : Vector

s : Vector + creaEntidad(entidad : EntidadMov - listaPiezasRecolectada+ eliminaEntidad(identidad : String) - listaPiezasRequeridas : Vector + eliminaEntidades()

int - nombreServidor : String

+ obtieneIdEntidad() : - idServidor : String + recibeSolicitud(idEntidad - referencia : String listaRecolectadoEntidad : Vector) + getReferencia() : String

- ensamble : boolean- opcionTolerancia : bo

- opcionSuscripcion : boolean - idObjetoEscucha : String

orMensajes - enviadorMensajes : Enviad- path : String

MotorLectura

+ compra(entidentidadDestino : String, nombreProString, cantidad : int, idProveedor : String) + ensamble(nombrePieza : String)

+ MotorLectura() jecucion(archivo :

+ obtieneServidorEString) : String + obtieneNumeroPuerto (archivo : String)

+ creaEntidad(entidad : EntidadMov+ eliminaEntidad(identidad : String)

: int

- path : String

MotorConectaDB

+ eliminaEntidades() int + obtieneIdEntidad() :

+ recibeSolicitud(idEntidad listaRecolectadoEntidad : Vector) + requiereTolerancia(opcionToleranciboolean, opcionSuscripcion : boolean) + getReferencia() : String

tring + getIdObjetoEscucha() : S- url : String

+ inicio() s[] : String) - login : String + main(arg

- passwd : String- con : Connection - stmt : Statement

MotorCliente + MotorConectaDB() sultSet + query(s String) : Re

+ ejecuta(e String) : boolean + cierraConexion()

oducto : String, + AccesoriosCliente()

- obj : AccesoriosInterfaz - em : EnviadorMensajes

+ compra(nombrePr+ compra(idObjetoEscucha : String,

o :

il :

cantidad : int, idProveedor : String) + ensamble(nombrePieza : String, entidadOrigen : String, entidadDestin

String, nombreProducto : String, cantidad: int, idProveedor : String) + ensamble(idObjetoEscucha : String,

idProveedor : String)

entidadOrigen : String, entidadDestino : String, nombrePieza : String) + recibeSolicitud(idObjetoEscucha : String, entidadOrigen : String, entidadDestino : String, idEntidadMovString, listaRecolectadoEntidad : Vector)