Taller De Grado I
UNIVERSIDAD AUTÓNOMA GABRIEL RENÉ
MOREMO FACULTAD DE CIENCIAS DE LA
COMPUTACION Y TELECOMUNICACIONES
Carrera de Ingeniería Informática
Taller de Grado I
SOFTWARE PARA ADMINISTRAR UNA AGENDA DISTRIBUIDA EN J2ME PARA LA F.S.T.P.S.C.
Realizado por:
Diego Antequera Virhuez.
Fernando Mendoza Chávez.
Revisado por:
Msc. Ing. Rolando Martínez
miércoles, 26 de abril de 2023
Taller De Grado I
INDICE
PARTE 1................................................................................................................................1
ASPECTOS GENERALES DEL PROYECTO.................................................................1
CAPITULO 1.........................................................................................................................2
PERFIL DEL PROYECTOPERFIL DEL PROYECTO.................................................................................................2
1.1. INTRODUCCIÓN..............................................................................................................3
1.2. ANTECEDENTES.............................................................................................................4
1.3. DESCRIPCIÓN DEL PROBLEMA...................................................................................5
1.4. SITUACIÓN PROBLEMÁTICA.......................................................................................6
1.5. SITUACIÓN DESEADA...................................................................................................6
1.6. OBJETIVOS.......................................................................................................................6
1.6.1. OBJETIVO GENERAL..............................................................................................6
1.6.2. OBJETIVOS ESPECÍFICOS.....................................................................................6
1.7. ALCANCE.........................................................................................................................7
1.8. METODOLOGÍA...............................................................................................................8
PUDS - PROCESO UNIFICADO DE DESARROLLO DE SOFTWARE..........................8
1.9. HERRAMIENTAS.............................................................................................................9
CAPITULO 2.......................................................................................................................10
LA EMPRESA (F.S.T.P.S.C.)LA EMPRESA (F.S.T.P.S.C.)............................................................................................10
2.1. FEDERACION SINDICAL DE TRABAJADORES DE LA PRENSA DE SANTA CRUZ (F.S.T.P.S.C.)...............................................................................................................................11
CAPITULO 3.......................................................................................................................13
EL SOFTWARE: AGENDA ELECTRONICA DISTRIBUIDAEL SOFTWARE: AGENDA ELECTRONICA DISTRIBUIDA...................................13
3.1. AGENDA “REUNION”...................................................................................................14
3.2. AGENDA ELECTRONICA.............................................................................................15
3.3. AGENDAS ELECTRONICAS DISTRIBUIDAS.............................................................15
PARTE 2..............................................................................................................................19
DESARROLLO DEL SOFTWARE..................................................................................19
CAPITULO 4.......................................................................................................................20
FLUJO DE TRABAJO:FLUJO DE TRABAJO:......................................................................................................20
CAPTURA DE REQUISITOCAPTURA DE REQUISITO.............................................................................................20
4.1. DEFINIENDO EL CONTEXTO DEL PROYECTO........................................................21
Taller De Grado I
4.1.1. MODELO DE DOMINIO........................................................................................21
4.2. IDENTIFICAR CASOS DE USO.....................................................................................22
4.2.1. IDENTIFICACION DE ACTORES.........................................................................22
4.2.2. IDENTIFICACION DE CASOS DE USO...............................................................22
4.3. CASOS DE USO POR MÓDULOS.................................................................................23
4.4. PRIORIZAR CASOS DE USO.........................................................................................24
4.5. DETALLE DE CASOS DE USO.....................................................................................25
4.6. MODELO DE CASOS DE USO......................................................................................43
CAPITULO 5.......................................................................................................................44
FLUJO DE TRABAJO:FLUJO DE TRABAJO:......................................................................................................44
ANALISISANALISIS............................................................................................................................44
5.1. ANALISIS DE ARQUITECTURA..................................................................................45
5.1.1. IDENTIFICAR PAQUETES DE ANALISIS...........................................................45
5.1.2. DESCRIBIR PAQUETES........................................................................................45
5.1.3. VISTA EXTERNA DE PAQUETE..........................................................................46
5.2. ANALIZAR CASOS DE USO.........................................................................................49
CAPITULO 6.......................................................................................................................58
FLUJO DE TRABAJO:FLUJO DE TRABAJO:......................................................................................................58
DISENODISENO...............................................................................................................................58
6.1. ANALISIS CLASES........................................................................................................59
6.1.1. ARQUITECTURA LOGICA...................................................................................59
6.1.2. DISENO DE LA ARQUITECTURA FISICA..........................................................60
6.1.3. DISENO DE CASOS DE USO................................................................................61
6.1.4. DISENO DE CLASE.....................................................................................................78
6.2. DIAGRAMA DE CLASES GENERAL...........................................................................92
6.3. ANALIZAR PAQUETES.................................................................................................94
6.3.1. DEPENDENCIA DE PAQUETE.............................................................................94
CONCLUCIONES..............................................................................................................95
RECOMENDACIONES.....................................................................................................95
BIBLIOGRAFIA.................................................................................................................96
ANEXOS..............................................................................................................................97
Taller De Grado I
Esquema grafico de la situación problemática..............................................................................97
Esquema grafico de la situación deseada......................................................................................98
Tabla de Ilustraciones
Ilustración 1: Organigrama de la Institución....................................................................................11
Ilustración 2: Organigrama de la Corte............................................................................................12
Ilustración 3: Arquitectura SOA.......................................................................................................17
Ilustración 4: Modelo de Dominio...................................................................................................21
Taller De Grado I
CAPITULO 1PERFIL DEL PROYECTOPERFIL DEL PROYECTO
ResumenEn este capítulo se introduce la temática de investigación propuesta, se describe el problema, los objetivos que conducen la solución a la problemática, los alcances y limitaciones para desarrollar el sistema.
2
Taller De Grado I
1.1. INTRODUCCIÓN.
El mundo actual se encuentra inmerso en cambios constantes y más aún
tecnológicos, donde todos y cada uno de los miembros que lo conforman se encuentran
interrelacionados y a su vez, se encuentran en una constante competencia para ser
mejor. El cual hace que busquen el desarrollo integral de todos sus elementos, dando le
mayor importancia al control de calidad. Este efecto, conlleva a que este proceso de
cambios y mejoras tenga nuevas exigencias, donde el software tendrá que cumplir con
nuevos requisitos, seguir procesos para satisfacer necesidades más exigentes, teniendo
que demostrar la calidad que tienen.
Santa Cruz de la Sierra ciudad dinámica y productiva donde la principal actividad
económica reside en el sector industrial, comercial y de servicios, no ha sido la
excepción. Hoy en día se puede evidenciar el crecimiento que ha sufrido la ciudad y su
población junto a las diferentes organizaciones lucrativas, y no lucrativas; las mismas
cada vez más requieren de profesionales y técnicos idóneos en las diferentes áreas.
Las organizaciones que están en crecimiento o están en el más alto proceso de
crecimiento donde interactúan muchas personas para alcanzar un objetivo en común,
recurren al uso de agendas electrónicas, para las reuniones constantes que se sostienen
dentro de la organización o institución. Una agenda electrónica es lo más utilizado por
toda persona que está dentro de un mundo de negocios, citas, acontecimientos, entre
otros, donde el principal objetivo del uso de una agenda es anotar dichas citas para un
posterior recuerdo de nuestras actividades diarias.
La Federación Sindical de Trabajadores de la Prensa de Santa Cruz de la Sierra,
actualmente es dirigida por un directorio de 18 personas a la cabeza de todas las
organizaciones del departamento, en la cual se realizan muchas reuniones durante el
transcurso del mes, donde es anotada en un calendario “Cuaderno de Citas y
Reuniones”, el cual después es avisado a las distintas personas vía telefónica para su
confirmación de asistencia.
En el lapso de este documento abordaremos los problemas con respecto al uso de
agendas comunes, agendas electrónicas, y una posible solución una “Agenda Común
3
Taller De Grado I
distribuida”, donde el principal objetivo es que todas las personas puedan acceder a la
información almacenada en dicha agenda.
1.2. ANTECEDENTES.
La Federación Sindical de Trabajadores de la Prensa de Santa Cruz “F.S.T.P.S.C.”
actualmente está conformada por los 31 sindicatos en todo el departamento con 1125
afiliados hasta el momento, y dirigido por un directorio de 18 personas las cuales son
elegidas democráticamente entre todos cada 2 años.
En la federación se realizan 1 reunión de directorio cada semana, donde las 18
personas que representan se juntan para discutir diversos temas, cada 3 meses se
realizan reuniones generales, donde se cita a los representantes de los 31 sindicatos de
Santa Cruz, y cada cierto tiempo se llaman a ampliados generales donde se hace saber a
todas las actividades programadas por la Federación, como ser Cursos de capacitación,
o formar grupos de personas que son enviadas como corresponsales, entre otros. Donde
se ve la necesidad de que todas las personas estén informadas de las distintas
actividades que se realizaran, puesto que actualmente para las reuniones de directorio se
informa vía telefónica, donde no muchas veces no se logra comunicar a todas las
personas, para poder confirmar su posterior asistencia, en las reuniones generales con
los distintos sindicatos afiliados, se les comunica mediante fax sobre las reuniones,
donde muchas veces los dirigentes no asisten poniendo como excusa que no sabían o no
llegan los fax y en los ampliados departamentales, se envía mediante fax el comunicado
a cada dirigente de sindicato, para que el posteriormente pase el informativo a cada uno
de sus integrantes, siendo un problema que no todos pueden llegar a conocer las
actividades, por diferentes causas, siendo la más común que no muchas veces el que
dirige el sindicato avisa al grupo opositor de dichas reuniones.
Actualmente todo se anota en una agenda en secretaria de la Federación, donde
cualquier persona afiliada puede llamar a consultar sobre las actividades programadas,
pero no todas las personas logran enterarse de las actividades, y muchas veces se ven
vacios los ampliados. Ahora lo que se desea hacer es un software “Una Agenda
Distribuida”, donde se coloquen todas las reuniones, citas, actividades, entre otros, y
cualquier persona desde su celular pueda acceder a la información sin necesidad de
4
Taller De Grado I
llamar, simplemente podrá confirmar directamente su asistencia o excusarla, donde el
software avisara ni bien se coloque una cita, y avise hora antes de realizar dicha cita a
todos los afiliados.
Actualmente existe diversos tipos de software que podrían ser una solución pero no
son muy específicos a la hora de armar una reunión grupal, se podría usar Twitter para
avisar a todos, pero no se podría saber si confirma o no la asistencia, las mismas
agendas que traen los celulares, pero a la vez otras personas no podrían acceder a pasar
la cita de agenda a otra agenda, puesto que son de uso personal y no colectivo,
aplicaciones como MSN permiten que un grupo de personas en grupo puedan entablar
una conversación pero no todas las personas se conectan al mismo tiempo, entre otros,
todos estos software se han hecho generalmente con el ámbito de mostrar información
personal o de chat donde es necesario tener a las dos personas conectadas, la cual no es
una solución directa al problema.
1.3. DESCRIPCIÓN DEL PROBLEMA.
En la actualidad muchas personas no están acostumbradas a usar una agenda
personal, y si las usan escriben sus notas o citas, y se olvidan de revisarlas, olvidando
asistir a las mismas.
Otro problema es que al programar una reunión para un determinado grupo de
personas no todas pueden asistir, o en el peor de los casos no se pueda comunicar a
todas las personas.
En el caso del Sindicato de la Prensa de Santa Cruz de la Sierra, la cual está
conformada por 18 personas en el directorio principal de Santa Cruz, y más de mil
afiliados en todo el departamento distribuidos y organizados en diferentes sindicatos
según su canal o radioemisora.
El problema es reflejado al momento de establecer las reuniones del directorio, la
cual se hace semanalmente donde el medio de comunicación es vía sms, en el cual
muchas veces los sms no logran llegar a tiempo a los afiliados para que puedan
confirmar la asistencia, y cuando es vía telefónica no todos pueden contestar el teléfono
ya que muchos trabajan y dejan el celular en silencio.
5
Taller De Grado I
Este problema es acarreado también en las reuniones de ámbito general que se
realizan cada 3 meses donde están los 18 directivos, mas los 31 representantes de los
diferentes sindicatos a nivel Departamental, porque las vías principal de comunican es
mediante Fax, a cada dirigente sindical.
El caso extremo se ve cuando se llaman a ampliados, donde se ve la necesidad que
todas las personas afiliadas estén al tanto de la reunión. En este caso se ve mucha
dificultad de llegar a todos los afiliados, ya que muchas veces existen sindicatos que no
simpatizan con algunos grupos de afiliados de ellos, y no pasan el comunicado, este es
el mayor problema donde la Federación Sindical de Trabajadores de la Prensa de Santa
Cruz “F.S.T.P.S.C.”, no puede llegar a todos sus afiliados.
1.4. SITUACIÓN PROBLEMÁTICA.
La Federación Sindical de Trabajadores de la Prensa de Santa Cruz al momento de
planificar las actividades a desarrollarse entre varias personas, muchas veces no se
puede tener una lista de las personas que confirman su asistencia a la reunión, ya que el
principal medio por el que se comunican es vía sms, donde no siempre responden
confirmando o simplemente no les llega el sms a su celulares.
1.5. SITUACIÓN DESEADA.
Poner al tanto de las nuevas actividades que surjan en el transcurso del tiempo,
haciendo recuerdo de las actividades establecidas, y notificando las actividades que
sean modificadas.
1.6. OBJETIVOS.
1.6.1. OBJETIVO GENERAL.
Desarrollar un software que permita administrar una agenda electrónica distribuida
para el manejo de reuniones en la F.S.T.P.S.C.
1.6.2. OBJETIVOS ESPECÍFICOS.
Realizar un estudio sobre Tecnologías Distribuidas vía socket, RMI, SOA, para el
manejo de la comunicación entre aplicaciones cliente-servidor.
Elaborar un estudio sobre los problemas de comunicación de la F.S.T.P.S.C.
6
Taller De Grado I
Realizar la captura de requisitos; analizando los requerimientos del software, para
definirlos a través de casos de uso.
Analizar la arquitectura del software, de acuerdo a los requisitos especificados;
definiendo paquetes; y analizando cada caso de uso, cada clase, y cada paquete
definido.
Diseñar la arquitectura de acuerdo al análisis realizado; diseñando los casos de uso,
las clases, los subsistemas y las interfaces.
Implementar el proyecto según las especificaciones del diseño.
Realizar las pruebas pertinentes para asegurar el correcto funcionamiento del
software.
1.7. ALCANCE.
Gestionar las actividades programadas, se debe permitir guardar la fecha, día, hora
y lugar donde se desarrollará una actividad como también el tema a tratar, así mismo
posibilitar la modificación o eliminación de una actividad.
Administrar el tiempo de un usuario o de grupos de usuario, el software de
administrar un calendario para saber la disponibilidad de los usuarios para las nuevas
actividades que surjan en el transcurso del tiempo.
Gestionar actividades de grupos de usuarios, se ver permitir enviar actividades a
una sola persona, a un grupo de persona.
Envió y recepción de nuevas actividades, las actividades nuevas tienen que ser
enviada automáticamente a las personas involucradas, como también la recepción y
almacenamiento de las actividades enviadas por otro usuario.
Confirmación de asistencia, posibilidad de administrar listas de los usuarios a han
confirmado asistencia a la actividad.
Notificación de las actividades, reproducción mediante voz de las actividades
almacenadas en la agenda, estas notificaciones puede ser de dos formas: el usuario
puede seleccionar las actividades a ser reproducidas mediante ciertos criterios de
7
Taller De Grado I
búsquedas en la agenda, o el usuario puede programar la reproducción de las
actividades de acuerdo a una configuración.
Manejo de usuarios, este punto contempla la administración de los usuarios como
los permisos de acceso a los diferentes grupos
Autentificación de los usuarios, para el acceso a la administración de la agenda.
Configuración de la agenda, se debe permitir de habilitar o deshabilitar la
reproducción de las notificaciones, configuración para el acceso remoto.
Posibilidad de trabajar sin una conexión remota, en caso de que Smartphone se
desconecte de la red, la aplicación debe trabajar con las actividades ya almacenadas.
1.8. METODOLOGÍA.
Como estrategia de desarrollo del presente proyecto se aplicó la metodología de
Proceso Unificado de Desarrollo de Software (PUDS, 1999), utilizando los conceptos,
elementos de construcción y diagramas del Lenguaje Unificado de Modelado.
PUDS - PROCESO UNIFICADO DE DESARROLLO DE SOFTWARE
Fase del Proceso Unificado
Este proceso de desarrollo considera que cualquier desarrollo de un sistema
software debe pasar por cuatro fases que se describirán a continuación, las fases de
desarrollo y los diversos flujos de trabajo involucrados dentro de cada fase, cabe
destacar el flujo de trabajo concerniente al negocio.
Fase de inicio.- se realizara la captura de los requisitos, identificar los
actores y casos de uso, priorizar casos de uso, detallar casos de uso, y un
diagrama de casos de uso.
Fase de Elaboración.- se realizara el encapsulamiento de los casos de uso
mediante diagramas de paquetes, análisis de los casos de uso mediante
diagrama de comunicación.
8
Taller De Grado I
Fase de Construcción.- en esta fase se realizar los flujos de trabajo de diseño
e implementación:
o Diseño.-
Diseño de la arquitectura mediante diagramas de despliegue,
diagramas de paquetes organizado en capas.
Diseño de casos de uso mediante diagramas de secuencia.
Diseño de clases mediante diagrama de clases.
o Implementación.-
Modelo de implementación mediante un diagrama de componentes
Los Flujos de Trabajo Fundamentales
Requerimientos
Análisis
Diseño
Implementación
Prueba
(Ivar, Grady, & James, 2000)
1.9. HERRAMIENTAS.SOFTWARE.
Lenguaje de Programación : Java
IDE (Entorno de Desarrollo Integrado) : Eclipse, Netbeans
SDK – Android, J2ME, Sony Ericsson y Nokia S60 SDK
Emulador : wireles toolkit sun.
SGBD (Sistema Gestor de Base de Datos) : MySQL, Sqlite
Herramienta CASE : Enterprise Architect v7.5.x
HARDWARE
Celular Android V2.2 en adelante, Sony Ericsson k510, Nokia 6530.
Una PC para Servidor de Datos
9
Taller De Grado I
CAPITULO 2LA EMPRESA (F.S.T.P.S.C.)LA EMPRESA (F.S.T.P.S.C.)
ResumenEn este capítulo se dará a conocer para quien estamos desarrollando el software, su organización y su función social que cumple.
10
Taller De Grado I
2.1. FEDERACION SINDICAL DE TRABAJADORES DE LA PRENSA DE
SANTA CRUZ (F.S.T.P.S.C.)
La federación sindical de trabajadores de la prensa de santa cruz (F.S.T.P.S.C.) es
producto de un gran trabaja de hombres y mujeres, voluntades que se han dispuesto en
beneficio de todos sus afiliados; para ello, en una parte, han trabado durante mucho en
las normas que rigen en el accionar de la organización, de sus dirigentes y de quienes
hacen los sindicatos y comité sindicales: hombres y mujeres de base.
La F.S.T.P.S.C. cuenta a disposición de todos los afiliados su estatuto, el que ha
sido reformulado en la ciudad de camurí con el esfuerzo de cada uno de los delegados
asistentes a este congreso extraordinario, teniendo como reto de cada uno de los
miembros de esta federación es cumplir con este estatuto orgánico que el mismo está
dividido en 20 capítulos y 139 artículos, también cuenta con un reglamento del tribunal
de honor y el reglamento del comité electoral. Así mismo se puede mencionar que la
F.S.T.P.S.C. incluye el código de ética de la confederación sindical de trabajadores de
la prensa boliviana aprobada en 1991 y la ley de imprenta que goza de plena vigencia
en el país.
A continuación presentamos el organigrama de la institución:
Ilustración 1: Organigrama de la Institución
11
Taller De Grado I
CAPITULO 3EL SOFTWARE: AGENDA ELECTRONICA EL SOFTWARE: AGENDA ELECTRONICA DISTRIBUIDADISTRIBUIDA
ResumenEn este capítulo explicaremos acerca del software.
13
Taller De Grado I
3.1. AGENDA “REUNION”
La palabra agenda es originalmente una palabra en plural, un término latino para
denotar las “acciones a ser acometidas”. Lo que hoy se conoce con ese nombre es una
lista de renglones individuales, cada uno de estos referidos originalmente
como agendum. Hoy día, sin embargo, es común referirse a la lista en su totalidad como
la agenda para la reunión. Esta palabra es tratada como singular y tiene su
plural “agendas”.
Significa hacer cosas o tener cosas planeadas para hacerlas.
Contenido y Formato de una Agenda
En reuniones de negocio y de muchas instituciones públicas y privadas, la agenda
de la reunión se conoce también como orden del día. La agenda se distribuye
generalmente a los participantes de una reunión antes de la misma, de modo que los
asistentes estén enterados de los temas que se discutirán y puedan prepararse
consecuentemente para la reunión.
En el procedimiento parlamentario, el orden del día no es vinculante para la
asamblea a menos que sus propias reglas así lo exijan, o haya sido adoptado como el
programa de la reunión por mayoría de votos al inicio de la sesión. De lo contrario, es
simplemente una orientación para el presidente de la asamblea.
Si un orden del día es obligatorio para una asamblea, y aparece una hora específica
en la convocatoria de la reunión, ese elemento no puede ser iniciado antes de esa hora, y
se debe empezar cuando llegue ese momento, incluso si otro asunto se encuentra
pendiente de finalizar. Si se desea hacer otra cosa, las reglas pueden ser suspendidas
con ese propósito.
En reuniones de tipo científico o académico, se prefiere el uso de la palabra
programa.
14
Taller De Grado I
Generalmente la agenda u orden del día tiene como encabezado la fecha, la hora y el
lugar de la reunión, y le siguen una serie de puntos que conforman el contenido de la
reunión. (Airunp, et al., 2012)
3.2. AGENDA ELECTRONICA
Un organizador personal o una agenda electrónica de bolsillo, PDA
(del inglés 'personal digital assistant “asistente digital personal”), es
una computadora de mano originalmente diseñada como agenda electrónica (calendario,
lista de telefónica, bloc de notas y recordatorios) con un sistema de reconocimiento de
escritura.
Actualmente un PDA tiene por lo menos una pantalla táctil para ingresar
información, una tarjeta de memoria y al menos un sistema de conexión inalámbrica, ya
sea Bluetooth o WiFi. Por lo general estos dispositivos de bolsillo incluyen un
calendario, un directorio de contactos y algún programa de notas. Algunos
organizadores digitales también tienen soporte para navegar por la red y revisar el
correo electrónico.
La llegada de los teléfonos inteligentes o Comunicadores (híbridos entre
ordenadores de bolsillo y teléfono móvil) supuso para el mercado, por un lado, la
entrada de nuevos competidores y, por otro, la incorporación a éste de usuarios
avanzados de móviles. De paso supuso la vuelta de un sistema operativo que había
abandonado el mercado de las PDAs y ordenadores de mano en favor de los móviles:
el Symbian OS. Las PDAs de hoy en día traen multitud de comunicaciones
inalámbricas (Bluetooth, Wi-Fi, IrDA (infrarrojos), GPS...) que los hace tremendamente
atractivos hasta para cosas tan inverosímiles como su uso para domótica o
como navegadores GPS. Hoy en día la mayoría de los PDAs son Smartphone.
(AlbertoDV, et al., 2012)
3.3. AGENDAS ELECTRONICAS DISTRIBUIDASPara describir y comprender el comportamiento de una Agenda Electrónica Distribuida,
veremos el siguiente concepto:
3.3.1. Sistemas Distribuidos
15
Taller De Grado I
Un sistema distribuido se define como: una colección de computadoras
separadas físicamente y conectadas entre sí por una red de
comunicaciones distribuida; cada máquina posee sus componentes de hardware y
software que el usuario percibe como un solo sistema (no necesita saber qué cosas
están en qué máquinas). El usuario accede a los recursos remotos (RPC) de la
misma manera en que accede a recursos locales, o un grupo de computadores que
usan un software para conseguir un objetivo en común.
Los sistemas distribuidos deben ser muy confiables, ya que si un
componente del sistema se descompone otro componente debe ser capaz de
reemplazarlo, esto se denomina tolerancia a fallos.
El tamaño de un sistema distribuido puede ser muy variado, ya sean decenas
de hosts (red de área local), centenas de hosts (red de área metropolitana), y miles o
millones de hosts (Internet); esto se denomina escalabilidad. (4lex, et al., 2012)
3.3.2. E-SOA
Enterprise Oriented Services Architecture, en español Arquitectura de
Servicios Orientados a Empresas. Este es un concepto de arquitectura de software
que define la utilización de servicios para dar soporte a los requisitos del negocio.
SOA es un plan de arquitectura abierta de Tecnologías de la Información
flexible y adaptable, para el desarrollo de soluciones de negocios basadas en
servicios a escala empresarial. (Trujillo, 2010)
16
Taller De Grado I
Arquitectura SOA
Ilustración 3: Arquitectura SOA
Según los conceptos anteriormente vistos, esta aplicación se basaría en poder conectar
una agenda, de una empresa con las agendas de todos los trabajadores, para que al
momento de poner una cita, o reunión automáticamente se coloque en la agenda de los
demás, y poder ser procesadas como las citas fuesen colocadas por los mismos usuarios.
3.3.3. J2ME “Java Plataform Micro Edition”
Es entorno flexible y sólido para aplicaciones que se ejecutan en dispositivos
móviles e integrados: teléfonos móviles, TDT, reproductores Blue-ray, dispositivos
multimedia digitales, módulos M2M, impresoras y mucho más.
La tecnología Java ME se creó originalmente para paliar las limitaciones
asociadas a la creación de aplicaciones para pequeños dispositivos. Con este fin
Oracle ha definido los fundamentos de la tecnología Java ME para adaptarse a
entornos limitados y hacer posible la creación de aplicaciones Java que se ejecuten
en pequeños dispositivos con memoria, visualización y potencia limitadas. (Oracle)
Los motivos para realizar una agenda distribuida para la Federación Sindical de
Trabajadores de la Prensa de Santa Cruz, son:
17
Taller De Grado I
Facilitar el aviso de citas o reuniones a los usuarios, de toda la F.S.T.P.S.C., y así
tener una propia herramienta de comunicación, ya que el uso de Google Calendar que
ofrece Google App, está fuera de las posibilidades que se tienen para el pago, de
acuerdo a lo visto por su propia página donde la empresa tiene que cancelar un monto
de 5 USD por usuario mes, el cual no está al alcance de las posibilidades de la
Federación, otro inconveniente es que para sacar mayor provecho al servicio tendría
que estar en la misma plataforma de Google en este caso Android, si bien el uso de
Smartphone Android en Bolivia está incrementando, la mayoría de los afiliados no
cuentan con estos dispositivos, y obligaría a que se comprase uno, ya que Google
calendar no tiene una aplicación que se ejecute desde teléfonos normales, y algunas
aplicaciones que logran mantener comunicación con Google calendar necesitan si o si
tener acceso a internet para el acceso a la información, ya que Google calendar solo
ofrece una página móvil para el acceso a los datos desde un dispositivo común, el cual
no cuenta con una interface cómoda para la administración de citas y eventos.
Es por eso que el desarrollo de esta aplicación usaremos todas estas tecnologías
antes mencionadas, SOAP para el manejo y comunicación de datos con el servidor, y la
actualización de los eventos suscitados en el transcurso del tiempo, en especial J2ME
que será la plataforma de desarrollo escogida por ser multiplataforma en casi todos los
dispositivos móviles, Celulares, PDA.
18
Taller De Grado I
CAPITULO 4FLUJO DE TRABAJO:FLUJO DE TRABAJO: CAPTURA DE REQUISITOCAPTURA DE REQUISITO
ResumenEn este capítulo explicaremos acerca de la especificación de los requisitos funcionales y no funcionales del sistema, generando un modelo de casos de uso.
20
Taller De Grado I
4.1. DEFINIENDO EL CONTEXTO DEL PROYECTO
4.1.1. MODELO DE DOMINIO object Domain Mo...
Ev ento
Estado
usuario
Persona
Niv el
Agenda
priv ilegio
configuracion
Sindicato
priv ilegios
AgendaEv entos
*
pertenece
*
*
afi l iado
1
*
afi l iado
1
tiene*
tiene1
1
tiene
1
*
tiene
1
1
tiene
1..*
Ilustración 4: Modelo de Dominio
21
Taller De Grado I
4.2. IDENTIFICAR CASOS DE USO
4.2.1. IDENTIFICACION DE ACTORES uc Actors
agendaempresa Cliente
Empresa: La encargada de poder acceder al servicio de publicación la
planificación de eventos, reuniones, etc. A todos sus usuarios o personas
que estén relacionadas a la empresa.
Cliente: Es el usuario normal que tiene acceso al servicio de agenda, en el
cual solo tendrá permiso de guardar sus datos en el servidor y ver otras
agendas, pero él no podrá compartir información con los demás usuarios.
Agenda: Es el software para el dispositivo móvil, que se encargara de
comunicarse con el servidor de datos, para que se actualicen los datos y
mostrarlo al cliente.
4.2.2. IDENTIFICACION DE CASOS DE USOUC 1) Crear Cuenta
UC 2) Login
UC 3) Gestionar Perfil
UC 4) Gestionar Evento
UC 5) Publicar Evento
UC 6) Compartir Evento
UC 7) Crear Evento
UC 8) Eventos Pendientes
UC 9) Ver Eventos
22
Taller De Grado I
UC 10) Notificar Eventos
UC 11) Ver Confirmados
UC 12) Verificar Conexión
4.3. CASOS DE USO POR MÓDULOS.4.3.1. Manejo de Usuarios
UC 1) Crear Cuenta
UC 2) Login
UC 3) Gestionar Perfil
4.3.2. Manejo de Eventos
UC 4) Gestionar Evento
UC 5) Publicar Evento
UC 6) Compartir Evento
UC 7) Crear Evento
UC 8) Eventos Pendientes
UC 9) Ver Eventos
4.3.3. Manejo de Agenda
UC 10) Notificar Eventos
UC 11) Ver Confirmados
UC 12) Verificar Conexión
23
Taller De Grado I
4.4. PRIORIZAR CASOS DE USO.CASO DE USO ESTADO PRIORIDAD RIESGO
CU1. Crear Cuenta Aprobado Critico Alta
CU2. Login Aprobado Critico Alta
CU3. Gestionar Perfil Aprobado Importante Bajo
CU4. Gestionar Eventos Aprobado Importante Media
CU5. Publicar Eventos Aprobado Critico Alta
CU6. Compartir Eventos Aprobado Critico Alta
CU7. Crear Eventos Aprobado Critico Alta
CU8. Eventos Pendientes Aprobado Importante Media
CU9. Ver Eventos Aprobado Importante Media
CU10. Notificar Eventos Aprobado Importante Media
CU11. Ver Confirmados Aprobado Importante Media
CU12. Verificar Conexión Aprobado Critico Alta
24
Taller De Grado I
4.5. DETALLE DE CASOS DE USO.UC 1) Crear Cuenta
uc Primary Use Cases
Create User Account
Clienteempresa
Caso de Uso Crear Cuenta 1Breve Descripción Se encargara de poder registrar y crear una cuenta de acceso al sistema para los usuarios.Actores Principales Cliente, EmpresaActores Secundarios NingunoPrecondiciones NingunoFlujo Principal
1. Inicia cuando el Cliente normal o empresa desean utilizar el servicio.2. Se establece una conexión con servidor.3. Se realiza la solicitud de un nuevo usuario.4. Se recibe el formulario de nueva Cuenta.5. Se registra.6. Se muestra primeras configuraciones.
Pos condiciones
Flujos Alternativos
25
Taller De Grado I
UC 2) Login
uc Primary Use Cases
Login
Cliente
empresa
Caso de Uso Login 2Breve Descripción
Define un punto de login para poder sincronizar datos con el servidor.
Actores Principales Usuario, EmpresaActores Secundarios NingunoPrecondiciones NingunoFlujo Principal
1. Inicia cuando el usuario requiere su User, y Password.2. Se establece una conexión con servidor.3. Se realiza la sincronización y visualización de datos.
Pos condiciones
Flujos Alternativos Puede Acceder en modo No Conectado desde la aplicación Movil.
27
Taller De Grado I
UC 3) Gestionar Perfil
uc Primary Use Cases
Cliente
gestionar perfil
empresa
Caso de Uso Gestionar Perfil 3Breve Descripción Define un perfil de usuario para que sea visto por las empresas, o lo que mostrara el usuario cuando se asocie a otra agenda.Actores Principales UsuarioActores Secundarios NingunoPrecondiciones NingunoFlujo Principal
1. Inicia cuando el usuario requiere modificar los datos personales.2. Se establece una conexión con servidor.3. Se realiza el cambio de perfil.
Pos condiciones
Flujos Alternativos
29
Taller De Grado I
UC 4) Gestionar Evento
uc Primary Use Cases
Cliente
Gestionar ev entos
Caso de Uso Gestionar Evento 4Breve Descripción Define los eventos locales de la misma aplicación, eventos que no son compartidos con ninguna otra persona.Actores Principales UsuarioActores Secundarios NingunoPrecondiciones NingunoFlujo Principal
1. Inicia cuando el usuario requiere poner un evento, cita, en su agenda.2. Se escribe en el servidor el evento, o de manera local si esta en modo no
conectado.3. Se recibe confirmación de almacenado correctamente.
Pos condiciones Se podrá modificar, postergar, los eventos creados.Flujos Alternativos
31
Taller De Grado I
UC 5) Publicar Evento
uc Primary Use Cases
Publicar Evento
empresa
Caso de Uso Publicar Evento 5Breve Descripción
Define la creación y publicación de un evento a las personas asociadas, a la agenda.
Actores Principales EmpresaActores Secundarios NingunoPrecondiciones
1. Crear Evento2. Establecer conexión con el servidor.
Flujo Principal 1. Se selecciona el evento creado.2. Selecciona a quienes se va a compartir el evento.3. Se realiza el envió del evento, a ser publicado.4. Se recibe confirmación de evento publicado.5. Se establece una lista de usuarios que confirman el evento.
Pos condiciones
Flujos Alternativos
33
Taller De Grado I
UC 6) Compartir Evento
uc Primary Use Cases
compartir evento
Caso de Uso Compartir Evento 6Breve Descripción
Se Encarga de compartir un evento, a un determinado grupo de usuario
Actores Principales EmpresaActores Secundarios NingunoPrecondiciones
1. Establecer conexión con el servidor2. Evento este Seleccionado
Flujo Principal 1. Lista de usuarios a quienes puedo compartir.2. Selección de usuarios para compartir.3. Se envía el evento.4. Se recibe confirmación de datos enviados.
Pos condiciones
Flujos Alternativos
34
Taller De Grado I
UC 7) Crear Evento
uc Primary Use Cases
crear evento
Caso de Uso Definir Punto de Referencia para la Búsqueda 7Breve Descripción
Define la creación de un evento público.
Actores Principales EmpresaActores Secundarios NingunoPrecondiciones
1. Establecer conexión con el servidorFlujo Principal
1. Despliega un formulario de evento.2. La empresa da la información del evento (Fecha, hora, lugar).3. Se guarda el evento y envía los datos al servidor
Pos condiciones El servidor de dato comunicara el evento, si tuviera conexión.Flujos Alternativos En el caso de no tener conexión quedara en una cola de espera para ser publicado.
35
Taller De Grado I
UC 8) Eventos Pendientes
uc Primary Use Cases
Cliente
eventos pendientes
Caso de Uso Eventos Pendientes 8Breve Descripción
Se encargara todos los eventos nuevos, y pendientes de confirmación.
Actores Principales UsuarioActores Secundarios NingunoPrecondiciones NingunoFlujo Principal
1. El sistema despliega una lista con todos los eventos nuevos, y pendientes de confirmación.
2. El usuario tiene la opción de elegir un evento y dar la opción de confirmar o rechazar.
Pos condiciones Si se confirma un evento, cambia de estado.Flujos Alternativos
37
Taller De Grado I
UC 9) Ver Eventos
uc Primary Use Cases
Cliente
ver eventos
Caso de Uso Ver Eventos 9Breve Descripción
Desplegara todos los eventos confirmados, en forma de lista.
Actores Principales UsuarioActores Secundarios NingunoPrecondiciones NingunoFlujo Principal
1. Visualiza en forma de lista todos los eventos, propios del usuario.2. El usuario puede seleccionar un evento y ver el detalle del evento.
Pos condiciones
Flujos Alternativos
39
Taller De Grado I
UC 10) Notificar Eventos
uc Primary Use Cases
agenda
Notificar Ev entos
Caso de Uso Notificar Eventos 10Breve Descripción Emite alertas de que un evento está por ser realizado, o que ha llegado un nuevo evento.Actores Principales AgendaActores Secundarios
Precondiciones NingunoFlujo Principal
1. Desplegara una pantalla para mostrar un detalle del evento que se está por realizar.
2. Tendrá la opción de reproducción automática del evento.Pos condiciones
Flujos Alternativos
40
Taller De Grado I
UC 11) Ver Confirmados
uc Primary Use Cases
ver confirmados
Caso de Uso Ver Confirmados 15Breve DescripciónMuestra una lista de todos los perfiles de los usuarios que han confirmado a una reunión organizada anterior mente, o que se está organizando.Actores Principales EmpresaActores Secundarios NingunoPrecondiciones
1. Establecer conexión con el servidorFlujo Principal
1. Muestra una lista de usuarios que han confirmado la asistencia a la reunión.2. Muestra una lista de usuarios q faltan confirmar asistencia.
Pos condiciones
Flujos Alternativos
41
Taller De Grado I
UC 12) Verificar Conexión
uc Primary Use Cases
verificar conexion
Caso de Uso Verificar Conexión 16Breve Descripción Indica si existe conexión o esta trabajándose en modo no conectado desde el celular.Actores Principales UsuarioActores Secundarios NingunoPrecondiciones NingunoFlujo Principal
1. Si el sistema no tiene conexión, entrara en modo no conectado, almacenando en forma local las nuevas citas, creadas por el usuario.
Pos condiciones
Flujos Alternativos
42
Taller De Grado I
4.6. MODELO DE CASOS DE USO.
43
uc Use Cases General
Managment
Server
User
Service
(from Manejo de Eventos)
Gestionar eventos
(from Manejo de Eventos)
Publicar Ev ento
(from Manejo de Eventos)
crear evento
(from Manejo de Eventos)
compartir ev ento
(from Manejo de Eventos)
ev entos pendientes
(from Manejo de Eventos)
ver eventos
(from Manage Users)
Login
(from Manage Users)
gestionar perfil
agenda
(from Actors)
Cliente
(from Actors)
empresa
(from Actors)
(from Manejo de Agendas)
Notificar Ev entos
(from Manejo de Agendas)
ver confirmados
(from Manejo de Agendas)
verificar conexion
(from Manage Users)
Create User Account
«extend»«extend»
«extend»
Taller De Grado I
CAPITULO 5FLUJO DE TRABAJO:FLUJO DE TRABAJO: ANALISISANALISIS
ResumenEn este capítulo explicaremos acerca de la especificación de los requisitos funcionales y no funcionales del sistema, generando un modelo de casos de uso.
44
Taller De Grado I
5.1. ANALISIS DE ARQUITECTURA
5.1.1. IDENTIFICAR PAQUETES DE ANALISIS analysis Analysis Mo...
Manage Users
+ Login+ Create User Account
Manage Data
Manage Events
Web Serv ice
+ cnx+ datos+ negocio
Manage Calendar
+
5.1.2. DESCRIBIR PAQUETESPackage 1. Manage Events.- El propósito de este paquete es el de manejar los
eventos, y para ser notificados, según la configuración hecha.
Package 2. Manage Calendar.- El propósito de este paquete es de mostrar
gráficamente en un calendario las notas, citas y reuniones, para el día, o distintos
días.
Package 3. Manage Data.- El propósito de este paquete es de guardar todos los
datos que se registren en el móvil.
45
Taller De Grado I
Package 4. Manage Users.- El propósito de este paquete es de controlar el
acceso a las agendas mediante accediendo por un login, para ver los datos desde
el móvil.
Package 5. Web Service.- Contiene todos los servicios Web, y la comunicación
con los datos del servidor de datos.
5.1.3. VISTA EXTERNA DE PAQUETEPackage 1. Manage Events.-
analysis Manage Ev e...
Manage Ev ents
(from Analysis Model)
(from Manejo de Eventos)
ev entos pendientes
(from Manejo de Eventos)
Publicar Ev ento
(from Manejo de Eventos)
v er ev entos
«trace»
«trace»
«trace»
46
Taller De Grado I
Package 2. Manage Calendar.-
pkg Manage Calend...
Manage Calendar
+ +
(from Analysis Model)
(from Manejo de Agendas)
Notificar Ev entos
(from Manejo de Agendas)
ver confirmados
«trace»
«trace»
Package 3. Manage Data.-
analysis Manage D...
Manage Data
(from Analysis Model)
(from Manejo de Eventos)
Gestionar ev entos
(from Manage Users)
Create User Account
«trace»
«trace»
47
Taller De Grado I
Package 4. Manage Users.-
analysis manage users
Manage Users
+ Login+ Create User Account
(from Analysis Model)
(from Manage Users)
Login
(from Manage Users)
gestionar perfil
«trace»
«trace»
Package 5. Web Service
analysis Web Serv ice
(from Manage Users)
Login
(from Manage Users)
Create User Account
(from Manage Users)
gestionar perfil
(from Manejo de Eventos)
Gestionar ev entos
(from Manejo de Eventos)
Publicar Ev ento
Web Serv ice
+ cnx+ datos+ negocio
(from Analysis Model)
«trace»
«trace»
«trace»
«trace»
«trace»
48
Taller De Grado I
UC 2) Login`
sd Login
Cliente
(from Actors)
UserManager
TbUser
LoginController
Dao
SessionManager
IULogin
1: singIn()
1.1: loginAction()
1.2: verifyUser()
1.3: renderer(datas)
1.4: display()
1.5: logIn()
1.6: display()
1.7: openSession()
1.8: fetchByName()
1.9: select()
Web Service
sd Login Create
:WSLogin
:TbUsuario
:HibernateUtil:TbPersona
:TbAgenda
usuario
(from Actors)
1: isUser(string, string) :boolean
2: isUsuarioLogin(string) :TbUsuario2.1: getSessionFactory() :SessionFactory
3: isPersona(int) :TbPersona
3.1: save() :TbPersona
3.2: save() :TbUsuario
3.3: getSessionFactory() :SessionFactory
4: isAgenda(int) :TbAgenda
4.1: save() :TbAgenda 4.2: getSessionFactory() :SessionFactory
50
Taller De Grado I
UC 3) Gestionar Perfil
Web Service
sd Actualizar Perfil WS
:TbPersona :HibernateUtil:WSPersonaCliente
(from Actors)
1: updPerson(int, string, string, int, int, string, int) :string2: isPersona(int) :TbPersona 2.1: getSessionFactory() :SessionFactory
3: update() 3.1: getSessionFactory() :SessionFactory
51
Taller De Grado I
UC 4) Gestionar Evento
Web Service
sd Ev ento WS
:HibernateUtil
(from Manage Users)
:WSAgenda
:TbEvento
:TbAgenda
(from Manage Users)
usuario
(from Actors)
1: updateEvent(int, string, string, long, string, int) :boolean
2: isAgenda(int) :TbAgenda2.1: getSessionFactory() :SessionFactory
3: save() :TbEvento 3.1: getSessionFactory() :SessionFactory
52
Taller De Grado I
UC 5) Publicar Evento
Web Service
sd PubEv e...
:WSAgenda
(from Manejo de Agendas)
:TbEvento
(from Manejo de Agendas)
:TbAgenda
(from Manejo de Agendas)
:HibernateUti l
(from Manejo de Agendas)
:TbAgendaeventos
(from Manejo de Agendas)
usuario
(from Actors)
1: shareEventForUser(int, int, string) :string
2: isAgenda(int) :TbAgenda 2.1: getSessionFactory() :SessionFactory
3: isEvento(int) :TbEvento 3.1: getSessionFactory() :SessionFactory
4: isAgendaEvento(TbAgenda, TbEvento, int) :TbAgendaeventos
4.1: getSessionFactory() :SessionFactory4.2: save() :TbAgendaeventos
UC 6) Compartir Evento
Web Service
sd PubEv ento WS
:WSAgenda :TbEvento
:TbAgenda
(from Manage Users)
:HibernateUtil
(from Manage Users)
:TbAgendaeventos
usuario
(from Actors)
1: shareEventForSindicato(int, int, string) :boolean
2: isAgenda(int) :TbAgenda 2.1: getSessionFactory() :SessionFactory
3: isEvento(int) :TbEvento 3.1: getSessionFactory() :SessionFactory
4: isAgendaEvento(TbAgenda, TbEvento, int) :TbAgendaeventos
4.1: getSessionFactory() :SessionFactory4.2: save() :TbAgendaeventos
53
Taller De Grado I
UC 7) Crear Evento
Web Service
sd Eve...
:HibernateUtil
(from Manejo de Agendas)
:WSAgenda
(from Manejo de Agendas)
:TbEvento
(from Manejo de Agendas)
:TbAgenda
(from Manejo de Agendas)
usuario
(from Actors)
1: isAgenda(int) :TbAgenda1.1: getSessionFactory() :SessionFactory
2: save() :TbEvento 2.1: getSessionFactory() :SessionFactory
2.2: createEvent(string, string, long, string, string, boolean, int) :string
54
Taller De Grado I
UC 8) Eventos Pendientes
Web Service
sd v iewEv entsWithOutConfi...
usuario
(from Actors)
:WSEventos :TbEvento
:HibernateUtil
1: getEventsWithOutConfirm(int) :String
1.1: TbEvento()
1.2: getMyEventsWitOutConfirm(int) :List<TbEvento>
1.3: getSessionFactory() :SessionFactory
1.4: *encode() :String
UC 9) Ver Eventos
Web Service
sd v iew Ev e...
usuario
(from Actors)
:WSEventos :TbEvento
:HibernateUti l
1: getMyEvents(int, int) :String
1.1: isEvento(int) :TbEvento
1.2: getSessionFactory() :SessionFactory
1.3: getMyEvents() :List<TbEvento>
55
Taller De Grado I
UC 10) Notificar Eventos
sd Comunicacion
usuario
(from Actors)
:WSAgenda :Mail
1: shareEventForSindicato(int, int, String) :boolean 1.1: send()
56
Taller De Grado I
UC 11) Ver Confirmados
Web Service
sd v iewPersonConfi...
usuario
(from Actors)
:WSEventos :TbEvento
:HibernateUtil
1: getPersonConfirmEvent(int) :String
1.1: TbEvento()1.2: getMyGuestsConfirmed(int) :List<TbEvento>
1.3: getSessionFactory() :SessionFactory
1.4: *encode() :String
UC 12) Verificar Conexión
sd Interaction
usuario
(from Actors)
:WSLogin
1: existCnx() :boolean
57
Taller De Grado I
CAPITULO 6FLUJO DE TRABAJO:FLUJO DE TRABAJO: DISENODISENO
ResumenEn este capítulo explicaremos acerca de la especificación del diseño de la arquitectura del software.
58
Taller De Grado I
UC 5) Publicar Evento
71
sd In
terac
tion
usua
rio
(from
Actor
s)
:WSA
gend
a
:TbE
vento
:TbC
onfig
uracio
nes
:TbE
stado
:TbA
gend
a
:Hibe
rnateU
til:T
bAge
ndae
vento
s
loop s
hare
Even
ts
[listA
gend
a.size
]
share
Even
tForS
indica
to(int
, int, S
tring)
:boole
an
even
to= T
bEve
nto()
even
to= is
Even
to(int
)ge
tSes
sionF
actor
y() :S
essio
nFac
tory
confi
gurac
ion= T
bCon
figura
cione
s()
confi
gurac
ion= i
sCon
figura
cion(i
nt)ge
tSes
sionF
actor
y() :S
essio
nFac
tory
estad
o= T
bEsta
do()
estad
o= is
Estad
o(int)
getS
essio
nFac
tory()
:Ses
sionF
actor
y
agen
da= T
bAge
nda()
listA
gend
a= ge
tAge
ndas
ForS
indica
to(int
) :List
<TbA
gend
a>
getS
essio
nFac
tory()
:Ses
sionF
actor
y
agen
daev
entos
= TbA
gend
aeve
ntos(T
bAge
nda,
TbEs
tado,
TbEv
ento,
TbC
onfig
uracio
nes)
save
()
getS
essio
nFac
tory()
:Ses
sionF
actor
y
:True
Taller De Grado I
UC 6) Compartir Evento
72
sd In
terac
tion
usua
rio
(from
Acto
rs)
:WSA
gend
a
:TbC
onfig
urac
ione
s
:TbE
stado
:TbE
vent
o
:TbP
erso
na
:TbA
gend
a :TbA
gend
aeve
ntos
shar
eEve
ntFo
rUse
r(int
, int
, Stri
ng) :
Strin
g
conf
igur
acio
n= T
bCon
figur
acio
nes()
conf
igur
acio
n= is
Conf
igur
acio
n(in
t) :T
bCon
figur
acio
nes
esta
do=
TbEs
tado
()
esta
do=
isEsta
do(in
t) :T
bEsta
do
even
to=
TbEv
ento
()
even
to=
isEve
nto(
int)
:TbE
vent
o
perso
na=
TbPe
rsona
()
perso
na=
isPer
sona
(int)
agen
da=
TbAg
enda
()
isAge
nda(
int)
agen
daev
ento
s= T
bAge
ndae
vent
os()
save
()
resp
= en
code
()
:resp
Taller De Grado I
UC 8) Eventos Pendientes
sd Interaction
usuario
(from Actors)
:WSEventos
:TbEvento
:HibernateUtil
loop ev entos sin confirmar
[l ist.size]
getEventsWithOutConfirm(int) :String
evento= TbEvento()
eventolist= getMyEventsWithOutConfirm(int) :l ist
getSessionFactory() :SessionFactory
tbEvento= TbEvento()
listevents= encode()
:l istevents
74
Taller De Grado I
UC 9) Ver Eventos
sd Interaction
usuario
(from Actors)
:WSEventos
:TbEvento
:HibernateUtil
loop mis Eventos
[l ist.size]
getMyEvents(int, int) :String
evento= TbEvento()
isEvento(int) :evento
getSessionFactory() :SessionFactory
eventarray= getMyEvents(int) :l ist
tbEvento= TbEvento()
listevent= encode()
:listevent
75
Taller De Grado I
UC 10) Notificar Eventos
76
sd Se
cuen
cia usuari
o
(from A
ctors)
:WSA
gend
a
:TbEv
ento
:TbPe
rsona
:TbAg
enda
:TbCo
nfigu
racion
es
loop G
etAllP
erson
ForSi
ndica
to
[list.si
ze]
shareE
ventF
orSind
icato(
int, in
t, Strin
g) :bo
olean
TbEv
ento(
)
isEve
nto(in
t) :Tb
Even
to
TbCo
nfigu
racion
es()
isCon
figura
cion(i
nt) :T
bCon
figura
cione
s
TbAg
enda
()
perso
nList=
getAg
enda
sForSi
ndica
to(int
) :List<
TbAg
enda
>
TbPe
rsona
()
Mail(S
tring,
String
, Strin
g)
send()
Taller De Grado I
UC 11) Ver Confirmados
sd Interaction
usuario
(from Actors)
:WSEventos
:TbEvento
:HibernateUtil
loop todos mis confirmados
[l ist.size]
getPersonConfirmEvent(int)
evento= TbEvento()
eventoarray= getMyGuestsConfirmed(int) :l ist
getSessionFactory()
tbEvento= TbEvento()
listEvents= encode() :String
:listEvents
UC 12) Verificar Conexión
sd Interaction
usuario
(from Actors)
:WSLogin
existCnx() :boolean
:True
77
Taller De Grado I
Web Service Login
class Login
negocio::WSLogin
+ addUser(string, string, string, string, int, int) : string+ existCnx() : boolean+ isUser(string, string) : boolean+ updUser(string, string, string) : string
datos::TbUsuario
- id: integer- login: string- password: string- tbPersonas: Set<TbPersona>+ session: Session
+ getId() : integer+ getLogin() : string+ getPassword() : string+ getTbPersonas() : Set<TbPersona>+ isUsuario(string, strng) : TbUsuario+ isUsuario(integer) : TbUsuario+ isUsuarioLogin(string) : TbUsuario+ save() : TbUsuario+ setId(Integer) : void+ setLogin(string) : void+ setPassword(string) : void+ setTbPersonas(Set<TbPersona>) : void+ TbUsuario() : void+ TbUsuario(string, string) : void+ TbUsuario(string, string, Set<TbPersona> ) : void+ update() : void
cnx::HibernateUtil
- sessionFactory: SessionFactory
+ getSessionFactory() : SessionFactory
80
Taller De Grado I
Web Service Perfil
82
clas
s Pe
rfil
cnx:
:Hib
erna
teUt
il
- se
ssio
nFac
tory
: Se
ssio
nFac
tory
+ ge
tSes
sionF
acto
ry()
: Ses
sionF
acto
ry
dato
s::Tb
Pers
ona
- ap
ellid
os:
strin
g-
ci:
int
- em
ail:
strin
g-
id:
Inte
ger
- no
mbr
e: s
tring
- tb
Agen
das:
Set
<TbA
gend
a>-
tbSi
ndic
ato:
TbS
indi
cato
- tb
Usua
rio:
TbUs
uario
- te
lefo
noce
lula
r: in
tege
r-
tele
fono
fijo:
int
eger
+ se
ssio
n: S
essio
n
+ ge
tApe
llido
s() :
strin
g+
getC
i() :
int
+ ge
tEm
ail()
: str
ing
+ ge
tId()
: int
eger
+ ge
tNom
bre(
) : st
ring
+ ge
tPer
sona
(int)
: TbP
erso
na+
getT
bAge
ndas
() : S
et<T
bAge
nda>
+ ge
tTbS
indi
cato
() : T
bSin
dica
to+
getT
bUsu
ario
() : T
bUsu
ario
+ ge
tTel
efon
ocel
ular
() : i
nteg
er+
getT
elef
onof
ijo()
: int
eger
+ isP
erso
na(in
t) : T
bPer
sona
+ sa
ve()
: TbP
erso
na+
setA
pelli
dos(s
tring
) : v
oid
+ se
tCi(i
nt) :
voi
d+
setE
mai
l(stri
ng) :
voi
d+
setId
(inte
ger)
: voi
d+
setN
ombr
e(str
ing)
: vo
id+
setT
bAge
ndas
(Set
<TbA
gend
a>) :
voi
d+
setT
bSin
dica
to(T
bSin
dica
to) :
voi
d+
setT
bUsu
ario
(TbU
suar
io) :
voi
d+
setT
elef
onoc
elul
ar(in
tege
r) : v
oid
+ se
tTel
efon
ofijo
(inte
ger)
: voi
d+
TbPe
rsona
() : v
oid
+ Tb
Perso
na(st
ring,
strin
g, in
t, Tb
Sind
icat
o) :
void
+ Tb
Perso
na(S
et<T
bAge
nda>
, int
eger
, int
eger
, stri
ng, s
tring
, stri
ng, i
nt, T
bSin
dica
to, T
bUsu
ario
) : v
oid
+ up
date
() : v
oid
nego
cio:
:WSP
erso
na
+ ad
dPer
son(
strin
g, st
ring,
int,
int,
int,
strin
g, in
t, in
t) : s
tring
+ ex
istCn
x() :
boo
lean
+ isP
erso
n(in
t) : b
oole
an+
updP
erso
n(in
t, str
ing,
strin
g, in
t, in
t, str
ing,
int)
: stri
ng
dato
s::Tb
Sind
icat
o
- id
: in
tege
r-
nom
bre:
stri
ng-
sigla
: str
ing
- tb
Perso
nas:
Set
<TbP
erso
na>
- tb
Sind
icat
o: T
bSin
dica
to-
tbSi
ndic
atos
: Se
t<Tb
Sind
icat
o>+
sess
ion:
Ses
sion
+ ge
tId()
: int
eger
+ ge
tNom
bre(
) : st
ring
+ ge
tSig
la()
: stri
ng+
getT
bPer
sona
s() :
Set<
TbPe
rsona
>+
getT
bSin
dica
to()
: TbS
indi
cato
+ ge
tTbS
indi
cato
s() :
Set<
TbSi
ndic
ato>
+ isS
indi
cato
(strin
g, st
ring,
int)
: TbS
indi
cato
+ sa
ve()
: TbS
indi
cato
+ se
tId(in
tege
r) : v
oid
+ se
tNom
bre(
strin
g) :
void
+ se
tSig
la(st
ring)
: vo
id+
setT
bPer
sona
s(Set
<TbP
erso
na>)
: vo
id+
setT
bSin
dica
to(T
bSin
dica
to) :
voi
d+
setT
bSin
dica
tos(S
et<T
bSin
dica
to>)
: vo
id+
TbSi
ndic
ato(
) : v
oid
+ Tb
Sind
icat
o(str
ing)
: vo
id+
TbSi
ndic
ato(
TbSi
ndic
ato,
strin
g, st
ring,
Set
<TbS
indi
cato
>, S
et<T
bPer
sona
>) :
void
+ up
date
() : v
oid
dato
s::Tb
Usua
rio
- id
: in
tege
r-
logi
n: s
tring
- pa
sswo
rd:
strin
g-
tbPe
rsona
s: S
et<T
bPer
sona
>+
sess
ion:
Ses
sion
+ ge
tId()
: int
eger
+ ge
tLog
in()
: stri
ng+
getP
assw
ord(
) : st
ring
+ ge
tTbP
erso
nas()
: Se
t<Tb
Perso
na>
+ isU
suar
io(st
ring,
strn
g) :
TbUs
uario
+ isU
suar
io(in
tege
r) : T
bUsu
ario
+ isU
suar
ioLo
gin(
strin
g) :
TbUs
uario
+ sa
ve()
: TbU
suar
io+
setId
(Inte
ger)
: voi
d+
setL
ogin
(strin
g) :
void
+ se
tPas
swor
d(str
ing)
: vo
id+
setT
bPer
sona
s(Set
<TbP
erso
na>)
: vo
id+
TbUs
uario
() : v
oid
+ Tb
Usua
rio(st
ring,
strin
g) :
void
+ Tb
Usua
rio(st
ring,
strin
g, S
et<T
bPer
sona
> ) :
voi
d+
upda
te()
: voi
d
Taller De Grado I
UC 5) Publicar Evento
class Manage Eve...
datos::TbAgendaeventos
- id: integer- tbAgenda: TbAgenda- tbConfiguraciones: TbConfiguraciones- tbEstado: TbEstado- tbEvento: TbEvento- nota: string
+ encode() : String+ getEventsForEvent(int) : List<TbAgendaeventos>+ decode(String) : void+ getId() : integer+ getNota() : string+ getTbAgenda() : TbAgenda+ getTbConfiguraciones() : TbConfiguraciones+ getTbEstado() : TbEstado+ getTbEvento() : TbEvento+ isAgendaEvento(TbAgenda, TbEvento, int) : TbAgendaeventos+ save() : TbAgendaeventos+ setId(integer) : void+ setNota(string) : void+ setTbAgenda(TbAgenda) : void+ setTbConfiguraciones(TbConfiguraciones) : void+ setTbEstado(TbEstado) : void+ setTbEvento(TbEvento) : void+ TbAgendaeventos() : void+ TbAgendaeventos(TbAgenda, TbEstado, TbEvento, TbConfiguraciones) : void+ TbAgendaeventos(string, TbAgenda, TbEstado, TbEvento, TbConfiguraciones) : void+ update() : void+ notifyUpdate(int) : void
negocio::WSAgenda
+ existCnx() : boolean+ addAgenda(int) : int+ createEvent(String, String, long, String, String, boolean, int) : int+ shareEventForUser(int, int, String) : String+ shareEventForSindicato(int, int, String) : boolean+ deleteEvent(int) : boolean+ updateEvent(int, String, String, long, String, int) : boolean
cnx::HibernateUtil
- sessionFactory: SessionFactory
+ getSessionFactory() : SessionFactory
84
Taller De Grado I
UC 6) Compartir Evento
class Manage Eve...
datos::TbAgendaeventos
- id: integer- tbAgenda: TbAgenda- tbConfiguraciones: TbConfiguraciones- tbEstado: TbEstado- tbEvento: TbEvento- nota: string
+ encode() : String+ getEventsForEvent(int) : List<TbAgendaeventos>+ decode(String) : void+ getId() : integer+ getNota() : string+ getTbAgenda() : TbAgenda+ getTbConfiguraciones() : TbConfiguraciones+ getTbEstado() : TbEstado+ getTbEvento() : TbEvento+ isAgendaEvento(TbAgenda, TbEvento, int) : TbAgendaeventos+ save() : TbAgendaeventos+ setId(integer) : void+ setNota(string) : void+ setTbAgenda(TbAgenda) : void+ setTbConfiguraciones(TbConfiguraciones) : void+ setTbEstado(TbEstado) : void+ setTbEvento(TbEvento) : void+ TbAgendaeventos() : void+ TbAgendaeventos(TbAgenda, TbEstado, TbEvento, TbConfiguraciones) : void+ TbAgendaeventos(string, TbAgenda, TbEstado, TbEvento, TbConfiguraciones) : void+ update() : void+ notifyUpdate(int) : void
negocio::WSAgenda
+ existCnx() : boolean+ addAgenda(int) : int+ createEvent(String, String, long, String, String, boolean, int) : int+ shareEventForUser(int, int, String) : String+ shareEventForSindicato(int, int, String) : boolean+ deleteEvent(int) : boolean+ updateEvent(int, String, String, long, String, int) : boolean
cnx::HibernateUtil
- sessionFactory: SessionFactory
+ getSessionFactory() : SessionFactory
85
Taller De Grado I
UC 8) Eventos Pendientes
class Ev ents Pendie...
negocio::WSEv entos
+ existCnx() : boolean+ getMyEvents(int, int) : String+ getEventsWithOutConfirm(int) : String+ getPersonConfirmEvent(int) : String
datos::TbAgendaev entos
- id: integer- tbAgenda: TbAgenda- tbConfiguraciones: TbConfiguraciones- tbEstado: TbEstado- tbEvento: TbEvento- nota: string
+ encode() : String+ getEventsForEvent(int) : List<TbAgendaeventos>+ decode(String) : void+ getId() : integer+ getNota() : string+ getTbAgenda() : TbAgenda+ getTbConfiguraciones() : TbConfiguraciones+ getTbEstado() : TbEstado+ getTbEvento() : TbEvento+ isAgendaEvento(TbAgenda, TbEvento, int) : TbAgendaeventos+ save() : TbAgendaeventos+ setId(integer) : void+ setNota(string) : void+ setTbAgenda(TbAgenda) : void+ setTbConfiguraciones(TbConfiguraciones) : void+ setTbEstado(TbEstado) : void+ setTbEvento(TbEvento) : void+ TbAgendaeventos() : void+ TbAgendaeventos(TbAgenda, TbEstado, TbEvento, TbConfiguraciones) : void+ TbAgendaeventos(string, TbAgenda, TbEstado, TbEvento, TbConfiguraciones) : void+ update() : void+ notifyUpdate(int) : void
datos::TbEv ento
- id: Integer- tbAgenda: TbAgenda- ti tulo: String- descripcionevento: String- fecha: Date- hora: Date- lugar: String- tipo: boolean- tbAgendaeventoses: Set<TbAgendaeventos> = new HashSet<TbA...~ session: Session = null
+ encode() : String+ TbEvento()+ decode(String) : void+ TbEvento(TbAgenda, String, Date, Date, String, boolean)+ TbEvento(TbAgenda, String, String, Date, Date, String, boolean, Set<TbAgendaeventos>)+ getId() : Integer+ setId(Integer) : void+ getTbAgenda() : TbAgenda+ setTbAgenda(TbAgenda) : void+ getTi tulo() : String+ setTitulo(String) : void+ getDescripcionevento() : String+ setDescripcionevento(String) : void+ getFecha() : Date+ setFecha(Date) : void+ getHora() : Date+ setHora(Date) : void+ getLugar() : String+ setLugar(String) : void+ isTipo() : boolean+ setTipo(boolean) : void+ getTbAgendaeventoses() : Set<TbAgendaeventos>+ setTbAgendaeventoses(Set<TbAgendaeventos>) : void+ isEvento(int) : TbEvento+ save() : TbEvento+ getLastEventForAgenda(int) : TbEvento+ update() : void+ delete() : void
cnx::HibernateUtil
- sessionFactory: SessionFactory
+ getSessionFactory() : SessionFactory
87
Taller De Grado I
UC 9) Ver Eventos
class Ev ents Pendie...
negocio::WSEv entos
+ existCnx() : boolean+ getMyEvents(int, int) : String+ getEventsWithOutConfirm(int) : String+ getPersonConfirmEvent(int) : String
datos::TbAgendaev entos
- id: integer- tbAgenda: TbAgenda- tbConfiguraciones: TbConfiguraciones- tbEstado: TbEstado- tbEvento: TbEvento- nota: string
+ encode() : String+ getEventsForEvent(int) : List<TbAgendaeventos>+ decode(String) : void+ getId() : integer+ getNota() : string+ getTbAgenda() : TbAgenda+ getTbConfiguraciones() : TbConfiguraciones+ getTbEstado() : TbEstado+ getTbEvento() : TbEvento+ isAgendaEvento(TbAgenda, TbEvento, int) : TbAgendaeventos+ save() : TbAgendaeventos+ setId(integer) : void+ setNota(string) : void+ setTbAgenda(TbAgenda) : void+ setTbConfiguraciones(TbConfiguraciones) : void+ setTbEstado(TbEstado) : void+ setTbEvento(TbEvento) : void+ TbAgendaeventos() : void+ TbAgendaeventos(TbAgenda, TbEstado, TbEvento, TbConfiguraciones) : void+ TbAgendaeventos(string, TbAgenda, TbEstado, TbEvento, TbConfiguraciones) : void+ update() : void+ notifyUpdate(int) : void
datos::TbEv ento
- id: Integer- tbAgenda: TbAgenda- ti tulo: String- descripcionevento: String- fecha: Date- hora: Date- lugar: String- tipo: boolean- tbAgendaeventoses: Set<TbAgendaeventos> = new HashSet<TbA...~ session: Session = null
+ encode() : String+ TbEvento()+ decode(String) : void+ TbEvento(TbAgenda, String, Date, Date, String, boolean)+ TbEvento(TbAgenda, String, String, Date, Date, String, boolean, Set<TbAgendaeventos>)+ getId() : Integer+ setId(Integer) : void+ getTbAgenda() : TbAgenda+ setTbAgenda(TbAgenda) : void+ getTi tulo() : String+ setTitulo(String) : void+ getDescripcionevento() : String+ setDescripcionevento(String) : void+ getFecha() : Date+ setFecha(Date) : void+ getHora() : Date+ setHora(Date) : void+ getLugar() : String+ setLugar(String) : void+ isTipo() : boolean+ setTipo(boolean) : void+ getTbAgendaeventoses() : Set<TbAgendaeventos>+ setTbAgendaeventoses(Set<TbAgendaeventos>) : void+ isEvento(int) : TbEvento+ save() : TbEvento+ getLastEventForAgenda(int) : TbEvento+ update() : void+ delete() : void
cnx::HibernateUtil
- sessionFactory: SessionFactory
+ getSessionFactory() : SessionFactory
88
Taller De Grado I
UC 10) Notificar Eventos
class Notificar Ev e...
negocio::WSAgenda
+ existCnx() : boolean+ addAgenda(int) : int+ createEvent(String, String, long, String, String, boolean, int) : int+ shareEventForUser(int, int, String) : String+ shareEventForSindicato(int, int, String) : boolean+ deleteEvent(int) : boolean+ updateEvent(int, String, String, long, String, int) : boolean
negocio::Mail
- mail: String- subject: String- text: String
+ Mail(String, String, String)+ getMail() : String+ setMail(String) : void+ getSubject() : String+ setSubject(String) : void+ getText() : String+ setText(String) : void+ send() : void+ run() : void
89
Taller De Grado I
UC 11) Ver Confirmados
class Ev ents Pendie...
negocio::WSEv entos
+ existCnx() : boolean+ getMyEvents(int, int) : String+ getEventsWithOutConfirm(int) : String+ getPersonConfirmEvent(int) : String
datos::TbAgendaeventos
- id: integer- tbAgenda: TbAgenda- tbConfiguraciones: TbConfiguraciones- tbEstado: TbEstado- tbEvento: TbEvento- nota: string
+ encode() : String+ getEventsForEvent(int) : List<TbAgendaeventos>+ decode(String) : void+ getId() : integer+ getNota() : string+ getTbAgenda() : TbAgenda+ getTbConfiguraciones() : TbConfiguraciones+ getTbEstado() : TbEstado+ getTbEvento() : TbEvento+ isAgendaEvento(TbAgenda, TbEvento, int) : TbAgendaeventos+ save() : TbAgendaeventos+ setId(integer) : void+ setNota(string) : void+ setTbAgenda(TbAgenda) : void+ setTbConfiguraciones(TbConfiguraciones) : void+ setTbEstado(TbEstado) : void+ setTbEvento(TbEvento) : void+ TbAgendaeventos() : void+ TbAgendaeventos(TbAgenda, TbEstado, TbEvento, TbConfiguraciones) : void+ TbAgendaeventos(string, TbAgenda, TbEstado, TbEvento, TbConfiguraciones) : void+ update() : void+ notifyUpdate(int) : void
datos::TbEvento
- id: Integer- tbAgenda: TbAgenda- titulo: String- descripcionevento: String- fecha: Date- hora: Date- lugar: String- tipo: boolean- tbAgendaeventoses: Set<TbAgendaeventos> = new HashSet<TbA...~ session: Session = null
+ encode() : String+ TbEvento()+ decode(String) : void+ TbEvento(TbAgenda, String, Date, Date, String, boolean)+ TbEvento(TbAgenda, String, String, Date, Date, String, boolean, Set<TbAgendaeventos>)+ getId() : Integer+ setId(Integer) : void+ getTbAgenda() : TbAgenda+ setTbAgenda(TbAgenda) : void+ getTitulo() : String+ setTi tulo(String) : void+ getDescripcionevento() : String+ setDescripcionevento(String) : void+ getFecha() : Date+ setFecha(Date) : void+ getHora() : Date+ setHora(Date) : void+ getLugar() : String+ setLugar(String) : void+ isTipo() : boolean+ setTipo(boolean) : void+ getTbAgendaeventoses() : Set<TbAgendaeventos>+ setTbAgendaeventoses(Set<TbAgendaeventos>) : void+ isEvento(int) : TbEvento+ save() : TbEvento+ getLastEventForAgenda(int) : TbEvento+ update() : void+ delete() : void
cnx::HibernateUtil
- sessionFactory: SessionFactory
+ getSessionFactory() : SessionFactory
90
Taller De Grado I
UC 12) Verificar Conexión
class Manage Ev e...
negocio::WSLogin
+ existCnx() : boolean+ isUser(String, String) : boolean+ addUser(String, String) : int+ updUser(String, String, String) : String
91
Taller De Grado I
6.2. DIAGRAMA DE CLASES GENERALDiagrama para el Almacenamiento de Dato
class dao
DbAttribute{leaf}
- index: int- name: String- value: Object- type: int
~ DbAttribute(int, String, Object, int)+ getIndex() : int+ setIndex(int) : void+ getName() : String+ setName(String) : void+ getType() : int+ setType(int) : void+ getValue() : Object+ setValue(Object) : void+ toString() : String+ equals(Object) : boolean+ hashCode() : int
DbConnection{leaf}
- url: String = "file:///root1/"- database: String
~ DbConnection(String)- getUrl(DbEntity) : String+ openConnection() : void+ getSimpleName(Object) : String+ load(DbEnti ty) : void+ save(DbEnti ty) : void+ update(DbEnti ty, DbEntity) : void+ select(DbEntity) : void~ DbConnection()
«interface»DbEntity
+ getAttributes() : DbAttribute[]+ getPrimaryKey() : String+ encode() : String+ decode(String) : void+ equalEncode(String) : boolean
DbFactory{leaf}
+ createConnection(String) : DbConnection+ createAttribute(int, String, int, int) : DbAttribute+ createAttribute(int, String, Object, int) : DbAttribute
RunnableSerializer
- serializable: DbEntity- url: String
+ Serializer(DbEntity, String)+ Serializer(String)+ doSerializationInRSM() : void+ createDataBase() : void+ doSerialization() : void+ doUpdate(DbEnti ty) : void+ doSelect(DbEntity) : void- comparePatron(String, String) : boolean+ createDir() : void
-serializable
92
Taller De Grado I
Diagrama Framework Patrón de Comportamiento MVC
class m...
CommandListenerAbstractController
# view: IView# model: AbstractModel
+ setView(IView) : void+ getView() : IView+ setModel(AbstractModel) : void+ getModel() : AbstractModel
AbstractModel
- views: Vector
+ registerView(IView) : void+ unRegisterView(IView) : void+ displayViews(Object) : void
«interface»IView
+ getController() : AbstractController+ setController(AbstractController) : void+ getMIDlet() : MIDlet+ renderer(Object) : void+ switchDisplayable(Alert, Displayable) : void
#model #view
93
Taller De Grado I
6.3. ANALIZAR PAQUETES
6.3.1. DEPENDENCIA DE PAQUETE analysis Analysis Mo...
Manage Users
+ Login+ Create User Account
Manage Data
Manage Events
Web Serv ice
+ cnx+ datos+ negocio
Manage Calendar
+
94
Taller De Grado I
CONCLUCIONESDurante el desarrollo de este software se ha encontrado problemas como por ejemplo la
persistencia de datos, en la cual J2ME no tiene soporte para Sqlite, donde hemos tenido que
aprender otras formas diferentes de persistencia de datos, usando estándares en la estructura de
datos como JSON, para mantener la estructura de los datos, donde la comunicación de datos con un
servidor es algo critico, se tiene que tener estructuras fáciles de manipular y que no ocupen muchos
datos, solamente las suficientes.
Hemos concluido con el software siguiendo conceptos de SOAP “Arquitectura Orientada a
Servicios” para la comunicación del teléfono con el servidor, y conceptos de Desarrollo de Software
Basado en Componentes, para futuras actualizaciones que así necesitasen.
RECOMENDACIONESAntes de empezar a realizar una aplicación en J2ME se defina una capa de persistencia de
datos, ya que no hay forma de manejar relaciones entre datos, porque solo maneja almacenamiento
en registros de memoria.
Aprender sobre el uso de la Api de bajo nivel, como Canvas, para el desarrollo de
interfaces, puesto que J2ME no ofrece muchas opciones al momento de diseñar interfaces.
Aplicar patrones de diseño para definir la arquitectura que soporte al software, y tener una
facilidad al momento de aplicar correcciones o actualizaciones al software.
95
Taller De Grado I
BIBLIOGRAFIA4lex, garcia, A. I., Arcoe, Bernard, BetoCG, Caos, y otros. (2 de mayo de 2012). Wikipedia Enciclopedia Libre. Recuperado el 3 de mayo de 2012, de Wikipedia Enciclopedia Libre: http://es.wikipedia.org/wiki/Computaci%C3%B3n_distribuida
Airunp, Armando-Martin, BlackBeast, Cobalttempest, Correogsk, Javierito92, y otros. (abril de 2012). Wikipedia Enciclopedia Libre. Recuperado el 1 de mayo de 2012, de wikipedia: http://es.wikipedia.org/wiki/Agenda_(reuni%C3%B3n)
AlbertoDV, Alhen, Páramo, A., Arciei, maguina, A., Baiji, y otros. (29 de mayo de 2012). Wikipedia Enciclopedia Libre. Recuperado el 1 de 5 de 2012, de Wikipedia Enciclopedia Libre: http://es.wikipedia.org/wiki/Agenda_electr%C3%B3nica
Ivar, J., Grady, B., & James, R. (2000). El Proceso Unificado de Desarrollo de Software.
Oracle. (s.f.). Acerca de Java Micro Edition. Recuperado el 14 de 6 de 2012, de Sitio Web de Oracle : http://www.java.com/es/download/faq/whatis_j2me.xml
Trujillo, M. (21 de Mayo de 2010). Blogspot E-SOA. Recuperado el 1 de Mayo de 2012, de Blogspot E-SOA: http://mauriciotrujillointranets.blogspot.com/2010/03/e-soa.html.
96