Implementación de un Sistema de Información basado en componentes con J2EE.

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Implementación de un Sistema de Información basado en componentes con J2EE."

Transcripción

1 Implementación de un Sistema de Información basado en componentes con J2EE. Sebastián Bengochea Fabián Fajardo Juan Diego Ferré Instituto de Computación Facultad de Ingeniería Universidad de la República Julio Herrera y Reissig 565 5to. piso, Montevideo 11300, Uruguay Fax: Resumen: El siguiente documento presenta la aplicación en un caso de estudio ( Sistema de Gestión Hotelera [1]) del artículo Arquitectura de Sistemas de Información basados en Componentes sobre la Plataforma J2EE [2]. En el mismo se expone una metodología para a partir de un documento de arquitectura lógica basada en componentes se pueda obtener una implementación en la plataforma J2EE. La implementación del Sistema de Gestión Hotelera se basa en los documentos de arquitectura [3] y [4]. En este reporte se presenta el desarrollo e implementación de uno de los casos de uso del Sistema de Gestión Hotelera, puntualmente Hacer Reserva. Se expondrán los cambios y consideraciones tomados a la hora de implementar. Por cada capa se realizará una discusión de posibles decisiones alternativas, evaluando ventajas y desventajas de estas. Así mismo se presentarán limitaciones encontradas en la plataforma. Finalmente se concluirá sobre la aplicación del documento utilizado para realizar el pasaje de la arquitectura basada en componentes a J2EE [2] y el manejo de la persistencia en la plataforma utilizada. Palabras clave: Sistemas de Información, Java 2 Enterprise Edition, Enterprise Java Beans, Desarrollo basado en componentes, Arquitectura de Software.

2 Tabla de Contenidos 1. Introducción Caso de Uso: Hacer Reserva Hacer Reserva Identificar Cliente Alta Cliente Confirmar Reserva Implementación de Hacer Reserva Máquina de Estado: Identificar Cliente Máquina de Estado: Alta Cliente Máquina de Estado: Confirmar Reserva Maquina de Estado: Hacer Reserva Arquitectura del Sistema Interfaz de Usuario UI de Diálogos de Usuario Diálogos de Usuario Servicios del Sistema Servicios de Negocio Interfaz de Usuario Discusiones UI de Diálogos de Usuario Discusiones Diálogos de Usuario Composición de Casos de Uso Discusiones Servicios del Sistema Discusiones Servicios de Negocio Persistencia usando CMP Diseño de la Base de Datos Discusiones Conclusiones Persistencia Referencias Anexo: Máquinas de Estado Identificar Reserva Tomar Reserva Cancelar Reserva Modificar Reserva Página 2 de 33

3 1. Introducción Durante la últimos años ha resurgido con fuerza renovada el interés por parte de las empresas actuales de poner en producción Sistemas de Información, que provean mayor valor a sus negocios. La amplia difusión y fácil acceso a Internet desarrollado en la década pasada han permitido generar no solo una gran infraestructura, sino que han sido de central importancia para concebir nuevas tecnologías, las cuales permitan desarrollar Sistemas de Información: Flexibles: que sea posible (sin requerir un gran esfuerzo) la incorporación de nuevos requerimientos en el tiempo. Escalables: que permitan atender una demanda creciente de solicitudes de servicios sin necesidad de realizar grandes cambios en la implementación original del sistema. Un ejemplo de esto es la gran cantidad de usuarios capaces de acceder por la Web. Independientes del Hardware: la concepción de un sistema de Información sea independiente del fabricante del Hardware (por ejemplo Arquitectura del Sistema, Sistema Operativo, DBMS, etc). Interoperables: los sistemas puedan brindar y utilizar servicios de otros sistemas, eventualmente coordinando y cooperando para llegar en conjunto a una solución final de forma sencilla. Rápido desarrollo: dados los tiempos actuales y la gran competencia, la concepción de cualquier sistema debe de realizarse cada vez en menor tiempo, intentando en etapas tempranas la puesta en producción de parte del sistema para de forma incremental incorporar nuevas funcionalidades. Java 2 Plataform, Enterprise Edition (J2EE) ha surgido y madurado en los últimos años como una de las tecnologías utilizadas para concepción de Sistemas de Información. J2EE es una especificación que intenta resolver los problemas antes presentados, brindando servicios de persistencia, seguridad, transaccionalidad, presentación web (Páginas HTML generadas dinámicamente con código java JSP hasta Web Services sobre el estándar SOAP), entre otros. En el presente reporte se presenta la experiencia de desarrollar un Sistema de Información basado en componentes utilizando JBoss [5], el cual es una implementación open source de J2EE. El sistema desarrollado es el Sistema de Gestión Hotelera [1] y el proceso de desarrollo utilizado es el presentado en el artículo Arquitectura de Sistemas de Información basados en Componentes sobre la Plataforma J2EE [2]. En dicho artículo se expone una metodología para a partir de un documento de arquitectura lógica basada en componentes se pueda obtener una implementación en la plataforma J2EE. Se presentarán las distintas capas de la Arquitectura y como fue implementada cada una. Se analizarán las decisiones tomadas y posibles alternativas en la implementación. Finalmente se concluirá sobre la aplicación del documento utilizado para realizar el pasaje de la arquitectura basada en componentes a J2EE [2] y el manejo de la persistencia en la plataforma utilizada. Página 3 de 33

4 2. Caso de Uso: Hacer Reserva A continuación se presenta el caso de uso Hacer Reserva y los casos de uso que lo componen [3] Hacer Reserva Nombre Hacer Reserva (CU1) Actores Creador de Reserva, Sistema de Mensajería Actividades Ver Disponibilidad, Sugerir Alternativas, Hacer Reserva, Confirmar Reserva Sinopsis Este caso de uso comienza cuando el Creador de Reserva solicita crear una reserva. El sistema chequea la disponibilidad de una habitación en un hotel solicitado. Si hay disponibilidad el Sistema hace la reserva y le confirma la misma al cliente. Si no hay disponible una habitación, el sistema sugiere hoteles alternativos. Curso Típico de Eventos 1a. Incluir Identificar Cliente (CU2). Extensiones 1b. Incluir Alta Cliente (CU3) 2. Creador de Reserva indica hotel (en caso de estar en la Recepción de un hotel esta información se provee automáticamente), tipo de habitación y duración de la estadía. 3. Sistema confirma disponibilidad. 4. Sistema registra la reserva. 5. Incluir Confirmar Reserva (CU4). 1a. No existe el cliente: 1. Incluir Alta de Cliente. 2. Resume 2. 3a. No hay disponibilidad: 1. Sistema busca disponibilidad en otros hoteles. 1a. No hay disponibilidad en ningún hotel: 1. Sistema notifica a Creador de Reserva. 2. Resume Creador de Reserva indica un hotel de su conveniencia. 2a. Creador de Reserva prefiere cambiar datos de la reserva: 3. Resume Resume 2. Página 4 de 33

5 2.2. Identificar Cliente Nombre Identificar Cliente (CU2) Actores Cliente, Sistema de Mensajería Actividades N/A Sinopsis Identifica al actor como cliente registrado. Curso Típico de Eventos 1. Cliente provee el nombre de usuario y el password. Extensiones 2. Sistema localiza al cliente. 3. Sistema comprueba el password. 1a. Cliente no conoce el nombre de usuario ni el password: 1. Fallo. 1b. Cliente no conoce el password: 1. Sistema localiza al cliente. 2. Sistema notifica al Sistema de Mensajería que envíe al cliente con el password. 3. Sistema notifica al Cliente que el password ha sido enviado por Resume 1. 2a. Sistema no encuentra un cliente con el identificador indicado: 1. Sistema notifica el error. 2. Resume 1. 3a. El password ingresado es incorrecto: 1. Sistema notifica el error. 2. Resume Alta Cliente Nombre Alta Cliente (CU3) Actores Cliente, Sistema de Mensajería Actividades N/A Sinopsis Registrar al actor cliente como un usuario válido del sistema. Curso Típico de Eventos 1. Cliente provee cédula de identidad, el nombre de usuario, password, , dirección, teléfono y móvil. Extensiones 2. El Sistema registra el cliente. 1. Cliente ingresa una cédula, password, teléfono o móvil no valido: 1. Fallo. 2. Falta algún dato requerido: 1. Fallo. 3. Cliente ya existe: 1. Fallo. Página 5 de 33

6 2.4. Confirmar Reserva Nombre Confirmar Reserva (CU4) Actores Sistema de Mensajería Actividades Confirmar Reserva Sinopsis Notifica al cliente cambios en una reserva. El mecanismo de comunicación puede ser , beeper, mensaje al celular o fax, en función de los datos que se tenga del cliente y el modo de comunicación elegido. Si el cliente es extranjero solo puede utilizarse . Curso Típico de Eventos 1. Sistema identifica el mecanismo de comunicación con el cliente. Extensiones 2. Sistema prepara información de la reserva. 3. Sistema solicita al Sistema de Mensajería el envío del mensaje al cliente. N/A Página 6 de 33

7 3. Implementación de Hacer Reserva La implementación del sistema se orientó en todo momento a los casos de uso y procesos de negocio. Muchas de las decisiones tomadas a la hora de implementar buscan que el sistema tenga las siguientes características: Facilidad de incorporar nuevos casos de uso, reutilizar y cambiar lo menos posible el código. Composición de forma transparente de los casos de uso. Esto implica anidamiento de los casos de uso y reutilización de la lógica de negocios en todas las capas del sistema. Dichas características nos permiten centralizar lógica en un único punto con los consecuentes impactos que esto tiene (mantenibilidad, evolucionabilidad), acorta los tiempos de desarrollo y permite la construcción incremental del sistema (comenzando por los CU más simples y reutilizando estos en CU más complejos). La plataforma utilizada para implementar el Sistema de Gestión Hotelera es J2EE, puntualmente se utilizaron las siguientes herramientas: JBoss Como Servidor de Aplicaciones [5]. Tomcat 4.1 Como Servidor Web [6]. Castor 9.5 Usado para el manejo de XML [7]. Oracle 8i Como Base de Datos sobre la cual se persistieron los datos. La versión de Java utilizada para desarrollo y máquina virtual fue JSDK Se tomo la decisión de utilizar el servidor Web (Tomcat 4.1) independiente (no como un servicio) del servidor de aplicaciones (JBoss 3.2.1). Esto permite (por ejemplo en ambientes de producción) que ambos servidores se encuentren en máquinas distintas, lo cual en cierta medida facilita la escalabilidad de la solución. Debido a esta separación y al correr en Máquinas Virtuales distintas el acceso desde el servidor Web se logra a través del uso de interfaces remotas. Se presentará a lo largo del presente documento el desarrollo del caso de uso Hacer Reserva. El mismo incluye otros casos de uso y sirve a modo de ejemplo, de cuales fueron los pasos y decisiones tomadas en el desarrollo del sistema. A partir de la descripción de los casos de uso (CU), el primer paso es desarrollar cada una de las máquinas de estado, comenzando por aquellas que componen Hacer Reserva. Notar que la composición de CU en su forma más general puede derivar en un grafo acíclico dirigido, donde se comenzaría por implementar los CU cuyos grado de salida son cero (no dependen de otro CU). Página 7 de 33

8 En la Figura 1, puede verse la Arquitectura Lógica del caso de uso Hacer Reserva, la misma fue desarrollada en base a lo definido en [2]. Figura 1 En el desarrollo de las máquinas de estado, se manejó en todo momento una relación uno a uno entre página JSP y estado. Esto facilita en gran medida la concepción del sistema y permite darle características de usabilidad orientadas a un sistema Web. A continuación se presentan los diagramas de máquinas de estado de Hacer Reserva (En el Anexo 1 están las máquinas de estado de todos los CU implementados). Los estados grises representan acciones dentro de los estados. Página 8 de 33

9 3.1. Máquina de Estado: Identificar Cliente Figura Máquina de Estado: Alta Cliente Figura 3 Página 9 de 33

10 3.3. Máquina de Estado: Confirmar Reserva Figura Maquina de Estado: Hacer Reserva Figura 5 En la máquina de estado de la Figura 5 se puede apreciar la composición de casos de uso para AltaCliente, IdentificarCliente y ConfirmarReserva, correspondiente a los estados con estereotipo composite. Página 10 de 33

11 4. Arquitectura del Sistema En la Figura 6 se presenta la arquitectura del sistema en capas, utilizando para el mismo un modelo estricto (cada capa utiliza solo servicios de su capa inmediata). Figura Interfaz de Usuario Esta capa es la encargada de presentar al usuario la información relevante del sistema, permite al usuario manipular dicha información. En esta capa se encuentran los formularios, páginas web, documentos, etc UI de Diálogos de Usuario Capa encargada de manejar la lógica de Interfase de Usuario, es responsable de coordinar la presentación al usuario. Por ejemplo coordinando la secuencias de páginas correctas a ser desplegadas al usuario en la capa vista en 4.1. Página 11 de 33

12 4.3. Diálogos de Usuario Esta capa se encarga de manipular la lógica de los diálogos con el usuario, esta capa es la encargada de mantener el estado actual de comunicación con el usuario. Cada comunicación por parte del usuario con el diálogo implica el manejo de una transacción Servicios del Sistema En esta capa se encuentra la lógica encargada de resolver los requerimientos funcionales del sistema. Esta capa cuenta con un conjunto de componentes (subsistemas) encargados cada uno de modularizar una funcionalidad o servicio del sistema global, la composición de estos componentes permite manejar una solución con alta cohesión y bajo acoplamiento. También se encuentran en esta capa adaptadores de sistemas externos. 4.5 Servicios de Negocio Capa encargada de manejar los tipos estables del negocio, entre otras cosas manejo de la información persistente del sistema. Página 12 de 33

13 5. Interfaz de Usuario Esta capa esta compuesta por las páginas JSP, HTML y archivos JavaScript. Como front end de nuestro sistema, las páginas serán accedidas entonces utilizando un Browser (cliente fino) por medio del cual el usuario va ha interactuar con el sistema. Todas las páginas HTML generadas a partir de una JSP están configuradas para realizar el submit a un Servlet Despachador, utilizado como facade del sistema y único punto de entrada de la capa UI Dialogos de Usuario. El Despachador será también el encargado de redireccionar las respuestas por parte de la capa Diálogo de Usuario a páginas JSP (eventualmente cualquier URL) definidas a través de un Mapa. Las funciones del despachador serán presentadas en la siguiente sección. Si bien utilizamos un cliente fino como es un Browser HTML, realizamos verificaciones sintácticas de los datos en las mismas páginas HTML por medio de funciones JavaScript. Esto disminuye el tráfico de datos a través de la red y libera de procesamiento los servidores web y de aplicaciones. La estructura del sitio Web se basa en los casos de uso. Contamos con una página HTML inicial que permite disparar la ejecución de los casos de uso disponibles, los cuales se encuentran en subdirectorios con nombres descriptivos tal como se ve en la Figura 7, en la cual se expone un diagrama de dependencias de las arquitectura de ejecución para el CU Hacer Reserva. Figura 7 Discusiones Es posible dotar de lógica al Cliente (Browser), utilizando funciones y códigos JavaScript. En la implementación presentada el uso de JavaScript se limitó al de verificación sintáctica. Si bien esto mejora la eficiencia de la aplicación (ya que errores sintácticos son detectados antes de enviar los datos al servidor) genera replicación de las validaciones, las que deben de incluirse en la capa Diálogos de Usuario. Considerar la inclusión de validaciones sintácticas en la capa Dialogos de Usuario (eventualmente alguna capa inferior) permite reutilizar la máquina de estado, lógica y validaciones en otros contextos de visualización o acceso a los Datos, como por ejemplo clientes remotos Java, Web Services o aplicaciones PDA. El uso de JavaScript además, permite implementar dependencias entre controles, resolviendo el correspondiente join de las tablas en el cliente. Un ejemplo concreto de esto es la dependencia entre dos combos de una página, donde el valor seleccionado en el primero, limita las posibilidades de elección en el segundo (elegir un hotel limita la elección del tipo de habitación sin necesidad de realizar un submit al Servidor). Si bien esto puede mejorar la usabilidad de las páginas reduciendo su número, es necesario evaluar la aplicación de este mecanismo en base a la cantidad de datos utilizados, ya que de otra forma los tiempos de carga pueden incrementarse notoriamente en los casos de tablas con grandes cantidades de registros. Página 13 de 33

14 El informe de errores generados por una página fue centralizado en una lista de strings con los mensajes correspondientes, asociados a errores semánticos (eventualmente sintácticos), que se despliega al comienzo de la misma página cuando es regenerada. Esto disminuye la usabilidad, ya que los mensajes de error no se relacionan directamente con el campo al que se refieren. Una solución a este problema es utilizar una tabla de dispersión (java.util.map) que permita asociar a cada control a desplegarse en la página un estado de error con su correspondiente mensaje. La reutilización de páginas web fue en realidad una consecuencia de la reutilización de casos de uso. Otro enfoque posible es crear páginas independientes inclusive del caso de uso y reutilizables en cualquier parte de la aplicación. La desventaja es el incremento en la complejidad de cada página, donde deben de ser parametrizadas características tales como títulos, formatos, etc. En esta aplicación puntual, las páginas candidatas a este tipo de implementación no se reutilizarían lo suficiente como para justificar el aumento en los tiempos de desarrollo y dificultades de mantenimiento. 6. UI de Diálogos de Usuario La comunicación de datos a través de las distintas capas del sistema se realiza mediante JavaBeans serializables. Cada CU a nivel de la Interfaz de Usuario y UI de Dialogo de Usuario tienen definida una Interfase que será el medio de comunicar datos entre estas dos capas. Dichas interfases deben implementar la interfase base IDatos y las correspondientes de todos los CU que estén incluidos en el primero. En la Figura 8 se muestra el diagrama de clases del CU Identificar Cliente. Figura 8 La interfase IDatos define tres propiedades, que serán usadas en todos los CU: mensaje : String - Que son mensajes propagados desde la capa Diálogos de Usuario para ser presentados al Usuario a través del HTML generado por la JSP. errores : List - Corresponde a una lista de errores encontrados en la ejecución de un diálogo con el usuario, por ejemplo errores transaccionales o semánticos. comando : String En una página HTML el usuario puede disparar más de un evento distinto (por ejemplo seleccionar dar de alta un nuevo usuario o identificarse como un cliente ya existente), el comando entonces le indica al diálogo cual de esto eventos fueron seleccionados por el usuario. En la figura 9 se muestra una página con tres posibles eventos disparados por el usuario en el CU Hacer Reserva. Página 14 de 33

15 Evento generado por el usuario: CMD_AUTENTICAR Evento generado por el usuario: CMD_CANCELAR Figura 9 Evento generado por el usuario: CMD_ALTA_CLIENTE Los comandos posibles están definidos para cada CU en su correspondiente interfase, de esta forma se logra centralizar por medio de variables estáticas finales los nombres usados. Notar que CMD_CANCELAR es un comando definido en la interfase IDatos ya que en todos los CU el usuario puede cancelar su ejecución. La siguiente parte de la máquina de estado de Hacer Reserva muestra como los comandos corresponden a las entradas que generan cambios de estado, en nuestro caso alta corresponde a CMD_ALTA_CLIENTE e identificar a CMD_AUTENTICAR. Figura 10 Cuando el usuario dispara un evento en una página HTML, se esta realizando el submit del formulario correspondiente. Los datos de la página llegan al Servlet Despachador como un objeto HttpRequest. A continuación el Despachador debe de obtener la instancia de IDatos correspondiente al caso de uso corriente y cargar la misma con los valores enviados desde la página. El mecanismo utilizado para cargar el Bean que implementa la interfase IDatos que se utiliza en el Despachador es el siguiente: 1- El Servlet Despachador recibe un Request correspondiente a un submit HTML a través del protocolo HTTP. 2- El Servlet obtiene el bean que implementa IDatos, puede ser de la HttpSession si se encuentra corriendo un CU, o al disparar el comienzo de un nuevo CU del dialogo correspondiente. Página 15 de 33

16 3- Por medio de introspección el Servlet Despachador analiza los métodos de la interfase IDatos y por cada método set<nombrepropiedad> si existe un campo en el request que coincida con el nombre de la propiedad lo utiliza en el método set para cargarlo al bean. De esta forma se logra que el Servlet Despachador sea independiente de las implementaciones de distintos CU, lo cual nos permite mantener muy sencillo el código y además agregar nuevos CU sin necesidad de tener que recompilar la lógica existente. Es necesario que el programador llame a los controles HTML de igual forma que se llaman las propiedades definidas en la interfase que implementa el bean, para que el mecanismo de introspección sea exitoso. Para mantener al despachador desacoplado de los CU y que el mismo funcione de forma transparente tanto en la llamada a los diálogos como en la respuesta de estos, es que se define un archivo XML que permite configurar las redirecciones de las respuestas según el estado de cada CU a una URL particular, el esquema que valida a dicho XML puede verse en la Figura 11. Este archivo será cargado por una clase Mapa (Singleton) usada por el Servlet Despachador. Figura 11 El XML cuenta con un elemento propiedadesjndi que contiene un conjunto de propiedades (nombre, valor) que serán usadas para configurar el servicio de directorios sobre el cual la factory DialogoFactory se va a encargar de obtener las interfaces correspondientes a los diálogos de usuario y retornarlas a medida que el Servlet Despachador las necesite. Es posible, cambiando la estructura del XSD, que cada diálogo tenga asignado un conjunto de propiedadesjndi. De esta forma podrían obtenerse diálogos de múltiples servidores de aplicación. A cada CU le corresponde en el XML un elemento infodialogo, con los siguientes atributos: nombre: Corresponde al nombre que identifica al Diálogo. titulo: Titulo del Diálogo actual (utilizado para la presentación en las páginas web). interfacehome: Nombre de la interfase Home del SessionBean a ser obtenido por medio del servicio de Directorios de JNDI. Además infodialogo tiene un conjunto de hijos infoestado los cuales, a partir de un estado actual de ejecución del dialogo, definen a que URL debe de ser redireccionada la respuesta a el usuario. Para el manejo de XML se utilizo castor. A partir del esquema XSD que valida la estructura del XML usado en el singleton Mapa, se generan utilizando Castor un conjunto de clases capaces de leer el XML de texto desde un InputStream (por ejemplo de un archivo en disco o como un recurso remoto). A su vez estas clases corresponden a los elementos definidos en el esquema lo cual facilita y abstrae la lectura (parsing) y manipulación del XML. Página 16 de 33

17 A continuación se presenta una instancia de XML correspondiente al esquema del Mapa para el CU Hacer Reserva. Figura 12 Notar que las entradas del Mapa corresponden a los nombres de los diálogos seguido por los nombres de los estados, y por esto en la composición de CU encontramos entradas únicas tal como puede verse en el ítem 2 y 3 de infoestado. En la Figura 13 puede verse la interacción de las 3 primeras capas pasando por el Servlet Despachador e iniciando un nuevo diálogo o caso de uso. Figura 13 Cada vez que se dispara un nuevo CU, viene en la HttpRequest un parámetro nomdialogo cuyo valor corresponde al atributo nombre del elemento infodialogo del XML. El Despachador busca entonces el objeto diálogo en la httpsession. En caso de no encontrarlo, es creado a través de la factory DialogoFactory. Una vez que el Despachador tiene un objeto diálogo, el cual implementa la interfase IDialogo, lo que hace es invocar el método ejecutar con argumento IDatos nulo. El resultado de la invocación Página 17 de 33

18 de ejecutar retorna una instancia de IDatos la cual será almacenada en la HttpSession para ser utilizada por la JSP en la generación dinámica de las páginas HTML. El resultado además cuenta con un identificador el cual corresponde a una entrada en el Mapa, indicando al despachador a que URL debe redireccionar la ejecución del corriente CU. Lo que tenemos entonces es un Servlet Despachador que se adapta y configura de forma declarativa a un conjunto de casos de uso. En la Figura 14 se presenta la ejecución de un caso de uso ya en proceso: Figura 14 Discusiones En la implementación de la factory encargada de retornar la instancia de cada Diálogo se encapsulo el acceso a JNDI, de forma tal que dicha factory solo retorna una interfase Idialogo. Esto permite abstraer tanto la configuración remota (por medio del XML, ver sección 6), como la distribución real de dichos diálogos. Se evaluó el uso de Struts [8], como framework a utilizar para el desarrollo de la primeras dos capas (Interfaz de Usuario y UI de Diálogos de Usuario). Encontramos que dicho framework no es aplicable en el modelo utilizado ya que define la máquina de estados en la capa UI de Diálogos de Usuario y no en Diálogos de Usuario tal cual especificado en [2]. El hecho que la máquina de estados este definida en una capa independiente de la vista permite reutilizar la lógica de la misma en otros contextos, como por ejemplo aplicaciones clientes Java o PDA. 7. Diálogos de Usuario En esta capa se implementa la máquina de estados, se coordina la composición de casos de uso y se construyen las respuestas a ser devueltas luego de la ejecución. Al igual que en las otras capas mantenemos una organización de paquetes orientada a elementos de uso común y casos de uso, con lo cual tenemos un paquete por cada CU y otro sub paquete estado con las clases que implementan el pattern state [9] y definen la máquina de estado correspondiente, tal como puede verse en la Figura 15. Página 18 de 33

19 Figura 15 Los diálogos en esta capa serán implementados por Statefull Session Beans, los cuales además son los encargados de iniciar (begin) y finalizar (commit, rollback) una transacción que enmarque la operativa por parte del usuario. Es por esto que los Session Bean de esta capa serán todos configurados como BMT (Bean Managed Transaction), mientras que los subsecuentes Session Beans del resto de las capas serán CMT (Container Managed Transaction) heredando estos la transacción abierta por el Diálogo de Usuario [2]. Por otra parte los diálogos definirán interfaces remotas (para ser invocadas desde el Servlet Despachador) e interfaces locales (usadas por las composiciones de casos de uso). A continuación en la Figura 16 se expone el diagrama de clases que define el API usado para el desarrollo del conjunto de diálogos (parte del paquete uy.edu.fing.leda.dlgusuario.base). Figura 16 Página 19 de 33

20 Las interfases de IEstado e IContextoEstado son las usadas para implementar la máquina de estado (siguiendo el pattern state [9]). IContextoEstado va ha ser implementada por el diálogo. A su vez cada estado va ser un singleton que solo contendrá la lógica de ejecución, condicionada por los datos de entrada IDatos. Cada cambio de estado se implementa invocando sobre IContextoEstado el método setestado con el nuevo estado al cual pasa a encontrarse el diálogo actual. Resultado es la clase que se retorna luego de una ejecución. En la ejecución un diálogo (o caso de uso) puede encontrarse en una de tres etapas: Éxito, Fallo y En Proceso. La información de la etapa en que se encuentra un diálogo, permite en la composición de casos de uso conocer cuando ha finalizado y de que forma (Éxito o Fallo) la ejecución del diálogo compuesto. Por ejemplo la composición en Hacer Reserva del CU Alta Cliente (ver Figura 4), el estado AltaCliente compuesto va ha invocar ejecutar del diálogo Alta Cliente mientras la etapa del resultado de la ejecución sea En Proceso, cuando la etapa sea Éxito, entonces ocurrirá un cambio de estado (ya que la ejecución compuesta fue exitosa) y en caso de que la etapa sea Fallo se finalizará (en Fallo) la ejecución del CU Hacer Reserva. La clase Resultado también cuenta con una instancia de IDatos, la cual tiene información relevante a la ejecución del CU. Por ultimo esta clase tiene los métodos concatenarrutadlgestado y getrutadlgestado, estos métodos son usados en la composición de CU para poder generar en el Mapa entradas únicas que permitan redirigir exitosamente las respuestas del Despachador para cada CU puntual Composición de Casos de Uso La composición de casos de uso se deriva del documento de requerimientos que define la inclusión de CU más simples dentro de otros más complejos. Las siguientes decisiones de implementación (muchas de las cuales ya presentamos) son usadas para lograr la composición de CU de forma transparente: 1- Es fundamental que la instancia de IDatos de el caso de uso compuesto, implemente las interfaces correspondientes de IDatos de cada uno de los CU que lo componen. Esto permite que al interactuar entre casos de uso usando el mismo bean de información, no exista la necesidad de realizar transformaciones o adaptaciones intermedias, esto puede verse en la Figura 17. Página 20 de 33

21 Figura 17 Por ejemplo en Hacer Reserva, cuando se invoca el Diálogo usado para el CU Confirmar Reserva, basta con invocar el mismo pasándole como argumento la instancia actual de IDatos (IDatosHacerReserva), ya que la misma es también una instancia de IDatosConfirmarReserva. En algunos casos se hace necesario también cambiar el comando actual, para que la composición funcione correctamente. 2- Se define un estado (agregando al nombre el sufijo Comp en la implementación) el cual es el encargado de coordinar la ejecución del CU compuesto, tal como puede verse en la Figura 18, un extracto de la máquina de estado de hacer reserva. Figura 18 Página 21 de 33

22 El estado IdentAlta recibe como entrada por parte del usuario una solicitud de alta (CMD_ALTA_CLIENTE), a partir de la cual obtiene la interfase de diálogo correspondiente al CU Alta Cliente y lo deja guardado (con el nombre del diálogo) en la interfase IContexto usando el método setproperty (ver Figura 19). Realiza el cambio de estado a AltaClienteComp, a través de IContexto usando setestado. Figura El estado encargado de realizar la composición obtiene de la interfase IContexto el diálogo correspondiente al CU que este estado está componiendo. En el ejemplo AltaClienteComp obtiene de IContexto el diálogo de nombre DlgAltaCliente. Es AltaClienteComp el encargado de disparar la ejecución inicial y de controlar la evolución del CU compuesto. Es aquí que se utilizan las etapas de un CU definidas en la clase Resultado (ver Figura 16). Es importante notar que cada Diálogo y estado que invoca una ejecución compuesta de casos de uso, debe agregar al Resultado su nombre, con lo cual obtenemos entradas únicas para el Mapa de redirección del Servlet Despachador. Esto permite reutilizar (o no) las JSP del CU compuesto, dando la flexibilidad al programador de eventualmente cambiar el front end en la composición. En el ejemplo de composición de Alta Cliente se tiene una entrada para el mapa (Figura 12, infoestado 3): /IngresoDatos/DlgAltaCliente/AltaClienteComp/DlgHacerReserva Esta clave va ha permitir al Despachador, obtener la URL a la cual redirigir el resultado de la ejecución (de la composición de Alta Cliente en Hacer Reserva), lo importante es notar que para cada combinación de CU compuesta se tiene una entrada distinta. Figura 20 Página 22 de 33

23 El mecanismo de composición utilizado permite de forma transparente (para el CU incluído) integrar una secuencia no acotada de casos de uso Discusiones Una alternativa evaluada para componer Casos de Uso fue la de utilizar un Stack, el cual se encargue de mantener los estados previos. Esta alternativa fue desechada debido a los siguientes problemas: La ubicación del Stack debería ser UI de Diálogos de Usuario, para que el servlet Despachador pueda manejar el estado actual. El problema de este enfoque es que separa la lógica de la composición de estados entre dos capas UI de Diálogos de Usuario y Diálogos de Usuario, limitando el reuso de la misma desde otras vistas. Si se desplaza al Stack hacia la capa de Diálogos de Usuario para mantener la política de reuso, se hace complejo su manejo desde el Despachador. En particular, se hace difícil para el Despachador determinar cual es el diálogo actual que debe de ejecutar y obtener el stub del mismo (recordad que los diálogos son remotos). Para la implementación de estados se utilizo el pattern singleton [9]. Esta decisión fue tomada debido a que permite reducir la cantidad de objetos Java creados aumentando la escalabilidad del sistema. La decisión de que los CU que componen (reutilizan) otros CU implementen cada interfase IDatos de los CU compuestos, genera problemas cuando dos campos con el mismo nombre, tienen significados semánticos distintos. Un problema podría surgir en el procesamiento del bean IDatos que va a contener y procesar un solo parámetro, dados por herencia de las interfaces, cuando deben de existir al menos dos parámetros distintos, siendo esta una limitación en la composición de Casos de Uso. En la implementación del sistema no encontramos ningún caso de este tipo, ya que los parámetros con igual nombre, en la composición de CU, correspondían a parámetros equivalentes semánticamente. La existencia de una única interfase que herede de IDatos en todos los CU, facilita la composición de CU y la invocación de más de un paso de ejecución de la máquina de estado de forma consecutiva. La alternativa a este enfoque, es el de utilizar una interfase por cada página JSP. Aunque cada interfase herede de IDatos, es necesario en cada invocación de ejecución a la máquina de estado, construir la instancia de la nueva interfase correspondiente. Si bien esto puede facilitar la reutilización de la página JSP, limita la composición de CU y el uso de la máquina de estados en ambientes que no sean Web, ya que es necesario en cada cambio de estado la construcción y carga de un nuevo Bean. 8. Servicios del Sistema Esta capa es la encargada de coordinar y de resolver los requerimientos funcionales del sistema. Interactúa con los componentes externos (en nuestro caso con el sistema de facturación). Los Session Bean definidos como CMT (Container Manager Transaction) fueron mapeados sin problemas a partir del documento de la Arquitectura. Discusiones Al diseñar esta capa se planteó la disyuntiva de permitir una comunicación horizontal (entre capas), vertical (entre objetos de la misma capa) o una combinación de ambas. Esto debido principalmente a que algunos diálogos de usuario, para resolver los casos de uso, requieren el uso Página 23 de 33

24 de funciones de distintos servicios del sistema. Se plantearon dos opciones, o bien era el diálogo de usuario quien se encargaba de llamar a ambos servicios de sistema o se permitía encadenar dichas invocaciones. Un ejemplo de este problema se da en el momento de hacer una reserva y enviar la confirmación: para hacer la reserva se utiliza sistemareservas, al enviar la confirmación se utiliza sistemaclientes (para obtener la dirección de correo electrónico) y sistemamensajería (es quien envía el mail). En la implementación realizada se decidió permitir la comunicación horizontal y la vertical, es decir, la que se aplicara mejor en cada caso ya que no permitir una de ellas no implicaba ninguna ventaja. Otro aspecto a destacar de esta capa es su sencillez. Sin contar el problema descrito anteriormente, no se presentó ninguna dificultad para su implementación debido a que la mayoría de los métodos de las clases solo realizan una invocación a métodos de la capa inferior (Servicios de Negocio). Esto lleva a replantear la utilidad de la utilidad de esta capa y el porqué de su existencia. Sin embargo es donde se realiza la comunicación con los sistemas externos, como ser el sistema de mensajería y el sistema de facturación, lo cual no es razonable implementarlo (conceptualmente) ni en la capa inferior (Servicio de negocio) ni en la capa superior (Diálogos de Usuario). Una opción alternativa es manejar una arquitectura de capas relajada, es decir, permitir utilizar funcionalidades de los Servicios de Negocios desde los Diálogos de Usuario. De esta forma se pueden quitar los servicios del sistema que manejan entidades locales y dejar solo aquellos que se utilizan para la comunicación con sistemas externos. Esta opción se descartó debido a que se optó por una arquitectura en capas estricta. Página 24 de 33

25 9. Servicios de Negocio El manejo de los componentes persistentes se realizó por medio de dos enfoques, utilizando un conjunto de Entity Beans usando CMP 2.0 y utilizando JDBC directamente desde las implementaciones de los Managers. Los Managers permiten definir una interfase común de manejo desde la capa de Servicios de negocio, obteniéndose la flexibilidad de variar la implementación interna de forma radical sin impactar en el resto del sistema. Figura Persistencia usando CMP En la implementación basada en CMP se busca evitar en todo momento usar consultas SQL o alguna solución propietaria del servidor de aplicaciones utilizado [5], para de esta forma intentar mantener la propiedad de compatibilidad entre aplicaciones EJB. Es por esto que no se utilizó ningún Entity Bean cuyo manejo de persistencia fuera BMP. El uso de BMP puede ser importante para lograr cumplir con algunos de los requerimientos no funcionales de performance, en requerimientos clave del sistema, pero a modo de evaluación académica fue que se tomaron los dos extremos posibles de implementación de persistencia del sistema. Gran parte de los requerimientos fueron resueltos usando consultas EJB QL, las cuales son un mecanismo sencillo, flexible y compatible para la resolución de consultas sobre Entity Beans y sus Página 25 de 33

26 relaciones. Por otra parte existe una fuerte limitación de este lenguaje de consultas ya que no se pueden utilizar comparaciones ni restricciones por campos del tipo fecha. Se detectaron algunos problemas con la definición de relaciones que formen ciclos entre Entity Beans, posiblemente problemas propios del Servidor de aplicaciones utilizado [5], en muchos casos inesperadamente al recorrer las colecciones de las relaciones 1..n ocurrieron perdidas de datos almacenados en la BD. Figura 22 El Entity Bean ReservaAutonumerador es utilizado para asignar de forma independiente de la BD, un número único a cada reserva. Su implementación esta hecha de forma tal que su comportamiento sea el de un singleton. Pueden apreciarse de la Figura 22, en Reserva los métodos find utilizados para resolver parte de los requerimientos del sistema. A continuación se presentan las consultas EJB QL parametrizables utilizadas en dicho Entity Bean: findbyhoteltipo SELECT OBJECT(r) FROM Reserva r WHERE r.nombrehotel =?1 AND r.nombretipohabitacion =?2 AND (r.estado = 0 OR r.estado = 1 OR r.estado = 4) findpendientesbyclientes SELECT OBJECT(r) FROM Reserva r WHERE Página 26 de 33

27 r.cicliente =?1 AND r.estado = 0 findnotomadas SELECT OBJECT(r) FROM Reserva r WHERE r.nombrehotel =?1 AND r.estado = 0 Es importante destacar que tanto la definición como creación de la estructura de la BD se realiza en el deploy de la aplicación J2EE sobre el servidor de aplicaciones, con lo cual la estructura de la Base queda definida por los Entity Beans y sus relaciones (Foreign Keys). Se pudo verificar el funcionamiento de la abstracción de la persistencia y consultas EJB QL utilizando distintos motores de BD para el desarrollo. Los DBMS utilizados indistintamente fueron Oracle y mysql, en los mismos el deploy y comportamiento de los Entity Beans fue el mismo Diseño de la Base de Datos El modelo conceptual de la base de datos tiene una correspondencia directa con el modelo de Entity Beans presentado anteriormente, ya que la misma fue generada en el deploy de dichos beans. Posteriormente se cargaron datos y se crearon índices para agilizar las consultas más usuales. El diseño de la base de datos es el siguiente: PK,I1 Clientes ci nombre password telefono movil direccion Reservas PK,I1 idreserva I2 checkin I3 checkout I3,I2 estado FK1,I4 cicliente FK2 numero FK3 tipohabitacion Habitaciones PK,I1 numero I2 ocupada FK1 tipohabitacion FK1 nombrehotel ReservaAutonumerador HotelTHRelacion PK,I1 id numeroactual PK,FK1,I1 PK,FK2,I1,I2 tipohabitacion nombrehotel TipoHabitacion Hoteles PK,I1 nombre PK,I1 nombre detalle Figura 23 Página 27 de 33

28 Los índices fueron creados en función de las consultas que se realizan más habitualmente sobre la base, como ser la búsqueda de alternativas para un tipo de habitación, la búsqueda de una habitación disponible de un tipo en determinado hotel o la búsqueda de todas las reservas de un cliente en determinado estado en una fecha dada. Para testear la aplicación esta base fue cargada con datos de prueba. Las cantidades de tuplas cargadas para cada tabla son las siguientes: Tabla Cantidad de Registros Clientes Hoteles 20 TipoHabitacion 8 HotelTHRelacion 100 Habitaciones ReservaAutonumerador 1 Reservas Discusiones Al realizar el diseño conceptual de esta capa, se presentó el problema de cómo identificar cada una de las entidades. Las opciones manejadas fueron el uso de una clave natural para la entidad o una clave única no natural. Si bien las claves naturales se asocian más fácilmente con el objeto que representan (el nombre de un hotel por ejemplo) estas suelen depender en muchas ocasiones del contexto en que se manejen. Un ejemplo claro de esto es la identificación de un cliente, lo natural es realizarla por el nombre (no es un identificador único) o por la cédula de identidad la cual varía según el país (CI, DNI, Pasaporte, etc). Las claves no naturales no tienen problemas de contexto ni de ambigüedad, pero son más complicadas de manejar, ya que deben arrastrar siempre la clave junto con la información. Por ejemplo, al solicitar los hoteles, necesito enviar junto con el nombre (es lo que utiliza el usuario para identificar al hotel) la clave única no natural (es lo que utiliza el sistema para identificar al hotel). Esto también obliga a realizar joins o duplicar información para obtener la identificación para el usuario de un objeto (si las reservas tienen el código del hotel es necesario ir al hotel a buscar el nombre, a menos que este se encuentre duplicado en la reserva) aumentando el tiempo de consulta y/o la complejidad del esquema al desnormalizarlo. En la implementación realizada se utilizaron claves naturales debido a que su uso es menos complejo, más directo, las entidades y el esquema son simples y poseen un identificador único natural (Hotel-Nombre, Cliente-CI, etc). Página 28 de 33

29 10. Conclusiones Quedo comprobado que la aplicación de la metodología presentada en [2], permite a partir de la especificación de un sistema basado en componentes, realizar una rápida implementación en la plataforma J2EE del Sistema de Información. La implementación de los primeros CU, así como la interacción de las 3 primeras capas (Interfase de Usuario, UI de Diálogos de Usuario y Diálogos de Usuario) definiendo implementaciones que permitan componer y reutilizar casos de uso fue lo que llevo más tiempo. Luego de definidos estos puntos, la implementación del resto del sistema resulto muy sencilla, siguiendo los siguientes pasos: 1- Definición de la Máquina de Estados correspondiente al CU. 2- Implementación de la interfaz de usuario en paralelo con la implementación de diálogos de Usuario y Servicios del Sistema/Negocio (Dada la implementación declarativa del servlet Despachador prácticamente no fue necesario realizar cambios a nivel de la capa UI de Diálogos de Usuario). 3- Pruebas e Integración. Resulta interesante investigar la posibilidad de automatizar la generación de clases correspondientes a la capa de Diálogos de Usuario (máquina de estado y Session Bean del diálogo) a partir de la definición de la Máquina de Estados en algún lenguaje formal, como por ejemplo UML. A sí como también en caso de incorporar metadata de la UI, la posible automatización en la generación de la misma. La aplicación de la metodología presentada en [2] en conjunto con las decisiones tomadas en la implementación, relativas a la composición de casos de uso presentadas en el presente reporte, permiten la implementación iterativa incremental de un Sistema de Información, donde la lógica de sus componentes se encuentran centralizados (a través de casos de uso que se reutilizan) y donde el Sistema mantiene características de modularización, reuso y extensibilidad propios de una arquitectura en capas. Persistencia En tiempos de desarrollo no se detectan grandes diferencias entre una implementación de JDBC y otra enteramente realizada con CMP 2.0, salvo en algunos casos puntuales (por ejemplo con la alta, baja y modificación de cliente). El desarrollo con CMP puede ser un método eficiente si los beans son simples. Su manejo e implementación son extremadamente sencillos, una vez adquirida cierta experiencia en el tema. Para beans más complejos, las políticas de creación y carga de la información que siguen los servidores de aplicaciones en general podrían hacer que se perjudique la performance de ejecución de manera importante. Es en esos casos cuando el desarrollo con BMP puede aumentar su importancia, aunque requiera más tiempo de implementación. Cabe destacar que la convivencia entre beans BMP y CMP es posible, y el servidor de aplicaciones la hace totalmente transparente. Sin embargo, hemos podido comprobar que la tecnología EJB aún impone ciertas limitaciones no despreciables al momento de tomar decisiones de diseño que contemplen requerimientos importantes de performance (si bien es de esperar que dichas limitaciones vayan desvaneciéndose en futuras especificaciones). La limitación sobre consultas EJB QL, las cuales no soportan condiciones que contengan campos del tipo fecha plantea ser un problema no menor. El mismo tiene un gran impacto en el diseño de la solución planteada para buscar disponibilidad con alternativas. En la solución con JDBC se puede restringir la cantidad de búsqueda de reservas utilizando una condición sobre las fechas de Página 29 de 33

30 reservas disponibles, mientras que utilizando CMP es necesario cargar una gran cantidad de Entity Beans los cuales serán procesados usando lógica Java para filtrar las fechas no validas. Esta impacto a nivel de diseño nos lleva a los siguientes tiempos encontrados entre ambas implementaciones, con diferencias sustanciales: Cantidad de reservas pendientes en total: Cantidad de reservas pendientes por hotel: 4300 Buscar las resevas para tomar hoy (promedio en segundos) cmp: 12,5 jdbc: 0,1 Buscar disponibilidad Se busco una habitación de un cierto tipo en un hotel para un período de un día, donde no había disponibilidad. (Hotel Edén, Superior, 30/08/2003) cmp: 8,50 jdbc: 0,26 Buscar disponibilidad con alternativas Se busco una habitación de un cierto tipo en un hotel para un período de un día, donde no había disponibilidad. Existen 14 hoteles alternativos y solo 1 donde había disponibilidad. (Hotel Edén, Suite Presidencial, 30/08/2003) cmp: 36,0 jdbc: 2,5 La diferencia de tiempo encontrada entonces en la ejecución de una transacción hace que la puesta en producción del sistema con búsqueda de alternativas implementadas con CMP no sea viable. Esto nos lleva a plantear la posibilidad de una solución a través de un sistema que utilice en algunos requerimientos CMP y en otros BMP. Luego de realizadas las implementaciones usando persistencia a través de CMP y de JDBC, llegamos a la conclusión que el uso de Entity Beans (CMP y BMP) no tiene una gran diferencia en los tiempos de desarrollo comparado con los tiempos de JDBC. Le sumamos a esto las restricciones encontradas en CMP las cuales llevaron a diseños de soluciones poco performantes y hasta algunos problemas en la definición de relaciones con ciclos entre los beans y encontramos que la única ventaja del uso de CMP sobre la implementación directa a través de JDBC es la abstracción de las consultas SQL propietarias de cada BD. Esta limitante por otra parte puede ser evitada en caso de utilizar algún framework de persistencia entre el modelo Orientado a Objetos y el modelo Relacional (por ejemplo utilizando Castor JDO [7]). Una ventaja no estudiada del uso de la persistencia en J2EE, es el de considerar el soporte de caché de Objetos previsto como parte de la especificación. Evaluar este aspecto (ventaja del uso de BMP y CMP) en datos consultados constantemente (sobre una base en control directo por el servidor de aplicaciones) podría generar tiempos más favorables de respuesta promedio que una implementación basada en JDBC (o utilizando un framework de persistencia sin soporte de caché), quedando planteada esta interrogante para trabajos futuros. Página 30 de 33

31 11. Referencias [1] J. Cheesman, J. Daniels. UML Components, Addison Wesley, [2] - D. Perovich, L. Rodríguez, A. Vignaga. Arquitectura de Sistemas de Información basados en Componentes sobre la Plataforma J2EE, InCo Pedeciba, Montevideo, Uruguay, [3] - D. Perovich, A. Vignaga. SAD del Subsistema de Reservas del Sistema de Gestión Hotelera. Reporte Técnico RT03-15, InCo Pedeciba, Montevideo, Uruguay, [4] - D. Di Pascua, F. Hernández, A. Mackiewicz. Caso de estudio Sistema de Gestión Hotelera, SI en Arquitecturas Distribuidas, Montevideo, Uruguay, [5] - JBoss Web Site: [6] - Tomcat Web Site: [7] - Castor Web Site: [8] Struts Web Site: [9] - E. Gamma, R. Helm, R. Jonson, J. Vlissides, Design Patterns Elements of Reusable OO Software, Prentice may, Página 31 de 33

1 Vista de Casos de Uso

1 Vista de Casos de Uso Vista de Casos de Uso Esta vista describe el proceso de negocio más significativo y el modelo del dominio. Presenta los actores y los casos de uso para el sistema. Es decir que esta vista presenta la percepción

Más detalles

GUÍA TÉCNICA. Desarrollo de Proyectos en Plataforma Liferay en el Gobierno de Extremadura

GUÍA TÉCNICA. Desarrollo de Proyectos en Plataforma Liferay en el Gobierno de Extremadura Desarrollo de Proyectos en en el Gobierno de Extremadura Página 1 de 10 Control de versiones Núm Fecha Descripción Autores 1.0 01/09/2012 Estandar para el desarrollo de portales con el gestor de contenidos

Más detalles

Web Crawler en eva.fing.edu.uy

Web Crawler en eva.fing.edu.uy Recuperación de Información y Recomendaciones en la Web(2014) Grupo 4 Andrea Estefan CI 4303805-6 andyestefan@gmail.com Gerardo Fanjul CI 4542811-6 gerardo.fanjul@gmail.com Instituto de Computación - Facultad

Más detalles

SISTEMA ETAP en línea Estándares Tecnológicos para la Administración Pública

SISTEMA ETAP en línea Estándares Tecnológicos para la Administración Pública JEFATURA DE GABINETE DE MINISTROS SISTEMA ETAP en línea Estándares Tecnológicos para la Administración Pública Manual para los Organismos Índice Índice... 2 Descripción... 3 Cómo solicitar la intervención

Más detalles

Descripción de Arquitectura Repositorio de metadatos de componentes de software

Descripción de Arquitectura Repositorio de metadatos de componentes de software Descripción de Arquitectura Repositorio de metadatos de componentes de software 1. Introducción. 1.1. Propósito. 1.2. Alcance. 1.3. Definiciones. 1.4 Contexto. 1.5. Referencia. 2. Objetivos y restricciones

Más detalles

CAPITULO 2. Como se definió en el plan del presente proyecto, este será desarrollado bajo

CAPITULO 2. Como se definió en el plan del presente proyecto, este será desarrollado bajo 1 CAPITULO 2 ANÁLISIS DEL SISTEMA 1. Introducción Como se definió en el plan del presente proyecto, este será desarrollado bajo la metodología orientada a objetos. El objetivo del análisis será marcar

Más detalles

Sistema de Mensajería Empresarial para generación Masiva de DTE

Sistema de Mensajería Empresarial para generación Masiva de DTE Sistema de Mensajería Empresarial para generación Masiva de DTE TIPO DE DOCUMENTO: OFERTA TÉCNICA Y COMERCIAL VERSIÓN 1.0, 7 de Mayo de 2008 CONTENIDO 1 INTRODUCCIÓN 4 2 DESCRIPCIÓN DE ARQUITECTURA DE

Más detalles

Enterprise JavaBeans

Enterprise JavaBeans Enterprise Java Beans y JBoss Enterprise JavaBeans Es una de las API que forman parte del estándar de construcción de aplicaciones empresariales J2EE (ahora JEE 5.0) de Oracle Corporation (inicialmente

Más detalles

Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech

Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech Resumen Todo documento XBRL contiene cierta información semántica que se representa

Más detalles

Base de datos relacional

Base de datos relacional Base de datos relacional Una base de datos relacional es una base de datos que cumple con el modelo relacional, el cual es el modelo más utilizado en la actualidad para modelar problemas reales y administrar

Más detalles

Manual para Empresas Prácticas Curriculares

Manual para Empresas Prácticas Curriculares Manual para Empresas Prácticas Curriculares ÍNDICE 1. Introducción... 3. Registro y Acceso... 3.1. Registro Guiado... 4.1. Registro Guiado Datos Básicos... 5.1. Registro Guiado Contactos... 5 3. Creación

Más detalles

NOTIFICACIÓN DE MOVIMIENTOS DE ESTUPEFACIENTES POR PARTE DE LOS LABORATORIOS FARMACÉUTICOS Y ALMACENES MAYORISTAS DE DISTRIBUCIÓN

NOTIFICACIÓN DE MOVIMIENTOS DE ESTUPEFACIENTES POR PARTE DE LOS LABORATORIOS FARMACÉUTICOS Y ALMACENES MAYORISTAS DE DISTRIBUCIÓN NOTIFICACIÓN DE MOVIMIENTOS DE ESTUPEFACIENTES POR PARTE DE LOS LABORATORIOS FARMACÉUTICOS Y ALMACENES MAYORISTAS DE DISTRIBUCIÓN GUÍA PARA LA PRESENTACIÓN DE NOTIFICACIONES Versión: 27/06/2012-1 ÍNDICE:

Más detalles

Capitulo III. Diseño del Sistema.

Capitulo III. Diseño del Sistema. Capitulo III. Diseño del Sistema. Para el desarrollo del sistema en la presente tesis se utilizo el paradigma orientado a objetos utilizando el lenguaje Java en su versión 1.2. Por medio de este lenguaje

Más detalles

BASE DE DATOS RELACIONALES

BASE DE DATOS RELACIONALES BASE DE DATOS RELACIONALES Una base de datos relacional es una base de datos que cumple con el modelo relacional, el cual es el modelo más utilizado en la actualidad para implementar bases de datos ya

Más detalles

COPPEL MANUAL TÉCNICO MCC DE SISTEMAS PROGRAMACIÓN DESCRIPCIÓN DEL PROCESO DE ARQUITECTURA DE SOFTWARE

COPPEL MANUAL TÉCNICO MCC DE SISTEMAS PROGRAMACIÓN DESCRIPCIÓN DEL PROCESO DE ARQUITECTURA DE SOFTWARE COPPEL MANUAL TÉCNICO MCC DE SISTEMAS PROGRAMACIÓN DESCRIPCIÓN DEL PROCESO DE ARQUITECTURA DE SOFTWARE Creado en May/14 Objetivo: Contar con una guía de las actividades que se deben realizar en esta fase,

Más detalles

Ambiente Virtual de Comercio Electrónico B2B para la Comunidad Virtual de Negocios del departamento del Cauca

Ambiente Virtual de Comercio Electrónico B2B para la Comunidad Virtual de Negocios del departamento del Cauca Ambiente Virtual de Comercio Electrónico B2B para la Comunidad Virtual de Negocios del departamento del Cauca Ing. WILSON ALFREDO ORTEGA ORDOÑEZ Ing. JUAN CARLOS MENDEZ CAMACHO Universidad del Cauca Facultad

Más detalles

Documento de Arquitectura de Software. KunaySoft. Autores: Juan Camilo González Vargas. Javier Leonardo Parra Laguna

Documento de Arquitectura de Software. KunaySoft. Autores: Juan Camilo González Vargas. Javier Leonardo Parra Laguna Documento de Arquitectura de Software KunaySoft Autores: Juan Camilo González Vargas Javier Leonardo Parra Laguna Pontificia Universidad Javeriana Bogotá, Colombia Noviembre 2014 Tabla de contenido 1.

Más detalles

JAVA EE 5. Arquitectura, conceptos y ejemplos.

JAVA EE 5. Arquitectura, conceptos y ejemplos. JAVA EE 5. Arquitectura, conceptos y ejemplos. INTRODUCCIÓN. MODELO DE LA APLICACIÓN JEE5. El modelo de aplicación Java EE define una arquitectura para implementar servicios como lo hacen las aplicaciones

Más detalles

GUÍAS. Módulo de Diseño de software SABER PRO 2013-2

GUÍAS. Módulo de Diseño de software SABER PRO 2013-2 GUÍAS Módulo de Diseño de software SABER PRO 2013-2 GUÍAS Módulo de diseño en ingeniería El diseño de productos tecnológicos (artefactos, procesos, sistemas e infraestructura) está en el centro de la naturaleza

Más detalles

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl 1 Colección de Tesis Digitales Universidad de las Américas Puebla Morales Salcedo, Raúl En este último capitulo se hace un recuento de los logros alcanzados durante la elaboración de este proyecto de tesis,

Más detalles

MANTENIMIENTO Y SOPORTE

MANTENIMIENTO Y SOPORTE MANTENIMIENTO Y SOPORTE Copyright 2014 Magalink SA Todos los derechos reservados. Este documento no puede ser reproducido de ninguna manera sin el consentimiento explícito de Magalink S.A. La información

Más detalles

Tienda Virtual Synergy (Parte 2)

Tienda Virtual Synergy (Parte 2) Tienda Virtual Synergy (Parte 2) El catálogo electrónico de productos es la base de toda la aplicación por lo que siempre será necesario instalarlo. Los siguientes dos módulos (tienda virtual y módulo

Más detalles

Capítulo 5. Cliente-Servidor.

Capítulo 5. Cliente-Servidor. Capítulo 5. Cliente-Servidor. 5.1 Introducción En este capítulo hablaremos acerca de la arquitectura Cliente-Servidor, ya que para nuestra aplicación utilizamos ésta arquitectura al convertir en un servidor

Más detalles

Menús. Gestor de Menús

Menús. Gestor de Menús Menús Para dar acceso a las categorías, artículos y generar espacio para los módulos se deben crear menús, éstos son enlaces a determinado recurso en el portal Web, sin ellos no es posible visualizar ninguno

Más detalles

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema Capítulo2 Planteamientodelproblema 38 2.1Antecedentesycontextodelproyecto En lo que respecta a los antecedentes del proyecto, se describe inicialmente el contexto donde se utiliza el producto de software.

Más detalles

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos.

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos. Apéndice C. Glosario A Actividades de coordinación entre grupos. Son dinámicas y canales de comunicación cuyo objetivo es facilitar el trabajo entre los distintos equipos del proyecto. Actividades integradas

Más detalles

CAPÍTULO 3 Servidor de Modelo de Usuario

CAPÍTULO 3 Servidor de Modelo de Usuario CAPÍTULO 3 Servidor de Modelo de Usuario Para el desarrollo del modelado del estudiante se utilizó el servidor de modelo de usuario desarrollado en la Universidad de las Américas Puebla por Rosa G. Paredes

Más detalles

Proyectos de Innovación Docente

Proyectos de Innovación Docente Proyectos de Innovación Docente Manual de Usuario Vicerrectorado de Docencia y Profesorado Contenido INTRODUCCIÓN... 3 DATOS PERSONALES... 6 Modificar email... 6 Modificar contraseña... 7 GESTIÓN PROYECTOS...

Más detalles

Actualización de versión a Bizagi 10.x

Actualización de versión a Bizagi 10.x Actualización de versión a Bizagi 10.x Actualización de versión a Bizagi 10.x 1 Tabla de contenidos Introducción... 2 Actualizar un proyecto desde v9.1.x a 10.x... 2 Preparación... 3 Habilitación de formas

Más detalles

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable 1. Introducción. El Sistema de Administración de Información de un Negocio Franquiciable (SAINF)

Más detalles

Manual de Procedimientos

Manual de Procedimientos 1 de 13 Elaborado por: Oficina de Planeación y Desarrollo Institucional -Área de Calidad y Mejoramiento- Revisado por: Aprobado por: Coordinador Área de Jefe de la Oficina de Informática y Telecomunicaciones

Más detalles

Acceso a la aplicación de solicitud de subvenciones (Planes de Formación 2014)

Acceso a la aplicación de solicitud de subvenciones (Planes de Formación 2014) Acceso a la aplicación de solicitud de subvenciones (Planes de Formación 2014) Pantalla general de acceso Desde ella se accede a las diferentes convocatorias para poder completar y enviar las solicitudes.

Más detalles

2011 Universidad de Sevilla Grupo IDINFOR Universidad Carlos III Grupo ENTI

2011 Universidad de Sevilla Grupo IDINFOR Universidad Carlos III Grupo ENTI 2011 Universidad de Sevilla Grupo IDINFOR Universidad Carlos III Grupo ENTI ARTEMISA. ARQUITECTURA PARA LA EFICIENCIA ENERGÉTICA Y SOSTENIBILIDAD EN ENTORNOS RESIDENCIALES DE LA SUBDIRECCIÓN GENERAL DE

Más detalles

DOCUMENTO DE REQUISITOS Subsistema de Reservas del Sistema de Gestión Hotelera

DOCUMENTO DE REQUISITOS Subsistema de Reservas del Sistema de Gestión Hotelera DOCUMENTO DE REQUISITOS Subsistema de Reservas del Sistema de Gestión Hotelera IN77J - Orientación a Objetos para e-business Daniel Perovich Andrés Vignaga {dperovic, avignaga}@dcc.uchile.cl Magíster en

Más detalles

Tutorial de UML. Introducción: Objetivos: Audiencia: Contenidos:

Tutorial de UML. Introducción: Objetivos: Audiencia: Contenidos: Tutorial de UML Introducción: El Lenguaje de Modelamiento Unificado (UML - Unified Modeling Language) es un lenguaje gráfico para visualizar, especificar y documentar cada una de las partes que comprende

Más detalles

MANUAL DE USUARIO SECTOR PRIVADO (RESUMEN)

MANUAL DE USUARIO SECTOR PRIVADO (RESUMEN) MANUAL USUARIO - SIDREP DESARROLLO DE UN SISTEMA DE DECLARACIÓN Y SEGUIMIENTO DE RESIDUOS PELIGROSOS MANUAL DE USUARIO SECTOR PRIVADO (RESUMEN) PREPARADO PARA COMISIÓN NACIONAL DEL MEDIO AMBIENTE, CONAMA

Más detalles

BrowserSQL 4 versión 2 - TUTORIAL

BrowserSQL 4 versión 2 - TUTORIAL BrowserSQL 4 versión 2 - TUTORIAL LAURA NOUSSAN LETTRY (Mendoza, Argentina 2015) aviso legal El presente libro electrónico se distribuye bajo Attribution-NonCommercialNoDerivs 3.0 Unported INDICE INTRODUCCIÓN

Más detalles

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. UNIVERSIDAD DE CARABOBO FACULTAD DE CIENCIA Y TECNOLOGÍA DIRECCION DE EXTENSION COORDINACION DE PASANTIAS Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. Pasante:

Más detalles

LiLa Portal Guía para profesores

LiLa Portal Guía para profesores Library of Labs Lecturer s Guide LiLa Portal Guía para profesores Se espera que los profesores se encarguen de gestionar el aprendizaje de los alumnos, por lo que su objetivo es seleccionar de la lista

Más detalles

Software para Seguimiento de Clientes. Descripción del Producto

Software para Seguimiento de Clientes. Descripción del Producto Software para Seguimiento de Clientes Descripción del Producto Descripción del Sistema Es un completo sistema que permite tener un mejor control y manejo sobre clientes antiguos y nuevos, ya que permite

Más detalles

1. INTRODUCCIÓN 3 2. INSTALACIÓN DE LA APLICACIÓN PACK PYME 5. 2.1. Proceso de Instalación y Arranque... 5

1. INTRODUCCIÓN 3 2. INSTALACIÓN DE LA APLICACIÓN PACK PYME 5. 2.1. Proceso de Instalación y Arranque... 5 Contenido 1. INTRODUCCIÓN 3 2. INSTALACIÓN DE LA APLICACIÓN PACK PYME 5 2.1. Proceso de Instalación y Arranque... 5 2.2. Obtención de Ficheros del Pack Pyme... 5 2.2.1. Fichero de Configuración... 5 2.2.2.

Más detalles

Guía rápida Factura Electrónica Versión para proveedores de Sacyr

Guía rápida Factura Electrónica Versión para proveedores de Sacyr Guía rápida Factura Electrónica Versión para proveedores de Sacyr Noviembre - 2011 Versión 2.0 Índice 1. Acceso a la plataforma 2. Configuración del proveedor 3. Emisión de facturas Acceso a la plataforma

Más detalles

ORGANISMO COORDINADOR DEL SISTEMA ELÉCTRICO NACIONAL INTERCONECTADO DE LA REPÚBLICA DOMINICANA

ORGANISMO COORDINADOR DEL SISTEMA ELÉCTRICO NACIONAL INTERCONECTADO DE LA REPÚBLICA DOMINICANA ORGANISMO COORDINADOR DEL SISTEMA ELÉCTRICO NACIONAL INTERCONECTADO DE LA REPÚBLICA DOMINICANA TÉRMINOS DE REFERENCIA PARA LA CONTRATACIÓN DE SERVICIOS DE DESARROLLO SOFTWARE OC-GA-14-TDRCSDS1601-160128-V1

Más detalles

Proceso Transaccional

Proceso Transaccional Proceso Transaccional Documento de Construcción Proceso Transaccional 1 Tabla de Contenido Introducción... 2 Diagrama del Proceso... 3 Sub Proceso Transaccional Reserva... 4 Sub Proceso Reporte De Gastos...

Más detalles

Certific@2 (Altas de prestaciones por ERE S): guía para las empresas

Certific@2 (Altas de prestaciones por ERE S): guía para las empresas Certific@2 (Altas de prestaciones por ERE S): guía para las empresas Servicio Público de Empleo Estatal Madrid, Octubre - 2011 Índice Qué es y recepción de las altas de trabajadores por ERE S Acceso a

Más detalles

TEMA 7: DIAGRAMAS EN UML

TEMA 7: DIAGRAMAS EN UML TEMA 7: DIAGRAMAS EN UML Diagramas en UML El bloque de construcción básico de UML es un Diagrama Introducción a UML 2 1 Modelo de Casos de Uso (MCU) Todos los casos de uso constituyen el MCU que describe

Más detalles

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual Introducción Algunas de las personas que trabajan con SGBD relacionales parecen preguntarse porqué deberían preocuparse del diseño de las bases de datos que utilizan. Después de todo, la mayoría de los

Más detalles

CAPITULO 3 MOVILIDAD EN LA NAVEGACIÓN Y ALMACENAMIENTO EN BASES DE DATOS

CAPITULO 3 MOVILIDAD EN LA NAVEGACIÓN Y ALMACENAMIENTO EN BASES DE DATOS CAPITULO 3 MOVILIDAD EN LA NAVEGACIÓN Y ALMACENAMIENTO EN BASES DE DATOS La introducción de las redes locales marca una nueva etapa en la evolución de las computadoras personales al permitir ligar varias

Más detalles

CAPÍTULO I. Sistemas de Control Distribuido (SCD).

CAPÍTULO I. Sistemas de Control Distribuido (SCD). 1.1 Sistemas de Control. Un sistema es un ente cuya función es la de recibir acciones externas llamadas variables de entrada que a su vez provocan una o varias reacciones como respuesta llamadas variables

Más detalles

SISTEMA InfoSGA Manual de Actualización Mensajeros Radio Worldwide C.A Código Postal 1060

SISTEMA InfoSGA Manual de Actualización Mensajeros Radio Worldwide C.A Código Postal 1060 SISTEMA InfoSGA Manual de Actualización Mensajeros Radio Worldwide C.A Código Postal 1060 Elaborado por: Departamento de Informática Febrero 2012 SISTEMA InfoSGA _ Manual de Actualización 16/02/2012 ÍNDICE

Más detalles

Asignaturas antecedentes y subsecuentes

Asignaturas antecedentes y subsecuentes PROGRAMA DE ESTUDIOS Base de Datos I Área a la que pertenece: Área Sustantiva Profesional Horas teóricas: 3 Horas prácticas: 2 Créditos: 8 Clave: F0156 Base de Datos II Asignaturas antecedentes y subsecuentes

Más detalles

Patrones de Diseño Orientados a Objetos 2 Parte

Patrones de Diseño Orientados a Objetos 2 Parte Patrones de Diseño Orientados a Objetos 2 Parte Patrón Observador Observer (Patrón de Comportamiento) Patrón Observador Observer Observador (en inglés: Observer) es un patrón de diseño que define una dependencia

Más detalles

Desarrollo de un Sistema de Gestión de Proyectos mediante el framework GWT

Desarrollo de un Sistema de Gestión de Proyectos mediante el framework GWT Proyecto de Fin de Carrera Universidad Politécnica de Valencia Escuela Técnica Superior de Informática Desarrollo de un Sistema de Gestión de Proyectos mediante el framework GWT Realizado por: Dirigido

Más detalles

INSTALACIÓN DE ORACLE 8i (8.1.7) SOBRE NT

INSTALACIÓN DE ORACLE 8i (8.1.7) SOBRE NT INSTALACIÓN DE ORACLE 8i (8.1.7) SOBRE NT Versión 1. Mayo de 2001 Luis Vinuesa Martínez. Departamento de Informática Universidad de Oviedo vinuesa@correo.uniovi.es www.di.uniovi.es/~vinuesa ÍNDICE. Introducción...

Más detalles

Monitorización de Equipos y Redes [NAGIOS ] VIRTUALITY

Monitorización de Equipos y Redes [NAGIOS ] VIRTUALITY Monitorización de Equipos y Redes [NAGIOS ] VIRTUALITY [INTRODUCCIÓN. QUÉ ES NAGIOS?] Nagios es un sistema de monitorización de equipos y de servicios de red, creado para ayudar a los administradores a

Más detalles

Figura 4.1 Clasificación de los lenguajes de bases de datos

Figura 4.1 Clasificación de los lenguajes de bases de datos 1 Colección de Tesis Digitales Universidad de las Américas Puebla Romero Martínez, Modesto Este capítulo describen los distintos lenguajes para bases de datos, la forma en que se puede escribir un lenguaje

Más detalles

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS AUTORÍA JOSEFA PÉREZ DOMÍNGUEZ TEMÁTICA NUEVAS TECNOLOGIAS ETAPA CICLOS FORMATIVOS DE GRADO SUPERIOR DE INFORMÁTICA Resumen En esta publicación se

Más detalles

Estimado usuario. Tabla de Contenidos

Estimado usuario. Tabla de Contenidos Estimado usuario. El motivo del presente correo electrónico es mantenerle informado de las mejoras y cambios realizados en el software Orathor (Athor/Olimpo) en su versión 5.7.041 la cual ha sido recientemente

Más detalles

Capitulo 5. Implementación del sistema MDM

Capitulo 5. Implementación del sistema MDM Capitulo 5. Implementación del sistema MDM Una vez que se concluyeron las actividades de análisis y diseño se comenzó la implementación del sistema MDM (Manejador de Documentos de MoProSoft). En este capitulo

Más detalles

Región de Murcia Consejería de Educación, Ciencia e Investigación. Manual Usuario FCT

Región de Murcia Consejería de Educación, Ciencia e Investigación. Manual Usuario FCT . Manual Usuario FCT Murcia, 9 de Julio de 2007 Manual de Usuario FCT v1.0 pág. 2 de 73 ÍNDICE Manual Usuario FCT...1 1. Tipos de usuarios... 4 2. Modelo de navegación... 5 3. Servicios... 6 3.1. Convenios...

Más detalles

GESTION DE REQUISICIONES VIA WEB MANUAL DEL USUARIO

GESTION DE REQUISICIONES VIA WEB MANUAL DEL USUARIO GESTION DE REQUISICIONES VIA WEB MANUAL DEL USUARIO UNIDAD DE SISTEMAS DE INFORMACION Y COMPUTO DEPARTAMENTO DE ADQUISICIONES INDICE Tema Página Objetivo 2 Portal del Departamento de Adquisiciones 3 Sección

Más detalles

Diseño y desarrollo de el Generador de Tiendas virtuales usando Líneas de Diseño de productos

Diseño y desarrollo de el Generador de Tiendas virtuales usando Líneas de Diseño de productos Pontificia Universidad Javeriana Informe Final Proyecto Dirigido Diseño y desarrollo de el Generador de Tiendas virtuales usando Líneas de Diseño de productos Autor: Luis Gabriel Rodríguez Profesora: Luisa

Más detalles

5/09/2012 2.1 Agregar cambios en las alertas Matias Herrera

5/09/2012 2.1 Agregar cambios en las alertas Matias Herrera K2BProyectos Móvil Descripción de la Arquitectura Versión 1.5 Historia de revisiones Fecha Versión Descripción Autor 24/08/2012 1.0 Comienzo de la versión Milagros Garicoits 25/08/2012 1.0 Se corrigen

Más detalles

PROYECTO CALIDAD DE DATOS CURSO 2011

PROYECTO CALIDAD DE DATOS CURSO 2011 PROYECTO CALIDAD DE DATOS CURSO 2011 GRUPO 4 1A. PARTE: MEDICIÓN DE CALIDAD EN LAS FUENTES DE DATOS Estela Pratto C.I. 3.267.004-3 Alexander Llanes C.I. 4.587.761-0 Fernando Plachicoff C.I. 4.611.006-9

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS

PROGRAMACIÓN ORIENTADA A OBJETOS PROGRAMACIÓN ORIENTADA A OBJETOS Clase 1. Introducción Profesor: Diego Sánchez Gómez Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases

Más detalles

GESTIÓN Y CONTROL DEL DESARROLLO E IMPLANTACIÓN DE APLICACIONES

GESTIÓN Y CONTROL DEL DESARROLLO E IMPLANTACIÓN DE APLICACIONES Ciclo Formativo: Módulo: Desarrollo de Aplicaciones Informáticas Análisis y Diseño Detallado de Aplicaciones Informáticas de Gestión Unidad de Trabajo 10: GESTIÓN Y CONTROL DEL DESARROLLO E IMPLANTACIÓN

Más detalles

Nuevo Esquema de Emisión de Comprobantes Electrónicos

Nuevo Esquema de Emisión de Comprobantes Electrónicos Nuevo Esquema de Emisión de Comprobantes Electrónicos Nuevo Esquema de Emisión de Comprobantes Electrónicos Misión.- - Reducir los costos para la ciudadanía en la gestión de los procesos de facturación.

Más detalles

EXTENSIÓN DE UML PARA APLICACIONES WEB

EXTENSIÓN DE UML PARA APLICACIONES WEB EXTENSIÓN DE UML PARA APLICACIONES WEB 1. Descripción Esta extensión de UML define un conjunto de estereotipos, valores etiquetados y restricciones que nos permiten modelar aplicaciones web. Los estereotipos

Más detalles

BANCOS. Manejo de Bancos. Como crear una ficha de Banco? Como modificar los datos de una ficha de Banco? Como borrar una ficha de Banco?

BANCOS. Manejo de Bancos. Como crear una ficha de Banco? Como modificar los datos de una ficha de Banco? Como borrar una ficha de Banco? BANCOS El Sistema de Gestión Administrativa permite el manejo de los movimientos bancarios. Seleccionada la opción de Bancos, el sistema presentara las siguientes opciones. Manejo de Bancos Manejo de movimientos

Más detalles

BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN

BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN 3.3 Aplicaciones Definición de Aplicación (Application). Programa informático que permite a un usuario utilizar una computadora con un fin específico. Las

Más detalles

Capítulo 5. Implementación del Sistema de Inscripciones

Capítulo 5. Implementación del Sistema de Inscripciones Capítulo 5. Implementación del Sistema de Inscripciones 5.1 Tecnologías utilizadas en el desarrollo En esta sección se exponen brevemente las tecnologías utilizadas en la implementación de los diferentes

Más detalles

Análisis y diseño del sistema CAPÍTULO 3

Análisis y diseño del sistema CAPÍTULO 3 Análisis y diseño del sistema CAPÍTULO 3 36 CAPÍTULO 3 Análisis y diseño del sistema En este capítulo se pretende realizar un análisis detallado de los requerimientos del software a desarrollar para la

Más detalles

PROCESO GESTIÓN ADMINISTRATIVA INSTRUCTIVO TÉCNICO ALISTAMIENTO SERVIDORES GESTIÓN DOCUMENTAL

PROCESO GESTIÓN ADMINISTRATIVA INSTRUCTIVO TÉCNICO ALISTAMIENTO SERVIDORES GESTIÓN DOCUMENTAL Versión 1.0 Página 1 de 26 Para la instalación de la aplicación SIGA (Sistema de Información y Gestión de Archivos) se debe tener en cuenta los siguientes requisitos en el servidor asignado para esta aplicación

Más detalles

Elementos requeridos para crearlos (ejemplo: el compilador)

Elementos requeridos para crearlos (ejemplo: el compilador) Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción

Más detalles

Portal INAPI INAPI Conecta Instructivo de Gestión en Sitio Web

Portal INAPI INAPI Conecta Instructivo de Gestión en Sitio Web Organización: INAPI Portal INAPI INAPI Conecta Instructivo de Gestión en Sitio Web Perfil: Vendedor Versión: 1.0 Año 2016 Tabla de Contenidos 1. Introducción... 3 2. Creación de Cuenta Perfil Vendedor...

Más detalles

PRC-DTI-006 Administración de Roles de los Sistemas de Información de la DTI Procedimiento Dirección de TI - COSEVI

PRC-DTI-006 Administración de Roles de los Sistemas de Información de la DTI Procedimiento Dirección de TI - COSEVI PRC-DTI-006 Administración de Roles de los Sistemas de Información de la DTI Procedimiento Dirección de TI - COSEVI Versión: 1.0 Fecha de la versión: Febrero del 2012 Creado por: PwC Costa Rica Aprobado

Más detalles

VAST: Manual de usuario. Autores: Francisco J. Almeida-Martínez Jaime Urquiza-Fuentes

VAST: Manual de usuario. Autores: Francisco J. Almeida-Martínez Jaime Urquiza-Fuentes VAST: Manual de usuario Autores: Francisco J. Almeida-Martínez Jaime Urquiza-Fuentes Índice general Índice general 2 1. Introducción 4 2. Representación intermedia del AST 5 2.1. Funcionamiento del VAST

Más detalles

UML, ejemplo sencillo sobre Modelado de un Proyecto

UML, ejemplo sencillo sobre Modelado de un Proyecto UML, ejemplo sencillo sobre Modelado de un Proyecto Normal &DOLILFDU 0L3DQRUDPD 626 (VFULEHSDUD1RVRWURV Por Armando Canchala Contenido Introducción Objetivo Requerimientos Casos de Uso Subcasos de Uso

Más detalles

Creando Arquitecturas

Creando Arquitecturas Creando Arquitecturas orientadas a servicios SOA Suite Abril 2013 Buenos Aires - Argentina Índice 1. Introducción. 2. Nuestro camino para la creación de SOAs. 3. Como justificar el cambio? 4. Nuestras

Más detalles

Diagramas del UML. A continuación se describirán los diagramas más comunes del UML y los conceptos que representan: Diagrama de Clases

Diagramas del UML. A continuación se describirán los diagramas más comunes del UML y los conceptos que representan: Diagrama de Clases El UML está compuesto por diversos elementos gráficos que se combinan para conformar diagramas. Debido a que el UML es un lenguaje, cuenta con reglas para combinar tales elementos. La finalidad de los

Más detalles

Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes:

Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes: Descripción del ambiente de trabajo Entrar y salir de la aplicación Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes: A través del botón :

Más detalles

Instalación y configuración inicial del sistema SIU-Kolla Versión 3.0.0

Instalación y configuración inicial del sistema SIU-Kolla Versión 3.0.0 Instalación y configuración inicial del sistema SIU-Kolla Versión 3.0.0 Tabla de contenido 1. Instalación inicial del sistema... 3 2. Configuración inicial del sistema... 5 3. Migración desde versión anterior...

Más detalles

Capítulo 4. Prueba de Adaptabilidad

Capítulo 4. Prueba de Adaptabilidad Capítulo 4 Prueba de Adaptabilidad Capítulo 4. Prueba de Adaptabilidad Como se mencionó en el capítulo 2 actualmente no es válido que el software únicamente funcione bien y resuelva el problema que le

Más detalles

Una experiencia en la enseñanza de los primeros cursos del área matemática.

Una experiencia en la enseñanza de los primeros cursos del área matemática. Una experiencia en la enseñanza de los primeros cursos del área matemática. Rodolfo Carvajal y Martín Matamala Departamento de Ingeniería Matemática, Facultad de Ciencias Físicas y Matemáticas, Universidad

Más detalles

Conceptos SOA: XSD, Estructurando XML Por Medio de Esquemas

Conceptos SOA: XSD, Estructurando XML Por Medio de Esquemas Newsletter Junio 2013 Contenido Conceptos SOA: XSD, Estructurando XML Por Medio de Esquemas Página: Por Ing. Daniel Caciá dcacia@datum.com.gt 1 Conceptos SOA: XSD, Estructurando XML Por Cuando creamos

Más detalles

JAVATO: UN FRAMEWORK DE DESARROLLO JAVA LIBRE

JAVATO: UN FRAMEWORK DE DESARROLLO JAVA LIBRE JAVATO: UN FRAMEWORK DE DESARROLLO JAVA LIBRE Jefe de Servicio de Integración de Aplicaciones Corporativas Dirección General de Informática (Comunidad Autónoma Región de Murcia) Técnico Responsable Dirección

Más detalles

Curso de HTML5 y CSS3

Curso de HTML5 y CSS3 Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 1 1 Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 2 2 Uno de los principales

Más detalles

Modelos y Bases de Datos

Modelos y Bases de Datos Modelos y Bases de Datos MODELOS Y BASES DE DATOS 1 Sesión No. 10 Nombre: Álgebra Relacional Contextualización En qué consiste el álgebra relacional? Se ha planteado hasta el momento cada uno de los procesos

Más detalles

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD Fecha última revisión: Diciembre 2010 Tareas Programadas TAREAS PROGRAMADAS... 3 LAS TAREAS PROGRAMADAS EN GOTELGEST.NET... 4 A) DAR DE ALTA UN USUARIO...

Más detalles

PROCEDIMIENTO 082: AUTORIZACIÓN PARA LA INTEGRACIÓN O ACTUALIZACIÓN DE PÁGINAS WEB AL PORTAL ELECTRÓNICO DEL GOBIERNO

PROCEDIMIENTO 082: AUTORIZACIÓN PARA LA INTEGRACIÓN O ACTUALIZACIÓN DE PÁGINAS WEB AL PORTAL ELECTRÓNICO DEL GOBIERNO Página 219 de 266 PROCEDIMIENTO 082: AUTORIZACIÓN PARA LA INTEGRACIÓN O ACTUALIZACIÓN DE PÁGINAS WEB AL PORTAL ELECTRÓNICO DEL GOBIERNO Objetivo Ampliar la imagen y difusión de información, programas y

Más detalles

Guía para el Portal de Profesores del Sistema de Información CLASS Académico

Guía para el Portal de Profesores del Sistema de Información CLASS Académico Centro de Apoyo en Tecnologías de la Información y la Comunicación CATIC Guía para el Portal de Profesores del Sistema de Información CLASS Académico El Sistema de Información CLASS Académico es el sistema

Más detalles

Gestión de usuarios y cursos del EVA

Gestión de usuarios y cursos del EVA Protocolo Gestión de usuarios y cursos del EVA Presentación El Entorno Virtual de Aprendizaje (EVA) de Facultad de Ciencias Económicas y de Administración (http://eva.ccee.edu.uy/) es una plataforma educativa

Más detalles

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES Tema: Cartas de Servicios Primera versión: 2008 Datos de contacto: Evaluación y Calidad. Gobierno de Navarra. evaluacionycalidad@navarra.es

Más detalles

REGLAMENTO PARA EL USO DEL SISTEMA DE VIDEOCONFERENCIA DEL PODER JUDICIAL DE LA PROVINCIA DE CORRIENTES CONTENIDO FUNDAMENTO...

REGLAMENTO PARA EL USO DEL SISTEMA DE VIDEOCONFERENCIA DEL PODER JUDICIAL DE LA PROVINCIA DE CORRIENTES CONTENIDO FUNDAMENTO... REGLAMENTO PARA EL USO DEL SISTEMA DE VIDEOCONFERENCIA DEL PODER JUDICIAL DE LA PROVINCIA DE CORRIENTES CONTENIDO FUNDAMENTO.....2 CAPITULO I DE LA COORDINACIÓN... 2 CAPITULO II DEL USO DE LA SALA DE VIDEOCONFERENCIA..

Más detalles

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1.1 Introducción Este método proporciona un soporte para el diseño creativo de productos de software, inclusive a escala industrial.

Más detalles

MANUAL DE USUARIO APLICACIÓN SYSACTIVOS

MANUAL DE USUARIO APLICACIÓN SYSACTIVOS MANUAL DE USUARIO APLICACIÓN SYSACTIVOS Autor Edwar Orlando Amaya Diaz Analista de Desarrollo y Soporte Produce Sistemas y Soluciones Integradas S.A.S Versión 1.0 Fecha de Publicación 19 Diciembre 2014

Más detalles

6.8 La Arquitectura del Sistema. [Proceso]

6.8 La Arquitectura del Sistema. [Proceso] 6.8 La Arquitectura del Sistema. [Proceso] En el Caso de Estudio se ha hecho énfasis en los objetos del Dominio del problema, ya que representan la esencia del sistema y definen su comportamiento. Sin

Más detalles

MANUAL PARA REALIZAR LA SOLICITUD ELECTRÓNICA

MANUAL PARA REALIZAR LA SOLICITUD ELECTRÓNICA SECRETAÍA DE ESTADO DE INVESTIGACIÓN, DESARROLLO E INNOVACIÓN MINISTERIO DIRECCIÓN GENERAL DE INVESTIGACIÓN CIENTÍFICA Y TÉCNICA SUBDIRECCIÓN GENERAL DE PROYECTOS INTERNACIONES MANUAL PARA REALIZAR LA

Más detalles

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN Tabla de Contenidos LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN... 1 Tabla de Contenidos... 1 General... 2 Uso de los Lineamientos Estándares...

Más detalles

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO Introducción:...1 Service Oriented Architecture...2 Elementos de una Service Oriented Architecture...2 Application frontends...2 Servicios...2 Contrato:...3

Más detalles