autor: javier patricio copara simaluisa · encriptación (sha), manejo de role y autenticación...
TRANSCRIPT
UNIVERSIDAD CENTRAL DEL ECUADOR
FACULTAD DE INGENIERÍA, CIENCIAS FÍSICAS Y MATEMÁTICA
CARRERA DE INGENIERÍA INFORMÁTICA
“SISTEMA PARA GESTIONAR LA INFORMACIÓN EN EL ARCHIVO GENERAL DE
LA UNIVERSIDAD CENTRAL DEL ECUADOR.”
TRABAJO DE GRADUACIÓN PREVIO A LA OBTENCIÓN DEL TÍTULO DE
INGENIERO INFORMÁTICO.
AUTOR: JAVIER PATRICIO COPARA SIMALUISA
TUTOR: ING. RENÉ ALFONSO CARRILLO FLORES, MSC.
QUITO, 22 DE FEBRERO
2017
ii
AUTORIZACIÓN DE LA AUTORÍA INTELECTUAL
iii
CERTIFICACIÓN DEL TUTOR
iv
APROBACIÓN DEL TRIBUNAL
v
vi
DEDICATORIA
A Dios por haberme dado salud y fuerza,
a mis queridos padres Aparicio y María
por su apoyo en todo momento,
mis hermanas por su cariño incondicional,
todo este trabajo ha sido posible gracia a ustedes.
vii
AGRADECIMIENTO
En primer lugar agradecer a Dios por todas las bendiciones y haberme permitido llegar a
este punto y poder cumplir con mis objetivos. A mis padres Aparicio y María que siempre
me han dado su apoyo incondicional y a quienes debo este triunfo profesional.
Mis más sinceros agradecimientos al Ing. René Alfonso Carrillo Flores por su apoyo y
colaboración en la realización de este proyecto.
A mi tutor y revisores por su valiosa orientación, apoyo y paciencia en la dirección de este
proyecto, ya que sin ellos no hubiese culminado el mismo.
viii
CONTENIDO
AUTORIZACIÓN DE LA AUTORÍA INTELECTUAL ................................................................... ii
CERTIFICACIÓN DEL TUTOR ................................................................................................................ iii
APROBACIÓN DEL TRIBUNAL ............................................................................................................. iv
DEDICATORIA ................................................................................................................................................. vi
AGRADECIMIENTO .....................................................................................................................................vii
LISTA DE FIGURAS ....................................................................................................................................... x
LISTA DE TABLAS ........................................................................................................................................ xi
RESUMEN .......................................................................................................................................................... xii
ABSTRACT ...................................................................................................................................................... xiii
INTRODUCCIÓN .............................................................................................................................................. 1
1. MARCO TEORICO ................................................................................................................................. 3
1.1 Proceso .................................................................................................................................................. 3
1.1.2. Proceso de Clasificación............................................................................................................ 4
1.2. Casos de uso........................................................................................................................................ 4
1.2.1. Registro usuario ........................................................................................................................ 5
1.2.2. Editar Usuario ........................................................................................................................... 5
1.2.3. Buscar Usuario ........................................................................................................................ 5
1.2.4. Ingresar Documento ............................................................................................................. 5
1.2.5. Editar Documento.................................................................................................................. 5
1.2.6. Buscar Documento ................................................................................................................ 6
1.3. Tecnología .......................................................................................................................................... 6
1.3.1. Programación por capas ..................................................................................................... 6
1.3.2. Programación JEE .................................................................................................................. 8
1.3.3. Arquitectura MVC .................................................................................................................. 9
1.3.4. JAVA ........................................................................................................................................... 11
1.3.5. Plataforma de aplicaciones Jboss enterprise......................................................... 12
1.3.6. JavaServerFaces ................................................................................................................... 13
1.3.7. EJB .............................................................................................................................................. 14
1.3.8. NetBeans IDE ........................................................................................................................ 15
ix
1.3.9. PostgreSQL ............................................................................................................................. 16
1.3.10. PrimeFaces ........................................................................................................................ 17
1.3.11. Criptografía: Algoritmos de autenticación (hash) .......................................... 18
2. METODOLOGÍA OPEN UP ............................................................................................................ 20
2.1. Introducción ..................................................................................................................................... 20
2.2. Características de Open UP........................................................................................................ 20
2.3. Principios de Open UP3 ............................................................................................................... 21
2.4. Organización de los componentes del OpenUP. ................................................................ 21
2.5. Roles5 .................................................................................................................................................. 22
2.6. Ciclo de Vida ................................................................................................................................... 23
2.6.1. Fase de Inicio.......................................................................................................................... 23
2.6.2. Fase de Elaboración ............................................................................................................. 24
2.6.3. Fase de Construcción........................................................................................................... 24
2.6.4. Fase de Transición ................................................................................................................ 25
3. DESARROLLO ...................................................................................................................................... 26
3.1. Descripción General .................................................................................................................... 27
3.1.1. Funciones del producto ................................................................................................... 27
3.2. Requerimientos............................................................................................................................. 27
3.2.1. Requerimientos Funcionales......................................................................................... 27
3.2.2. Requerimientos Funcionales......................................................................................... 34
3.3. Casos de Uso ................................................................................................................................... 34
3.3.1. Caso de Uso Administración de Usuario .................................................................. 34
3.3.2. Caso de Uso Administración de Documentos ........................................................ 37
3.4. Diagrama de Clases ..................................................................................................................... 41
3.5. Diagramas de Secuencia ........................................................................................................... 42
3.6. Diagramas de Estado .................................................................................................................. 45
3.7. Diagrama de Despliegue ........................................................................................................... 46
3.8. Codificación..................................................................................................................................... 47
4. DISCUSIÓN ............................................................................................................................................ 51
5. CONCLUSIONES ................................................................................................................................. 52
6. RECOMENDACIONES ..................................................................................................................... 53
BIBLIOGRAFIA .............................................................................................................................................. 54
x
LISTA DE FIGURAS
Figura 1. Arquitectura........................................................................................................................................ 3 Figura 2. Casos de uso. ..................................................................................................................................... 4 Figura 3. Arquitectura de n niveles .............................................................................................................. 7
Figura 4. Arquitectura MVC ........................................................................................................................... 9 Figura 5. Roles .................................................................................................................................................. 23 Figura 6. Ciclo de Vida .................................................................................................................................. 25
Figura 7. Caso de uso – Administración de usuarios.......................................................................... 35 Figura 8. . Caso de uso – Administración de documentos................................................................ 37 Figura 9. Diagrama De Clase....................................................................................................................... 41
Figura 10. Diagramas de Secuencia - Agregar Usuario..................................................................... 42
Figura 11. Diagramas de Secuencia - Editar Usuario ......................................................................... 43 Figura 12. Diagramas de Secuencia - Buscar Usuario ...................................................................... 43 Figura 13. . Diagramas de Secuencia - Agregar Documento........................................................... 44
Figura 14. Diagramas de Secuencia - Editar Documento ................................................................ 44 Figura 15. Diagramas de Secuencia - Buscar Documentos ............................................................ 45
Figura 16. Diagramas de Estado ................................................................................................................. 46 Figura 17. Diagrama de Despliegue .......................................................................................................... 47
Figura 18. Código de la clase controlador .............................................................................................. 47
Figura 19. Código de la clase servicios de documentos .................................................................... 48 Figura 20. Código de la clase servicios de usuarios............................................................................ 48
Figura 21. Archivo de propiedades............................................................................................................ 49
Figura 22. Código de la clase css ............................................................................................................... 49 Figura 23. Base de datos de la tabla documentos. ............................................................................... 50
xi
LISTA DE TABLAS
Tabla 1. Subproceso usuario ........................................................................................................................ 28 Tabla 2. Subproceso HCU ............................................................................................................................ 30 Tabla 3. Subproceso expedientes ........................................................................................................... 32
Tabla 4. Subproceso proyectos de titulación .................................................................................... 33
Tabla 5. Registrar Usuario ............................................................................................................................ 35 Tabla 6. Editar Usuario .................................................................................................................................. 36 Tabla 7. Buscar Usuario ................................................................................................................................ 37
Tabla 9. Ingresar Documentos..................................................................................................................... 38 Tabla 10. Editar Documentos ...................................................................................................................... 39
Tabla 11. Buscar Documentos..................................................................................................................... 40
xii
RESUMEN
SISTEMA PARA GESTIONAR LA INFORMACIÓN EN EL ARCHIVO GENERAL DE
LA UNIVERSIDAD CENTRAL DEL ECUADOR.
AUTOR: Javier Patricio Copara Simaluisa
TUTOR: Ing. René Alfonso Carrillo Flores
La aplicación de registro de documentos provee al Archivo General de la Universidad
Central del Ecuador un sistema que hace eficiente dicho proceso, el cual permite almacenar
información, realizar búsquedas rápidas ya sea por tipo de documento, código o fecha de
ingreso, y de esta manera poder llevar un control de todos los documentos ingresados. La
extensa cantidad de información existente en el archivo general tanto de expedientes, hcu y
tesis, dificulta la búsqueda de cierta información solicitadas por el usuario, mediante la
utilización del sistema dicha información pueden ser obtenida de manera fácil e inmediata.
La finalidad del sistema a implementar consiste en mantener un registro de todos los
documentos existentes en el archivo universitario de forma ordenada e interactiva.
El sistema ofrece calidad en los datos ingresados mediante validaciones y niveles de
seguridad de toda la información almacenada en la base de datos mediante métodos de
encriptación (SHA), manejo de role y autenticación mediante usuario y contraseña, además
el usuario administrador tendrá la capacidad de realizar auditoria de toda la información
ingresada.
PALABRAS CLAVES: APLICACIÓN WEB/ SISTEMA DE REGISTRO/
PROGRAMACIONJAVA/ POSTGRESQL/ SERVIDOR DE APLICACIONES/
METODOLOGÍA OPEN UP
xiii
ABSTRACT
SYSTEM FOR MANAGING THE INFORMATION IN THE GENERAL ARCHIVE OF
THE CENTRAL UNIVERSITY OF ECUADOR.
AUTHOR: Javier Patricio Copara Simaluisa
TUTOR: Eng. René Alfonso Carrillo Flores
The application of registration of documents provides to the General Archive of the Central
University of Ecuador a system that makes this process efficient, which allows to store
information, perform quick searches either by type of document, code or date of entry, and
in this way can carry of all documents entered. The extensive quantity of information in the
general archive of both files, hcu and thesis, makes it difficult the search of certain
information requested by the user, by using the system such information can be obtained
easily and immediately. The purpose of the system to be implemented is to keep a record of
all the existing documents in the university archive in an orderly and interactive way.
The system offers quality in the data entered through validations and security levels of the
all information stored in the database through encryption methods (SHA), role management
and authentication by user and password, in addition the administrator user will have the
ability to perform auditing of the all information entered.
KEYWORDS: WEB APPLICATION / REGISTRATION SYSTEM / PROGRAMMING
JAVA / POSTGRESQL / APPLICATION SERVER / OPEN UP METHODOLOGY.
1
INTRODUCCIÓN
El propósito de este proyecto integrador es poder realizar el proceso de registro de
documentos, de manera que el servicio prestado por el personal del Archivo General de la
Universidad Central del Ecuador sea sencillo y poder efectuar un trabajo de calidad, para lo
cual se desarrollará una aplicación que permitirá registrar y acceder a la información
requerida de forma inmediata, para garantizar mayor eficiencia en el servicio.
Ante la situación actual, el personal del archivo general debe estar preparado para cumplir
con las necesidades requeridas y mejorar la calidad del servicio para generar satisfacción en
los usuarios, mediante la utilización del sistema propuesto, el cual demanda de la
participación dinámica y responsabilidad del personal.
Los grandes cambios han generado que los sistemas informáticos se establezcan como un
componente esencial en las instituciones públicas o privadas para obtener una mejor visión,
con la finalidad de conseguir información adecuada y de esta manera poder satisfacer las
exigencias de los usuarios, por lo cual el presente trabajo tiene como propósito mejorar y
contribuir el servicio realizado por el archivo general.
El valor y utilidad de los documentos del archivo general se resumen en dos conceptos,
evidencia y memoria. Cabe resaltar la importancia de preservar y gestionar los documentos
universitarios, que sirven para generar conocimiento dentro de la universidad y también
como un recurso de información. En definitiva, la información de cada documento
universitario resulta imprescindible para desarrollar conocimiento e identidad de la
universidad.
2
Actualmente el proceso de búsqueda de esta información es de forma manual, diariamente
el Archivo General recibe varias peticiones de cierta información, al personal encargado le
puede tomar varias horas encontrar la información solicitada por la extensa cantidad de
documentación. Esto conlleva a un tiempo de respuesta alto e ineficaz.
Para optimizar y facilitar el proceso de acceso y control a la información, se respaldará toda
la documentación en una base de datos y se desarrollará un sistema de gestión para el
personal del archivo general, con el fin del que este proceso sea automático.
Para cumplir con los objetivos planteados se realizará el almacenamiento de cada uno de
los diferentes documentos en una base de datos de manera que se tenga la facilidad de
poder organizarlos y gestionar de forma adecuada y poder garantizar la preservación de
dicha información de manera digital.
Las tecnologías de la información permiten realizar aumentos significativos en el manejo
de la información que derivan en una mejora de la calidad del servicio y brindar soluciones
óptimas a los requerimientos del usuario.
3
1. MARCO TEORICO
1.1 Proceso
Los procesos son una secuencia de pasos que se deben cumplir para poder finalizar una
acción o una tarea.
La aplicación realizara los siguientes procesos.
1.1.1 Proceso de registro
Se realizara el registro de tres tipos distintos de documentos como son tesis, HCU, y
expedientes los cuales cuentan con diferente información para su ingreso.
Figura 1. Arquitectura
Fuente: Autor
4
1.1.2. Proceso de Clasificación
Los documentos ingresados serán clasificados según su tipo para poder llevar un control
adecuado y facilitar búsquedas de los registros ingresados.
1.2. Casos de uso
Es una descripción de los pasos o las actividades que deberán realizarse para llevar a cabo
algún proceso. Los personajes o entidades que participarán en un caso de uso se denominan
actores. En el contexto de ingeniería del software, un caso de uso es una secuencia de
interacciones que se desarrollarán entre un sistema y sus actores en respuesta a un evento
que inicia un actor principal sobre el propio sistema. Los diagramas de casos de uso sirven
para especificar la comunicación y el comportamiento de un sistema mediante su
interacción con los usuarios y otros sistemas. O lo que es igual, un diagrama que muestra la
relación entre los actores y los casos de uso en un sistema. Una relación es una conexión
entre los elementos del modelo, por ejemplo la especialización y la generalización son
relaciones. Los diagramas de casos de uso se utilizan para ilustrar los requerimientos del
sistema al mostrar cómo reacciona a eventos que se producen en su ámbito o en él mismo.
Figura 2. Casos de uso. Fuente: https://es.wikipedia.org/wiki/Caso_de_uso
5
Tenemos los siguientes casos de uso que desarrollara la aplicación:
1.2.1. Registro usuario
Se puede ingresar usuarios al sistema de acuerdo a un rol específico de manera que el rol
asignado le permita tener acceso a las funciones que vaya a desempeñar el usuario.
Esta tarea está asignada al rol del administrador.
1.2.2. Editar Usuario
El rol de administrador tiene la opción de actualizar la información del usuario como puede
ser el correo electrónico, dirección del domicilio.
1.2.3. Buscar Usuario
El sistema cuenta con la facilidad de búsqueda de usuario que debido a la cantidad de
usuarios ingresados dificultaría encontrar un registro especifico, para lo cual cuenta con la
opción de búsqueda ya sea por código o número de cedula.
1.2.4. Ingresar Documento
En esta opción el usuario tiene la opción de ingresar registros de un documento.
El usuario debe estar registrado previamente, ya que la aplicación cuenta con un manejo de
rol de usuarios, al ingresar su nombre de usuario y contraseña ingresara al menú para
posteriormente seleccionar el tipo de documento que se procederá a ingresar al sistema.
1.2.5. Editar Documento
Los registros ingresados se almacenan en un base de datos, dicha información puede ser
actualizada ya sea por algún ingreso incorrecto por parte del usuario.
6
1.2.6. Buscar Documento
La extensa cantidad de documentos ingresados complicara la búsqueda de cualquier
información requerida por lo que se realizara las opciones de búsqueda para facilitar este
proceso, se podrá realizar la búsqueda por código, tipo de documento, fecha de ingreso.
1.3. Tecnología
1.3.1. Programación por capas
La programación por capas se basa en una arquitectura cliente-servidor con el principal
objetivo de separar la lógica de negocios de la lógica de diseño, es decir separar la capa de
datos de la capa de presentación al usuario.
La principal ventaja de realizar un diseño por capas es de tener varios niveles de manera
que los cambios requeridos sean fácilmente llevados a cabo.
En el diseño de un sistema informático actual se suelen usar las arquitecturas multinivel o
Programación por capas. En dichas arquitecturas a cada nivel se le confía una tarea, lo que
permite el diseño de arquitecturas escalables (que pueden ampliarse con facilidad en caso
de que las necesidades aumenten).
El más utilizado actualmente es el diseño en tres niveles (o en tres capas).
Arquitectura en n capas
La arquitectura en n capas no es más que un estilo de programación donde su objetivo
principal es separar los diferentes aspectos del desarrollo, tales como la presentación, lógica
de negocio, mecanismos de almacenamiento, entre otros.
Una razón importante por la que surge este concepto, es debido a que en la evolución del
desarrollo de software, se ha identificado la necesidad de crear nuevas capas, especializadas
7
en funciones específicas, diferentes a las 3 identificadas previamente. Tal es el caso de la
seguridad, el control de excepciones, el transporte de datos entre capas, la generación de
trazas de errores, entre otros.
1.3.1.1. Ventajas
Desarrollos paralelos (en cada capa)
Encapsulamiento
Mantenimiento y soporte más sencillo (es más fácil cambiar un componente que
modificar una aplicación monolítica)
Se pueden añadir nuevos módulos para dotar al sistema de nueva funcionalidad.
En una aplicación distribuida en n-capas los diferentes procesos están distribuidos en
diferentes capas no sólo lógicas, sino también físicas. Los procesos se ejecutan en
diferentes equipos, que pueden incluso residir en plataformas o sistemas operativos
completamente distintos. Cada equipo posee una configuración distinta y está optimizado
para realizar el papel que le ha sido asignado dentro de la estructura de la aplicación, de
modo que tanto los recursos como la eficiencia global del sistema se optimicen.
Figura 3. Arquitectura de n niveles
Fuente: http://iutll-abdd.blogspot.com/2012/05/arquitectura-de-n-capas.html
8
1.3.2. Programación JEE
La especificación original J2EE fue desarrollada por la empresa Sun Microsystems.
Anteriormente conocido como java 2 Platform o J2EE hasta la versión 1.4, es una
plataforma de programación para desarrollar y ejecutar software de aplicaciones en el
lenguaje de programación Java. Capaz de desarrollar en arquitecturas de n-capas
distribuidas que se ejecutara sobre un servidor de aplicaciones.
La plataforma Java EE está definida por una especificación, también es considerada
informalmente como un estándar debido a que los proveedores deben cumplir ciertos
requisitos de conformidad.
Posee varias especificaciones de API, tales como JDBC, RMI, e-mail, JMS, Servicios
Web, XML, etc, también configura algunas especificaciones únicas para componentes Java
EE, estas incluyen EJB, servlets, portlets, JSP y varias tecnologías de servicios web. Ello
permite desarrollar una aplicación empresarial portable y escalable.
1.3.2.1. Ventajas
Una arquitectura simplificada que se basa en componentes, servicios y clientes
estándar. La arquitectura maximiza la tecnología Java de escribir una vez, ejecutar
siempre.
Servicios que proporcionan la integración con los sistemas existentes, incluidos
JDBC (Java DataBase Connectivity); JMS (Java Message Service); JCA (Java
Connector Architecture; Java IDL (Java Interface Definition Language); la API
JavaMail; Java Transaction API (JTA y JTS) para transacciones empresariales
fiables.
Escalabilidad para satisfacer la demanda, distribuyendo contenedores entre varios
sistemas y utilizando la agrupación de conexiones de bases de datos.
Más opciones de herramientas para el desarrollo de aplicaciones y componentes de
proveedores que ofrecen soluciones estándar.
9
Un modelo de seguridad flexible que proporciona soporte de inicio de sesión único,
integración con esquemas de seguridad heredados y un enfoque unificado para
asegurar los componentes de la aplicación.
Las especificaciones J2EE son el resultado del trabajo de un sector que implica a un gran
número de colaboradores. IBM ha contribuido al definir más del 80 por ciento de las API
J2EE.
1.3.3. Arquitectura MVC
El modelo vista controlador es un patrón de arquitectura que define la organización
independiente del Modelo (Negocio) la vista (interfaz de usuario) y el controlador
(workflow de la aplicación). De esta forma se divide el sistema en tres capas donde
tenemos el encapsulamiento de los datos, la interfaz o vista y la lógica interna o
controlador. Este patrón de arquitectura de software se basa en la idea de la reutilización de
código lo que facilitara su mantenimiento.
Figura 4. Arquitectura MVC Fuente: http://librosweb.es/libro/jobeet_1_4/capitulo_4/la_arquitectura_mvc.html
El patrón de arquitectura MVC está compuesta por:
Modelo.- se encarga de gestionar la información con la cual el sistema opera, los accesos a
dicha información, tanto consultas como actualizaciones, implementando también los
10
privilegios de acceso que se hayan descrito en los requerimientos de la aplicación. Es
independiente del controlador y la vista. Envía información a la vista cuando sea solicitada
para mostrarla al usuario. La manipulación de la información se la realiza a través del
controlador.
Controlador.- responde a la petición del cliente e invoca peticiones al modelo ejecutando
la acción adecuada y creando el modelo pertinente, también puede enviar comandos a la
vista asociada a un cambio en la forma en que se presenta le modelo, por tanto se puede
decir que el controlador es el intermediario entre la vista y el modelo.
Vista.- es la presentación del modelo se puede acceder pero no cambiar su estado,
únicamente interactuar con el usuario.
El funcionamiento del patrón MVC es a través de estos tres elementos como se comunican
unos con otros, para ello es importante saber que el controlador interpreta las entradas del
usuario (teclado como ratón) y se envía esta acción al modelo y a la vista para que se
ejecuten las peticiones.
Comunicación.- el patrón modelo vista controlador debe tener una comunicación estable,
de manera que las iteraciones se las realice sin ninguna dificultad. La comunicación entre la
vista y el controlador es bastante básica pues están diseñados para operar juntos, aunque los
modelos se comunican de una forma diferente.
1.3.3.1. Ventajas
La implementación se realiza de forma modular.
Sus vistas muestran información actualizada siempre. El programador no debe
preocuparse de solicitar que las vistas se actualicen, ya que este proceso es realizado
automáticamente por el modelo de la aplicación.
Cualquier modificación que afecte al dominio, como aumentar métodos o datos
contenidos, implica una modificación sólo en el modelo y las interfaces del mismo
con las vistas, no todo el mecanismo de comunicación y de actualización entre
modelos.
11
Las modificaciones a las vistas no afectan al modelo de dominio, simplemente se
modifica la representación de la información, no su tratamiento.
1.3.4. JAVA
Es un lenguaje de programación orientado a objetos que se incorporó al ámbito de la
informática en los años noventa. La idea de Java es que pueda realizarse programas con la
posibilidad de ejecutarse en cualquier contexto, en cualquier ambiente, siendo así su
portabilidad uno de sus principales logros a partir de 2012, uno de los lenguajes de
programación más populares en uso, particularmente para aplicaciones de cliente-
servidor de web. Las aplicaciones de Java son generalmente compiladas a bytecode (clase
Java) que puede ejecutarse en cualquier máquina virtual Java (JVM) sin importar
la arquitectura de la computadora subyacente.
La aplicación de Java es muy amplia. El lenguaje se utiliza en una gran variedad de
dispositivos móviles, como teléfonos y pequeños electrodomésticos. Dentro del ámbito de
Internet, Java permite desarrollar pequeñas aplicaciones (conocidas con el nombre
de applets) que se incrustan en el código HTML de una página, para su directa ejecución
desde un navegador; cabe mencionar que es necesario contar con el plug-in adecuado para
su funcionamiento.
1.3.4.1. Ventajas
Entre las ventajas más evidentes que ofrece se encuentra un gran control sobre el código y
una mejor organización, dado que basta con escribir una vez los métodos y las propiedades
de un objeto, independientemente de la cantidad de veces que se utilicen.
Es muy flexible: Java es un lenguaje especialmente preparado para la reutilización del
código; permite a sus usuarios tomar un programa que hayan desarrollado tiempo atrás y
actualizarlo con mucha facilidad, sea que necesiten agregar funciones o adaptarlo a un
nuevo entorno.
12
Funciona en cualquier plataforma: a diferencia de los programas que requieren de
versiones específicas para cada sistema operativo (tales como Windows o Mac), las
aplicaciones desarrolladas en Java funcionan en cualquier entorno, dado que no es
el sistema quien las ejecuta, sino la máquina virtual (conocida como Java Virtual
Machine o JVM).
Su uso no acarrea inversiones económicas: programar en Java es absolutamente gratis;
no es necesario adquirir ninguna licencia, sino simplemente descargar el kit de desarrollo
JDK.
Es de fuente abierta: Java ofrece el código de casi todas sus librerías nativas para que los
desarrolladores puedan conocerlas y estudiarlas en profundidad, o bien ampliar su
funcionalidad.
Es un lenguaje expandible: continuando con el punto anterior, cada programador tiene la
libertad de revisar y mejorar el código nativo de Java, y su trabajo puede convertirse en la
solución a los problemas de muchas personas en todo el mundo. Infinidad de
desarrolladores han aprovechado esta virtud del lenguaje y continúan haciéndolo.
1.3.5. Plataforma de aplicaciones Jboss enterprise
JBoss Enterprise Application Platform es la plataforma para aplicaciones Java líder en la
industria, integrada, simplificada y proporcionada por el líder en software de código abierto
para empresas.
La Plataforma de Aplicaciones JBoss Enterprise facilita el desarrollo, la implantación y la
gestión de las aplicaciones Java. Incluye las tecnologías de código abierto más avanzadas
para la creación, despliegue y alojamiento de aplicaciones Java de empresas y de servicios
en una arquitectura orientada a servicios. Con la Plataforma de Aplicaciones JBoss
Enterprise, las aplicaciones Java para empresa son sencillas, abiertas y asequibles.
13
La Plataforma de Aplicaciones JBoss Enterprise equilibra innovación y estabilidad
empresarial. Integrando el servidor de aplicaciones más utilizado con marcos de aplicación
de última generación, mediante una suscripción sencilla, abierta y asequible, la Plataforma
de Aplicaciones JBoss Enterprise mejora la productividad del desarrollador, elimina las
dificultades del desarrollo Java, simplifica el desarrollo de aplicaciones de misión crítica de
última generación y le ayuda a extender el presupuesto para middleware de su empresa,
aligerando así su coste total de propiedad.
1.3.5.1. Ventajas
Innovación y estabilidad.
Mejora la productividad del desarrollador.
Mejora la funcionalidad y Rendimiento para las empresas mediante una alta
disponibilidad.
Es de código abierto.
1.3.6. JavaServerFaces
Para el desarrollo de aplicaciones de negocios se utiliza frecuentemente el patrón de diseño
MVC Modelo Vista Controlador (Model View Contrdller) que además es sencillo de
implementar en las aplicaciones web. En este patrón el modelo es modificable por las
funciones de negocio. Estas funciones son solicitadas por el usuario mediante el uso de un
conjunto de vistas de la aplicación que solicitan dichas funciones de negocio a través de un
controlador, que es el módulo que recibe las peticiones de las vistas y las procesa. Se suele
clasificar en dos tipos a las aplicaciones basadas en MVC:
Tipo 1. Las vistas conocen la acción que se va a invocar en su petición. Normalmente
la función esta cableada dentro de la vista
Tipo 2. El controlador introduce un conjunto de reglas que mapean a las peticiones con
las funciones, controlando además el flujo de navegación por la aplicación.
14
Un ejemplo de aplicaciones de tipo 1 son las que se construyen utilizando JSF o ASP.NET
y como ejemplo de tipo 2 serían las creadas con Struts.
La creación de aplicaciones basadas en el patrón MVC se ve facilitada por el uso de marcos
de trabajo (frameworks). Un marco de trabajo es un conjunto de APIs y módulos
normalmente acompañados de la documentación y guia de uso que definen la manera de
implementar alguna de las capas de nuestra aplicación. Lo podemos ver también como la
estructura o cimientos sobre los que crear nuestra aplicación.
Es un framework o ambiente de trabajo, destinado a facilitar la construcción y desarrollo de
interfaces para aplicaciones basadas en entorno Web. JSF tiene la función de proveer un
grupo muy extenso de herramientas desarrolladas para facilitar la creación de interfaces ,
herramientas tales como: botones, cajas de texto, tabla de datos, etc. Similar a os objetos
empleados para la generación de aplicaciones de escritorio.
JSF introduce 2 nuevos términos al mundo del desarrollo de aplicaciones para JAVA:
Managed Bean
Backing Bean
1.3.7. EJB
Con la tecnología J2EE EnterpriseJavaBeans es posible desarrollar componentes (enterprise
beans) que luego se puede reutilizar y ensamblar en distintas aplicaciones que se
desarrollara para la empresa. Se podría usar después un bean cliente en un programa de
contabilidad o en una aplicación de comercio electrónico o virtualmente en cualquier
programa en el que se necesite representar un cliente. De hecho, incluso sería posible que el
desarrollador del bean y el ensamblador de la aplicación no fueran la misma persona, o ni
siquiera trabajaran en la misma empresa.
El desarrollo basado en componentes promete un paso más en el camino de la
programación orientada a objetos. Con la programación orientada a objetos se puede
reutilizar clases, pero con componentes es posible reutilizar los niveles de funcionalidades e
incluso es posible modificar estas funcionalidades y adaptarlas a cada entorno de trabajo
15
particular sin tocar el código del componente desarrollado. El contenedor de componentes
se denomina contenedor EJB y es algo así como el sistema operativo en el que éstos
residen. En Java existe un modelo de programación de objetos remotos denominado RMI.
Con RMI es posible enviar peticiones a objetos que están ejecutándose en otra máquina
virtual Java. Podemos ver un componente EJB como un objeto remoto RMI que reside en
un contenedor EJB que le proporciona un conjunto de servicios adicionales.
El desarrollo basado en componentes ha creado expectativas sobre la aparición de una serie
de empresas dedicadas a implementar y vender componentes específicos a terceros. Este
mercado de componentes nunca ha llegado a tener la suficiente masa crítica como para
crear una industria sostenible. Esto es debido a distintas razones, como la dificultad en el
diseño de componentes genéricos capaces de adaptarse a distintos dominios de aplicación,
la falta de estandarización de los dominios de aplicación o la diversidad de estos dominios.
1.3.8. NetBeans IDE
Es una plataforma de desarrollo, diseñada para ser extendida de forma indefinida a través
de plug-ins. Fue concebida desde sus orígenes para convertirse en una plataforma de
integración de herramientas de desarrollo. No tiene en mente un lenguaje específico, sino
que es un IDE genérico, aunque goza de mucha popularidad entre la comunidad de
desarrolladores del lenguaje Java usando el plug-in JDT que viene incluido en la
distribución estándar del IDE.
Proporciona herramientas para la gestión de espacios de trabajo, escribir, desplegar,
ejecutar y depurar aplicaciones.
Principales características
Perspectivas, editores y vistas: en Eclipse el concepto de trabajo está basado en las
perspectivas, que no es otra cosa que una pre-configuración de ventanas y editores,
relacionadas entre sí, y que nos permiten trabajar en un determinado entorno de trabajo de
forma óptima.
16
Gestión de proyectos: el desarrollo se basa en los proyectos, que son el conjunto de
recursos relacionados entre sí, como puede ser el código fuente, documentación, ficheros
configuración, árbol de directorios, etc. El IDE nos proporcionará asistentes y ayudas para
la creación de proyectos.
Depurador de código: se incluye un potente depurador, de uso fácil e intuitivo, y que
visualmente nos ayuda a mejorar nuestro código. Para ello sólo se debe ejecutar el
programa en modo depuración.
Extensa colección de plug-ins: están disponibles en una gran cantidad, unos publicados
por terceros. Al haber sido un estándar durante tanto tiempo, la colección disponible es muy
grande. Los hay gratuitos, de pago, bajo distintas licencias, pero casi para cualquier cosa
que nos imaginemos tenemos el plug-in adecuado.
1.3.9. PostgreSQL
PostgreSQL es un sistema de gestión de bases de datos objeto-relacional, distribuido bajo
licencia BSD y con su código fuente disponible libremente. Es el sistema de gestión de
bases de datos de código abierto más potente del mercado y en sus últimas versiones no
tiene nada que envidiarle a otras bases de datos comerciales.
Utiliza un modelo cliente/servidor y usa multiprocesos en vez de multihilos para garantizar
la estabilidad del sistema. Un fallo en uno de los procesos no afectará el resto y el sistema
continuará funcionando.
Características
Es una base de datos 100% ACID.
17
Soporta distintos tipos de datos: además del soporte para los tipos base, también
soporta datos de tipo fecha, monetarios, elementos gráficos, datos sobre redes,
cadenas de bits, etc. También permite la creación de tipos propios.
Incluye herencia entre tablas, por lo que a este gestor de bases de datos se le incluye
entre los gestores objeto-relacionales.
Copias de seguridad en caliente (Online/hot backups)
Unicode
Multi-Version Concurrency Control (MVCC)
Múltiples métodos de autentificación
Acceso encriptado via SSL
SE-postgres
Completa documentación
Licencia BSD
Disponible para Linux y UNIX en todas sus variantes (AIX, BSD, HP-UX, SGI
IRIX, Mac OS X, Solaris, Tru64) y Windows 32/64bit.
1.3.10. PrimeFaces
PrimeFaces es una librería de componentes visuales open source desarrollada y mantenida
por Prime Technology, una compañía Turca de IT especializada en consultoría ágil, JSF,
Java EE y Outsourcing.
Las principales características de Primefaces son:
Soporte nativo de Ajax, incluyendo Push/Comet.
Kit para crear aplicaciones web para móviles.
Es compatible con otras librerías de componentes, como JBoss RichFaces.
Uso de javascript no intrusivo (no aparece en línea dentro de los elementos, sino
dentro de un bloque <script>).
es un proyecto open source, activo y bastante estable entre versiones.
18
Algunos inconvenientes podrían ser:
Para utilizar el soporte de Ajax tenemos que indicarlo explícitamente, por medio de
atributos específicos de cada componente.
No podemos utilizar el soporte de Ajax de JSF 2 (mediante <f:ajax>) con los
componentes de Primefaces.
1.3.11. Criptografía: Algoritmos de autenticación (hash)
Una función hash es un método para generar claves o llaves que representen de manera casi
unívoca a un documento o conjunto de datos. Es una operación matemática que se realiza
sobre este conjunto de datos de cualquier longitud, y su salida es una huella digital, de
tamaño fijo e independiente de la dimensión del documento original. El contenido es
ilegible.
Es posible que existan huellas digitales iguales para objetos diferentes, porque una función
hash, en el caso del SHA-1 tiene 160bits, y los posibles objetos a resumir no tienen un
tamaño límite.
A partir de un hash o huella digital, no podemos recuperar el conjunto de datos originales.
Los más conocidos son el MD5 y el SHA-1. Cifrar una huella digital se conoce como firma
digital.
Requisitos que deben cumplir las funciones hash:
Imposibilidad de obtener el texto original a partir de la huella digital.
Imposibilidad de encontrar un conjunto de datos diferentes que tengan la misma
huella digital.
Poder transformar un texto de longitud variable en una huella de tamaño fijo (como
el SHA-1 que es de 160bits).
Facilidad de empleo e implementación.
19
SHA-1 ha sido examinado muy de cerca por la comunidad criptográfica pública, y no se ha
encontrado ningún ataque efectivo. No obstante, en el año 2004, un número de ataques
significativos fueron divulgados sobre funciones criptográficas de hash con una estructura
similar a SHA-1, lo que ha planteado dudas sobre la seguridad a largo plazo de SHA-1
20
2. METODOLOGÍA OPEN UP
2.1. Introducción
Cada uno de los proyectos debe adaptarse a la metodología que mejor cumpla con sus
requerimientos, se debe tomar en cuenta las necesidades de los procesos como el tamaño
del equipo, la complejidad de la arquitectura, las innovaciones tecnológicas, los estándares
de conformidad, entre otras.
La metodología de desarrollo de software denominada OpenUP, creada por IBM pero paso
a manos de la empresa Eclipse quien en 2006 lanzo bajo una licencia gratuita.
OpenUP que requiere únicamente un contenido fundamental sin embargo es completa en el
sentido de que manifiesta por completo el proceso del desarrollo del sistema, para cubrir
ciertas necesidades que no están contempladas en su contenido, OpenUp es extensible a ser
utilizado como base sobre la cual se puede adaptar al contenido de otro proceso que sea
necesario. Es un proceso modelo y extensible, dirigido a gestión y desarrollo de proyectos
de software basados en un desarrollo iterativo, ágil e incremental y es aplicable a un
conjunto amplio de plataformas y aplicaciones de desarrollo.
Sin embargo OpenUP es completa en el sentido de que manifiesta por completo el proceso
de construir un sistema.
2.2. Características de Open UP
Desarrollo incremental.
Uso de casos de uso y escenarios.
Manejo de riesgos.
Diseño basado en la arquitectura.
21
2.3. Principios de Open UP3
Entre los principios tenemos:
Colaborar para sincronizar intereses y compartir conocimiento. Este principio
promueve prácticas que impulsan un ambiente de equipo saludable, facilitan la
colaboración y desarrollan un conocimiento compartido del proyecto.
Equilibrar las prioridades para maximizar el beneficio obtenido por los
interesados en el proyecto. Este principio promueve prácticas que permiten a los
participantes de los proyectos desarrollar una solución que maximice
los beneficios obtenidos por los participantes y que cumple con los requisitos y
restricciones del proyecto.
Centrarse en la arquitectura de forma temprana para minimizar el riesgo y
organizar el desarrollo.
Desarrollo evolutivo para obtener retroalimentación y mejoramiento continuo.
Este principio promueve prácticas que permiten a los equipos de desarrollo obtener
retroalimentación temprana y continua de los participantes del proyecto, permitiendo
demostrarles incrementos progresivos en la funcionalidad.
2.4. Organización de los componentes del OpenUP.
Está organizado en dos dimensiones diferentes pero al mismo tiempo interrelacionadas: el
método y el proceso.
El método4.- es donde los elementos tales como (roles, tareas, artefactos y lineamientos)
son definidos, sin tener en cuenta como son utilizados en el ciclo de vida del proyecto.
3 METODOLOGÍA OPEN UP (recuperado el 28 de marzo del 2016)
http://openup3.blogspot.com/2014/02/metodologia-open-up.html 4 OPEN UP (recuperado el 30 de marzo del 2016) https://es.wikipedia.org/wiki/OpenUP
22
El proceso.- los elementos del método son aplicados de forma ordenada en el tiempo. Se
pueden crear varios ciclos de vida para diferentes proyectos a partir del mismo conjunto de
elementos del método.
2.5. Roles5
Los roles de Open Up representan las habilidades necesarias de un equipo.
Analista.
Representa al cliente y el usuario final, se refiere a la obtención de requerimientos de los
interesados, por medio de él se comprende el problema a resolver capturando y creando las
prioridades de los requerimientos.
Arquitecto
Es el responsable del diseño de arquitectura de software, tomando las decisiones técnicas
claves, las cuales limitaran el conjunto de diseño y la implementación del proyecto.
Desarrollador
Tiene la responsabilidad del desarrollo de una parte del sistema o el sistema completo
dependiendo de la magnitud del mismo, se encarga del diseño ajustándolo a la arquitectura
y de la implementación de pruebas unitarias y de integración para los componentes.
Líder del proyecto6
Dirige la planificación del proyecto en colaboración con las partes interesadas y el equipo,
coordina las interacciones de los interesados, manteniendo al equipo del proyecto enfocado
en los objetivos del mismo.
5 OPEN UP Roles (recuperado el 30 de marzo del 2016) http://openup3.blogspot.com/2014/02/metodologia-open-up.html 6 OPEN UP (recuperado el 31 de marzo del 2016) http://openupeaojmp.blogspot.com/2013/09/metodologia-open-up.html
23
Las partes interesadas
Representan al grupo que está interesado en el proyecto, quienes necesariamente deberán
de ser satisfechos por el mismo. Este papel lo puede jugar cualquier persona que es afectada
por los objetivos del proyecto.
El comprobador
Es el responsable de las actividades básicas y de realizar las pruebas, se encarga de la
identificación, definición, implementación y conducción de las pruebas necesarias. Así
como el ingreso de pruebas y el análisis de resultados.
Cualquier otro rol, representa a cualquier otra persona en el equipo que puede realizar
tareas generales.
Figura 5. Roles
Fuente: http://openup3.blogspot.com/2014/02/metodologia-open-up.html
2.6. Ciclo de Vida
2.6.1. Fase de Inicio
En esta fase, las necesidades de cada participante del proyecto son tomadas en cuenta y
plasmadas en los objetivos del proyecto. Se definen para el proyecto: el ámbito, los limites,
24
el criterio de aceptación, los casos de uso críticos, una estimación inicial del coste y un
boceto de la planeación.
Objetivos.
Entender qué construir.
Identificar funcionalidad Clave.
Determinar al menos una posible solución.
Entender costos, calendario y riesgos del proyecto.
2.6.2. Fase de Elaboración
En esta fase se realizan tareas de análisis del dominio y definición de la arquitectura del
sistema. Se debe elaborar un plan de proyecto, estableciendo unos requisitos y arquitectura
estables. Al final de la fase se debe tener una definición clara y precisa de los casos de uso,
actores, la arquitectura del sistema y un prototipo ejecutable.
Objetivos:
Obtener un entendimiento con mayor nivel de detalle de los requerimientos
Diseñar, implementar y validar la línea base arquitectónica.
Mitigar riesgos y lograr estimaciones de costos y calendarios más precisos.
2.6.3. Fase de Construcción
En esta fase todos los componentes y funcionalidades del sistema que falten por
implementar son realizados, probados e integrados. Los resultados obtenidos en forma de
incrementos ejecutables deben ser desarrollados de la forma más rápida posible sin dejar de
lado la calidad de lo desarrollado.
25
Objetivos.
Iterativamente desarrollar un producto completo que pueda ser transicionado a la
comunidad usuaria.
Minimizar los costos de desarrollo y lograr cierto nivel de paralelismo.
2.6.4. Fase de Transición
Esta fase corresponde a la introducción del producto en la comunidad de usuarios, cuando
el producto esta lo suficiente maduro. La fase de la transición consta de las sub-fases de
pruebas beta, pilotaje y capacitación de los usuarios finales de los encargados del
mantenimiento del sistema. En función a la respuesta obtenida puede ser necesario realizar
cambios en las entregas finales o implementar alguna funcionalidad más solicitada por la
mayoría de usuarios.
Objetivos.
Realizar Beta Testing para determinar si se alcanzaron las expectativas de los
usuarios.
Alcanzar la concordancia con los stakeholders de que el producto está terminado.
Mejorar la performance futura a través del análisis retrospectivo del proyecto.
Figura 6. Ciclo de Vida Fuente: http://openup3.blogspot.com/2014_02_01_archive.html
26
3. DESARROLLO
Este capítulo tiene como propósito presentar un documento que sirva como referencia en
cuanto a la especificación de requerimientos funcionales y no funcionales, formando parte
de la documentación del sistema, por cual servirá de guía para programadores,
administradores y usuarios en general.
El sistema de registro de documentos del archivo general de la Universidad Central del
Ecuador, para optimizar el proceso y crear una base de información y una memoria para la
universidad. En términos generales la aplicación contara con las siguientes funcionalidades:
Administración de usuario y roles
Registro de datos (HCU, Expedientes, Tesis)
Búsqueda de los documentos registrados
El sistema contara con los siguientes usuarios:
Administrador.- tendrá la función de registrar nuevos usuario, asignar roles, ingreso de
datos, realizar búsquedas y administración de información.
Usuario Archivo.- es el encargado del levantamiento de la información de los documentos
del archivo.
Ingresara los registros de documentos a la base de datos.
27
3.1. Descripción General
Perspectiva del Producto
El sistema aumentará la eficiencia al momento de realizar una búsqueda de algún tipo de
documento el cual disminuirá el tiempo en cumplir con dicho proceso, el sistema podrá
adaptarse a los cambios y ser escalable hará que tenga un mayor enfoque.
3.1.1. Funciones del producto
Ingreso de Información
El sistema realizara un proceso de validación para verificar que los datos ingresados sean
válidos.
Salida de Información
El sistema tiene la capacidad de realizar la búsqueda y mostrar toda la información
concerniente al documento.
Seguridad
El sistema posee una administración de usuarios es decir que para ingresar antes debe
loguearse, con el usuario asignado el cual estará limitado de las acciones a realizar en el
sistema dependiendo del rol que haya sido asignado.
3.2. Requerimientos
El sistema cuenta con los siguientes requerimientos tanto funcionales como no funcionales.
3.2.1. Requerimientos Funcionales
Se describe las funcionalidades del sistema lo que va a poder hacer, estos requerimientos
dependen de la capacidad del software, de los usuarios y del enfoque general, tenemos los
siguientes requerimientos principales:
28
Administración de usuarios
El sistema permite registrar usuarios y asignarles un determinado rol, tiene la opción de
buscar usuarios y activar o desactivar a los usuarios.
Datos de Entrada.- se ingresan los siguientes datos, nombres completos, numero de
cedula, correo electrónico, y el estado en que se encuentra el registro (Activo o Inactivo).
Subproceso.- verificar si los datos ingresados son válidos y comprobar que no exista un
usuario ya registrado con esos datos.
Nombre Atributo Descripción Longitud
Nombre completo Se ingresa el nombre del
usuario, únicamente letras.
Tamaño máximo 50
caracteres
Número de cedula Únicamente caracteres
numéricos.
Longitud máxima de 10
caracteres.
Correo electrónico Caracteres alfanuméricos. Máximo 50 caracteres.
Tabla 1. Subproceso usuario
Fuente: Autor
Datos de Salida.- se actualiza la base de datos con los datos ingresados.
Registro de documentos
a) Datos HCU
Permitirá ingresar nuevos registros de HCU.
Datos de Entrada.- localización, fecha de sesión, fecha normalizada, lugar de sesión,
orden del día, aprobación orden del día, aprobación acta, informe de autoridades, varios,
asunto a tratarse, numero de oficio de resolución, fecha del oficio, dirigido a, términos de
descripción, notas, documentalista, fecha elaboración registro.
29
Subproceso.- validar cada uno de los datos que cumpla con los requerimientos si los datos
son correctos que proceda a guardar en la base de datos.
Nombre Atributo Descripción Longitud
Localización Se ingresa caracteres
alfanuméricos.
Tamaño máximo 30
caracteres
Fecha de sesión En el formato día/mes/año Tamaño predefinido por el
atributo date.
Fecha normalizada En el formato día/mes/año Tamaño predefinido por el
atributo date.
Lugar de sesión Ingreso de caracteres
alfanuméricos.
Longitud máxima de 100
caracteres
Orden del día Caracteres alfanuméricos. Máximo 500 caracteres.
Aprobación orden del día. Opción Si/No Dato booleano.
Aprobación acta. Opción Si/No Dato booleano.
Informe de autoridades. Ingreso de caracteres
alfanuméricos.
Tamaño máximo de 500
caracteres.
Asuntos a tratarse. Caracteres alfanuméricos. Tamaño máximo 1000
caracteres.
Varios Ingreso de caracteres
alfanuméricos.
Tamaño máximo 500
caracteres.
Número de oficio de
resolución
Únicamente números. Tamaño máximo 20
caracteres.
Fecha del oficio En el formato día/mes/año. Tamaño predefinido por el
atributo date.
Dirigido a Ingreso solo letras. Longitud máxima 50
caracteres.
Términos de descripción Caracteres alfanuméricos. Longitud máxima 100
caracteres.
Notas Ingreso de caracteres
alfanuméricos.
Longitud máxima 500
caracteres.
30
Documentalista Ingreso solo letras. Longitud máxima 50
caracteres.
Fecha elaboración registro En el formato día/mes/año. Tamaño predefinido por el
atributo date.
Tabla 2. Subproceso HCU
Fuente: Autor
Datos de Salida.- actualizar la base de datos con la información ingresada.
b) Datos Expedientes
Permitirá ingresar nuevos registros de expedientes.
Datos de Entrada.- localización, tipo de documento, numero de inventario, autor personal,
número de identificación, año grado, fecha normalizada, modalidad de estudio, modalidad
de grado, facultad, carrera, título profesional obtenido, título de tema del proyecto, desglose
documento, plan de tesis, revalida, título profesional a revalidar, lugar de la revalidación,
institución de la revalidación, años o semestres cursados, nivel de estudio, notas
adicionales, numero de fojas útiles, documentalista, fecha elaboración registro.
Subproceso.- validar cada uno de los datos que cumpla con los requerimientos si los datos
son correctos que proceda a guardar en la base de datos.
Nombre Atributo Descripción Longitud
Localización Se ingresa caracteres
alfanuméricos.
Tamaño máximo 30
caracteres.
Tipo de documento Únicamente letras. Tamaño máximo 50
caracteres.
Número de inventario Únicamente números. Tamaño máximo 20
caracteres.
Autor personal Ingreso de caracteres
alfanuméricos.
Longitud máxima de 50
caracteres
Número de identificación Caracteres numéricos. Máximo 10 caracteres.
Año grado Caracteres numéricos. Máximo 4 caracteres
31
Fecha normalizada En el formato día/mes/año Tamaño predefinido por el
atributo date.
Modalidad de estudio Ingreso de caracteres
alfanuméricos.
Tamaño máximo de 100
caracteres.
Modalidad de grado Caracteres alfanuméricos. Tamaño máximo 100
caracteres.
Facultad Únicamente letras. Tamaño máximo 100
caracteres.
Carrera Únicamente letras. Tamaño máximo 100
caracteres.
Título profesional obtenido Caracteres alfanuméricos. Tamaño máximo 200
caracteres.
Título de tema del proyecto Caracteres alfanuméricos. Longitud máxima 500
caracteres.
Desglose documento Caracteres alfanuméricos. Longitud máxima 100
caracteres.
Plan de tesis Ingreso de caracteres
alfanuméricos.
Longitud máxima 100
caracteres.
Revalida Opción Si/No Atributo booleano.
Título profesional a
revalidar
Ingreso de caracteres
alfanuméricos.
Longitud máxima 100
caracteres.
Lugar de la revalidación Ingreso de caracteres
alfanuméricos.
Longitud máxima 50
caracteres.
Institución de la
revalidación
Ingreso de caracteres
alfanuméricos.
Longitud máxima 100
caracteres.
Años o semestres cursados Ingreso de caracteres
alfanuméricos.
Longitud máxima 20
caracteres.
Nivel de estudio Ingreso de caracteres
alfanuméricos.
Longitud máxima 30
caracteres.
Notas adicionales Ingreso de caracteres
alfanuméricos.
Longitud máxima 500
caracteres.
32
Número de fojas útiles Únicamente caracteres
numéricos.
Longitud máxima 10
caracteres.
Documentalista Únicamente letras. Longitud máxima 50
caracteres.
Fecha elaboración registro. En el formato día/mes/año Tamaño predefinido por el
atributo date.
Tabla 3. Subproceso expedientes Fuente: Autor
Datos de Salida.- actualizar la base de datos con la información ingresada.
c) Datos Proyectos de Titulación
Permitirá ingresar nuevos registros de proyectos de titulación.
Datos de Entrada.- localización, numero de inventario, año grado, fecha normalizada,
facultad, carrera, título profesional obtenido, trabajo de titulación, pregrado, posgrado,
notas adicionales, numero de fojas útiles, documentalista, fecha elaboración registro.
Subproceso.- validar cada uno de los datos que cumpla con los requerimientos si los datos
son correctos que proceda a guardar en la base de datos.
Nombre Atributo Descripción Longitud
Localización Se ingresa caracteres
alfanuméricos.
Tamaño máximo 30
caracteres.
Número de inventario Únicamente números. Tamaño máximo 20
caracteres.
Año grado Caracteres numéricos. Máximo 4 caracteres
Fecha normalizada En el formato día/mes/año Tamaño predefinido por el
atributo date.
Facultad Únicamente letras. Tamaño máximo 100
caracteres.
Carrera Únicamente letras. Tamaño máximo 100
33
caracteres.
Título profesional obtenido Caracteres alfanuméricos. Tamaño máximo 200
caracteres.
Título de tema del proyecto Caracteres alfanuméricos. Longitud máxima 500
caracteres.
Pregrado Caracteres alfanuméricos. Longitud máxima 100
caracteres.
Posgrado Ingreso de caracteres
alfanuméricos.
Longitud máxima 100
caracteres.
Notas adicionales Ingreso de caracteres
alfanuméricos.
Longitud máxima 500
caracteres.
Número de fojas útiles Únicamente caracteres
numéricos.
Longitud máxima 10
caracteres.
Documentalista Únicamente letras. Longitud máxima 50
caracteres.
Fecha elaboración registro. En el formato día/mes/año Tamaño predefinido por el
atributo date.
Tabla 4. Subproceso proyectos de titulación Fuente: Autor
Datos de Salida.- actualizar la base de datos con la información ingresada de proyectos de
titulación.
Búsquedas
El sistema permitirá buscar cada tipo de documento sea expedientes, HCU, proyectos de
titulación, tanto por el nombre, localización o documentalista.
Datos de Entrada.- identificación el campo por el cual se va a realizar la búsqueda.
Proceso.- verificar si la información es correcta.
Datos de Salida.- visualizar la información.
34
3.2.2. Requerimientos Funcionales
Son aquellos requerimientos que no se refieren a un requisito específico que proporciona el
sistema. Por tanto, se refieren a todos los requisitos que no describen información a
guardar, ni funciones a realizar, sino características de funcionamiento.
Requerimientos del Sistema
La aplicación debe ser multiplataforma, de manera que se pueda ejecutar en cualquier tipo
de explorador de internet y en los distintos sistemas operativos ya sea Windows o Linux.
Requerimientos de Interfaz de Usuario
El sistema debe ser amigable e intuitivo para facilitar el trabajo que se desarrollara en la
aplicación ya que debe estar enfocado al usuario final. Cumplir con los estándares, un
diseño ligero para evitar el exceso de carga de la página.
Requerimientos de Seguridad
La aplicación contara con la seguridad necesaria mediante la autentificación de usuarios, lo
cual limitara el acceso a la información y control de características como la manipulación
de datos.
Requerimientos de Fiabilidad
Se llevara un control de la validación de los distintos datos que se ingresara tanto fechas,
nombres, lo que evitara el ingreso de datos erróneos.
3.3. Casos de Uso
3.3.1. Caso de Uso Administración de Usuario
35
Figura 7. Caso de uso – Administración de usuarios Fuente: Autor
Registrar Usuario
Nombre del caso de
uso
Administración de usuarios.
Descripción Agregar nuevos usuarios y asignar los roles.
Actores Administrador
Precondiciones El usuario administrador debe autenticarse y poseer todos los
permisos necesarios.
Flujo principal 1. Se procede a seleccionar en el menú la opción de
usuario.
2. Obtenemos la opción de nuevo usuario.
3. Seleccionamos la opción.
4. Cargara un formulario para realizar el ingreso del
usuario, el cual contiene los datos necesarios.
5. Al escoger la opción de guardar, el usuario será agregado
a la base de datos.
Flujos alternativos. El sistema cuenta con la validación en cada campo, si el dato es
incorrecto se mostrara un mensaje de error.
Pos Condiciones El usuario es guardado.
Tabla 5. Registrar Usuario
Fuente: Autor
Administrador Registrar Usuario
Guardar Usuario
Asignar Rol
36
Editar usuario
Nombre del caso de uso Editar usuarios.
Descripción Permite modificar usuarios, actualizar la
información.
Actores Administrador.
Precondiciones 1. El usuario administrador debe
autenticarse y poseer todos los
permisos necesarios.
2. Tener una lista de usuarios.
Flujo principal 1. Seleccionar el usuario que se desea
modificar la información.
2. Obtenemos un formulario con la
información actual del usuario.
3. Actualizar los datos agregados.
Flujos alternativos. El sistema cuenta con la validación en cada
campo, si el dato es incorrecto se mostrara
un mensaje de error.
Pos Condiciones El usuario es actualizado.
Tabla 6. Editar Usuario
Fuente: Autor
Buscar usuario
Nombre del caso de uso Buscar usuario.
Descripción Permite buscar usuarios, crear una lista con
datos comunes.
Actores Administrador.
Precondiciones 1. El usuario administrador debe
autenticarse y poseer todos los
permisos necesarios.
37
2. Tener una lista de usuarios.
Flujo principal 1. Ingresar el dato por el cual se va a
realizar la búsqueda.
2. Obtenemos una lista con todas las
coincidencias, si el dato ingresado es
único se obtendrá un solo registro.
3. Visualizar la información de la
búsqueda
Flujos alternativos. El sistema valida la búsqueda si no existe el
usuario se mostrara un mensaje.
Pos Condiciones El usuario es encontrado y mostrado.
Tabla 7. Buscar Usuario
Fuente: Autor
3.3.2. Caso de Uso Administración de Documentos
Figura 8. . Caso de uso – Administración de documentos
Fuente: Autor
UsuarioIngresar Documentación
Editar Documentacón
Clasificar Documentación
38
Ingresar Documentos
Nombre del caso de uso Administración de documentos.
Descripción Agregar nuevos documentos a una base de
datos.
Actores Administrador, usuario
Precondiciones El usuario administrador debe autenticarse
y poseer todos los permisos necesarios.
Flujo principal 1. Se procede a seleccionar en el menú
la opción de documentos.
2. Obtenemos un menú con los
diferentes tipos de documentos.
3. Seleccionamos el tipo de
documentos que se va a ingresar.
4. Cargara un formulario para realizar
el ingreso, el cual contiene los datos
necesarios.
5. Al escoger la opción de guardar, el
documento será ingresado en la base
de datos.
Flujos alternativos. El sistema cuenta con la validación en cada
campo, si el dato es incorrecto se mostrara
un mensaje de error.
Pos Condiciones El documento es guardado.
Tabla 8. Ingresar Documentos
Fuente: Autor
Editar Documentos
Nombre del caso de uso Editar Documentos.
Descripción Permite modificar la información ingresada
de cada uno de los diferentes tipos de
39
documentos.
Actores Administrador, usuario.
Precondiciones 1. El usuario debe autenticarse.
2. Tener una lista de todos los
documentos.
Flujo principal 1. Seleccionar el documento en el que
se desea modificar la información.
2. Obtenemos un formulario con la
información actual.
3. Actualizar los datos agregados.
Flujos alternativos. El sistema cuenta con la validación en cada
campo, si el dato es incorrecto se mostrara
un mensaje de error.
Pos Condiciones El documento es actualizado.
Tabla 9. Editar Documentos
Fuente: Autor
Buscar Documentos
Nombre del caso de uso Buscar Documentos.
Descripción Permite buscar documentos, crear una lista
con datos comunes.
Actores Administrador, usuarios.
Precondiciones 1. El usuario debe autenticarse.
2. Tener una lista de documentos.
Flujo principal 1. Ingresar el dato por el cual se va a
realizar la búsqueda.
2. Obtenemos una lista con todas las
coincidencias, si el dato ingresado es
único se obtendrá un solo registro.
3. Visualizar la información de la
búsqueda
40
Flujos alternativos. El sistema cuenta con la validación de
búsqueda si no existe el usuario se mostrara
un mensaje.
Pos Condiciones El usuario es encontrado y mostrado.
Tabla 10. Buscar Documentos Fuente: Autor
41
3.4. Diagrama de Clases
Un diagrama de clases permite visualizar las relaciones entre todas las clases involucradas
en el sistema, las cuales pueden ser clasificadas como asociativas, de herencia, de uso y de
contenido.
A continuación tenemos el diagrama de clases de la aplicación desarrollada
Figura 9. Diagrama De Clase
Fuente: Auto
42
3.5. Diagramas de Secuencia
Un diagrama de secuencia es una forma de diagrama de interacción que muestra los objetos
como líneas de vida a lo largo de la página y con sus interacciones en el tiempo
representadas como mensajes dibujados como flechas desde la línea de vida origen hasta la
línea de vida destino.
Diagrama Administración de Usuarios
Agregar Usuario
Figura 10. Diagramas de Secuencia - Agregar Usuario
Fuente: Autor
43
Editar Usuario
Figura 11. Diagramas de Secuencia - Editar Usuario Fuente: Autor
Buscar usuario
Figura 12. Diagramas de Secuencia - Buscar Usuario
Fuente: Autor
44
Diagrama Administración de Documentos
Agregar Documento
Figura 13. . Diagramas de Secuencia - Agregar Documento Fuente: Autor
Editar Documento
Figura 14. Diagramas de Secuencia - Editar Documento Fuente: Autor
45
Buscar Documentos
Figura 15. Diagramas de Secuencia - Buscar Documentos
Fuente: Autor
3.6. Diagramas de Estado
El estado en el que se encuentra un objeto determina su comportamiento. Cada objeto sigue
el comportamiento descrito en el Diagrama de Estados asociado a su clase. La transición
entre estados es instantánea y se debe a la ocurrencia de un evento
A continuación se muestra el diagrama de estado de la aplicación el cual no toma en cuenta
los objetos que forman parte de los catálogos que alimentan las bases de datos solo se
consideran componentes del negocio.
46
Figura 16. Diagramas de Estado Fuente: Autor
3.7. Diagrama de Despliegue
El modelo puede mostrar las dependencias entre las instancias y sus interfaces, y también
puede modelar la migración de entidades entre nodos u otros contenedores.
El diagrama de despliegue de la aplicación es el siguiente:
47
Figura 17. Diagrama de Despliegue Fuente: Autor
3.8. Codificación
Se realizara una explicación breve del código utilizado para el desarrollo de la aplicación:
Tenemos el controlador que se encarga de realizar la lógica de negocio para el ingreso de
documentos.
Figura 18. Código de la clase controlador
Fuente: Autor
48
Tenemos los servicios realizados para recuperar información en este caso el método nos
retorna un expediente es decir es una búsqueda por tipo de documento.
Figura 19. Código de la clase servicios de documentos
Fuente: Autor
Se ha realizado los servicios para manejo de usuarios como guardar y varias busquedas
como se tiene a continuación.
Figura 20. Código de la clase servicios de usuarios Fuente: Autor
49
Para realizar una correcta codificación se tiene una clase de propiedades en la cual tenemos
todas las etiquetas que se utilizaran en el sistema.
Figura 21. Archivo de propiedades Fuente: Autor
En este bloque tenemos la una parte de la clase css utilizada para personalizar los
formularios.
Figura 22. Código de la clase css
Fuente: Autor
50
Para finalizar tenemos la base de datos, específicamente la tabla documentos la cual
después de varias pruebas tenemos el siguiente resultado.
Figura 23. Base de datos de la tabla documentos. Fuente: Autor
51
4. DISCUSIÓN
El archivo general de la Universidad Central del Ecuador no cuenta actualmente con un
sistema que digitalice la documentación por lo tanto se debe invertir tiempo y recursos en
recopilar algún tipo de dato requerido por el usuario, al realizar las primeras pruebas el
resultado es satisfactorio ya que tanto el ingreso de datos de los documentos a la base de
datos y su posterior consulta es de manera inmediata además de tener un repositorio que
almacene de manera digital toda la información.
La aplicación brinda facilidad al realizar las actividades que actualmente se desarrolla en el
archivo general de manera manual entre las principales acciones que se digitalizaron son:
Ingreso de documentos
Autenticación de usuario.
Consulta de documentos ingresados a la base de datos.
Administración de usuarios.
Validaciones de los datos ingresados.
Archivos adjuntos que contaran como respaldo de los datos ingresados.
Para más información acerca de las pruebas realizadas se detalla en los anexos (AnexoB).
52
5. CONCLUSIONES
El desarrollo de este proyecto permitió al Archivo General de la Universidad
Central del Ecuador facilitar el proceso de registro de información y agilizar el
manejo de la gran cantidad de datos que maneja el archivo y poder tener acceso a
dicha información de forma sencilla.
El sistema cuenta con la opción de adjuntar archivos lo que resulta de gran ayuda
como sustento a la información ingresada.
El sistema fue desarrollado con las tecnologías más robustas en la actualidad de esta
manera brinda confiabilidad al realizar un registro de documentos y tener total
disponibilidad de la información al instante.
El desarrollo de este sistema se lo hizo utilizando la metodología OpenUP, lo que
facilito la toma de requerimientos ya el proceso de desarrollo del software fue
iterativo, además de facilitar el control adecuado de la documentación generada
durante el ciclo de vida del proyecto.
Se puede concluir que los requerimientos solicitados por parte del Archivo General
para el desarrollo del sistema se cumplieron en cada una de las etapas del proceso.
53
6. RECOMENDACIONES
Participación del usuario administrador en el proceso de registro de la documentación de
manera que los usuarios realicen una adecuada validación y calidad en los datos ingresados
a la base de datos.
Para lograr el mejor rendimiento del sistema se debe facilitar el manual de usuario, y toda
la información necesaria acerca de la funcionalidad de la herramienta.
El archivo de la universidad trabaja con más tipos de documentación por lo cual es
aconsejable que sean integrados al sistema desarrollado para tener una funcionalidad
óptima y completa de la información.
54
BIBLIOGRAFÍA
1. ARQUITECTURA N-CAPAS. (2010). Descargado el 02 de marzo de 2013 desde
http://www.etnassoft.com/biblioteca/guia-de-arquitectura-n-capas-ddd-net-4-0/
2. ARQUITECTURAS DE N-NIVELES Y J2EE. (2013) Descargado el 02 de marzo
del 2013 desde http://www.dtic.ua.es/grupoM/recursos/articulos/JDARE-04-D.pdf
3. SELECCIÓN DE UNA METODOLOGÍA. (2009). Descargado el 03 de marzo de
2013 desde http://es.scribd.com/doc/66229709/SELECCION-DE-
METODOLOGIAS-DE-desarrollo
4. PROCESO DE DESARROLLO OPENUP. (2011). Descargado el 4 de marzo de
2013 desde
http://www.udistrital.edu.co:8080/documents/276352/356568/Cap3RolesArtefactos
Proceso
5. GUÍA RÁPIDA OPENUP. (2011). Descargado el 04 de marzo de 2013 desde
http://portalws.udistrital.edu.co/CIT/documentos/NORMATIVIDAD/openupoas/arc
hivos/GuiaRapidaOpenUPOAS.pdf
6. JBOSS. (2013). Descargado el 04 de marzo de 2013 desde
http://es.wikipedia.org/wiki/JBoss
7. JSF. (2009). Descargado el 05 de marzo de 2013 desde
http://cupi2.uniandes.edu.co/site/index.php/tutoriales/jsf
8. INTRODUCCIÓN A JSF. (2010). Descargado el 05 de marzo de 2013 desde
http://www.lintips.com/files/Taller_JSF_1aSesion_Paulo_Clavijo-2010.pdf
55
9. ECLIPSE. (2007). Descargado el 28 de febrero desde http://www-
gris.det.uvigo.es/wiki/pub/Main/MiscResources/Manual_Eclipse.pdf
10. SÁNCHEZ, J. (2010). Descargado el 08 de marzo de 2013
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=richFacesJsfIntro
11. JASPER REPORTS. (2008). Descargado el 08 de marzo de 2013 desde
http://www.abartiateam.com/jasperreports
12. USER'S GUIDE. (2013). Descargado el 10 de marzo de 2013 desde
http://www.visual-paradigm.com/support/documents/vpumluserguide.jsp
13. REQUERIMIENTOS DE SOFTWARE. (2008). Descargado el 12 de marzo de
2013 desde http://eisc.univalle.edu.co/cursos/web/material/750092M/80/DS2-
sesion4-Requerimientos.pdf
14. APRENDIENDO UML EN 24 HORAS. (2001). Descargado el 12 de marzo de
2013 desde http://www.leobravo.cl/programas/recursos/Aprendiendo-uml-en-24-
horas.pdf
15. DEITEL, P. Y DEIEL, H. (2012). Java for Programmers Second Edition. BOSTON:
PEARSON EDUCATION.
56
ANEXOS
57
ANEXO A: BASE DE DATOS
58
NOMBRE DOCUMENTACIÓN
Autor Tabla que almacena los atributos de cada
uno de los autores.
tipo_posgrado Tabla que almacena el nombre de los
tipos de posgrados.
resolución Tabla que almacena la información de la
resolución.
tipo_documento Tabla que almacena los tipos de
documentos.
documento Tabla que almacena todos los datos de
cada documento.
tipo_usuario Tabla que almacena los tipos de usuarios
existentes.
usuario Tabla que almacena la información del
usuario.
facultad Tabla que almacena el nombre de la
facultad.
carrera Tabla que almacena las carreras de una
facultad.
59
ANEXO B: PRUEBAS
INGRESO AL SISTEMA
Al ingresar al sistema tenemos la siguiente página principal la cual nos direccionara al
menú según corresponda su rol, actualmente existen dos roles (administrador y usuario),
dependiendo de su asignación se presentaran las opciones para trabajar.
LOGIN.- el usuario administrador ingresa su usuario y contraseña en la ventana la cual le
direccionara al menú del administrador con las distintas opciones.
Existe la validación de ingreso de usuario como muestra la figura:
60
Existe la validación de la contraseña de usuario como muestra la figura:
MENÚ DEL ADMINISTRADOR.-
Permite realizar la administración de usuario como se muestra a continuación:
MENÚ USUARIO.-
Esta ventana nos permite acceder a las distintas opciones que existen en el sistema,
dependiendo del trabajo que se va a realizar se seleccionara el ítem.
61
INGRESO DE DOCUMENTOS-
Nos permite realizar el ingreso de la documentación según sea la elección a continuación
tenemos el ingreso de proyectos de titulación:
Podemos apreciar las opciones de adjuntos para poder tener un respaldo de los datos
ingresados.