Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CONSULTORÍA
“ELABORACION DE APLICACIÓN INFORMATICA PARA LA PRECALIFICACION Y NEGOCIACION DE
PRECIOS EN EL MARCO DE LA NEGOCIACION CONJUNTA DE PRECIOS Y COMPRA DE
MEDICAMENTOS PARA CENTROAMERICA Y REPUBLICA DOMINICANA ”
POR
SAÚL ALBERTO SANTOS CRUZ
HISTORIA DE REVISIONES
Fecha Versión Descripción Autor
Versión inicial, correspondiente a la
27/05/2011 1.0 entrega del análisis y diseño del Saúl Santos
sistema.
TABLA DE CONTENIDO
1. INTRODUCIÓN 6
2. OBJETIVOS 7
2.1 GENERAL 7
2.2 ESPECÍFICOS 7
3. REFERENCIAS 8
7. VISTA DE DESPLIEGUE 24
7.1 COMPONENTES 25
7.1.1 SERVIDOR WEB 25
8. VISTA DE IMPLEMENTACION 26
8.1 ARTEFACTOS 26
8.1.1 WEB-CLIENT.JAR 26
8.1.2 ZK.JAR 26
8.1.3 IREPORT4.0.1.JAR 26
8.1.4 SERVICES.JAR 26
8.1.5 DAO.JAR 27
8.1.6 SPRING-FRAMEWORK2.5.JAR 27
8.1.7 SQLJDBC.JAR 27
8.1.8 HIBERNATE3.JAR 27
9. VISTA LÓGICA 28
13. TABLAS 36
1. INTRODUCIÓN
2. OBJETIVOS
2.1 General
2.2 Específicos
Identificar y documentar el conjunto que casos de uso, que deberán de servir como
insumo para la fase de construcción del software.
3. REFERENCIAS
Esta sección describe los requerimientos y objetivos del software, que tiene algún
impacto significante en la arquitectura.
Capa de vista.
Composite View.
SeriveLocator
Servlet Filter
Capa modelo
DAO (Data Access Object)
VO ó DTOs (Data Transfers Object)
1
Sitio Web, https://glassfish.dev.java.net/
2
Sitio Web, http://java.sun.com/blueprints/corej2eepatterns/
Controlador (ZKEngine)
CAPA VISTA
ZK
Ajax
Interfaces de servicios
CAPA MODELO
Beans de Servicios
HIBERNATE
SERVIDOR DE WEB
SERVIDOR DE JEE
Base de Datos
4.2 Transacciones
4.3 Seguridad
El sistema deberá ser seguro, partiendo del principio del acceso mínimo requerido.
La aplicación implementará autenticación básica a través de:
Autenticación: A través de usuario y contraseña para acceder al sistema.
Autorización: acorde al perfil del usuario.
Campos de auditoría: Para todas las tablas de movimiento se guardará el
usuario y fecha de inserción y modificación de registros.
La autenticación y autorización para la aplicación se implementará a través de un
ServletFilter4, este monitoreará cada petición que el usuario realice a la aplicación
y sólo concederá el recurso si este usuario está en un grupo que tenga acceso a
éste.
4.4 Persistencia
3
Sitio Web, http://www.springframework.org
4
Sitio Web, http://java.sun.com/products/servlet/Filters.html
5
Sitio Web, http://www.hibernate.org/
APLICACION
OBJETOS PERSISTENTES
SENTENCIAS SQL
BASE DE DATOS
4.5.1 ZK Framework.
ZK es un marco de trabajo de
componentes de interfaces de usuario
del lado del servidor para aplicaciones
Web basadas en Java.
4.5.3 Hibernate
NOMBRE DESCRIPCION
PROYECT-ON- OpenProject es una herramienta para la planificación de tareas
DEMAND y recursos en el tiempo, a través de diagramas de Gantt.
Herramienta código libre y escrita en Java.
OpenOffice.org es una suite ofimática de software libre y
OpenOffice.org código abierto de distribución gratuita que incluye herramientas
como procesador de textos, hoja de cálculo, presentaciones,
herramientas para el dibujo vectorial y base de datos.
Power Designer Herramienta para modelado de sistemas.
NetBeans El IDE NetBeans es un IDE - una herramienta para
NOMBRE DESCRIPCION
programadores pensada para escribir, compilar, depurar y
ejecutar programas. Está escrito en Java. El IDE NetBeans es
un producto libre y gratuito sin restricciones de uso.
Subversion es un software de sistema de control de versiones
diseñado específicamente para reemplazar al popular CVS. Es
Subversion
software libre bajo una licencia de tipo Apache/BSD y se le
conoce también como svn.
Jtrac es una herramienta para la gestión de errores, issues
Jtrac
tracking, basada en web y escrita en java.
nombreTablaList: Esta página servirá para realizar búsquedas filtradas por los campos que los
usuarios consideren necesarios, a partir de ella se podrá ver el detalle de un registro, borrar
un registro y cargar un registro en modo de edición al formulario del mantenimiento de la
tabla.
error
editar
listar
FORM LIST
detalle
exito
DETAIL
Para el desarrollo de las páginas de todo el sitio, se utiliza el patrón de diseño CompositeView
o Vista Compuesta, en el cual se define una plantilla general para el sitio, reutilizando los
bloques de código comunes, como el encabezado, el menú, la barra de navegación y pie de
página.
4.7.1.3
Encabezado
Barra de Menu
Barra de
navegacion
Detalle
Pie de Página
Titulo
Campo1 Campo4
Campo2 Campo5
Campo3
El formulario para búsquedas (nombreTablaList), servirá para realizar búsquedas filtradas por
los campos que los usuarios consideren necesarios, los filtros y la paginación solo serán
aplicados a las tablas que después de un análisis de la proyección de la cantidad de registros
que almacenara, se determine que tendrá una cantidad mayor a los 20 registros. Además
desde éste se podrá ver el detalle de un registro, borrar un registro y cargar un registro en
modo de edición al formulario del mantenimiento de la tabla.
Titulo
Filtro1 Filtro3
Filtro2 Filtro4
Buscar Limpiar
Para las convenciones de codificación Java se utilizaran las “Convenciones de Código para
6
el lenguaje de programación JAVA™”
6
Convenciones de Código para el lenguaje de programación JAVA™
Revisado 20 Abril de 1999 por Scott Hommel, Sun Microsystems Inc.
Traducido al castellano 10 Mayo del 2001 por Alberto Molpeceres
http://www.javahispano.com
Usuario
PARTICIPANTES
SECOMISCA
Nombre Descripción
Usuario asignado a cada participante del proceso
de precalificación. Su acceso es restringido
Usuario participante
únicamente a consultar su información de sus
aplicaciones sometidas a precalificación.
7. VISTA DE DESPLIEGUE
<<Navegador>>
PC
Gerencia de
Registro e
Incorporaciones
SERVIDOR WEB
RegistroSolicitudes
GestionSolicitudes
ImpresiónDocumentos
<<LAN MINED>>
Tomcat6
precalificacion.war
<<Internet>>
<<Navegador>>
PC
Instituciones de <<LAN MINED>>
Educación
Superior (IES)
RegistroSolicitudes
SERVIDOR DE BASE DE DATOS
7.1 Componentes
Servidor de base de datos relacional, que será utilizado para darle persistencia a los
objetos del dominio que necesiten guardar sus estados, para su posterior consulta o
modificación.
8. VISTA DE IMPLEMENTACION
La Vista Implementación, describe los componentes de despliegue construidos y sus
interacciones, además de sus dependencias con componentes de terceros utilizados
para la construcción de la aplicación.
<<Artefacto>>
precalificacion.war
<<Artefacto>> <<Artefacto>>
web-client.jar servicios.jar
<<Artefacto>>
iReport4.0.1.jar <<Artefacto>> <<Artefacto>>
sqljdbc.jar Hibernate3.jar
8.1 Artefactos
8.1.1 web-client.jar
Componente cliente web utilizado para interactuar con el sistema y éste a su vez se
comunicará con la capa de servicios, estará desplegado en el servidor de web y será
utilizado por los usuarios del Sistema.
8.1.2 zk.jar
Componentes ZK Framework para el desarrollo de interfaces de usuario para
aplicaciones web.
8.1.3 iReport4.0.1.jar
Componente para el desarrollo y despliegue de reportes para el sistema.
8.1.4 services.jar
Componente de servicios del negocio, estos tienen como fin exponer los servicios de
la lógica del negocio, para ser accedidos desde la interfaz del cliente web.
8.1.5 dao.jar
Componente que gestiona el acceso a la base de datos, es utilizado por la capa de la
lógica del negocio para comunicarse con la base de datos.
8.1.6 Spring-Framework2.5.jar
Componente para la gestión de transacciones, inyección de dependencias e
integración de las capas de la aplicación.
8.1.7 sqljdbc.jar
Componente ofrecido por el fabricante de la base de datos para establecer la
comunicación con la base de datos a través de JDBC.
8.1.8 Hibernate3.jar
Motor de persistencia utilizado para gestionar el acceso a la base de datos.
Implementa un ORM (Object to Relational Mapping) para casar el mundo de objetos de
Java con la base de datos relacional.
9. VISTA LÓGICA
Esta vista presenta tres niveles de arquitectura del cada nivel corresponde a un
refinamiento del nivel anterior. El último nivel es el que presenta mayores detalles; en
él se presentan los módulos participantes de la arquitectura junto a un diagrama.
ZK
<<layer>>
Vista Controlador y flujo de la aplicación
a través de ZK
ServiceLocator
<<layer>>
Modelo
Servicios
Componentes reusables para lógica de
negocios, implementados a través de
Hibertate y SpringFramework.
Logica de
Negocios Manejo de
Manejo de transacciones.
Trasacciones
<<layer>>
Integracion
XML Mapeos
La capa de la vista, es mediante la cual los actores interactúan con el sistema, tiene
como objetivo el manejo de la lógica del usuario, está formada por un conjunto de
páginas web dinámicas.
1 : Peticion
2 : [if] fail
3 : loginAction
4 : getSeguridadServicio
5 : obtiene
6 : login
7 : instancia
8 : getUsuario
error
9 : encriptarClave
10 : verificarClave
11 : [if] cambiarClave
error
11 : getGrupo
12 : getRecursos
13 : redirecciona
1 : Peticion
2 : cerrarSesionAction
3 : invalidate
4 : getSession
5 : invalidate
5 : Redirecciona
1 : Peticion
El usuario selecciona
administrar persona
2: Redirec ciona
3: respues ta
El usuario selecciona
agregar una nuev a persona
[if] nuevo
4: createAction
5: crea
6: getSeguridadServic io
7: obtiene
8: sav ePersona
9: sav ePersona
10: MuestraMensaje
11 : [if] Modificar
El usuario selecciona
modific ar un usuario
ex istente 12: updateAction
14: getSeguridadSevic io
15: obtiene
16: updatePersona
17: updatePersona
18: muestraMensaje
El usuario selecciona
eliminar un us uario ex istente
18 : [if] Eliminar
19 : deleteAction
21: getSeguridadServicio
22: obtiene
25: muestraMensaje
La vista de procesos describe los módulos activos del sistema, éstos son módulos que
estarán en ejecución en forma simultánea. Esta vista describe además, el soporte multi-
usuario de la aplicación.
La aplicación está basada en la web, por esta razón cuenta con una distribución a nivel
de interfaz de usuario, corriendo en su estación de trabajo en una aplicación llamada:
Browser, como Mozilla Firefox, Microsoft Internet Explorer, Opera. Esta aplicación es
cargada para presentar al usuario la interfaz de la aplicación y de enviar al servidor las
acciones que el usuario realiza.
FK_PROVEEDO_PROVEEDOR_PROVEEDO FK_REPT
FK_REPT
T E_F_ID_PROVEE_PROVEEDO
T E_F_ID_FABRIC_PROVEEDO
FK_PROVEEDO_PROVEEDOR_PROVEEDO
T IPO_PROVEEDOR : 1 PROVEEDOR_T IPO_INSPECCIONES T IPO_INSPECCION
FK_PROVEEDO_PROVEEDOR_T IPO_INS
ID_T IPO_PROVEEDOR char(1) <pk> ID_T IPO_INSPECCION int <pk,fk1> ID_T IPO_INSPECCION int <pk>
T IPO_PROVEEDOR varchar(50) ID_PROVEEDOR int <pk,fk2> T IPO_INSPECCION varchar(20)
DOC_OFERT A
REQUERIMIENT O
PROCESOS_NEGOCIACION : 1
OFERT A ID_DOC_OFERT A int <pk>
DOC_REQT O ID_REQUERIMIENT O int <pk>
ID_PROCESO_NEGOCIACION smallint <pk> ID_OFERT A int <fk1>
FK_REQUERIM_FK_REQT O__PROCESOS FK_DOC_REQT _FK_DOC_RE_REQUERIM ID_PROCESO_NEGOCIACION smallint <fk2> ID_OFERT A int <pk>
ID_LIST A smallint <fk> ID_REQUERIMIENT O int <pk,fk1> ID_T IPO_DOCUMENT O char(1) <fk2>
ID_EST ADO_REQUERIMIENT O char(1) <fk1> ID_RESULT ADO_EAJ char(1) <fk4>
DESCRIPCION varchar(200) ID_DOCUMENT O tinyint <pk,fk2> FECHA_DOC_OFERT A datetime
FECHA datetime ID_EST ADO_OFERT A char(1) <fk1>
ACT IVO bit ORDEN smallint T IT ULO varchar(100)
DESCRIPCION varchar(200) ID_REQUERIMIENT O int <fk3>
NO_ACT A_ADMIN int DESCRIPCION varchar(200)
REF_REQUERIMIENT O varchar(15) ID_PROVEEDOR int <fk2>
ARCHIVO image
CORRELAT IVO tinyint
FECHAHORA datetime
FK_OFERT A_FK_OFERT A_REQUERIM PERSONA_ENT REGA varchar(75) FK_DOC_OFER_FK_DOC_OF_OFERT A
FK_OFERT A_D_OFERT A_DO_DOC_REQT VIENE_SOBRE1 bit
VIENE_SOBRE2 bit
VIENE_SOBRE3 bit
OBS_OFERT A varchar(4000)
NO_ACT A_V_SA tinyint
FH_V_SA datetime
OFERT A_DOCUMENT O OBS_V_SA varchar(4000)
ID_REQUERIMIENT O int <pk,fk2> FK_OFERT A_D_OFERT A_DO_OFERT A NO_ACT A_ECO tinyint
FK_PROCESOS_FK_PROC_N_LIST AS
ID_DOCUMENT O tinyint <pk,fk2> FH_ECO datetime
EST ADO_OFERT A
ID_OFERT A int <pk,fk1> OBS_ECO varchar(4000) FK_OFERT A_FK_OFERT A_EST ADO_O
PRESENT O bit NO_ACT A_V_SB tinyint ID_EST ADO_OFERT A char(1) <pk>
OBSERVACION varchar(500) FH_V_SB datetime EST ADO_OFERT A varchar(30)
PASO_EVAL_ADMIN bit OBS_V_SB varchar(4000)
FK_DET _REQU_FK_DET _RE_REQUERIM
OBS_EVAL_ADMIN varchar(4000) NO_ACT A_EAJ tinyint
ARCHIVO image FH_EAJ datetime
OBS_EAJ varchar(4000)
NO_ACT A_ADJ tinyint
FH_ADJ datetime
OBS_ADJ varchar(4000)
LIST AS PASO_EVAL_ADMIN bit
DET _LIST AS : 1
OBS_EVAL_ADMIN varchar(4000)
ID_LIST A smallint <pk> ID_DET _LIST A int <pk>
DESCRIPCION varchar(200) FK_DET _REQU_ID_REQUER_DET _REQU
FK_DET _LIST _FK_DET _LI_LIST AS ID_MEDICAMENT O int <fk1>
ACT IVO bit ID_LIST A smallint <fk2>
ORDEN smallint FK_DET _OFER_FK_DET _OF_OFERT A
GRUPOS : 1
ID_GRUPO int <pk>
GRUPO varchar(150) FK_DET _REQU_FK_DET _RE_RESULT AD
FK_DET _REQU_DET _REQ_M_MODALIDA FK_DET _OFER_FK_DET _OF_RONDA_OF
RONDA_OFERT A
RESULT ADO_SUBAST A MODALIDAD_NEGOCIACION
ID_RESULT ADO_SUBAST A char(1) <pk> ID_MODALIDAD_NEGOCIACION tinyint <pk> ID_RONDA_OFERT A int <pk>
RONDA_OFERT A varchar(75)
RESULT ADO_SUBAST A varchar(30) MODALIDAD_NEGOCIACION varchar(30)
ORDEN smallint
EST ADOS_APLICACION
ID_EST ADO_APP char(1) <pk>
EST ADO_APP varchar(20)
DOC_REQ
FK_APP_REQ_FK_APP_RE_GEST IONE
ID_DOC_REQ int <pk> APP_REQ FK_GEST IONE_FK_GEST IO_PROVEEDO
ID_APP_REQ int <fk>
ID_APP_REQ
FK_DOC_REQ_FK_DOC_RE_APP_REQ int <pk>
DOC_REQ varchar(150)
ID_GEST ION int <fk3>
MENSAJE varchar(500) FK_APP_REQ_ID_PADRE_APP_REQ
ID_REQUISIT O int <fk2>
ARCHIVO_DOC ntext PROVEEDOR : 2
ID_T IPO_VALIDACION char(1) <fk5>
ACT IVO bit
APP_ID_APP_REQ int <fk4> ID_PROVEEDOR int <pk>
USR_CREO varchar(30)
ID_APLICACION int <fk1> ID_T IPO_PROVEEDOR char(1) <fk>
USR_MOD varchar(30)
REQUISIT O varchar(500) NOMBRE varchar(150)
DT _CREO datetime
ES_OBLIGAT ORIO bit DIRECCION varchar(150)
DT _MOD datetime
ES_ENT REGABLE bit T ELEFONO1 varchar(15)
SE_ENT REGO bit T ELEFONO2 varchar(15)
VENCE bit FAX varchar(15)
FECHA_VT O datetime CONT ACT O varchar(60)
OBSERVACIONES CUMPLE bit CORREO_CONT ACT O varchar(75)
MENSAJE_NO_CUMPLE varchar(500) ANT IGUEDAD int
ID_OBSERVACION int <pk> ORDEN smallint NUMERO_EMPLEADOS int
ID_APP_REQ int FK_OBSERVAC_FK_OBS_AP_APP_REQ
<fk> USR_CREO varchar(30) VENT A_ANUAL decimal(18,2)
OBSERVACION varchar(500) USR_MOD varchar(30) EXPORT ACION_ANUAL decimal(18,2)
MENSAJE varchar(500) DT _CREO datetime NUMERO_PLANT AS int
ACT IVO bit DT _MOD datetime NUMERO_FABRICANT ES int
FH_CREO datetime
FH_ELIMINO datetime
FK_APP_REQ_FK_APP_RE_REQUISIT
FK_APP_REQ_FK_APP_RE_T IPOS_VA
REQUISIT OS GEST IONES : 2
ID_REQUISIT O int <pk> ID_GEST ION int <pk>
T IPO_PROVEEDOR : 2 ID_T IPO_VALIDACION char(1) <fk4> FK_REQUISIT _ID_REQ_PA_REQUISIT ID_EST ADO_GEST ION char(1) <fk1>
FK_REQUISIT _FK_REQ_T I_T IPO_PRO
ID_T IPO_PROVEEDOR char(1) <fk3> ID_PROVEEDOR int <fk2>
ID_T IPO_PROVEEDOR char(1) <pk> ID_PROCESO_NEGOCIACION smallint <fk3>
ID_GRUPO_REQ int <fk2>
T IPO_PROVEEDOR varchar(50) GEST ION varchar(150)
REQ_ID_REQUISIT O int <fk5>
ID_T IPO_REQUISIT O char(1) <fk1> FECHA_GEST ION datetime
REQUISIT O varchar(500) T IPOS_VALIDACION ACT IVO bit
FK_REQUISIT _FK_REQ_T I_T IPOS_VA NO_ACT A_T EC int
ES_OBLIGAT ORIO bit ID_T IPO_VALIDACION char(1) <pk>
ES_ENT REGABLE bit USR_CREO varchar(30)
T IPO_VALIDACION varchar(25)
VENCE bit USR_MOD varchar(30)
GRUPOS_REQ MENSAJE_NO_CUMPLE varchar(500) DT _CREO datetime
ID_GRUPO_REQ int FK_REQUISIT
<pk> _FK_REQ_GR_GRUPOS_R ACT IVO bit DT _MOD datetime
GRUPO_REQ varchar(100) ORDEN smallint
ORDEN smallint USR_CREO varchar(30)
USR_MOD varchar(30)
DT _CREO datetime FK_CERT IFIC_CERT IF_GE_GEST IONE
DT _MOD datetime
DET _LIST AS : 2
T IPOS_REQUISIT OS APLICACIONES : 2 T AREAS
ID_DET _LIST A int <pk>
ID_T IPO_REQUISIT O char(1) <pk> ID_APLICACION int <pk> ID_T AREA int <pk>
ID_MEDICAMENT O int <fk1>
T IPO_REQUISIT O varchar(20) ID_MEDICAMENT O int <fk1> T AREA varchar(100)
ID_LIST A smallint <fk2>
ID_MARCA tinyint <fk3> FECHA_T AREA datetime
ORDEN smallint
ID_GEST ION int <fk5> FINALIZADA bit
ID_FABRICANT E int <fk6> USR_CREO varchar(30)
ID_PAIS int <fk2> USR_MOD varchar(30)
ID_PROVEEDOR int <fk7> DT _CREO datetime
ID_EST ADO_APP char(1) <fk4> DT _MOD datetime
DESCRIPCION varchar(200)
FECHA_APLICACION datetime
ACT IVO bit
USR_CREO varchar(30)
USR_MOD varchar(30)
DT _CREO datetime
DT _MOD datetime
TIPO_INSPECCION TIPO_INSPECCION
TIPO_PROVEEDOR TIPO_PROVEEDOR
TIPOS_MEDICAMENTOS TIPOS_MEDICAMENTOS
TIPOS_REQUISITOS TIPOS_REQUISITOS
TIPOS_VALIDACION TIPOS_VALIDACION
13. TABLAS