Está en la página 1de 27

Framework unificado para desarrollo de interfaces J2EE

Documento de Arquitectura y Servicios


Versin 0.1

CASO DE PRUEBA:
Sistema para el alquiler, control de pelculas y
clientes en una videotienda

Documento de arquitectura
Y servicios
Versin <0.1>

Historia de Revisin
Fecha
18/03/2005

Versin
<0.1>

Descripcin
Creacin.

Responsable
Cristian Castaeda.

INVESTIGADORES:
ALEJANDRO BAEZ
CRISTIAN CASTAEDA
DIEGO CASTAEDA
DIRECTOR:
JAVIER SANCHEZ

Framework unificado para desarrollo de interfaces J2EE


Documento de Arquitectura y Servicios
Versin 0.1

TABLA DE CONTENIDO
1. Introduccin......................................................................................................... 4
2. Capa de base de datos ....................................................................................... 5
2.1 Plataforma ..................................................................................................... 5
2.2 Diseo (Diagrama entidad relacin) .............................................................. 5
2.3 Implementacin ............................................................................................. 7
2.3.1 Tabla constante....................................................................................... 7
2.3.2 Tabla pelicula ......................................................................................... 7
2.3.3 Tabla caja................................................................................................ 8
2.3.4 Tabla subtitulo ......................................................................................... 8
2.3.5 Tabla audio ............................................................................................. 8
2.3.6 Tabla contrato ......................................................................................... 9
2.3.7 Tabla persona ......................................................................................... 9
2.3.8 Tabla referencias..................................................................................... 9
2.3.9 Tabla factura ......................................................................................... 10
2.3.10 Tabla detalle........................................................................................ 10
3. Mapeo objeto - relacional .................................................................................. 11
3.1 Por que Hibernate?...................................................................................... 11
3.2 Modelo de objetos ....................................................................................... 11
4. Capa DAO ......................................................................................................... 14
4.1 Afiliados ....................................................................................................... 14
4.2 autorizados .................................................................................................. 15
4.3 Contratos ..................................................................................................... 15
4.5 Facturas....................................................................................................... 16
4.6 Pelculas ...................................................................................................... 17
4.7 Referencias.................................................................................................. 17
4.8 Roles............................................................................................................ 18
5. Capa de servicios.............................................................................................. 19
5.1 Contratos ..................................................................................................... 19
5.1.1 Crear contratos...................................................................................... 19
5.1.2 Eliminar contratos (desafiliar)................................................................ 19
5.1.3 consultar contratos ................................................................................ 20
5.1.4 Agregar Autorizado ............................................................................... 20
5.1.4 Eliminar Autorizado ............................................................................... 20
5.1.5 Actualizacin de afiliados ...................................................................... 21
5.1.6 Actualizacin de autorizados................................................................. 21
5.2 Pelculas ...................................................................................................... 21
5.2.1 Creacin Pelculas: ............................................................................... 21
5.2.2 Consulta de Pelculas:........................................................................... 21
5.2.3 Actualizacin de Pelculas:.................................................................... 22
5.2.4 Eliminar Pelculas:................................................................................. 22
5.2.5 Alquilar pelculas ................................................................................... 22
2

Framework unificado para desarrollo de interfaces J2EE


Documento de Arquitectura y Servicios
Versin 0.1

5.2.6 Entrega pelculas................................................................................... 23


5.3 Facturas....................................................................................................... 23
5.3.1 Creacin de Facturas: ........................................................................... 23
5.3.2 Consultar Facturas: ............................................................................... 23
5.3.3 Eliminar Facturas: ................................................................................. 24
5.4 Reportes ...................................................................................................... 24
5.4.1 Pelculas prestadas en un rango de fechas. ......................................... 24
5.4.2 Pelculas en mora a la fecha. ................................................................ 24
5.4.3 Facturas emitidas en un rango de fechas ............................................. 24
5.4.4 Clientes en mora ................................................................................... 25
6. Capa de interfaz ................................................................................................ 26
7. Conclusiones..................................................................................................... 27

Framework unificado para desarrollo de interfaces J2EE


Documento de Arquitectura y Servicios
Versin 0.1

1. Introduccin
Para la verificacin de los resultados del proyecto titulado: Framework unificado
para desarrollo de interfaces J2EE con soporte a objetos persistentes en bases de
datos relacinales, se ha decidido el desarrollo de una aplicacin que nos sirva
para probar los resultados de este.
Luego de analizar varias opciones, decidimos desarrollar una aplicacin para una
videotienda, debido que al desarrollar esta aplicacin se podrn verificar muchos
elementos que sern manejados dentro del desarrollo de este proyecto, tales
como manejo de interfaces y manejo de objetos persistentes entre otros.
En este documento se describe el diseo de la arquitectura para la aplicacin.
Para este proyecto hemos definido una arquitectura multicapas, entre las capas
que hemos definido tenemos: Base de datos, mapeo objeto relacional, DAO,
business services e interfaz.
Lo que presentaremos mas adelante es la explicacin de por que de estas capas y
cual fue el diseo en las capas que sea conveniente.

Framework unificado para desarrollo de interfaces J2EE


Documento de Arquitectura y Servicios
Versin 0.1

2. Capa de base de datos


En el diseo de cualquier aplicacin de software, una de las cosas que se debe
mirar con mayor cuidado es la manera en que se manejara la informacin que se
necesita que sea persistente. De este diseo depende en gran medida que el
desarrollo de la aplicacin sea exitoso, ya que sobre este diseo se basara en
gran medida el diseo posterior de la aplicacin.
Para nuestro caso de la videotienda, se ha diseado un modelo para el manejo de
los datos pensando en que este debe ser lo suficientemente general, para que se
pueda realizar un buen modelamiento en la capa de mapeo objeto relacional, lo
cual nos permitir tener un mejor desempeo en el desarrollo del proyecto.

2.1 Plataforma
Para la implementacin del diseo de la base de datos de nuestra aplicacin de la
videotienda, ser sobre ORACLE, ya que sobre esta plataforma existe la facilidad
de que podemos trabajar sobre el servidor de la universidad y esta lo
suficientemente probada como para que se avale su uso. Adems, todos los
integrantes del grupo tenemos conocimiento de la plataforma.

2.2 Diseo (Diagrama entidad relacin)


Basndonos en documentos anteriores como el de casos de uso (v1.0) y de
requerimientos (v 1.0) se realizo un diseo para la base de datos en el que se
tena en cuenta la forma en que esta poda responder para satisfacer todas las
necesidades que se definieron.
A continuacin se muestra el modelo que sirvi para la base de datos de la
aplicacin de la videotienda:

Framework unificado para desarrollo de interfaces J2EE


Documento de Arquitectura y Servicios
Versin 0.1

Cada una de las entidades representa:

Pelcula: Entidad que representa una pelcula que se tiene en la


videotienda, Las pelculas pueden ser alquiladas y sobre estas se pueden
cobrar multas.

Framework unificado para desarrollo de interfaces J2EE


Documento de Arquitectura y Servicios
Versin 0.1

Subtitulo: Indica los idiomas en los que esta subtitulada una pelcula.
Audio: sirve para representar los distintos idiomas en que esta hablada una
pelcula.
Constante: Entidad donde se guardan los valores globales que maneja el
sistema.
Caja: Entidad que sirve para representar las diferentes categoras que
pueden tener las pelculas segn su importancia o antigedad.
Persona: Representa los distintos tipos de clientes que pueden interactuar
con la videotienda. Pueden ser afiliados o beneficiarios.
Referencias: Sirve para guardar las referencias personales asociadas a un
contrato.
Contrato: Sirve para representar una afiliacin de una persona a la
videotienda.
Factura: Sirve para representar los ingresos de la videotienda. Estn
asociados a un contrato.
Detalle factura: Sirve para representar los distintos rubros que pueden ser
cobrados en una factura.

2.3 Implementacin
Para la implementacin del modelo anteriormente descrito se crearon las
siguientes tablas en la base de datos:

2.3.1 Tabla constante


CREATE TABLE CONSTANTE(
ID NUMBER(5) NOT NULL,
PADRE NUMBER(5) NOT NULL,
NOMBRE VARCHAR2(20) NOT NULL,
CONSTRAINT CON_PK PRIMARY KEY(ID));

2.3.2 Tabla pelicula


CREATE TABLE PELICULA(
ID NUMBER(5) NOT NULL,
CODIGO NUMBER(20) NOT NULL,
NOMBRE VARCHAR2(20) NOT NULL,
DESCRIPCION VARCHAR2(20),
ACTOREs VARCHAR2(20),
ANO NUMBER(4) NOT NULL,
ALQUILADA NUMBER(1) NOT NULL,

Framework unificado para desarrollo de interfaces J2EE


Documento de Arquitectura y Servicios
Versin 0.1

DURACION NUMBER(3) NOT NULL,


ID_TIPO_FORMATO NUMBER(5) NOT NULL,
ID_TIPO_GENERO NUMBER(5) NOT NULL,
CONSTRAINT PEL_PK PRIMARY KEY(ID),
CONSTRAINT PEL_FOCON_FK FOREIGN
REFERENCES CONSTANTE(ID),
CONSTRAINT
PEL_GECON_FK
FOREIGN
REFERENCES CONSTANTE(ID));

KEY

(ID_TIPO_FORMATO)

KEY

(ID_TIPO_GENERO)

2.3.3 Tabla caja


CREATE TABLE CAJA(
ID_TIPO_CAJA NUMBER(5) NOT NULL,
VALOR NUMBER(15,3) NOT NULL,
DIAS NUMBER(3) NOT NULL,
MULTAS NUMBER(15,3) NOT NULL,
CONSTRAINT CAJ_PK PRIMARY KEY(ID_TIPO_CAJA),
CONSTRAINT
CAJ_CACON_FK
FOREIGN
KEY
REFERENCES CONSTANTE(ID));

(ID_TIPO_CAJA)

2.3.4 Tabla subtitulo


CREATE TABLE SUBTITULO(
ID_PELICULA NUMBER(5) NOT NULL,
ID_TIPO_SUBTITULO NUMBER(5) NOT NULL,
CONSTRAINT SUB_PK PRIMARY KEY(ID_PELICULA,ID_TIPO_SUBTITULO)
CONSTRAINT SUB_PEL_FK FOREIGN KEY (ID_PELICULA) REFERENCES
PELICULA(ID),
CONSTRAINT SUB_SUCON_FK FOREIGN KEY (ID_TIPO_SUBTITULO)
REFERENCES CONSTANTE(ID));

2.3.5 Tabla audio


CREATE TABLE AUDIO(
ID_PELICULA NUMBER(5) NOT NULL,
ID_TIPO_AUDIO NUMBER(5) NOT NULL,
CONSTRAINT AUD_PK PRIMARY KEY(ID_PELICULA,ID_TIPO_AUDIO),
CONSTRAINT AUD_PEL_FK FOREIGN KEY (ID_PELICULA) REFERENCES
PELICULA(ID),
CONSTRAINT
AUD_AUCON_FK
FOREIGN
KEY
(ID_TIPO_AUDIO)
REFERENCES CONSTANTE(ID));
8

Framework unificado para desarrollo de interfaces J2EE


Documento de Arquitectura y Servicios
Versin 0.1

2.3.6 Tabla contrato


CREATE TABLE CONTRATO(
ID NUMBER(5) NOT NULL,
NUMERO NUMBER(20) NOT NULL,
FECHA DATE NOT NULL,
ID_PERSONA NUMBER(5) NOT NULL,
CONSTRAINT CONT_PK PRIMARY KEY(ID));
CONSTRAINT CONT_PER_FK FOREIGN KEY (ID_PERSONA) REFERENCES
PERSONA(ID));

2.3.7 Tabla persona


CREATE TABLE PERSONA(
ID NUMBER(5) NOT NULL,
CEDULA NUMBER(20) NOT NULL,
NOMBRE1 VARCHAR2(20) NOT NULL,
NOMBRE2 VARCHAR2(20) NOT NULL,
APELLIDO1 VARCHAR2(20) NOT NULL,
APELLIDO2 VARCHAR2(20) NOT NULL,
DIRECCION VARCHAR2(20) NOT NULL,
TELEFONO NUMBER(20) NOT NULL,
NOMBRE_EMPRESA VARCHAR2(20),
DIRECCION_EMPRESA VARCHAR2(20),
TELEFONO_EMPRESA NUMBER(20),
EMAIL VARCHAR2(20),
ID_CONTRATO NUMBER(5) NOT NULL,
ID_TIPO_PARENTESCO NUMBER(5) NOT NULL,
ID_TIPO_PERSONA NUMBER(5) NOT NULL,
CONSTRAINT PER_PK PRIMARY KEY(ID),
CONSTRAINT PER_CONT_FK FOREIGN KEY (ID_CONTRATO) REFERENCES
CONTRATO(ID),
CONSTRAINT PER_PACON_FK FOREIGN KEY (ID_TIPO_PARENTESCO)
REFERENCES CONSTANTE(ID));

2.3.8 Tabla referencias


CREATE TABLE REFERENCIAS(
ID NUMBER(5) NOT NULL,
NOMBRE VARCHAR2(20) NOT NULL,
TELEFONO NUMBER(20) NOT NULL,
9

Framework unificado para desarrollo de interfaces J2EE


Documento de Arquitectura y Servicios
Versin 0.1

ID_CONTRATO NUMBER(5) NOT NULL,


CONSTRAINT REF_PK PRIMARY KEY(ID),
CONSTRAINT REF_CONT_FK FOREIGN KEY (ID_CONTRATO) REFERENCES
CONTRATO(ID));

2.3.9 Tabla factura


CREATE TABLE FACTURA(
ID NUMBER(5) NOT NULL,
FECHA DATE NOT NULL,
VALOR NUMBER(15,3) NOT NULL,
PAGADO NUMBER(1) NOT NULL,
ID_CONTRATO NUMBER(5) NOT NULL,
CONSTRAINT FAC_PK PRIMARY KEY(ID),
CONSTRAINT FAC_CONT_FK FOREIGN KEY (ID_CONTRATO) REFERENCES
CONTRATO(ID));

2.3.10 Tabla detalle


CREATE TABLE DETALLE(
ID NUMBER(5) NOT NULL,
VALOR NUMBER(15,3) NOT NULL,
FECHA_ENTREGA DATE NOT NULL,
ID_PELICULA NUMBER(5) NOT NULL,
ID_TIPO_DETALLE NUMBER(5) NOT NULL,
ID_FACTURA NUMBER(5) NOT NULL,
CONSTRAINT DET_PK PRIMARY KEY(ID),
CONSTRAINT DET_PEL_FK FOREIGN KEY (ID_PELICULA) REFERENCES
PELICULA(ID),
CONSTRAINT
DET_DECON_FK
FOREIGN
KEY
(ID_TIPO_DETALLE)
REFERENCES CONSTANTE(ID)
CONSTRAINT DET_FAC_FK FOREIGN KEY (ID_FACTURA) REFERENCES
FACTURA(ID));

As mismo, se crearon ndices, constraints de unicidad y nmeros de


secuencia para aseguras un mejor manejo de la base de datos.

10

Framework unificado para desarrollo de interfaces J2EE


Documento de Arquitectura y Servicios
Versin 0.1

3. Mapeo objeto - relacional


La siguiente capa en nuestra arquitectura es la capa de mapeo objeto relacional.
Esta capa surge de la necesidad de tener un nivel de mayor abstraccin del
manejo de los datos. Teniendo esta capa, se podr encapsular al usuario del
diseo, implementacin y uso directo de la base de datos, lo que hace que se
puedan simplificar muchas etapas del proceso de desarrollo.
Adems al utilizar una herramienta que nos permita realizar mapeos de este tipo,
se podr establecer una clara separacin del paradigma relacional (bases de
datos) y el paradigma orientado a objetos (clases), lo cual nos permitir tener un
mayor grado de definicin para cada una de las capas de la arquitectura.
Para nuestra aplicacin, hemos decidido utilizar el framework Hibernate.

3.1 Por que Hibernate?


A continuacin se presentaran algunas de las razones por las que se escogi
Hibernate como framework para el mapeo objeto relacional:

Es open source
Es un framework maduro, ya que es uno de los mas utilizados actualmente
con muy buenos resultados.
Hibernate da un completo soporte al modelo de programacin orientado a
objetos, lo cual es una ventaja en el desarrollo de este proyecto ya que este
se har sobre JAVA.
Ofrece un lenguaje natural para la bsquedas en la base de datos (HSQL)
que es muy similar al que hemos manejado(SQL).
Maneja XML para los mapeos, lo que hace que estos sean de fcil
entendimiento por la estructura que este maneja.

3.2 Modelo de objetos


A continuacin se muestra el modelo de objetos que nos servir para representar
a la videotienda a partir del diagrama entidad relacin, que fue descrito en el
numeral 2.2 de este documento. Todos estos objetos van a ser POJOs (persistent
old java objects) dentro de nuestra aplicacin y se encontraran dentro del paquete
Co.Edu.Javeriana.Fwj2ee.Persistent.

11

Framework unificado para desarrollo de interfaces J2EE


Documento de Arquitectura y Servicios
Versin 0.1

12

Framework unificado para desarrollo de interfaces J2EE


Documento de Arquitectura y Servicios
Versin 0.1

En el anterior diagrama cada uno de los objetos representa:

Pelcula: Objeto que representa una pelcula que se tiene en la videotienda,


Las pelculas pueden ser alquiladas y sobre estas se pueden cobrar multas.
Constante: Objeto donde se guardan los valores globales que maneja el
sistema. Estos valores pueden ser: subttulos, genero, formatos o audio.
Caja: Objeto que sirve para representar las diferentes categoras que
pueden tener las pelculas segn su importancia o antigedad.
Persona: Representa los distintos tipos de clientes que pueden interactuar
con la videotienda.
Referencia: Objeto que hereda de persona y que representa las referencias
personales que se tienen asociadas a un contrato.
Autorizado: Objeto que hereda de persona y que representa las personas
que estn autorizadas a utilizar un contrato en la videotienda.
Afiliado: Objeto que hereda de persona y que representa al titular que creo
un contrato en la videotienda.
Contrato: Objeto que sirve para representar una afiliacin de una persona a
la videotienda.
Factura: Sirve para representar los ingresos de la videotienda. Estn
asociados a un contrato.
Detalle factura: Sirve para representar los distintos rubros que pueden ser
cobrados en una factura.
Rol: Objeto que sirve para representar los distintos tipos de usuarios que
tiene el sistema.

13

Framework unificado para desarrollo de interfaces J2EE


Documento de Arquitectura y Servicios
Versin 0.1

4. Capa DAO
La siguiente capa dentro de nuestra arquitectura es la capa DAO. Esta capa surge
de la necesidad de mantener la integridad de los datos que tenemos guardados en
la base de datos. Para esto, hemos decidido utilizar el patrn DAO, el cual sirve
para separar el acceso a los datos de capas como la de lgica de negocio o
presentacin. Esto permite asegurar la integridad de nuestra base de datos y
poder tener un mayo mantenimiento dentro de nuestra aplicacin.
Para nuestra aplicacin, hemos decidido tener daos para afiliados, autorizados,
contratos, facturas, pelculas, referencias y roles. Todos ellos se encuentra dentro
del paquete Co.Edu.Javeriana.Fwj2ee.Dao de nuestra aplicacin. A
continuaciones describirn las funciones de cada uno de esos DAOs.

4.1 Afiliados
Este DAO se encarga de la creacin, eliminacin, modificacin y lectura de los
afiliados que existan en la videotienda. Los procedimientos que ofrecer son los
siguientes:
public boolean crear( Afiliado Afiliado, int numeroContrato)
Este mtodo servir para la creacin de nuevos afiliados a partir de un POJO
de Afiliado y el numero del contrato al cual esta asociado este afiliado.
Retornara un valor indicando si el afiliado se pudo o no crear.
public boolean eliminar( Afiliado Afiliado)
Este mtodo servir para la eliminacin de un afiliado a partir de un POJO de
Afiliado en el que estar solamente la informacin de la cedula de este.
Retornara un valor indicando si el afiliado se pudo borrar o no.
public Set buscar( Afiliado Afiliado, int numeroContrato)
Este mtodo servir para la bsqueda de afiliados a partir de un POJO de
Afiliado en el que solo estar la informacin de los criterios de la bsqueda y/o
del contrato. Retornara un set con los POJOs que cumplen con los criterios.
Puede ser vaci.
public boolean actualizar( Afiliado Afiliado, int numeroContrato)
Este mtodo servir para la actualizacin de la informacin de un afiliado a
partir de un POJO con la nueva informacin y del numero de contratos.
Retornara un valor indicando si la informacin se pudo actualizar.

14

Framework unificado para desarrollo de interfaces J2EE


Documento de Arquitectura y Servicios
Versin 0.1

4.2 autorizados
Este DAO se encarga de la creacin, eliminacin, modificacin y lectura de los
autorizados que existan en la videotienda. Los procedimientos que ofrecer son
los siguientes:
public boolean crear( Autorizado autorizado, int numeroContrato)
Este mtodo servir para la creacin de nuevos Autorizados a partir de un
POJO de Autorizado y el numero del contrato al cual esta asociado este
Autorizado. Retornara un valor indicando si el Autorizado se pudo o no crear.
public boolean eliminar( Autorizado autorizado)
Este mtodo servir para la eliminacin de un Autorizado a partir de un POJO
de Autorizado en el que estar solamente la informacin de la cedula de este.
Retornara un valor indicando si el Autorizado se pudo borrar o no.
public Set buscar( Autorizado autorizado, int numeroContrato)
Este mtodo servir para la bsqueda de Autorizados a partir de un POJO de
Autorizado en el que solo estar la informacin de los criterios de la bsqueda
y/o del contrato. Retornara un set con los POJOs que cumplen con los
criterios. Puede ser vacio.
public boolean actualizar( Autorizado autorizado, int numeroContrato)
Este mtodo servir para la actualizacin de la informacin de un Autorizado a
partir de un POJO con la nueva informacin y del numero de contratos.
Retornara un valor indicando si la informacin se pudo actualizar.

4.3 Contratos
Este DAO se encarga de la creacin, eliminacin, modificacin y lectura de los
contratos que existan en la videotienda. Los procedimientos que ofrecer son los
siguientes:
public boolean crear( Contrato Contrato)
Este mtodo servir para la creacin de nuevos Contratos a partir de un POJO
de Contrato. Retornara un valor indicando si el Contrato se pudo o no crear.
public boolean eliminar( Contrato Contrato)
Este mtodo servir para la eliminacin de un Contrato a partir de un POJO de
Contrato. Retornara un valor indicando si el Contrato se pudo borrar o no.
15

Framework unificado para desarrollo de interfaces J2EE


Documento de Arquitectura y Servicios
Versin 0.1

public Contrato buscar( Contrato Contrato)


Este mtodo servir para la bsqueda de Contratos a partir de un POJO de
Contrato. Retornara un Contrato con la informacin que corresponda o vacio.
public boolean actualizar( Contrato Contrato)
Este mtodo servir para la actualizacin de la informacin de un Contrato a
partir de un POJO con la nueva informacin. Retornara un valor indicando si la
informacin se pudo actualizar.

4.5 Facturas
Este DAO se encarga de la creacin, eliminacin, modificacin y lectura de las
facturas que existan en la videotienda. Los procedimientos que ofrecer son los
siguientes:
public boolean crear( Factura Factura)
Este mtodo servir para la creacin de nuevos Facturas a partir de un POJO
de Factura. Retornara un valor indicando si la Factura se pudo o no crear.
public boolean eliminar( Factura Factura)
Este mtodo servir para la eliminacin de un Factura a partir de un POJO de
Factura. Retornara un valor indicando si la Factura se pudo borrar o no.

public Set buscar( Factura Factura)


Este mtodo servir para la bsqueda de Facturas a partir de un POJO de
Factura. Retornara un Set de facturas con las que concuerden con la bsqueda
o vacio.
public boolean actualizar( Factura Factura)
Este mtodo servir para la actualizacin de la informacin de una Factura a
partir de un POJO con la nueva informacin. Retornara un valor indicando si la
informacin se pudo actualizar.

16

Framework unificado para desarrollo de interfaces J2EE


Documento de Arquitectura y Servicios
Versin 0.1

4.6 Pelculas
Este DAO se encarga de la creacin, eliminacin, modificacin y lectura de las
pelculas que existan en la videotienda. Los procedimientos que ofrecer son los
siguientes:
public boolean crear( Pelicula Pelicula)
Este mtodo servir para la creacin de nuevos Pelculas a partir de un POJO
de Pelicula. Retornara un valor indicando si la Pelicula se pudo o no crear.
public boolean eliminar( Pelicula Pelicula)
Este mtodo servir para la eliminacin de un Pelicula a partir de un POJO de
Pelicula. Retornara un valor indicando si la Pelicula se pudo borrar o no.

public Set buscar( Pelicula Pelicula)


Este mtodo servir para la bsqueda de Pelculas a partir de un POJO de
Pelicula. Retornara un Set de Pelculas con las que concuerden con la
bsqueda o vacio.
public boolean actualizar( Pelicula Pelicula)
Este mtodo servir para la actualizacin de la informacin de una Pelicula a
partir de un POJO con la nueva informacin. Retornara un valor indicando si la
informacin se pudo actualizar.

4.7 Referencias
Este DAO se encarga de la creacin, eliminacin, modificacin y lectura de las
referencias que existan en la videotienda. Los procedimientos que ofrecer son los
siguientes:
public boolean crear( Referencia Referencia, int numeroContrato)
Este mtodo servir para la creacin de nuevas Referencias a partir de un
POJO de Referencia y el numero del contrato al cual esta asociado este
Referencia. Retornara un valor indicando si el Referencia se pudo o no crear.

public boolean eliminar( Referencia Referencia)

17

Framework unificado para desarrollo de interfaces J2EE


Documento de Arquitectura y Servicios
Versin 0.1

Este mtodo servir para la eliminacin de una Referencia a partir de un POJO


de Referencia en el que estar solamente la informacin de la cedula de este.
Retornara un valor indicando si el Referencia se pudo borrar o no.
public Set buscar( Referencia Referencia, int numeroContrato)
Este mtodo servir para la bsqueda de Referencias a partir de un POJO de
Referencia en el que solo estar la informacin de los criterios de la bsqueda
y/o del contrato. Retornara un set con los POJOs que cumplen con los
criterios. Puede ser vacio.

public boolean actualizar( Referencia Referencia, int numeroContrato)


Este mtodo servir para la actualizacin de la informacin de una Referencia
a partir de un POJO con la nueva informacin y del numero de contratos.
Retornara un valor indicando si la informacin se pudo actualizar.

4.8 Roles
Este DAO se encarga de la creacin, eliminacin, modificacin y lectura de los
roles que existan en la videotienda. Los procedimientos que ofrecer son los
siguientes:
public boolean crear( Rol Rol)
Este mtodo servir para la creacin de nuevos Roles a partir de un POJO de
Rol. Retornara un valor indicando si el Rol se pudo o no crear.
public boolean eliminar( Rol Rol)
Este mtodo servir para la eliminacin de un Rol a partir de un POJO de Rol.
Retornara un valor indicando si el Rol se pudo borrar o no.

public Rol buscar( Rol Rol)


Este mtodo servir para la bsqueda de Roles a partir de un POJO de Rol.
Retornara un Rol con la informacin que corresponda o vacio.
public boolean actualizar( Rol Rol)
Este mtodo servir para la actualizacin de la informacin de un Rol a partir
de un POJO con la nueva informacin. Retornara un valor indicando si la
informacin se pudo actualizar.

18

Framework unificado para desarrollo de interfaces J2EE


Documento de Arquitectura y Servicios
Versin 0.1

5. Capa de servicios
La siguiente capa dentro de nuestra arquitectura es la capa de servicios. Esta
capa es la encargada de manejar toda la lgica del negocio, proveyendo a las
capas superiores todas las funcionalidades que fueron descritas para el sistema.
Los servicios los hemos agrupado segn los elementos que estn implicados
dentro de este, los grupos que hemos definido son: contratos, pelculas, facturas y
reportes.
A continuacin se definirn cada unote los servicios que ofrecern estos grupos.

5.1 Contratos
Dentro del grupo de los servicios ofrecidos para los contratos se han definido los
siguientes:

5.1.1 Crear contratos


Precondicin: Haber ingresado al sistema exitosamente.
Poscondicin: Se creara un nuevo registro en la base de datos de un nuevo
contrato, asocindole el afiliado y sus referencias.
Definicin: El sistema deber ofrecer el servicio de la creacin de contratos. Para
esto se debern gestionar los POJO`s de personas y contratos por medio de una
clase que maneje el patrn DAO. Para realizar esta transaccin se deben recibir
como parmetros la fecha de creacin del contrato, las personas que son
beneficiarias de un contrato, cual de estas personas fue la que creo el contrato y
las referencias personales asociadas. El sistema deber crear en la base de datos
un nuevo contrato y asociarle a este todos los beneficiarios que se recibieron
como parmetro.
Prototipo: public boolean crearContrato(Contrato contrato, Afiliado afiliado, Set
referencias)

5.1.2 Eliminar contratos (desafiliar)


Precondicin: Haber ingresado al sistema exitosamente, y conocer el numero del
contrato a eliminar.
Poscondicin: Se eliminara un registro en la base de datos de un contrato con
todos las personas que dependen de este.
Definicin: El sistema deber ofrecer el servicio de la eliminacin de contratos.
Para realizar esta transaccin se deben recibir como parmetro el nmero del
contrato que se debe eliminar. El sistema deber ejecutar sentencias de HSQL

19

Framework unificado para desarrollo de interfaces J2EE


Documento de Arquitectura y Servicios
Versin 0.1

donde se borre la informacin del contrato y de todos los beneficiarios asociados a


este.
Prototipo: public boolean eliminarContrato(Contrato contrato)

5.1.3 consultar contratos


Precondicin: Haber ingresado al sistema exitosamente, y conocer el numero del
contrato a consultar. El contrato debe existir.
Poscondicin: se retornara el POJO del contrato asociado.
Definicin: El sistema deber ofrecer el servicio de la consulta de contratos. Para
realizar esta transaccin se deben recibir como parmetro la informacin del
contrato que se quiere consultar. El sistema deber ejecutar sentencias de HSQL
donde se consulte la informacin del contrato y retornara un POJO del contrato
asociado.
Prototipo: public Contrato consultarContrato(Contrato contrato)

5.1.4 Agregar Autorizado


Precondicin: Haber ingresado al men de Afiliaciones determinando una
especifica.
Poscondicin: Se creara un nuevo registro en la base de datos de un nuevo
Autorizado para el contrato asociado.
Definicin: El sistema debe ofrecer el servicio de agregar autorizados a un
contrato. Para realizar esta transaccin se deben recibir como parmetros la
informacin de la persona que se quiere autorizar y el nmero del contrato al cual
se quiere asociar la persona. El sistema debe guardar la informacin de la persona
en la base de datos asocindola al contrato que corresponda.
Prototipo: public bolean agregarAutorizado(Autorizado autorizado, Contrato
contrato)

5.1.4 Eliminar Autorizado


Precondicin: Haber ingresado al men de contratos y buscar el contrato para el
que quiere eliminar el autorizado.
Poscondicin: Se eliminara registro en la base de datos de un Autorizado para el
contrato asociado.
Definicin: El sistema debe ofrecer el servicio de eliminar autorizados a un
contrato. Para realizar esta transaccin se deben recibir como parmetros la
informacin de la persona que se quiere desautorizar y el nmero del contrato al
cual esta asociadola persona. El sistema debe eliminar la informacin de la
persona en la base de datos.
Prototipo: public bolean eliminarAutorizado(Autorizado autorizado, Contrato
contrato)
20

Framework unificado para desarrollo de interfaces J2EE


Documento de Arquitectura y Servicios
Versin 0.1

5.1.5 Actualizacin de afiliados


Precondicin: Haber ingresado al sistema exitosamente, solo se podrn
actualizar los datos del afiliado.
Poscondicin: Se actualizara un registro en la base de datos de un afiliado.
Definicin: Para la actualizacin de los afiliados se debe recibir un POJO con la
informacin actualizada que se quiere tener del afiliado. El sistema deber salvar
el POJO con la nueva informacin en la base de datos verificando que esta no
viole la integridad respecto a las otras personas que se tienen.
Prototipo: public bolean actualizarAfiliado(Afiliado afiliado, Contrato contrato)

5.1.6 Actualizacin de autorizados


Precondicin: Haber ingresado al sistema exitosamente, solo se podrn
actualizar los datos del autorizado.
Poscondicin: Se actualizara un registro en la base de datos de un autorizado.
Definicin: Para la actualizacin de los autorizados se debe recibir un POJO con
la informacin actualizada que se quiere tener del autorizado. El sistema deber
salvar el POJO con la nueva informacin en la base de datos verificando que esta
no viole la integridad respecto a las otras personas que se tienen.
Prototipo: public bolean actualizarAutorizado(Autorizado autorizado, Contrato
contrato)

5.2 Pelculas
Dentro del grupo de los servicios ofrecidos para las pelculas se han definido los
siguientes:

5.2.1 Creacin Pelculas:


Precondicin: Haber ingresado al sistema exitosamente y estar en el men de
Configuracin de Pelculas.
Poscondicin: Se creara un nuevo registro en la base de datos de una nueva
pelcula con sus respectivos atributos.
Definicin: Para la creacin de pelculas se deber recibir toda la informacin
relacionada a una pelcula (nombre, ao, duracin, caja, etc.). El sistema deber
verificar que la pelcula no exista y creara una nueva pelcula con la informacin
que se recibi en la base de datos.
Prototipo: public bolean crearPelicula(Pelcula pelcula)

5.2.2 Consulta de Pelculas:


Precondicin: Haber ingresado al sistema exitosamente y estar en el men de
Configuracin de Pelculas.
Poscondicin: Se mostrara en la pantalla una lista de las pelculas con todos sus
detalles , asociadas a los criterios de bsqueda.

21

Framework unificado para desarrollo de interfaces J2EE


Documento de Arquitectura y Servicios
Versin 0.1

Definicin: Para la lectura de pelculas se debe recibir los criterios que debe tener
la pelcula que se quiere leer. El sistema deber realizar una bsqueda con HSQL
segn los criterios que se reciban y deber retornar el(los) POJO que
corresponda.
Prototipo: public Set consultarPelicula(Pelcula pelcula)

5.2.3 Actualizacin de Pelculas:


Precondicin: Haber ingresado al sistema exitosamente y estar en el men de
Configuracin de Pelculas.
Poscondicin: Se actualizara un registro en la base de datos de una pelcula
configurando alguno de sus atributos.
Definicin: Para la actualizacin de las pelculas se debe recibir un POJO con la
informacin actualizada que se quiere tener de una pelcula. El sistema deber
salvar el POJO con la nueva informacin en la base de datos verificando que esta
no viole la integridad respecto a otras pelculas que se tengan.
Prototipo: public bolean actualizarPelicula(Pelcula pelcula)

5.2.4 Eliminar Pelculas:


Precondicin: Haber ingresado al sistema exitosamente y estar en el men de
Configuracin de Pelculas.
Poscondicin: Se eliminara un registro en la base de datos de una pelcula.
Definicin: Para el borrado de pelculas se deben recibir los criterios de
eliminacin de una pelcula. El sistema deber ejecutar una sentencia de HSQL
que realizara la eliminacin de la pelcula en la base de datos.
Prototipo: public boolean eliminarPelicula(Pelcula pelcula)

5.2.5 Alquilar pelculas


Precondicin: Haber ingresado al sistema exitosamente, conocer los id de las
pelculas.
Poscondicin: Se registrara en la base de datos el nuevo estado de las pelculas,
adicionalmente se realiza el servicio de Crear factura, con sus atributos
respectivos.
Definicin: El sistema debe ofrecer el servicio de alquilar pelculas. Para realizar
esta transaccin el sistema debe recibir la informacin de la pelcula que se va a
alquilar y del contrato al que se le va a cargar la pelcula, luego se deben guardar
referencias en la base de datos de la pelcula que se va a alquilar por medio de la
creacin de una factura asociada a este alquiler.
Prototipo: public boolean alquilarPelicula(Pelcula pelcula, Contrato contrato)

22

Framework unificado para desarrollo de interfaces J2EE


Documento de Arquitectura y Servicios
Versin 0.1

5.2.6 Entrega pelculas


Precondicin: Haber ingresado al sistema exitosamente, conocer los id de las
pelculas.
Poscondicin: Se registrara en la base de datos el nuevo estado de las pelculas,
adicionalmente se realiza el servicio de Crear factura si esta accin genera una
multa.
Definicin: El sistema debe ofrecer el servicio de la entrega de pelculas y
generacin automtica de multas. Para realizar estas operaciones el sistema debe
recibir la informacin de la pelcula y la fecha en que es entregada, con esta
informacin se debe dejar como disponible la pelcula. Luego se debe hacer una
verificacin de si la pelcula fue entregada en el plazo establecido, de no ser as se
debe generar una factura para el pago de la multa y esta debe ser guardada como
no pagada dentro del sistema.
Prototipo: public boolean entregarPelicula(Pelcula pelcula, Contrato contrato)

5.3 Facturas
Dentro del grupo de los servicios ofrecidos para las facturas se han definido los
siguientes:

5.3.1 Creacin de Facturas:


Precondicin: Haber ingresado al sistema exitosamente, y estar en el servicio de
Alquiler de Pelculas.
Poscondicin: Se creara un nuevo registro en la base de datos de una nueva
factura con sus respectivos detalles y costos.
Definicin: Para la creacin de facturas se deber recibir toda la informacin
relacionada a una factura (fecha, valor, descripcin, etc.). El sistema deber
verificar que la factura no exista y creara una nueva factura con la informacin que
se recibi en la base de datos.
Prototipo: public boolean crearFactura(Factura factura, Contrato contrato)

5.3.2 Consultar Facturas:


Precondicin: Haber ingresado al sistema exitosamente. y estar en el men de
Configuracin de Facturas.
Poscondicin: Se mostrara en pantalla una lista de facturas segn los criterios de
bsqueda.
Definicin: Para la lectura de facturas se debe recibir los criterios que debe tener
la factura que se quiere leer. El sistema deber realizar una bsqueda con HSQL
segn los criterios que se reciban y deber retornar el POJO que corresponda.
Prototipo: public void consultarFactura(Factura factura, Contrato contrato)

23

Framework unificado para desarrollo de interfaces J2EE


Documento de Arquitectura y Servicios
Versin 0.1

5.3.3 Eliminar Facturas:


Precondicin: Haber ingresado al sistema exitosamente, la factura ha eliminar no
ha sido pagada y se eliminara por un caso extraordinario, se debe conocer el id de
la factura.
Poscondicin: Se eliminara un registro en la base de datos de una factura con
sus respectivos detalles y costos.
Definicin: Para el borrado de facturas se deben recibir los criterios de
eliminacin de una factura. El sistema deber ejecutar una sentencia de HSQL
que realizara la eliminacin de la factura en la base de datos.
Prototipo: public bolean eliminarFactura(Factura factura)

5.4 Reportes
Dentro del grupo de los servicios ofrecidos para los reportes se han definido los
siguientes:

5.4.1 Pelculas prestadas en un rango de fechas.


Precondicin: Haber ingresado al sistema como administrador exitosamente.
Poscondicin: Se retornara un Set de todas las pelculas prestadas en el rango
que se ingreso como parmetro.
Definicin: Para generar un reporte de las pelculas prestadas en un rango de
fechas se deben recibir las fechas de inicio y final del rango. El sistema deber
realizar una consulta en HSQL segn estas fechas y deber retornar una
coleccin con la informacin correspondiente a las pelculas alquiladas en este
rango.
Prototipo: public Set pelculasPrestadas(Date fi, Date ff)

5.4.2 Pelculas en mora a la fecha.


Precondicin: Haber ingresado al sistema como administrador exitosamente.
Poscondicin: se retornara un Set de todas las pelculas que estn en mora a la
fecha
Definicin: Para generar el reporte de las pelculas en mora a la fecha el sistema
deber realizar una consulta en HSQL segn la fecha del da y deber retornar
una coleccin con la informacin de las pelculas en mora a una fecha.
Prototipo: public Set peliculasEnMora()

5.4.3 Facturas emitidas en un rango de fechas


Precondicin: Haber ingresado al sistema como administrador exitosamente.
Poscondicin: se retornara un Set de todas las facturas que fueron emitidas en el
rango de fechas que se ingreso como parmetro.
Definicin: Para generar reporte de las facturas emitidas en un rango de fechas
se deber recibir la informacin de las fechas de inicio y final del rango. El sistema
deber realizar una consulta en HSQL segn estos valores y deber retornar una
coleccin con la informacin de las facturas en este rango.
Prototipo: public Set facturasEmitidas(Date fi, Date ff)
24

Framework unificado para desarrollo de interfaces J2EE


Documento de Arquitectura y Servicios
Versin 0.1

5.4.4 Clientes en mora


Precondicin: Haber ingresado al sistema como administrador exitosamente.
Poscondicin: se retornara un Set con los clientes que estn en mora a la fecha.
Definicin: Para generar reporte de los clientes en mora el sistema no recibe
ningn parmetro. El sistema debe realizar una consulta en HSQL de las facturas
que no han sido pagadas y deber retornar una coleccin de los clientes que no
han pagado.
Prototipo: public Set clientesEnMora()

25

Framework unificado para desarrollo de interfaces J2EE


Documento de Arquitectura y Servicios
Versin 0.1

6. Capa de interfaz
Finalmente, utilizando todas las capas que se definieron bajo ella se encuentra la
capa de interfaz o de presentacin, esta es la encargada de interactuar con el
usuario, por ello se debe tener especial cuidado para desarrollarla.
Para nuestro proyecto, esta interfaz va a estar desarrollada sobre J2EE, que es la
finalidad de este proyecto de grado. Por eso posteriormente se realizara un nuevo
documento donde se especifiquen todos los elementos de diseo que debe tener
esta capa, luego de que se profundice mas en este tema.
La definicin de las interfaces para nuestro sistema esta en el documento
Descripcin de Pantallas; Para mayor informacin al respecto remtase a este
documento.

26

Framework unificado para desarrollo de interfaces J2EE


Documento de Arquitectura y Servicios
Versin 0.1

7. Conclusiones
Con la realizacin de este documento, se han definido claramente las capas sobre
las cuales se basara nuestra aplicacin de prueba, que de manera mas general,
sern las mismas sobre las cuales se enmarca el desarrollo de este proyecto de
grado. Esto permiti que se defina de mejor manera las funcionalidades de cada
una de estas capas, lo cual permite el desarrollo de un mejor diseo.
Esta claro que ahora nos debemos preocuparnos por conocer mas de la ultima
capa de nuestra arquitectura, la capa de interfaz, por que es esta la piedra angular
de nuestro proyecto. Con el transcurso del proyecto, este documento se ira
depurando, lo que nos permitir establecer elementos importantes para la
definicin de la metodologa sobre la cual queremos trabajar.

27

También podría gustarte