perfil fstpsc

118
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:

Upload: andreita-mb

Post on 06-Apr-2016

212 views

Category:

Documents


0 download

DESCRIPTION

Perfil de informe de un sistema de informacion

TRANSCRIPT

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

PARTE 1

ASPECTOS GENERALES DEL PROYECTO

1

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

Ilustración 2: Organigrama de la Corte

12

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

PARTE 2

DESARROLLO DEL SOFTWARE

19

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

26

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

28

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

30

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

32

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

36

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

38

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

5.2. ANALIZAR CASOS DE USOUC 1) Crear Cuenta

49

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

6.1. ANALISIS CLASES

6.1.1. ARQUITECTURA LOGICA

59

Taller De Grado I

6.1.2. DISENO DE LA ARQUITECTURA FISICA

60

Taller De Grado I

6.1.3. DISENO DE CASOS DE USOUC 1) Crear Cuenta

61

Taller De Grado I

62

Taller De Grado I

UC 2) Login

63

Taller De Grado I

64

Taller De Grado I

UC 3) Gestionar Perfil

65

Taller De Grado I

UC 4) Gestionar Evento

66

Taller De Grado I

67

Taller De Grado I

68

Taller De Grado I

69

Taller De Grado I

70

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 7) Crear Evento

73

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

:Mail

: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

6.1.4. DISENO DE CLASE

UC 1) Crear Cuenta

78

Taller De Grado I

UC 2) Login`

79

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

UC 3) Gestionar Perfil

81

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 4) Gestionar Evento

83

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 7) Crear Evento

86

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

Taller De Grado I

ANEXOS.

Esquema grafico de la situación problemática

97

Taller De Grado I

Esquema grafico de la situación deseada

98