Full text
ARQUIVO APLICACIÓN PARA LA GESTIÓN DE UN ARCHIVO JUDICIAL ARQUIVO APPLICATION FOR MANAGING JUDICIAL ARCHIVES TRABAJO FIN DE GRADO CURSO 2022-2023 AUTORES DIEGO GARCÍA TORRALBA MARTA RANZ GONZÁLEZ IGNACIO PÉREZ MORENO DIRECTORA MARTA LÓPEZ FERNÁNDEZ GRADO EN INGENIERÍA INFORMÁTICA FACULTAD DE INFORMÁTICA UNIVERSIDAD COMPLUTENSE DE MADRID
ARQUIVO APLICACIÓN PARA LA GESTIÓN DE UN ARCHIVO JUDICIAL TRABAJO DE FIN DE GRADO EN INGENIERÍA INFORMÁTICA AUTORES DIEGO GARCÍA TORRALBA MARTA RANZ GONZÁLEZ IGNACIO PÉREZ MORENO DIRECTORA MARTA LÓPEZ FERNÁNDEZ CONVOCATORIA: SEPTIEMBRE 2023 GRADO EN INGENIERÍA INFORMÁTICA FACULTAD DE INFORMÁTICA UNIVERSIDAD COMPLUTENSE DE MADRID 11 SEPTIEMBRE DE 2023
III AGRADECIMIENTOS A nuestra tutora Marta, por su guía experta y disponibilidad constante. Sus conocimientos en el ámbito judicial y su dirección han sido fundamentales para moldear y enriquecer nuestro proyecto. A nuestras familias y amigos, por su incondicional paciencia a lo largo de este camino. Vuestra confianza, apoyo y buen humor nos han impulsado a superar cada desafío y nos han aportado la fortaleza para alcanzar este logro conjunto. A nuestros profesores, quienes nos han brindado herramientas valiosas y conocimientos esenciales a lo largo de nuestra formación académica. Vuestras enseñanzas han sido el fundamento sobre el cual construimos este trabajo. Este Trabajo de Fin de Grado es el resultado de la dedicación y colaboración de cada uno de nosotros, y queremos expresar nuestra gratitud a todos aquellos que han contribuido en este proceso.
V RESUMEN Arquivo El desarrollo de este proyecto está centrado en crear una herramienta informática para la gestión de ficheros judiciales. El fin principal de esta aplicación es que sea muy sencilla de utilizar por cualquiera, sin necesidad de aprendizaje previo, para que cualquier trabajador de un archivo judicial pueda emplearla, aunque no tenga grandes habilidades ofimáticas. Esta herramienta, desarrollada en Java 1.8, está diseñada para agilizar y mejorar la localización y gestión de documentos jurídicos en el contexto de la Administración de Justicia. Con una interfaz de usuario simple e intuitiva, los usuarios pueden cargar, organizar y administrar de manera eficiente los archivos relacionados con casos judiciales. La funcionalidad principal de la aplicación permite añadir, editar y gestionar expedientes judiciales, así como llevar el control de los préstamos y devoluciones de los mismos y realizar búsquedas rápidas mediante criterios específicos. Integrada con una base de datos, la aplicación garantiza una recuperación rápida y eficiente de la información relevante. En resumen, esta aplicación ofrece una solución completa y confiable para la gestión de ficheros judiciales, mejorando la productividad y la organización en el ámbito judicial. Palabras clave Interfaz, Java, Expedientes, Clasificación, Solución, Legal
VII ABSTRACT Arquivo The development of this project is based on creating a tool for the management of judicial files. The main purpose of this app is to be very simple to be used by anyone, without the need for prior learning, so that any employee in a judicial archive can use it even if they do not have great computer skills. This tool, developed in Java 1.8, is designed to speed up and improve the location and management of legal documents in the context of the Administration of Justice. With a simple and intuitive user interface, users can efficiently manage file information related to court cases. The main functionality of the application allows users to add, edit and manage court files, as well as keep track of loans and returns and perform quick searches using specific criteria. Integrated with a database, the application guarantees fast and efficient retrieval of relevant information. To sum up, this application offers a complete and reliable solution for managing judicial files, improving productivity and organization in the judicial field. Keywords Interface, Java, Files, Classification, Solution, Legal.
VIII ÍNDICE DE CONTENIDOS Capítulo 1 - Introducción ........................................................................................................ 1 1.1 Motivación ..................................................................................................................... 1 1.2 Objetivos ......................................................................................................................... 2 1.3 Plan de trabajo .............................................................................................................. 3 Capítulo 2 - Estado de la cuestión ......................................................................................... 7 Capítulo 3 - Patrones de diseño ............................................................................................. 9 3.1 Data Access Object (DAO): ......................................................................................... 9 3.2 Modelo-Vista-Controlador (MVC): ..............................................................................10 Capítulo 4 - Base de Datos ....................................................................................................12 4.1 Configuración e Instalación: .......................................................................................12 4.2 Uso del Controlador: .....................................................................................................12 4.3 Gestión de la Base de Datos con MySQL Workbench ..............................................13 4.4 Diseño ............................................................................................................................15 4.5 Entidades .......................................................................................................................19 Capítulo 5 - Interfaz ................................................................................................................20 5.1 Funcionamiento del Sistema .......................................................................................22 Capítulo 6 - Casos de uso ......................................................................................................29 6.1 Prestar Expediente ........................................................................................................30 6.2 Devolución de Expediente Prestado ..........................................................................33 6.3 Modificación de Expedientes ......................................................................................35 6.4 Transferencia de Expedientes......................................................................................37 6.5 Expurgo de Expedientes ..............................................................................................39
5 Dado el reducido número de integrantes del equipo, la probabilidad de abandono de uno de los componentes es menor, en contrapartida, el abandono de uno de los tres supondría un duro golpe, puesto que perderíamos un tercio de la mano de obra. En cuanto a aspectos más técnicos, como podría ser la pérdida de datos, rotura de uno de los ordenadores o problemas con las versiones del software, es quizás el riesgo con más probabilidades de materializarse. Ante el abandono de uno de los integrantes del equipo, pocas opciones tenemos salvo repartir el trabajo total entre los dos componentes restantes, supondría una carga de trabajo mayor, pero seguiría siendo viable acabar el TFG en plazo. Abordando ahora la posibilidad de perder datos, versiones, inconsistencias en el código, etc. utilizaremos herramientas de control de versiones a través de la nube. En el caso del código fuente nos apoyaremos en GitHub para mantener actualizado el progreso y evitar así inconsistencias. En el caso de documentos, ya sean como este de planificación, memorias y demás, haremos uso de Google Drive y Microsoft Word, pudiendo trabajar de manera colaborativa sobre un mismo documento. ESTIMACIÓN No es necesario realizar una estimación económica puesto que al tratarse de un proyecto académico no habrá ningún coste derivado del mismo. ASIGNACIÓN DE RECURSOS En cuanto a la asignación de recursos, los tres participaremos en todo el proceso, desde el diseño de la base de datos, pasando por la lógica de la aplicación y terminando en la interfaz gráfica.
7 Capítulo 2 - Estado de la cuestión En la mayoría de los sistemas judiciales, la gestión de ficheros judiciales todavía se realiza, en gran medida, de manera tradicional, con documentos impresos y expedientes físicos. Este enfoque conlleva varios desafíos y limitaciones que afectan la eficiencia y organización en el manejo de la información legal. • Expedientes en papel: Los casos judiciales generan una gran cantidad de documentos en papel, como demandas, resoluciones, pruebas, alegatos, entre otros. Estos documentos se organizan y archivan en expedientes físicos, que ocupan espacio y dificultan su rápida localización. • Clasificación manual: La clasificación y organización de los expedientes se realiza manualmente, lo que puede llevar tiempo y dar lugar a errores en la asignación de categorías y etiquetas. • Búsqueda laboriosa: La búsqueda de información específica en expedientes físicos puede ser un proceso laborioso y lento, ya que implica revisar manualmente cada documento en busca de la información requerida. • Almacenamiento y conservación: El almacenamiento a largo plazo de expedientes físicos requiere espacio físico significativo y conlleva riesgos de pérdida o daño de documentos importantes. • Acceso remoto limitado: La falta de una plataforma digital dificulta el acceso remoto a la información, lo que puede ser inconveniente para los usuarios. En concreto, la parte que más afecta a nuestra área de investigación es el préstamo de expedientes judiciales de un Archivo territorial, es decir, un archivo centralizado que recibe solicitudes de préstamos o devoluciones por parte de otras entidades.
8 En este archivo, se realiza no sólo la gestión de préstamos y devoluciones, sino también transferencias, que es un proceso que implica el ingreso masivo de nuevos expedientes provenientes de otros archivos, y, expurgos, que es un proceso (controlado por una Junta de Expurgo) que implica la destrucción de expedientes judiciales. De forma anual, la Junta de Expurgo determina qué documentación puede ser susceptible de destrucción. Tras consultar con el Juzgado correspondiente (que sigue siendo el responsable legal, en último término, de los expedientes y el que admite el destruir o no esa documentación), se realiza el expurgo. Actualmente el control de estos procesos se realiza mediante hojas de cálculo, guardando en tablas de datos la información de cada expediente (su número, tipo de expediente, año, juzgado, tomos, quién lo toma prestado, etc.). Lo que da lugar a muchos errores y cierto grado de descontrol, pues no siempre se mantienen actualizados los documentos. Es por esto, que creemos de gran importancia la informatización de estos procesos, creando una base de datos centralizada y fácil de actualizar mediante una aplicación sencilla, para llevar un mayor control sobre la ubicación concreta de cada expediente, así como su estado actual.
9 Capítulo 3 - Patrones de diseño En el marco de este proyecto, se ha dado un enfoque especial a la implementación de patrones de diseño [1] para garantizar una arquitectura sólida y eficiente. Entre los patrones utilizados se encuentran el Patrón DAO y el Modelo-VistaControlador (MVC). Estos patrones desempeñan un papel esencial al proporcionar una estructura bien definida y modular en el desarrollo de la aplicación de gestión de expedientes judiciales. A lo largo de este trabajo, exploraremos cómo la incorporación estratégica de estos patrones ha influido en la creación de un sistema coherente y optimizado para satisfacer las necesidades de administración de documentos legales en el contexto judicial. 3.1 Data Access Object (DAO): En el contexto de nuestro proyecto de gestión de ficheros judiciales, hemos implementado el patrón DAO (Data Access Object) [3] para abordar eficientemente la interacción con la base de datos subyacente. El patrón DAO es una metodología de diseño que separa la lógica de acceso a datos de la lógica de negocio, proporcionando una capa de abstracción entre el código de la aplicación y la base de datos. Esta separación contribuye a mejorar la modularidad, el mantenimiento y la escalabilidad del sistema. El patrón DAO se compone de tres componentes principales: 1. Interfaz DAO: Define los métodos de acceso a datos que serán implementados por las clases concretas DAO. Cada entidad de la base de datos tendrá su propia interfaz DAO, especificando operaciones como inserción, actualización, eliminación y recuperación de registros. 2. Clases DAO Concretas: Implementan las interfaces DAO y manejan la lógica específica de acceso a la base de datos. Aquí se encuentran las consultas SQL, la manipulación de objetos y la interacción directa con la base de datos.
10 3. Objetos de Dominio: Representan las entidades del mundo real que se almacenan en la base de datos. Estos objetos son utilizados por las clases DAO concretas para traducir entre la estructura de la base de datos y la representación en memoria. La implementación del patrón DAO en nuestro proyecto ha brindado varios beneficios notables: • Separación de Responsabilidades: La lógica de negocio se mantiene independiente de los detalles de acceso a la base de datos, lo que facilita la gestión y modificación de cada componente por separado. • Reutilización de Código: Al abstraer las operaciones de acceso a datos en interfaces y clases DAO, podemos reutilizar estas implementaciones para otras partes del sistema que interactúan con la base de datos. • Capa de Abstracción: El patrón DAO proporciona una capa de abstracción que permite adaptarse a cambios en la base de datos o la tecnología de almacenamiento sin afectar la lógica de negocio. • Seguridad: Al centralizar las operaciones de acceso a datos en las clases DAO, podemos implementar medidas de seguridad y validación en un único lugar. En resumen, la implementación del patrón DAO en nuestro proyecto ha optimizado la gestión de la base de datos al proporcionar una estructura organizada y modular. Esta separación entre la lógica de acceso a datos y la lógica de negocio ha contribuido significativamente a la eficiencia y mantenibilidad de nuestra aplicación de gestión de ficheros judiciales. 3.2 Modelo-Vista-Controlador (MVC): El patrón Modelo-Vista-Controlador (MVC) [3] es un patrón arquitectónico que separa las responsabilidades en una aplicación en tres componentes principales: el Modelo, que representa los datos y la lógica de negocio; la Vista, que maneja la presentación y la interfaz de usuario; y el Controlador, que actúa como intermediario entre el Modelo y la Vista, gestionando la interacción y las acciones del usuario.
11 Hemos aplicado el patrón MVC en nuestra aplicación de gestión de ficheros judiciales para mantener una estructura organizada y modular. El Modelo maneja la lógica de la base de datos y la manipulación de expedientes, la Vista muestra la interfaz de usuario para la gestión y visualización de expedientes, y el Controlador se encarga de gestionar las acciones del usuario y coordinar las interacciones entre el Modelo y la Vista. Explicación Detallada del Uso: • Modelo: El Modelo en nuestra aplicación se compone de clases como "Expediente" y "Conexión". Estas clases manejan la lógica para crear, editar, buscar y gestionar expedientes en la base de datos. El Modelo también se encarga de la manipulación de datos y la interacción con la base de datos subyacente. • Vista: La Vista se refiere a la interfaz de usuario de nuestra aplicación. Hemos diseñado interfaces gráficas que permiten a los usuarios interactuar con los expedientes y realizar acciones como crear, editar y buscar. La Vista muestra los datos de los expedientes y proporciona una forma intuitiva para que los usuarios interactúen con el sistema. • Controlador: El Controlador es el intermediario entre el Modelo y la Vista. Hemos implementado clases de controlador que manejan las interacciones del usuario, como la creación de un nuevo expediente o la búsqueda de información. Estas clases coordinan las acciones del usuario con la lógica del Modelo y actualizan la Vista en función de los resultados. En resumen, el patrón MVC nos ha permitido dividir claramente las responsabilidades en nuestra aplicación, lo que facilita el mantenimiento, la escalabilidad y la reutilización de componentes.
12 Capítulo 4 - Base de Datos En nuestro proyecto, hemos empleado el controlador JDBC denominado mysqlconnector-java, específicamente en su versión 8.0.30, para establecer una conectividad robusta entre nuestra aplicación Java y la base de datos MySQL que alberga la información de los expedientes judiciales 4.1 Configuración e Instalación: Para incorporar mysql-connector-java-8.0.30 en nuestro proyecto, seguimos un proceso técnico preciso: 1. Descargamos el archivo JAR del controlador desde el sitio oficial de MySQL. 2. Añadimos el archivo JAR (mysql-connector-java-8.0.30.jar) al directorio "lib" dentro de nuestra estructura de proyecto. 3. Luego, configuramos el Classpath del proyecto, garantizando que el controlador sea accesible desde el sistema de construcción y despliegue. 4.2 Uso del Controlador: Una vez que se ha configurado adecuadamente el controlador, lo empleamos para establecer una conexión segura y eficiente con la base de datos MySQL que aloja los expedientes judiciales en nuestro sistema de gestión. Utilizamos la clase java.sql.Connection, proporcionada por el controlador, para instaurar esta conexión y llevar a cabo operaciones de lectura y escritura en la base de datos. Esto nos habilita para interactuar con la información almacenada en la base de datos, permitiendo tanto la recuperación como la modificación de datos esenciales relativos a los expedientes judiciales. Para poder conectarse correctamente a nuestra base de datos es necesario utilizar las siguientes credenciales: Usuario : root Password : 1234 BBDD : arquivo, URL : jdbc:mysql://localhost/arquivo
13 4.3 Gestión de la Base de Datos con MySQL Workbench En nuestro proyecto, hemos empleado MySQL Workbench como una herramienta integral para la administración de la base de datos MySQL. MySQL Workbench es una aplicación que simplifica la administración de bases de datos MySQL, al ofrecer una gama completa de funcionalidades que permiten el diseño, modelado, creación, modificación y gestión eficiente de la estructura de la base de datos. Para acceder será necesario crear una instancia o sesión local, con el usuario root (que viene por defecto configurado) y la contraseña “1234”, de esta manera accederemos a la pestaña dónde podremos crear la base de datos a utilizar, ejecutando el script arquivo.sql que se facilita junto con el proyecto. Figura 4-1Configuración de la conexión
14 Con el uso de MySQL Workbench, hemos realizado las siguientes tareas de manera técnica: • Diseño de Tablas: Utilizando una interfaz visual intuitiva proporcionada por MySQL Workbench, diseñamos y definimos las tablas necesarias para almacenar información crucial relacionada con los expedientes judiciales, préstamos y cajas. Esto incluyó la especificación de campos, la configuración de claves primarias, la definición de relaciones entre tablas y la imposición de restricciones de integridad de datos de manera precisa y eficiente. • Importación y Exportación de Datos: Hemos aprovechado las capacidades de importación y exportación de datos de MySQL Workbench. Esto se ha revelado fundamental para transferir información entre nuestra aplicación y la base de datos, así como para llevar a cabo copias de seguridad y restauraciones. • Ejecución de Consultas SQL: MySQL Workbench nos permitió ejecutar consultas SQL directamente en la base de datos. Esto fue de gran utilidad para realizar consultas específicas y acceder a datos dentro de la base de datos con un alto grado de flexibilidad y personalización; pudiendo hacer pruebas y comprobar que se insertaba, modificaba y eliminaba la información de manera correcta. En resumen, MySQL Workbench desempeñó un papel fundamental en todo el ciclo de vida de la base de datos de nuestro proyecto. Desde la fase de diseño hasta la implementación y la gestión continua, esta herramienta proporcionó una interfaz eficaz y potentes capacidades que resultaron esenciales para garantizar el funcionamiento eficiente y la administración efectiva de los datos en nuestra aplicación de gestión de expedientes judiciales.
21 Para facilitar el proceso de inserción de datos por parte del usuario, hemos implementado una característica que habilita dinámicamente los botones y campos a medida que avanza el proceso. Esto significa que los usuarios se ven obligados a rellenar los campos necesarios para cada proceso antes de poder continuar. Mostrando las opciones y campos relevantes a medida que avanzan en su tarea, evitando confusiones y reduciendo la probabilidad de errores. Para brindar un soporte adicional a los usuarios menos experimentados, hemos incorporado Tool Tips informativos en todos los campos de entrada y elementos interactivos de la interfaz. Estos Tool Tips proporcionan breves descripciones que explican el propósito o la función de cada elemento, lo que ayuda a los usuarios a comprender y utilizar la aplicación de manera efectiva. Además, hemos incluido un botón de ayuda que sirve como guía para los usuarios inexpertos. Este botón proporciona acceso a recursos de ayuda detallados y tutoriales que explican las funciones y características clave de la aplicación. La estructura de nuestra interfaz sigue el patrón Modelo Vista Controlador (MVC), que ya hemos detallado previamente en este documento. Esto asegura una separación clara de la lógica de la aplicación, la presentación de datos y la interacción del usuario. Como resultado, nuestra interfaz es altamente modular y fácil de mantener y escalar en el futuro. Una parte esencial de nuestra interfaz es la capacidad de importar y exportar datos en formato Excel. Hemos diseñado vistas específicas para estas operaciones, permitiendo a los usuarios cargar datos desde hojas de cálculo de Excel en la aplicación y exportar información desde la aplicación a archivos Excel. Esto simplifica la gestión de datos y mejora la interoperabilidad con otras herramientas y sistemas que utilizan este formato común. En resumen, nuestro enfoque en el diseño de la interfaz de usuario se centra en la simplicidad, la accesibilidad y la usabilidad. Queremos asegurarnos de que todos los usuarios, independientemente de su nivel de experiencia en informática, puedan utilizarla de manera efectiva para gestionar expedientes judiciales y realizar otras tareas de manera eficiente.
22 5.1 Funcionamiento del Sistema Nuestra aplicación se caracteriza por su sencillez y eficacia en la gestión de expedientes judiciales. Al iniciar la aplicación, se presenta una interfaz donde los usuarios pueden seleccionar la acción que desean realizar. Figura 5-1 Menú principal Estas acciones incluyen: Préstamos: Esta opción permite prestar expedientes disponibles en el archivo. Al completar la información requerida, la aplicación muestra la ubicación del expediente en el archivo, si está disponible. Al hacer clic en el botón "Prestar", se despliega una ventana con información detallada sobre el expediente, y se genera un comprobante que contiene los datos necesarios para la persona encargada del archivo. Este comprobante se divide en dos partes: una queda en el archivo y la otra se entrega al usuario que ha solicitado el expediente como justificante de su préstamo.
23 Figura 5-2 Préstamos Figura 5-3 Resultado de búsqueda
24 Figura 5-4 Papeleta de préstamo Figura 5-5 Mensaje de éxito
25 Devoluciones: La pantalla de devoluciones facilita el proceso de devolver un expediente prestado con el testigo que se entregó al prestarlo o almacenar uno nuevo en la ubicación que se determine. En esta pantalla se puede comprobar la diferencia entre los campos editables por el usuario, con el texto en negro, y los campos no editables, con el texto en azul. También se controla la correcta introducción de datos (tanto en esta como en todas las pantallas), asegurándose, por ejemplo, de que no haya letras en los campos numéricos. Figura 5-6 Devoluciones Figura 5-7 Control de errores
26 Modificaciones: Esta función posibilita la modificación de las características de un expediente existente en el archivo, permitiendo solventar posibles errores en la introducción de datos, así como modificaciones posteriores de los expedientes. También permite eliminar un expediente de la base de datos. Figura 5-8 Búsqueda de expediente a modificar Figura 5-9 Modificación del número de páginas de un expediente
27 Transferencias y Expurgos: Estas opciones permiten importar listados de expedientes desde archivos Excel para su tratamiento masivo. El formato de los archivos Excel se puede ver en la Figura 6-7 Formato Excel para importar y exportar datos. La importación de estos archivos Excel se ejecuta de manera similar para ambos casos. Figura 5-10 Transferencia
28 Exportar Datos: Permite exportar información específica de expedientes en formato Excel. Los usuarios pueden filtrar el tipo de expediente que desean exportar por año, tipo o juzgado, incluyendo la opción de exportar todos los expedientes si no se incluyen filtros en los campos mostrados, transferencias o expurgos. Una vez seleccionada la opción, la aplicación muestra un mensaje de confirmación y genera un archivo Excel con el nombre del archivo creado. Figura 5-11 Exportación de expedientes En resumen, nuestra aplicación proporciona un entorno intuitivo y eficiente para la gestión de expedientes judiciales, facilitando las tareas de préstamo, devolución, transferencia, expurgo, modificación y exportación de datos. Cada función está diseñada para optimizar el flujo de trabajo en un entorno seguro y confiable.
29 Capítulo 6 - Casos de uso En el desarrollo de aplicaciones informáticas, es fundamental comprender cómo los usuarios interactuarán con el sistema y qué funcionalidades necesitan. Para lograr esto, se utilizan los "Casos de Uso", que son una herramienta esencial en la ingeniería de software. Estos casos representan situaciones y acciones concretas que los usuarios realizan en una aplicación. En este apartado, mostraremos en detalle los casos de uso clave de nuestra aplicación de gestión de ficheros judiciales. Cada caso de uso describe una tarea específica que un usuario puede llevar a cabo dentro de la aplicación, desde las acciones más comunes hasta las más avanzadas. Analizaremos cómo estos casos de uso se traducen en funcionalidades concretas de la aplicación, lo que nos permitirá comprender cómo los usuarios interactúan con nuestro sistema y cómo se cumplen sus necesidades. A lo largo de esta sección, exploraremos en profundidad cada caso de uso, detallando su propósito, su flujo de interacción y cómo contribuye a la eficiencia y eficacia de nuestra aplicación de gestión de ficheros judiciales. Cada caso de uso representa un elemento clave en la experiencia del usuario y es esencial para lograr una aplicación que sea intuitiva, funcional y satisfactoria de utilizar. Justificación casos de uso: En el contexto de la gestión de expedientes judiciales y gubernativos, es fundamental cumplir con las normativas y procedimientos establecidos por la legislación aplicable. Uno de los marcos legales clave en España es el Real Decreto 937/2003, que regula la ordenación de los archivos judiciales y gubernativos. Este Real Decreto establece directrices específicas para la transferencia, conservación, y, en algunos casos, la eliminación de expedientes documentales. En este contexto, hemos desarrollado una serie de casos de uso que se alinean con los requisitos legales y las mejores prácticas de gestión documental.
30 A continuación, presentamos los casos de uso que abordamos en esta memoria: • Prestar Expediente: Autorizar y documentar el proceso de préstamo de expedientes, cumpliendo con las regulaciones legales. • Devolución de Expediente Prestado: Garantizar que los expedientes prestados se devuelvan adecuadamente, siguiendo los procedimientos establecidos por el artículo 22 del Real Decreto 937/2003. [5] • Expurgo de Expedientes: Definir un proceso para la eliminación adecuada de expedientes que ya no son necesarios, en conformidad con las directrices del Real Decreto. • Transferencia de Expedientes: Establecer un procedimiento para la transferencia de expedientes a la Administración competente en patrimonio histórico, siguiendo las disposiciones del artículo 22. • Exportar Expedientes en Excel: Cumplir con los requisitos de documentación y seguimiento mediante la exportación de expedientes en formato Excel, de acuerdo con los estándares legales establecidos. Cada uno de estos casos de uso se desarrolla en función de las necesidades y regulaciones específicas del Real Decreto 937/2003, asegurando así una gestión eficiente y legalmente sólida de los expedientes judiciales y gubernativos. A continuación, se presenta un análisis detallado de cada caso de uso y su implementación. 6.1 Prestar Expediente Descripción: En este caso de uso, el usuario tiene la capacidad de realizar el préstamo de un expediente, asegurándose de que el expediente no esté prestado previamente y que el solicitante existe.
37 6.4 Transferencia de Expedientes Descripción: Este caso de uso permite al usuario realizar una acción de importación masiva de expedientes en la base de datos. Esta funcionalidad es especialmente útil cuando se necesitan agregar múltiples expedientes al sistema de una sola vez, como parte de una transferencia de documentos o una carga inicial de datos. Flujo principal: 1. El usuario selecciona la opción "Transferencia de Expedientes" en la interfaz del sistema. 2. El sistema habilita al usuario para cargar un archivo que contenga los datos de los expedientes que se desean transferir. 3. El usuario carga el archivo, que debe estar en un formato compatible con el sistema. 4. El sistema procesa el archivo y procede a agregar los expedientes contenidos en el archivo a la base de datos. Precondiciones: - El archivo a cargar debe estar formateado de acuerdo con los requisitos del sistema. - Deben existir expedientes en el archivo que se deseen agregar a la base de datos. Postcondiciones: - Tras completar este proceso, los expedientes contenidos en el archivo de transferencia se añaden de manera exitosa a la base de datos. Estos expedientes estarán disponibles para su consulta y gestión en el sistema.
38 Figura 6-4 Caso de uso: Transferencia
39 6.5 Expurgo de Expedientes Descripción: Este caso de uso permite al usuario realizar una acción de expurgo de expedientes, lo que implica eliminar expedientes de la base de datos de manera masiva. El expurgo es una función útil para eliminar registros obsoletos o no deseados de la base de datos. Flujo principal: 1. El usuario selecciona la opción "Expurgo de Expedientes" en la interfaz del sistema. 2. El sistema ofrece un explorador de archivos donde seleccionar el archivo Excel que contiene los expedientes a eliminar. 3. El sistema procede a eliminar de manera definitiva los expedientes seleccionados de la base de datos. En este caso, dada la existencia de tablas históricas, la eliminación de expedientes es simbólica, mediante el cambio de estado de los mismos a “expurgado”. Precondiciones: - Deben existir expedientes que sean elegibles para la eliminación, es decir, expedientes que se consideren obsoletos o no necesarios. Postcondiciones: - Todos los expedientes cambiarán su estado a “expurgado”, liberarán espacio de las cajas dónde se encontraban y aparecerán en un registro de la tabla historicaExpurgo.
40 Figura 6-5 Caso de uso: Expurgo
41 6.6 Exportar Expedientes en Excel Descripción: Esta funcionalidad habilita la exportación de datos desde la base de datos hacia un archivo Excel, mediante la utilización de la biblioteca Apache POI. Este proceso resulta sumamente útil para la creación de informes o la realización de copias de seguridad en un formato compatible con Excel. Flujo principal: 1. El usuario selecciona la opción "Exportar datos" disponible en la interfaz del sistema. 2. El sistema emplea la biblioteca POI para generar un archivo Excel que contiene los datos provenientes de la base de datos. 3. El archivo Excel recién creado se descarga y se almacena en la ubicación seleccionada por el usuario. Precondiciones: - No existen condiciones previas específicas para ejecutar este proceso. Postcondiciones: - Al completarse este proceso, se obtiene un archivo Excel que incluye todos los datos de la base de datos, y dicho archivo es generado utilizando la biblioteca POI. Figura 6-6 Caso de uso: Exportación
42 6.7 Explicación de los casos de uso: Prestar Expediente Para la prestar un expediente realizamos los siguientes pasos: 1. Comprobación de Permisos del Solicitante: Comenzamos comprobando si el solicitante tiene permisos para solicitar el expediente. Esto se verifica en la base de datos. Si el solicitante no tiene permiso, se lanza una excepción. 2. Comprobación de Existencia del Expediente: Luego, verifica si el expediente solicitado existe en la base de datos. Si el expediente no existe, se lanza una excepción. 3. Comprobación de Disponibilidad del Expediente: Se comprueba si el expediente se encuentra disponible para ser prestado. Esto significa que su estado no es ni "expurgado" ni "prestado." Si el expediente no está disponible, se lanza una excepción. 4. Creación de Registro de Préstamo: Se crea un registro de préstamo en la base de datos con los detalles del préstamo, como el número de expediente, tipo, año, juzgado, fecha de préstamo y solicitante. 5. Actualización del Estado de los Expedientes: Se obtiene una lista de expedientes relacionados con el número de expediente, tipo, año y juzgado proporcionados. Para cada expediente en la lista: a. Se actualiza su estado a "prestado." b. Se actualiza la información del expediente en la base de datos. 6. Retorno de la Lista de Expedientes Prestados: Finalmente, se retorna una lista de los expedientes prestados. En la mayoría de los casos, esta lista contendrá un solo expediente, a menos que el expediente esté dividido entre varias cajas. Este caso de uso asegura que un solicitante autorizado pueda realizar un préstamo de expedientes, y se actualiza el estado de los expedientes para reflejar que están prestados.
43 Devolución de Expediente Prestado Para la devolución de un expediente prestado realizamos los siguientes pasos: 1. Búsqueda del Expediente Prestado: El método comienza por buscar el expediente que se pretende devolver en función de su número, tipo, año y juzgado. Esto se hace utilizando un objeto ExpedienteDAO que interactúa con la base de datos. 2. Comprobación de Prestamo Activo: Luego, verifica si el expediente tiene un préstamo activo asociado utilizando un objeto PrestamoDAO. Si existe un préstamo sin devolver, continúa con el proceso; de lo contrario, la devolución no es válida y finaliza aquí. 3. Actualización de Expediente: Para cada expediente que coincide con la búsqueda, actualiza algunas propiedades importantes, como las notas y el estado. Cambia el estado a "disponible" y agrega las notas proporcionadas. 4. Gestión de Páginas: Comienza un proceso de gestión de páginas. Calcula la cantidad total de páginas originales en los expedientes prestados. Luego, verifica si se están agregando páginas adicionales al expediente devuelto. Si es así, se evalúa si es necesario mover expedientes a nuevas cajas o si el último expediente puede acomodar las nuevas páginas en su caja actual. 5. Reubicación de Expedientes: Si las nuevas páginas superan la capacidad de las cajas actuales, se busca una nueva caja para cada expediente. Se liberan páginas en las cajas antiguas y se actualizan las ubicaciones de los expedientes. 6. Cambio de Páginas en la Última Caja: Si las nuevas páginas pueden acomodarse en las cajas actuales, se actualiza el número de páginas en el último expediente y se restan de la caja correspondiente. 7. Registro de Fecha de Devolución: Por último, se registra la fecha de devolución en el objeto de préstamo asociado al expediente.
44 8. Retorno de Resultados: Finalmente, se retorna una lista de expedientes actualizados después de la devolución. Para el caso de devolución de un expediente que no entre en la misma caja en la que se ubicaba o sea un expediente nuevo: 1. Búsqueda de Cajas por Tipo y Año: Buscar cajas que tengan el mismo tipo y año que el expediente que se quiere almacenar. Estas cajas se almacenan en una lista. 2. Comprobación de Cajas Disponibles del Mismo Tipo y Año: Se verifica si existen cajas disponibles del mismo tipo y año en la lista. Si se encuentra al menos una caja disponible con suficiente espacio para el expediente (según la cantidad de páginas del expediente), se retorna esa caja como la caja elegida. 3. Creación de Nueva Caja del Mismo Tipo y Año: Si no se encuentran cajas disponibles, se obtiene la ubicación de la última caja en esa lista y se busca una nueva ubicación contigua. Luego, se crea una nueva caja con la ubicación obtenida, el mismo tipo y año que el expediente, y se inserta en la base de datos. 4. Búsqueda de Cajas por Tipo: Si no se encontraron cajas disponibles en el paso 2, se pasa a buscar cajas del mismo tipo (independientemente del año). Se almacenan en una lista. 5. Comprobación de Cajas Disponibles del Mismo Tipo: Se verifica si existen cajas disponibles del mismo tipo en la lista. Si se encuentra al menos una caja disponible con suficiente espacio, se retorna esa caja como la caja elegida. 6. Creación de Nueva Caja del Mismo Tipo: Si no se encuentran cajas disponibles en el paso 5, se pasa a buscar cajas del mismo año (independientemente del tipo). Se almacenan en una lista.
45 7. Comprobación de Cajas Disponibles del Mismo Año: Se verifica si existen cajas disponibles del mismo año en la lista. Si se encuentra al menos una caja disponible con suficiente espacio, se retorna esa caja como la caja elegida. 8. Creación de Nueva Caja del Mismo Año:Si no se encuentran cajas disponibles en el paso 7, se busca la ubicación de la última caja en esa lista y se busca una nueva ubicación contigua. Luego, se crea una nueva caja con la ubicación obtenida, el mismo tipo y año que el expediente, y se inserta en la base de datos. 9. Creación de Nueva Caja sin Coincidencias: Si no se encontraron cajas disponibles en ninguno de los casos anteriores, se busca la ubicación de la última caja en la base de datos y se busca una nueva ubicación contigua. Luego, se crea una nueva caja con la ubicación obtenida, el mismo tipo y año que el expediente. 10. Retorno de la Caja Elegida: Finalmente, se retorna la caja seleccionada, que podría ser una caja existente con suficiente espacio o una nueva caja creada para el expediente. Este caso de uso es esencial para el control de préstamos de expedientes, garantizando que los expedientes se mantengan organizados en las cajas correctas y que se actualicen adecuadamente después de su devolución. Además, gestiona cambios en el número de páginas, lo que es esencial para mantener registros precisos. Transferencia de Expedientes Para la transferencia de expedientes realizamos los siguientes pasos: 1. Apertura y Lectura del Archivo Excel: Se inicia abriendo y leyendo el archivo Excel proporcionado. 2. Creación de una Lista de Expedientes Nuevos: Se crea una lista para almacenar los expedientes que se importarán desde el archivo Excel. 3. Acceso a las Bases de Datos Relevantes: Se establece la conexión con las bases de datos correspondientes, como las de cajas, expedientes y registros históricos.
46 4. Recorrido de las Filas del Archivo: Se procede a recorrer las filas del archivo Excel, omitiendo la primera fila que generalmente contiene encabezados. El formato Excel debe ser como el siguiente: Figura 6-7 Formato Excel para importar y exportar datos 5. Creación de Objetos Expediente y Asignación de Valores: Para cada fila del archivo, se crea un objeto expediente y se asignan valores a sus campos respectivos a partir de la información en el archivo. 6. Agregación de Expedientes a la Lista: Cada objeto expediente creado se agrega a la lista de expedientes nuevos que se importarán. 7. Cierre del Archivo Excel: Después de procesar todas las filas del archivo, se procede a cerrar el archivo Excel. 8. Verificación de Expedientes Nuevos: Se verifica si la lista de expedientes nuevos no está vacía, lo que indica que se importarán expedientes. 9. Verificación de Existencia en la Base de Datos a. Se verifica si el expediente ya existe en la base de datos. b. En caso de que no exista, se procede con los siguientes pasos: i. Se obtiene la fecha actual y se realiza lo siguiente: ii. Se busca una nueva caja adecuada para el expediente.
53 ¿Por qué hemos usado POI? Es fundamental abordar la cuestión de la importación y exportación de datos en formato Excel. Esta funcionalidad se presenta como una solución necesaria y estratégica debido a la falta de conocimiento informático. Los funcionarios judiciales, si bien son expertos en el ámbito legal y administrativo, no suelen tener un alto nivel de conocimiento en bases de datos o software complejos. Aquí radica la primera razón por la cual la importación y exportación de datos en formato Excel es esencial: la simplicidad. Excel es una herramienta ampliamente conocida y utilizada en entornos judiciales y administrativos en todo el mundo. La mayoría de los funcionarios judiciales están familiarizados con su interfaz y su funcionamiento básico. Permitirles importar y exportar datos en Excel significa que no tienen que aprender un nuevo conjunto de habilidades informáticas complicadas. Además, Excel ofrece una flexibilidad que es difícil de igualar con otras aplicaciones de bases de datos. Los funcionarios judiciales a menudo necesitan manipular datos de manera específica para satisfacer sus necesidades administrativas y de informes. Excel les permite hacerlo de manera intuitiva y sin la necesidad de programar o comprender complejas consultas SQL. Por lo tanto, la importación de datos desde Excel a nuestra aplicación y la exportación de datos desde nuestra aplicación a Excel facilita que los funcionarios realicen tareas específicas de manera efectiva y personalizada. En resumen, la falta de conocimiento informático en bases de datos por parte de los funcionarios judiciales es una razón crucial para implementar la capacidad de importar y exportar datos en formato Excel en nuestra aplicación. Esto no solo simplifica su interacción con el sistema, sino que también les permite seguir utilizando una herramienta que conocen y confían en su trabajo diario. La importación y exportación de Excel es un puente entre la tecnología moderna y la comodidad de una herramienta familiar, asegurando que nuestros usuarios puedan realizar su trabajo de manera eficiente y sin complicaciones innecesarias.
55 Capítulo 8 - Conclusiones, problemas detectados y trabajo futuro 8.1 Conclusiones En el transcurso de este proyecto, se ha logrado desarrollar una aplicación de gestión de ficheros judiciales que aborda de manera efectiva la necesidad de agilizar y mejorar la administración de documentos legales en el ámbito judicial. La aplicación, diseñada en Java 1.8, ofrece una interfaz de usuario intuitiva que permite cargar, organizar y gestionar expedientes judiciales de manera eficiente. Uno de los logros destacados de este proyecto es la implementación de una funcionalidad completa para la creación, edición y gestión de expedientes judiciales, incluyendo la asignación de etiquetas para la clasificación y la realización de búsquedas rápidas utilizando palabras clave y criterios específicos. La integración con una base de datos ha permitido garantizar una recuperación rápida y eficiente de la información relevante, lo que constituye un avance significativo en la agilización de los procesos judiciales. El desarrollo y la implementación de esta aplicación han demostrado la viabilidad y la utilidad de utilizar tecnologías modernas para resolver desafíos en el ámbito legal. Además, el enfoque en la usabilidad y la interfaz amigable ha facilitado su adopción por parte de los usuarios, mejorando la productividad y la organización en el contexto judicial.
56 8.2 Problemas detectados durante desarrollo Por supuesto, aquí tienes una descripción más detallada de los problemas encontrados durante el desarrollo de la aplicación, excluyendo los puntos 1 y 5, que no presentaron problemas específicos: 1. Funcionamiento de un Archivo Judicial: - Desafío: Entender y describir adecuadamente el funcionamiento de un archivo judicial, incluyendo la organización de expedientes, su ubicación física, los procesos de préstamo, devolución, transferencia y expurgo. - Solución: Se investigó y documentó a fondo el funcionamiento de los archivos judiciales, incluyendo sus prácticas comunes y procedimientos. Se describió cómo la aplicación aborda estos procesos para mejorar la eficiencia, destacando su capacidad para administrar expedientes de manera coherente y rastrear su ubicación. 2. Posibilidad de tener una devolución de expediente con más hojas: - Desafío: Reconocer que en algunos casos, una devolución de expediente podría implicar un aumento en la cantidad de hojas respecto al préstamo original. - Solución: En el código de la aplicación, se implementó una funcionalidad flexible que permite manejar expedientes con diferentes cantidades de hojas de manera dinámica. Cuando se realiza una devolución, la aplicación verifica el número de hojas y ajusta los registros en consecuencia, garantizando un seguimiento preciso de los expedientes. 3. Posibilidad de tener expedientes por tomos: - Desafío: Los diferentes tomos en los que se puede dividir un mismo expediente ha supuesto un rompecabezas a nivel de gestión en la base de datos. Puesto que un mismo expediente, a pesar de estar dividido y guardado en diferentes cajas, seguía teniendo la misma información empleada en la diferenciación de los expedientes. Que el número de expediente, el año, el tipo y el juzgado fuesen iguales en diferentes tuplas
57 de la tabla expedientes, suponía un reto, ya que los tomos no siempre se podían tener en consideración puesto que su valor podría ser nulo. - Solución: Esto se ha solventado con mucho cuidado, asegurándonos tener en cuenta los tomos cuando queríamos identificar una sola de las partes de estos expedientes divididos, utilizando dichos tomos como clave en la búsqueda o no. 4. Gestión del espacio físico de manera digital: - Desafío: Otra problema surgió al tener que gestionar un espacio físico de manera digital, es decir, sin saber cuánto espacio queda en una caja, una estantería o incluso una habitación; tratar de ubicar nuevos expedientes de la manera más lógica posible. - Solución: Se llevó a cabo mediante el algoritmo de ordenación de cajas, basado en tamaños fijos para estanterías y cajas, así como manteniendo el control de páginas de cada expediente. 8.3 Trabajo Futuro A pesar de los logros obtenidos, existen oportunidades para continuar mejorando y ampliando la funcionalidad de la aplicación de gestión de ficheros judiciales: 1. Mejora de la Interfaz de Usuario: Continuar optimizando la interfaz de usuario para garantizar una experiencia intuitiva y agradable para los usuarios, considerando retroalimentación y pruebas de usabilidad. 2. Integración con Tecnologías Avanzadas: Explorar la posibilidad de integrar tecnologías avanzadas como la inteligencia artificial y el aprendizaje automático para mejorar la clasificación automática de expedientes y la búsqueda semántica. 3. Ampliación de Funcionalidades: Agregar características adicionales, como la opción de compartir expedientes entre usuarios autorizados, la generación automatizada de informes y estadísticas, y la gestión de notificaciones.
58 4. Seguridad y Privacidad: Reforzar la seguridad y la protección de datos en la aplicación para garantizar el cumplimiento de las regulaciones legales en materia de privacidad. 5. Optimización de Bases de Datos: Continuar optimizando el rendimiento de la base de datos para asegurar una recuperación rápida de la información, incluso en escenarios de gran volumen. 6. Adopción a Gran Escala: Planificar estrategias para implementar la aplicación en una escala más amplia, en colaboración con instituciones judiciales y organizaciones legales. Adicionalmente, se podría considerar el desarrollo de un módulo de estadísticas que sirva como base para tomar decisiones sobre cambios en la ubicación de expedientes, similar a la estrategia de colocar productos populares en áreas de alto tráfico en un supermercado. Este módulo de estadísticas podría utilizar datos sobre el número de solicitudes y movimientos de expedientes para optimizar su ubicación en el sistema. En conclusión, este proyecto pretende dar un paso importante hacia la necesaria modernización de la gestión de los archivos judiciales en el marco de nuestros juzgados y tribunales. Con un enfoque en la eficiencia, la usabilidad y la innovación tecnológica, la aplicación ofrece soluciones para optimizar procesos y mejorar la toma de decisiones en el ámbito jurídico. El camino a seguir persevera en la evolución continua y la adaptación a las necesidades cambiantes con el objetivo de seguir avanzando hacia la excelencia de un servicio público tan esencial en toda democracia como es la Administración de Justicia.
59 Introduction The traditional management of judicial archives has been marked by the use of paper and physical files, which entails inherent risks such as loss of documents, difficulties in classification and search, and the occupation of valuable storage spaces. It is in this context that the implementation of specialized computer systems has become a prevailing need. The judicial file management system proposed in this work is a technological solution designed to revolutionize the way in which Courts and Tribunals manage their legal documents. The application offers a simple interface and advanced functionalities for efficiently uploading, organizing and searching court records. Motivation As computer engineering students, we feel compelled to tackle this Final Degree Project (TFG) focused on the development of a judicial file management system. During our training, we have acquired knowledge in programming and software development, and now we seek to apply these skills in a project that has a positive impact on society. The administration of legal documents in the judicial field is a challenge that constantly faces problems of inefficiency, loss of time and lack of organization. We believe that technology can make a difference in this field, and that is why we feel inspired to develop a computer tool that facilitates the management of judicial files and improves judicial processes in general. Our motivation comes from the desire to create an innovative technological solution that provides a more efficient and friendly experience to users involved in the management of legal documents. We firmly believe that our focus on developing an intuitive interface and advanced functionality will allow users to manage court records more quickly and accurately. Additionally, this project represents an invaluable opportunity to delve into the real world of software engineering. The design and development of a judicial file
60 management application will challenge us to apply our theoretical knowledge in a practical context and will allow us to face real technical challenges. As future professionals in the field of computer engineering, this experience will help us strengthen our skills in programming, teamwork, and problem solving. We are convinced that this TFG will provide us with a solid foundation to tackle future technological projects and will prepare us for a constantly evolving labor market. In summary, our motivation lies in applying our knowledge acquired during our studies to develop an application that positively impacts the management of judicial files. We seek to provide the legal sector with an innovative tool that optimizes judicial processes and allows us to grow as professionals in the field of computing applied to the resolution of real problems. Goals The main objective of the project is the design and development of a judicial file management system in Java 1.8, with the purpose of improving efficiency and organization in the administration of legal documents in the judicial field. The specific objectives of the project are the following: • Develop an intuitive user interface: Create a friendly and easy-to-use interface that allows users to upload, view and manage court files efficiently, reducing time spent on administrative tasks. • Implement file registration and editing functionalities: Allow users to add new judicial files and edit relevant information, such as file number and important dates. • Facilitate classification through labels: Introduce a labeling system for the agile classification of files, allowing users to group and filter related documents by specific categories. • Enable fast and accurate searches: Implement advanced search functionality, allowing users to locate files and documents using specific keywords, phrases or criteria. • Integrate a centralized database: Design and develop a robust database that stores and manages documents associated with judicial files.
61 • Adapt the use of the application to the work method of the Justice officials in charge of the files: using spreadsheets they will be able to carry out these operations of consultation, modification, creation and deletion of data. In summary, the project aims to design and develop a computer solution that allows efficient management of judicial files, improving organization and productivity in the legal field. Specific objectives include the development of a friendly interface, file creation and editing functionalities, agile labeling and searching, integration with a database, and complete documentation of the development process. Work plan As in any project in which software is going to be developed, we must carry out a series of steps prior to writing and subsequently executing the source code. Some of the tasks to be carried out in this initial phase are determining the scope of the project, carrying out a feasibility study, risk analysis, if necessary an estimate of the costs derived from the project, temporal planning and allocation of resources. PROJECT’S SCOPE DELIMITATION With ARQUIVO, the aim is to simplify the loan service of judicial files through a friendly interface and simple use, making it easier for its employees to manage the loans and returns of the judicial files themselves, as well as their physical location within the filing, registration and deletion of files and export of the database in table format so that they are handled fluently. VIABILITY STUDY Within this section it is intended to conclude if the project is viable, mainly in the technical, economic and legal aspects. Given that the language to use when programming is selected by us, the students, and that we have diverse knowledge in the field of computing, the technical aspect should not be a problem. We have developed several projects and practices throughout the years of study that will make our task easier.
62 Regarding the economic issue, a priori there is no need to make any type of investment, since we have everything necessary to develop a project of these characteristics: computers and IDE licenses (software development environments). Finally, we must take into account the legal section, but given that this software is going to be developed in an academic setting and that all the data used is going to be fictitious, we should not have any complications. RISK ANALYSIS Within the risk analysis we must differentiate between risk evaluation and risk control, first we must locate the possible problems or incidents that may arise during the development of the project in order to take preventive measures in case any of these risks materialize. Given the small number of team members, the probability of abandonment of one of the components is lower, on the other hand, the abandonment of one of the three would be a hard blow, since we would lose a third of the workforce. As for more technical aspects, such as loss of data, breakage of one of the computers or problems with software versions, this is perhaps the risk most likely to materialize. Given the abandonment of one of the team members, we have few options except to distribute the total work between the two remaining components. It would mean a greater workload, but it would still be viable to finish the TFG on time. Now addressing the possibility of losing data, versions, inconsistencies in the code, etc... we will use version control tools through the cloud. In the case of the source code we will rely on GitHub to keep progress updated and thus avoid inconsistencies. In the case of documents, whether they are planning documents, reports, etc., we will use Google Drive, being able to work collaboratively on the same document. ESTIMATE It is not necessary to make a financial estimate since as it is an academic project there will be no cost derived from it. RESOURCE ALLOCATION
69 en los expedientes prestados y evaluando si se requería la reubicación de expedientes en nuevas cajas en caso de agregar páginas adicionales. En resumen, este miembro desempeñó un papel crítico en asegurar que los expedientes devueltos se manejen adecuadamente, actualizando registros, gestionando páginas y garantizando que la base de datos refleje con precisión el estado de los expedientes. Prestar Expediente: Este proceso comenzó con la verificación de los permisos del solicitante para solicitar un expediente. La autorización se llevó a cabo consultando la base de datos y, en caso de que el solicitante no tuviera permiso, se lanzó una excepción para detener el proceso. Además, este miembro contribuyó a la comprobación de la existencia del expediente solicitado en la base de datos. Si el expediente no existía, se lanzó una excepción para manejar esta situación. Una vez confirmada la existencia del expediente y la autorización del solicitante, se creó un registro de préstamo en la base de datos. Este registro contiene detalles importantes como el número de expediente, tipo, año, juzgado, fecha de préstamo y solicitante. Finalmente, este individuo también tuvo un papel esencial en la actualización de los expedientes relacionados con el préstamo. Cambió el estado de los expedientes a "prestado" y actualizó la información en la base de datos para reflejar el estado de préstamo. En la mayoría de los casos, esto implicó el manejo de expedientes individuales, aunque en ocasiones los expedientes pueden estar divididos en varias cajas. En conjunto, este miembro garantizó que el proceso de préstamo de expedientes se realice de manera eficiente y controlada, asegurando la integridad de los datos y la autorización adecuada.
70 Ignacio Pérez Moreno Creación de la Base de Datos: Este miembro tuvo la responsabilidad de diseñar la estructura de la base de datos que almacena los expedientes judiciales utilizando MySQL Workbench. Su tarea implicó un diseño cuidadoso, incluyendo la definición de tablas, campos, relaciones y restricciones necesarios para almacenar y gestionar la información de manera eficiente. Además del diseño, implementó el diseño de la base de datos en MySQL Workbench, creando las tablas necesarias para almacenar expedientes, préstamos, cajas y otros elementos clave. También estableció relaciones entre estas tablas, asegurando la integridad de los datos y la consistencia en toda la base de datos. Su trabajo en el diseño y la implementación de la base de datos fue fundamental para el funcionamiento de la aplicación. Patrones de Diseño: Este miembro desempeñó un papel importante en la implementación del Patrón DAO (Data Access Object). Esto implicó la creación de interfaces DAO y clases concretas para las entidades de la base de datos. Estas interfaces y clases permitieron abordar de manera eficiente la interacción con la base de datos, proporcionando métodos para acceder y manipular los datos de manera segura y organizada. Además de la implementación del Patrón DAO, este miembro colaboró con el equipo en la identificación y aplicación de otros patrones de diseño según fuera necesario para garantizar una arquitectura sólida. Su conocimiento y experiencia en patrones de diseño contribuyeron a la creación de una estructura de software cohesiva y bien organizada. Exportar Expedientes en Excel: El proceso de exportar expedientes en Excel fue liderado por este miembro. Comenzó generando un nombre de archivo único que incluía la fecha y hora actual para evitar duplicados, lo que garantizó la integridad de los archivos generados.
71 Luego, se encargó de obtener los expedientes desde la base de datos según los filtros especificados, como número de expediente, tipo, año y juzgado. Utilizando estos datos, creó un nuevo libro de Excel y una hoja en el libro con el nombre "Expedientes." Para asegurarse de que la información fuera fácilmente comprensible, diseñó y creó una fila de encabezado en el archivo Excel, incluyendo los nombres de las columnas relevantes como "Tipo," "Número de Expediente," "Año," etc. Finalmente, se encargó de llenar el archivo Excel con los datos de los expedientes, lo que permitió a los usuarios exportar información relevante de expedientes en formato Excel de manera eficiente. Modificación de Expedientes: Implementó la funcionalidad para modificar expedientes en el sistema. Para hacerlo, comenzó creando una lista denominada expedientesModif para almacenar los expedientes que necesitan cambios. Luego, iteró a través de las filas de la tabla que contiene los expedientes que el usuario desea modificar, y en cada iteración, creó un objeto Expediente con los valores de las celdas de esa fila. Estos objetos Expediente se agruparon en expedientesModif. Cuando la iteración concluyó, se verificó si esta lista tenía elementos; en caso afirmativo, se llevaron a cabo las actualizaciones en la base de datos mediante un objeto llamado expDAO. Finalmente, se informó al usuario sobre el éxito de las modificaciones. Para la búsqueda de expedientes a modificar En primer lugar, se encargó de permitir a los usuarios buscar expedientes utilizando una serie de criterios como el número de expediente, año, tipo y juzgado. Este proceso se inicia al obtener los criterios ingresados por el usuario en la interfaz gráfica. Luego, realiza una consulta en la base de datos utilizando estos criterios, utilizando el objeto expediente. Los resultados de esta consulta se almacenan en una lista llamada expedientes. Después, se verifica si esta lista está vacía; si no lo está, significa que se encontraron expedientes coincidentes y se procede a mostrarlos en una tabla en la interfaz gráfica para que el usuario los vea y pueda trabajar con ellos.
72 Marta Ranz González Desarrollo de Interfaces: Este miembro fue el encargado de diseñar y desarrollar la interfaz de usuario de la aplicación de gestión de expedientes judiciales. Su tarea consistió en crear una interfaz de usuario que fuera intuitiva y atractiva para los usuarios. Esto implicó diseñar elementos gráficos como ventanas, formularios, botones y otros componentes visuales. Además, implementó estos diseños en elementos gráficos funcionales, como botones para realizar acciones, formularios para ingresar datos y ventanas de diálogo para interactuar con los usuarios. Su contribución fue fundamental para que la aplicación sea fácil de usar y tenga una apariencia profesional. Así mismo, implementó la lógica detrás de estas interfaces, desarrollando los controladores encargados de gestionar cada una de las acciones llevadas a cabo por el usuario. Asegurando que todas las acciones estiviesen recogidas por el correspondiente “Listener” y que la introducción de datos fuese lo más sencilla e intuitiva posible para los usuarios. Patrones de Diseño: Este miembro desempeñó un papel importante en la implementación del Patrón DAO (Data Access Object). Esto implicó la creación de interfaces DAO y clases concretas para las entidades de la base de datos, así como la implementación de métodos para acceder a los datos de manera eficiente. Esta implementación garantiza un acceso ordenado y seguro a la base de datos. Además, participó en la aplicación del patrón MVC para separar la lógica del diseño de la aplicación. Esto asegura que la arquitectura de la aplicación sea sólida y que se sigan prácticas de desarrollo de software bien establecidas. Expurgo de Expedientes: En el proceso de expurgo de expedientes, este miembro jugó un papel fundamental, depurando los errores encontrados en el proceso, mediante el análisis del código junto con los archivos Excel. Comenzó por abrir y leer un archivo Excel desde una
73 ubicación específica utilizando la biblioteca Apache POI. Luego, creó una lista para almacenar los expedientes que se eliminarían de la base de datos. Recorrió las filas del archivo Excel, excluyendo la primera fila de encabezados, y creó objetos Expediente para cada fila, asignando los valores de las celdas a los campos del expediente. Estos expedientes se agregaron a la lista "expedientesAEliminar" para su posterior eliminación. Después de procesar todas las filas del archivo, verificó si la lista "expedientesAEliminar" contenía al menos un expediente. Si es así, procedió a actualizar los expedientes en la base de datos, cambiando su estado a "expurgado," sumando la cantidad de páginas de cada expediente a la caja original y eliminando las referencias de caja de los expedientes. Finalmente, registró un historial de expurgo para cada expediente eliminado, lo que incluyó información como el número de expediente, tipo, año, juzgado y la fecha del expurgo. El método devolvió un valor que indicó si se realizaron eliminaciones de expedientes (verdadero) o no (falso). Transferencia de Expedientes: Este miembro fue esencial en el proceso de transferencia de expedientes desde un archivo Excel a la base de datos. Comenzó por abrir y leer el archivo Excel proporcionado y creó una lista para almacenar los expedientes que se importarían desde el archivo. Recorrió las filas del archivo Excel, excluyendo la primera fila de encabezados, y creó objetos Expediente para cada fila, asignando valores a sus campos respectivos. Estos expedientes se agregaron a la lista de expedientes nuevos que se importarían. Luego, verificó si los expedientes ya existían en la base de datos. Si no existían, realizó una serie de pasos para encontrar una caja adecuada para cada expediente, actualizar su ubicación y caja, cambiar su estado a "transferido" y registrar un historial de transferencia.
74 Diseño de Modelo de Tabla Este miembro junto con sus labores de diseño de la interfaz, diseñó una clase genérica para la creación de tablas de forma dinámica, dependiendo de la cantidad de filas que se tuviesen que mostrar en cada caso. Realizó la personalización de las cabeceras y la inclusión de los datos. Este modelo de tabla también tiene otro formato configurable, que permite que las celdas sean editables para permitir las modificaciones de expedientes. Logo Este miembro también diseñó dos logos para la aplicación, decantándose finalmente por el más sencillo, pues permitía visualizar una interfaz más limpia.
75 BIBLIOGRAFÍA [1] L. Debrauwer, Patrones de diseño en Java : Los 23 modelos de diseño: descripción y solución ilustradas en UML 2 y Java. [2] «https://www.oscarblancarteblog.com/2018/12/10/data-access-object-daopattern/,» [En línea]. [3] Y. F. R. Yanette Díaz González, Patrón Modelo-Vista-Controlador. [4] «https://es.wikipedia.org/wiki/Interfaz_de_usuario,» [En línea]. [5] Real Decreto 937/2003, de 18 de julio, de modernización de los archivos judiciales.