Anda di halaman 1dari 28

CASO DE PRUEBA:

Sistema para el alquiler, control de pelculas y


clientes en una videotienda

Documento de arquitectura
Y servicios
Versin <1.0>

Historia de Revisin
Fecha

Versin

Descripcin

Responsable

18/03/2005

<0.1>

Creacin.

Cristian Castaeda.

1/4/2005

<1.0>

Se realizaron cambios en la definicin Cristian Castaeda


de algunas tablas, se realizaron
cambios al nombre de algunas clases,
se redefinieron algunos DAOs, se
redefinieron algunos servicios y se le
agregaron excepciones a DAOs y
servicios.

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

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 pelcula ......................................................................................... 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................................................................................... 10
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 ..................................................................................................... 16
4.5 Facturas....................................................................................................... 16
4.6 Pelculas ...................................................................................................... 17
4.7 Referencias.................................................................................................. 17
4.8 Usuario ........................................................................................................ 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 Agregar Autorizado ............................................................................... 20
5.1.4 Eliminar Autorizado ............................................................................... 20
5.1.5 Actualizacin de una referencia ............................................................ 20
5.1.6 Actualizacin de los referencias de un contrato .................................... 21
5.1.7 Actualizacin de un autorizado ............................................................. 21
5.1.8 Actualizacin de los autorizados de un contrato ................................... 21
5.1.9 consultar contratos ................................................................................ 22
5.2 Pelculas ...................................................................................................... 22
5.2.1 Creacin Pelculas: ............................................................................... 22
5.2.2 Consulta de Pelculas:........................................................................... 22
5.2.3 Actualizacin de Pelculas:.................................................................... 23
2

5.2.4 Eliminar Pelculas:................................................................................. 23


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

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.

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:

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.
6

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 pelcula


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,


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
REFERENCES CONSTANTE(ID));

FOREIGN

KEY

(ID_TIPO_AUDIO)

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,
TIPO_DOC VARCHAR2(2) CHECK

(TIPO_DOC=TI OR TIPO_DOC=CC
OR TIPO_DOC=CE) NOT NULL,

NUM_DOC 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(80),
ID_CONTRATO NUMBER(5) NOT NULL,
ID_TIPO_PARENTESCO NUMBER(5) NOT NULL,
TIPO_PERSONA
VARCHAR2(1)
CHECK
(TIPO_PERSONA=R
OR
TIPO_PERSONA=A OR TIPO_PERSONA=P) 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,
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

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

12

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, gnero, 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

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. Todas las clases
que pertenezcan a este paquete lanzaran la excepcin DAOException. 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 void crear( Afiliado Afiliado, int numeroContrato) throws
DAOException
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

public void eliminar( Afiliado Afiliado) throws DAOException


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
public Set buscar( Afiliado afiliado) throws DAOException
Este mtodo servir para la bsqueda de afiliados a partir de un POJO en el
que solo estar la informacin de los criterios de la bsqueda. Retornara un set
con los POJOs que cumplen con los criterios. Puede ser vaci.
public Set buscar( Contrato contrato) throws DAOException
Este mtodo servir para la bsqueda de afiliados asociadas a un contrato. Se
recibe un POJO de contrato y se retornara un set con los POJOs que cumplen
con los criterios. Puede ser vaci.
public void actualizar( Afiliado Afiliado) throws DAOException
Este mtodo servir para la actualizacin de la informacin de un afiliado a
partir de un POJO con la nueva informacin.

14

public void actualizar(Contrato contrato, set afiliados) throws DAOException


Este mtodo servir para la actualizacin de la informacin de los afiliados
asociados a un contrato, a partir de un contrato y de un set de afiliados.

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 void crear( Autorizado autorizado, int numeroContrato) throws
DAOException
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.

public void eliminar( Autorizado autorizado) throws DAOException


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
public Set buscar( Autorizado autorizado) throws DAOException
Este mtodo servir para la bsqueda de autorizados a partir de un POJO en
el que solo estar la informacin de los criterios de la bsqueda. Retornara un
set con los POJOs que cumplen con los criterios. Puede ser vacio.
public Set buscar( Contrato contrato) throws DAOException
Este mtodo servir para la bsqueda de autorizados asociados a un contrato.
Se recibe un POJO de contrato y se retornara un set con los POJOs que
cumplen con los criterios. Puede ser vacio.
public void actualizar( Autorizado autorizado) throws DAOException
Este mtodo servir para la actualizacin de la informacin de un Autorizado a
partir de un POJO con la nueva informacin.
public void actualizar( Contrato contrato, Set autorizados) throws
DAOException
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.

15

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 void crear( Contrato Contrato) throws DAOException
Este mtodo servir para la creacin de nuevos Contratos a partir de un POJO
de Contrato.
public void eliminar( Contrato Contrato) throws DAOException
Este mtodo servir para la eliminacin de un Contrato a partir de un POJO de
Contrato.

public set buscar( Contrato Contrato) throws DAOException


Este mtodo servir para la bsqueda de Contratos a partir de un POJO de
Contrato en el que solo se tendrn instanciados los valores de busqueda.
Retornara un set con los contratos que cumplieron los criterios.
public void actualizar( Contrato Contrato) throws DAOException
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 void crear( Factura Factura) throws DAOException
Este mtodo servir para la creacin de nuevos Facturas a partir de un POJO
de Factura.
public void eliminar( Factura Factura) throws DAOException
Este mtodo servir para la eliminacin de un Factura a partir de un POJO de
Factura.
public Set buscar( Factura Factura) throws DAOException
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.

16

public Set buscar( Contrato contrato) throws DAOException


Este mtodo servir para la bsqueda de Facturas asociadas a un contrato, a
partir de un POJO de Contrato. Retornara un Set de facturas con las que
concuerden con la bsqueda o vacio.
public void actualizar( Factura Factura) throws DAOException
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.

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 void crear( Pelicula Pelicula) throws DAOException
Este mtodo servir para la creacin de nuevos Pelculas a partir de un POJO
de Pelicula.
public void eliminar( Pelicula Pelicula) throws DAOException
Este mtodo servir para la eliminacin de un Pelicula a partir de un POJO de
Pelcula.
public Set buscar( Pelicula Pelicula) throws DAOException
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 void actualizar( Pelicula Pelicula) throws DAOException
Este mtodo servir para la actualizacin de la informacin de una Pelicula a
partir de un POJO con la nueva informacin.

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 void crear( Referencia Referencia, int numeroContrato) throws
DAOException
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.

17

public Set buscar( Referencia Referencia) throws DAOException


Este mtodo servir para la bsqueda de Referencias a partir de un POJO en
el que solo estar la informacin de los criterios de la bsqueda. Retornara un
set con los POJOs que cumplen con los criterios. Puede ser vacio.
public Set buscar( Contrato contrato) throws DAOException
Este mtodo servir para la bsqueda de Referencias asociadas a un contrato.
Se recibe un POJO de contrato y se retornara un set con los POJOs que
cumplen con los criterios. Puede ser vacio.

4.8 Usuario
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 void crear( Usuario usuario) throws DAOException
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 void eliminar(Usuario usuario) throws DAOException
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 set buscar(Usuario usuario) throws DAOException


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 void actualizar(Usuario usuario) throws DAOException
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

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.
Todos
ellos
se
encuentra
dentro
del
paquete
Co.Edu.Javeriana.Fwj2ee.Service de nuestra aplicacin. Todas las clases que
pertenezcan a este paquete lanzaran la excepcin ServiceException.
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 void crearContrato(Contrato contrato, Afiliado afiliado, Set
referencias) throws ServiceException

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

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


este.
Prototipo:
public
void
eliminarContrato(Contrato
contrato)
throws
ServiceException

5.1.3 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 void agregarAutorizado(Autorizado autorizado, Contrato
contrato) throws ServiceException

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 void eliminarAutorizado(Autorizado autorizado, Contrato
contrato) throws ServiceException

5.1.5 Actualizacin de una referencia


Precondicin: Haber ingresado al sistema exitosamente, solo se podrn
actualizar los datos del referencia.
Poscondicin: Se actualizara un registro en la base de datos de una referencia.
Definicin: Para la actualizacin de las referencias se debe recibir un POJO con
la informacin actualizada que se quiere tener de la referencia. 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 void actualizarReferencia(Referencia referencia) throws
ServiceException
20

5.1.6 Actualizacin de los referencias de un contrato


Precondicin: Haber ingresado al sistema exitosamente, solo se podrn
actualizar los datos del referencia.
Poscondicin: Se actualizara un registro en la base de datos todos los
referencias asociados a un contrato.
Definicin: Para la actualizacin de los referencias asociados a un contrato, se
debe recibir un POJO con la informacin del contrato y un set con los POJOs que
tienen la informacin actualizada de los referencias asociados al contrato. El
sistema deber salvar todos los nuevos referencias verificando que esta no viole la
integridad respecto a las otras personas que se tienen.
Prototipo: public void actualizarReferencia(Contrato contrato, set referencias)
throws ServiceException

5.1.7 Actualizacin de un autorizado


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 void actualizarAutorizado(Autorizado autorizado) throws
ServiceException

5.1.8 Actualizacin de los autorizados de un contrato


Precondicin: Haber ingresado al sistema exitosamente, solo se podrn
actualizar los datos del autorizado.
Poscondicin: Se actualizara un registro en la base de datos todos los
autorizados asociados a un contrato.
Definicin: Para la actualizacin de los autorizados asociados a un contrato, se
debe recibir un POJO con la informacin del contrato y un set con los POJOs que
tienen la informacin actualizada de los autorizados asociados al contrato. El
sistema deber salvar todos los nuevos autorizados verificando que esta no viole
la integridad respecto a las otras personas que se tienen.
Prototipo: public void actualizarAutorizado(Contrato contrato, set autorizados)
throws ServiceException

21

5.1.9 consultar contratos


Precondicin: Haber ingresado al sistema exitosamente, y conocer la informacion
del contrato a consultar. El contrato debe existir.
Poscondicin: se retornara un set de los contratos que cumplen los criterios.
Definicin: El sistema deber ofrecer el servicio de la consulta de contratos. Para
realizar esta transaccin se debe recibir como parmetro un POJO con la
informacin del contrato que se quiere consultar. El sistema deber ejecutar
sentencias de HSQL donde deber buscar los contratos que cumplen con los
criterios de busqueda y retornara un set de esos contratos.
Prototipo:
public
set
consultarContrato(Contrato
contrato)
throws
ServiceException

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 void crearPelicula(Pelcula pelcula) throws ServiceException

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.
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) throws ServiceException

22

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
void
actualizarPelicula(Pelcula
pelcula)
throws
ServiceException

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 void eliminarPelicula(Pelcula pelcula) throws ServiceException

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 void alquilarPelicula(Pelcula pelcula, Contrato contrato) throws
ServiceException

5.2.6 Entregar pelculas


Precondicin: Haber ingresado al sistema exitosamente, conocer los id de las
pelculas.

23

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 void entregarPelicula(Pelcula pelcula, Contrato contrato) throws
ServiceException

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 void crearFactura(Factura factura, Contrato contrato) throws
ServiceException

5.3.2 Consultar Facturas:


Precondicin: Haber ingresado al sistema exitosamente. y estar en el men de
consulta 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 un POJO en el que solo se
tendran 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) throws ServiceException

24

5.3.3 Consultar Facturas por contrato


Precondicin: Haber ingresado al sistema exitosamente. y estar en el men de
consulta de Facturas.
Poscondicin: Se mostrara en pantalla una lista de facturas segn los criterios de
bsqueda.
Definicin: Para la lectura de facturas asociadas a un contrato se debe recibir un
POJO en el que solo se tendran los criterios que debe tener el contrato del que se
quiere consultar las facturas. 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(Contrato
contrato)
throws
ServiceException

5.3.4 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 void eliminarFactura(Factura factura) throws ServiceException

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) throws ServiceException

5.4.2 Pelculas en mora a la fecha.


Precondicin: Haber ingresado al sistema como administrador exitosamente.

25

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() throws ServiceException

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) throws ServiceException

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()throws ServiceException

26

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 ms en este tema.

27

7. Conclusiones
Con la realizacin de este documento, se han definido claramente las capas sobre
las cuales se basar nuestra aplicacin de prueba, que de manera ms 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.
Est claro que ahora nos debemos preocuparnos por conocer ms de la ltima
capa de nuestra arquitectura, la capa de interfaz, porque es esta la piedra angular
de nuestro proyecto. Con el transcurso del proyecto, este documento se ir
depurando, lo que nos permitir establecer elementos importantes para la
definicin de la metodologa sobre la cual queremos trabajar.

28

Anda mungkin juga menyukai