PROYECTO PARA LA IMPLANTACIÓN DEL REGISTRO FUNCIONARIO HABILITADO (RFH) Diseño Técnico de la Aplicación RFH 31/05/2011 CONTROL DE CAMBIOS Versión Descripción de la Modificación Fecha 1.0.0 Creación del documento 31/05/2011 2/90 Visado por Índice de contenidos 1 INTRODUCCIÓN .............................................................................................................. 11 2 DEFINICIÓN DE LA ARQUITECTURA DE LA APLICACIÓN ........................................ 12 2.1 NIVELES DE ARQUITECTURA ............................................................................................. 12 2.1.1 Arquitectura Física ................................................................................................ 12 2.1.2 Arquitectura Conceptual........................................................................................ 14 2.1.3 Arquitectura Lógica ............................................................................................... 16 2.2 REQUISITOS DE DISEÑO Y CONSTRUCCIÓN ................................................................... 17 2.2.1 Entorno de desarrollo ............................................................................................ 17 2.2.2 Lenguaje de programación ................................................................................... 17 2.2.3 Elementos de la arquitectura ................................................................................ 17 2.2.4 Marcos de trabajo de la arquitectura..................................................................... 19 2.3 EXCEPCIONES ...................................................................................................................... 23 2.3.1 Clases de excepciones ......................................................................................... 23 2.3.2 Tratamiento de excepciones ................................................................................. 25 2.4 ESTÁNDARES Y NORMAS DE DISEÑO Y CONSTRUCCIÓN ............................................ 27 2.4.1 Estándares de codificación ................................................................................... 27 2.4.2 Herramientas de calidad en código....................................................................... 27 2.4.3 Patrones ................................................................................................................ 28 2.4.4 Mecanismos Comunes.......................................................................................... 35 2.5 ENTORNO TECNOLÓGICO .................................................................................................. 38 2.6 REQUISITOS NO FUNCIONALES ........................................................................................ 41 2.6.1 Integración con sistemas externos........................................................................ 44 2.6.2 Alfresco ................................................................................................................. 45 3 DISEÑO DE CASOS DE USO.......................................................................................... 49 3.1 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-001 / AUTENTIFICAR USUARIO ..... 51 3/90 3.2 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-002 / DAR DE ALTA HABILITACIÓN 51 3.3 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-003 / CONSULTAR HABILITACIÓN 52 3.4 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-004 / VER DETALLE HABILITACIÓN 52 3.5 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-005 / REVOCAR HABILITACIÓN ..... 52 3.6 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-006 / MODIFICAR HABILITACIÓN .. 53 3.7 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-007 / CONSULTA DE CREDENCIAL 53 3.8 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-008 / VER DETALLE DE CREDENCIAL ...................................................................................................................................... 53 3.9 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-009 / CREACIÓN DE CREDENCIAL 54 3.10 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-010 / DESCARGAR CREDENCIAL / JUSTIFICANTE REC ........................................................................................................................... 54 3.11 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-011 / DAR DE ALTA ORGANISMO . 55 3.12 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-012 / CONSULTAR ORGANISMO ... 55 3.13 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-013 / MODIFICAR ORGANISMO ..... 55 3.14 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-014 / REASIGNAR CATEGORÍAS ... 56 3.15 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-015 / REASIGNAR TRÁMITES ........ 56 3.16 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-016 / CREAR CATEGORÍA .............. 57 3.17 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-017 / VER DETALLE DE CATEGORÍA 57 3.18 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-018 / MODIFICAR CATEGORIA ...... 58 3.19 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-019 / ADMINISTRAR TRÁMITE ....... 58 3.20 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-020 / DAR DE ALTA TRÁMITE ........ 59 3.21 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-021 / VER DETALLE DE TRÁMITES 59 3.22 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-022 / MODIFICAR TRAMITE............ 59 3.23 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-023 / CONSULTAR CATEGORÍA Y TRÁMITE ............................................................................................................................................. 60 4/90 3.24 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-024 / SALIR ...................................... 60 3.25 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-025 / DAR DE ALTA USUARIOS ..... 61 3.26 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-026 / CONSULTAR USUARIO ......... 61 3.27 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-027 / VER DETALLE USUARIO ....... 61 3.28 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-028 / MODIFICAR USUARIO ........... 62 3.29 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-029 / CONSULTA DE HABILITACIÓN WS 62 3.30 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-030 / DESCARGA DE HABILITACIONES, FUNCIONARIOS A EXCEL ................................................................................. 62 3.31 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-031 / CARGA DE TRÁMITES DE UN ORGANISMO VÍA FICHERO .............................................................................................................. 63 3.32 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-032 / INFORME DE ACCESOS, OPERACIONES, REGISTROS Y TRÁMITES .................................................................................... 64 3.33 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-033 / DAR DE ALTA FUNCIONARIOS 64 3.34 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-034 / CONSULTAR FUNCIONARIO 64 3.35 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-035 / VER DETALLE FUNCIONARIO 65 3.36 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-036 / MODIFICAR FUNCIONARIO .. 65 3.37 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-037 / LISTADO DE HABILITACIONES VIGENTES WS .................................................................................................................................... 66 3.38 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-038 / BATCH: VERIFICACIÓN CRITERIOS HABILITACIÓN ............................................................................................................... 66 3.39 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-039 / BATCH: VERIFICACIÓN CADUCIDAD HABILITACIÓN ............................................................................................................. 66 3.40 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-040 / CONSULTA NOTIFICACIONES 67 3.41 4 TAREAS UNITARIAS DEL CASO DE USO: RFH-CU-041 / ENVIAR NOTIFICACIONES ... 67 ESPECIFICACIÓN DE COMPONENTES SOFTWARE................................................... 68 4.1 DIAGRAMA DE COMPONENTES SOFTWARE DE LA CAPA DE PRESENTACIÓN .......... 69 5/90 4.1.1 Descripción del componente Sw: RFH -SW-001 / HabilitacionForm .................... 70 4.2 DIAGRAMA DE COMPONENTES SOFTWARE DE LA CAPA LÓGICA DE NEGOCIO....... 72 4.2.1 Descripción del componente Sw: RFH-SW-999 / HabilitacionManager ............... 73 4.3 DIAGRAMA DE COMPONENTES SOFTWARE DE LA CAPA DE ACCESO A DATOS ...... 74 4.3.1 Descripción del componente Sw: RFH-SW-1 / Habilitacion.................................. 75 4.3.2 Descripción del componente Sw: RFH-SW-2 / HabilitacionDAO .......................... 76 4.3.3 Descripción del componente Sw: RFH-SW-3 / Notificaciones .............................. 76 4.3.4 Descripción del componente Sw: RFH-SW-4 / NotificacionDAO .......................... 77 4.3.5 Descripción del componente Sw: RFH-SW-5 / Funcionario ................................. 78 4.3.6 Descripción del componente Sw: RFH-SW-6 / FuncionarioDAO.......................... 79 4.3.7 Descripción del componente Sw: RFH-SW-7 / Credencial ................................... 79 4.3.8 Descripción del componente Sw: RFH-SW-8 / CredencialDAO ........................... 80 4.3.9 Descripción del componente Sw: RFH-SW-9 / AnexoCredencial ......................... 81 4.3.10 Descripción del componente Sw: RFH-SW-10 / AnexoCredencialDAO ........... 81 4.3.11 Descripción del componente Sw: RFH-SW-11 / HistHabilitacion ..................... 82 4.3.12 Descripción del componente Sw: RFH-SW-12 / HistHabilitacionDAO .............. 83 4.3.13 Descripción del componente Sw: RFH-SW-13 / HistFuncionario ..................... 84 4.3.14 Descripción del componente Sw: RFH-SW-14 / HistFuncionarioDAO ............. 84 4.3.15 Descripción del componente Sw: RFH-SW-15 / HabilitacionDAOImpl ............. 85 4.3.16 Descripción del componente Sw: RFH-SW-16 / NotificacionDAOImpl ............. 85 4.3.17 Descripción del componente Sw: RFH-SW-17 / FuncionarioDAOImpl ............. 85 4.3.18 Descripción del componente Sw: RFH-SW-18 / CredencialDAOImpl .............. 86 4.3.19 Descripción del componente Sw: RFH-SW-19 / AnexoCredencialDAOImpl .... 86 4.3.20 Descripción del componente Sw: RFH-SW-20 / HistHabilitacionDAOImpl ....... 86 4.3.21 Descripción del componente Sw: RFH-SW-21 / HistFuncionarioDAOImpl ....... 86 5 DIAGRAMA DE NAVEGACIÓN ....................................................................................... 88 6 PROTOTIPO ..................................................................................................................... 89 6/90 7 ESTRUCTURA FÍSICA DE LA INFORMACIÓN .............................................................. 90 7/90 Índice de figuras Figura 1 – Diagrama de despliegue de la aplicación ................................................................ 13 Figura 2 – Arquitectura conceptual de la aplicación ................................................................. 15 Figura 3 – Arquitectura lógica de la aplicación ......................................................................... 16 Figura 4 – Modelo Vista Controlador ........................................................................................ 19 Figura 5 – Diagrama de Componentes de RFH ....................................................................... 22 Figura 6 – Diagrama de clases del módulo de excepciones del framework............................. 24 Figura 7 – División de la arquitectura del framework con patrones .......................................... 32 Figura 8 – Diagrama de Secuencia Generico........................................................................... 34 Figura 9 – Actions. Figura Genérica ......................................................................................... 70 Figura 10 – ActionsForm. Figura Generica............................................................................... 70 Figura 11 – Diagrama genérico de managers .......................................................................... 72 Figura 12 – Value Objects. Figura genérica ............................................................................. 74 Figura 13 – DAO genéricos ...................................................................................................... 74 Figura 14 – Diagrama de navegación de RFH ......................................................................... 88 Figura 15 – Prototipo de pantallas RFH ................................................................................... 89 Figura 16 – Modelo Entidad-Relación RFH .............................................................................. 90 8/90 Índice de tablas Tabla 1 – Librerías .................................................................................................................... 41 Tabla 2 – Requerimientos de seguridad ................................................................................... 42 Tabla 3 – Requerimientos operativos y de rendimiento ........................................................... 44 Tabla 4 – Requerimientos de Integración ................................................................................. 45 Tabla 5 – Tareas unitarias del caso de uso RFH-CU-001 / Autentificar Usuario ..................... 51 Tabla 6 – Tareas unitarias del caso de uso RFH -CU-002 / Dar de alta Habilitación............... 51 Tabla 7 – Tareas unitarias del caso de uso RFH-CU-003 / Consultar Habilitación .................. 52 Tabla 8 – Tareas unitarias del caso de uso RFH-CU-004 / Ver Detalle Habilitación ............... 52 Tabla 9 – Tareas unitarias del caso de uso RFH-CU-005 / Revocar Habilitación .................... 52 Tabla 10 – Tareas unitarias del caso de uso RFH-CU-006 / Modificar Habilitación................. 53 Tabla 11 – Tareas unitarias del caso de uso RFH-CU-007 / Consulta de Credencial ............. 53 Tabla 12 – Tareas unitarias del caso de uso RFH-CU-008 / Ver detalle Credencial ............... 53 Tabla 13 – Tareas unitarias del caso de uso RFH-CU-009 / Creación Credencial .................. 54 Tabla 14 – Tareas unitarias del caso de uso RFH-CU-010 / Descargar Credencial / Justificante REC ................................................................................................................ 55 Tabla 15 – Tareas unitarias del caso de uso RFH-CU-011 / Dar de Alta Organismo .............. 55 Tabla 16 – Tareas unitarias del caso de uso RFH-CU-012 / Consultar Organismo ................. 55 Tabla 17 – Tareas unitarias del caso de uso RFH-CU-013 / Modificar Organismo .................. 56 Tabla 18 – Tareas unitarias del caso de uso RFH-CU-014 / Reasignar Categorías ................ 56 Tabla 19 – Tareas unitarias del caso de uso RFH-CU-015 / Reasignar Trámites ................... 57 Tabla 20 – Tareas unitarias del caso de uso RFH-CU-016 / Crear Categoría ......................... 57 Tabla 21 – Tareas unitarias del caso de uso RFH-CU-017 / Consulta de Categoría ............... 57 Tabla 22 – Tareas unitarias del caso de uso RFH-CU-018 / Modificar Categoria.................... 58 Tabla 23 – Tareas unitarias del caso de uso RFH-CU-019 / Administrar Trámites .................. 58 Tabla 24 – Tareas unitarias del caso de uso RFH-CU-020 / Dar de Alta Trámite.................... 59 Tabla 25 – Tareas unitarias del caso de uso RFH-CU-021 / Consulta deTrámites.................. 59 9/90 Tabla 26 – Tareas unitarias del caso de uso RFH-CU-022 / Modificar Trámite ....................... 60 Tabla 27 – Tareas unitarias del caso de uso RFH-CU-023 / Consultar Categoría y Trámite ... 60 Tabla 28 – Tareas unitarias del caso de uso RFH-CU-024 / Salir............................................ 60 Tabla 29 – Tareas unitarias del caso de uso RFH-CU-025 / Dar de Alta Usuario ................... 61 Tabla 30 – Tareas unitarias del caso de uso RFH-CU-026 / Consultar Usuario ...................... 61 Tabla 31 – Tareas unitarias del caso de uso RFH-CU-027 / Consultar Usuario ...................... 61 Tabla 32 – Tareas unitarias del caso de uso RFH-CU-028 / Modificar Usuario ....................... 62 Tabla 33 – Tareas unitarias del caso de uso RFH-CU-029 / Consulta de Habilitación WS ..... 62 Tabla 34 – Tareas unitarias del caso de uso RFH-CU-30 / Descarga de Habilitaciones, funcionarios a excel ........................................................................................................... 63 Tabla 35 – Tareas unitarias del caso de uso RFH-CU-031 / Carga de Trámites de un Organismo vía fichero ....................................................................................................... 63 Tabla 36 – Tareas unitarias del caso de uso RFH-CU-032 / Informe de Accesos, Operaciones, Registros y Trámites.......................................................................................................... 64 Tabla 37 – Tareas unitarias del caso de uso RFH-CU-033 / Dar de Alta Funcionario ............. 64 Tabla 38 – Tareas unitarias del caso de uso RFH-CU-034 / Consultar Funcionario................ 65 Tabla 39 – Tareas unitarias del caso de uso RFH-CU-027 / Ver Detalle Funcionario ............. 65 Tabla 40 – Tareas unitarias del caso de uso RFH-CU-036 / Modificar Funcionario ................ 65 Tabla 41 – Tareas unitarias del caso de uso RFH-CU-037 / Listado de habilitaciones vigentes WS ..................................................................................................................................... 66 Tabla 42 – Tareas unitarias del caso de uso RFH-CU-038 / Batch: verificación criterios habilitación ........................................................................................................................ 66 Tabla 43 – Tareas unitarias del caso de uso RFH-CU-039 / Batch: verificación caducidad habilitación ........................................................................................................................ 67 Tabla 44 – Tareas unitarias del caso de uso RFH-CU-040 / Consulta notificaciones .............. 67 Tabla 45 – Tareas unitarias del caso de uso RFH-CU-041 / Enviar notificaciones .................. 67 Tabla 46 – Componentes software de la capa de presentación............................................... 68 Tabla 47 – Componentes software de lógica de negocio ......................................................... 68 Tabla 48 – Componentes software de acceso a datos............................................................. 69 10/90 1 Introducción El presente documento tiene como objetivo recopilar la documentación realizada en la fase de diseño técnico de la aplicación del Registro de Funcionario Habilitado para su etapa de desarrollo. En base a este documento se construirá el software de la aplicación que se pretende desarrollar. En definitiva este documento será un diseño detallado para la construcción. Este análisis técnico está basado en el documento de análisis funcional realizado previamente para la etapa de desarrollo del RFH, y que a continuación, servirá de base para la elaboración de planes y casos de pruebas a ejecutar en fases y etapas posteriormente del desarrollo del aplicativo. 11/90 2 Definición de la arquitectura de la aplicación El presente documento tiene como objetivo definir la arquitectura que se va a utilizar en la aplicación de Registros de Funcionarios Habilitados (RFH), indicando de manera detallada la distribución de los paquetes del sistema en las diversas capas que éste presenta, así como una descripción de las capas a utilizar y los componentes de software que componen cada capa. El objetivo de este documento es proporcionar una descripción de la arquitectura del sistema, haciendo uso de diversas visiones arquitectónicas para representar diversos aspectos del sistema. Se realiza con el fin de documentar las decisiones de arquitectura significativas que se han tomado en el sistema. 2.1 Niveles de arquitectura Dentro de los niveles de arquitectura, se distinguen los tipos: arquitectura física, conceptual y lógica. 2.1.1 Arquitectura Física Este apartado tiene como propósito definir la arquitectura física de la aplicación. En la arquitectura física, se definen los componentes de hardware que soportarán la aplicación, en este caso: servidores web, de aplicaciones, de base de datos, etc. Esta arquitectura permitirá ofrecer servicio a varios puestos terminales. Los terminales deberán contar con un navegador web para acceder a la aplicación. El despliegue genérico de la aplicación queda ilustrado en el diagrama que se expone a continuación: 12/90 DIAGRAMA DE DESPLIEGUE DE RFH SERVIDORES WEB BASE DE DATOS BD ALFRESCO ALFRESCO BD RFH RFH USUARIO Servicios Externos DIRECTORIO RCP REC @firma SERVIDOR CORREO Figura 1 – Diagrama de despliegue de la aplicación 13/90 A continuación se detalla como se realiza la comunicación entre el cliente y el servidor en RFH: • La petición desde el navegador del cliente a la página de inicio de la aplicación se realizará vía HTTPS. Una vez que el ciudadano ha accedido a la aplicación toda la navegación se realizará mediante un canal seguro usando HTTPS. Para ello, a nivel del servidor se instalará un certificado de servidor de forma que cualquier cliente que se conecte pueda confiar en la seguridad de la conexión. De la misma forma, el usuario de la aplicación deberá proporcionar un certificado digital (o DNI electrónico) válido por medio del cual la aplicación podrá identificar al usuario que se conecta. • Cuando el ciudadano selecciona el certificado con el que desea identificarse, la aplicación realizará la validación con la plataforma @firma (a través de una petición a un servicio web), y en caso de que el certificado sea válido, se almacenarán los datos del ciudadano en la sesión y se mostrará la página de inicio de la aplicación. • Una vez el ciudadano ha entrado en la aplicación, la aplicación no volverá a solicitar su identificación para acceder a otras funcionalidades (mientras los datos del certificado se mantengan en la sesión). • En caso de caída del servidor o que se alcance el tiempo de timeout, el ciudadano deberá realizar de nuevo el proceso de identificación para poder acceder a las funcionalidades de la aplicación. En el siguiente documento, se muestra el detalle de la configuración del entorno de Desarrollo que se utilizará para la construcción y despliegue del RFH. RFH - entorno de desarrollo Nota: hay que tener en cuenta que, tal como está definido el proyecto del RFH, no se contempla el despliegue en los entornos de Preproducción y Producción. 2.1.2 Arquitectura Conceptual La arquitectura conceptual proporciona un modelo común de los servicios que son provistos por la aplicación para cumplir con los requerimientos que se han definido previamente. En el siguiente diagrama se puede observar los diferentes módulos funcionales de la aplicación: 14/90 Figura 2 – Arquitectura conceptual de la aplicación Los módulos definidos en la aplicación RFH estarán accesibles a los usuarios con previa identificación del mismo a través de un certificado digital validado por @firma. Una vez que el usuario se ha identificado, se mostrarán los módulos correspondientes a su perfil. Las funcionalidades definidas en la aplicación y la arquitectura conceptual van a definir lo que será la arquitectura lógica. 15/90 2.1.3 Arquitectura Lógica La arquitectura lógica representa la organización que controla la división de la aplicación y queda ilustrado con el siguiente diagrama que representa las capas y componentes de software que componen el sistema. Figura 3 – Arquitectura lógica de la aplicación 16/90 2.2 Requisitos de diseño y construcción En este apartado se van a describir todos aquellos requisitos que están asociados al diseño de la arquitectura. Asociados a este tipo de requerimientos encontramos los siguientes: 2.2.1 Entorno de desarrollo La aplicación se desarrollará bajo un entorno Web con los siguientes componentes: • Java JDK 1.6 • Jboss 5.1.0 • Oracle 11g • Struts 1.2.7 • Spring 2.5.6 • Hibernate 3.2.5 2.2.2 Lenguaje de programación Como principal lenguaje de programación se va a emplear el lenguaje orientado a objetos Java, desarrollado por Sun Microsystems.Se utilizará la versión 1.6 del JDK Java para el desarrollo de RFH. La interfaz de usuario se implementará en HTML haciendo uso de etiquetas JSP y Struts. Se empleará XML para el intercambio de información a través de los WebServices de la aplicación. Se emplearán los formatos Excel y PDF para realizar diversas exportaciones de datos. 2.2.3 Elementos de la arquitectura En este apartado se definirán los elementos que conforman la arquitectura. Éstos son principalmente los elementos que sustentan el framework de desarrollo del MPTAP. La arquitectura base sigue el patrón de diseño MVC. La finalidad de este patrón es hacer una 17/90 distinción entre la lógica de toda la aplicación y la lógica propia de la presentación. De esta forma los objetos que pertenecen a la aplicación se dividen en tres tipos: modelo, vista y controlador. A continuación se detalla cada uno dee ellos: 2.2.3.1 Modelo El modelo engloba todo relacionado con los datos, es decir, los objetos de persistencia y la capa de acceso de acceso a datos, que nos permite realizar las operaciones de búsqueda, inserción actualización y borrado sobre los datos definidos en la base de datos. Lo ideal es que el modelo sea independiente del sistema de almacenamiento. Además, dentro del modelo se definen las reglas de negocio en cuanto a los atributos de la entidades y las posibles relaciones existentes en dichas entidades. Esta capa se implementará en RFH mediante el uso del framework Hibernate. 2.2.3.2 Vista La Vista es la que se encarga de mostrarle al usuario la información del modelo y de redireccionar los eventos/acciones del usuario hacia el Controlador. Esta capa se implentará en RFH mediante páginas Web dinámicas usando JSP y Servlets. 2.2.3.3 Controlador El Controlador es quien gestiona las entradas del usuario. Se encarga de recibir los eventos de entrada y mapea las acciones que se deben llevar a cabo para cumplir con los requerimientos del negocio. Una vez ejecutada la acción correspondiente a la entrada que ha dado el ususario, el controlador seleccionará la vista apropiada como respuesta a la petición realizada. En esta vista se mostrará la información al ususario. Esta capa se implementa en RFH, mediante el uso del framework Struts, el cual provee un Controlador por defecto que se define en un fichero de configuración. 18/90 Figura 4 – Modelo Vista Controlador A continuacíón se detallan los frameworks mas importantes utilizados en la aplicación y como se aplica cada uno para lograr satisfacer los elementos de la arquitectura definidos previamente. 2.2.4 Marcos de trabajo de la arquitectura La arquitectura anteriormente descrita se basa en 3 de los frameworks más importantes y que en gran medida se están convirtiendo en estándares de uso en las diferentes capas en las que intervienen. Éstos son: Struts, Spring e Hibernate. A continuación describimos brevemente cada uno de ellos. 2.2.4.1 Struts Struts es un framework para la creación de aplicativos web basados en el patrón de diseño MVC. Proporciona una serie de facilidades que permiten que nos podamos concentrar en la lógica y el control del aplicativo y dejar de lado otros aspectos más mecánicos que ya tiene implementados. 19/90 Struts proporciona, entre otras, las siguientes facilidades: • Un Controlador principal ya implementado (patrón Front Controller con Dispatcher View). • Gestión automática de los formularios con refresco entre pantallas y su posible validación. • Gestión de los errores presentándolos en la vista. • Internacionalización del aplicativo (multiidioma). • Librería de tags para poder ser usados en las vistas. • Permite añadir filtros de proceso (patrón Decorating Filter). • Un único fichero de configuración que liga los controladores con los formularios de la aplicación y deja clara su interacción y tiempo de vida. El framework de desarrollo de aplicaciones J2EE del MPTAP utiliza como base Struts y lo extiende añadiendo un conjunto de servicios adicionales y patrones. Struts en RFH Para el desarrollo de RFH se utiliza la versión Struts 1.2.7. Para el uso de Struts en RFH se define en el fichero struts-config.xml todas las posibles entradas que atiende la aplicación, la acción a realizar ante cada entrada y las posibles salidas de cada acción. De esta forma se hace uso del controlador proporcionado por Struts a través de esta configuración. Luego las acciones a ejecutar son clases Java que extienden de las Clase Action de Struts. En estas clases se hace uso de las clases de negocio propias de la aplicación. Las clases de negocio son las encargadas de implementar toda la lógica relacionada con RFH. En el fichero strus-config.xml se definirán los formularios a utilizar en la aplicación. Estos formularios su utilizan para enviar los datos desde la vista al servidor. Cada formulario se implementa como una clase ActionForm y se asocia al formulario en el fichero de configuración de struts. 2.2.4.2 Spring Spring es un framework J2EE basado en código “Open Source”. Su núcleo posibilita el manejo de objetos y sus dependencias, sin necesidad de implementar las llamadas entre ambos, esta técnica es llamada inversión del control (IOC). De esta manera por ejemplo se puede conseguir que un Data Access Object (DAO) dependa de un DataSource, sin 20/90 necesidad de hacer referencias en el código utilizando XML para su descripción. Spring posee entre otras las siguientes características: • Descripción declarativa de transacciones para cualquier clase sin necesidad de EJBs. • Framework Robusto utilizado en aplicaciones en producción con misiones críticas. • Spring tiene soporte para otros frameworks tales como Struts, Hibernate, haciendo más fácil su integración. • Es un contenedor ligero para la Inversión del Control. • Plantillas de soporte para los más importantes Mapeadores de Acceso a Datos (ORMs) y JDBC. • Ayuda a organizar la capa de negocio y gestionar las llamadas entre capas. • Reduce código y mejora los tiempos de desarrollo. Spring en RFH Para el desarrollo de RFH se utiliza la versión Spring 2.5.6. La principal función de Spring en RFH es servir de inicializador y contenedor de objetos. A través de archivos XML, Spring inicializa los objetos DAO, Manager y Model que se utilizan posteriormente en la aplicación. En la siguiente tabla se muestran donde se definen los objetos que inicializa y gestiona el contendor de Spring: Fichero applicationContext-daos.xml Objetos a Inicializar En este fichero se declaran los DAO’s a utilizar en la aplicación En este fichero se declaran los Manager a utilizar en la aplicación. Además se asocian applicationContext-managers.xml los DAO’s creados previamente a los Mangers que lo utilizarán. En este fichero se define el paquete que debe escanear Spring para encontrar las clases Model encargadas de hacer el mapeo a las tablas de la base de datos. Además en este fichero se configura el manejo de las transacciones de base de datos applicationContext-hibernate.xml que gestionará Hibernate. 2.2.4.3 Hibernate Hibernate es un framework Java “Open Source” que proporciona mecanismos de mapeo objeto/relacional para definir cómo se almacenan, eliminan, actualizan y recuperan los objetos Java. Además, ofrece servicios de consulta y recuperación que pueden optimizar los esfuerzos de desarrollo dentro de entornos SQL y JDBC. 21/90 Reduce el esfuerzo necesario para convertir hojas de resultados de la base de datos relacional en objetos Java. Hibernate en RFH Para el desarrollo de RFH se utiliza la versión Hibernate 3.2.5. Hibernate se utilizará para implementar la capa de datos de la aplicación. Este framework permite realizar un mapeo de las tablas definidas en la base de datos a clases Java, por lo que cada una de las tablas creadas para RFH estarán mapeadas a una clase Java con el mismo nombre que llamaremos clases Model. Adicionalmente de la clase Model, cada tabla tendrá una clase DAO que permitirá realizar al resto de la aplicación las operaciones sobre los datos de cada tabla. A continuación se muestra un diagrama donde se puede ver como se realiza la interaccción entre las distintas capas que componen RFH: Figura 5 – Diagrama de Componentes de RFH 22/90 2.3 Excepciones El catálogo de excepciones recoge el conjunto de verificaciones relacionadas con el propio diseño o con la arquitectura del sistema. La gestión de excepciones permite informar al cliente de que ha habido un error en la llamada de un método. Esta excepción podrá después ser tratada de manera adecuada y si es necesario se presentará en pantalla al usuario, se enviará un correo, etc. 2.3.1 Clases de excepciones El diseño del tratamiento de excepciones se va a desarrollar según las siguientes consideraciones: • Todas las excepciones que se produzcan en el sistema se van a encapsular en excepciones de aplicación, de manera que el posterior tratamiento de las mismas pueda ser centralizado y uniforme. • Durante la ejecución es posible que se produzcan situaciones anómalas que serán controladas, y que recibirán diferentes tratamientos. En algunos casos solo se mostrará un mensaje informando del error que se ha producido, en otros, la propia aplicación intentará invocar de nuevo y de manera automática el servicio que ha fallado (para registro en REC por ejemplo), y en otra, se mostrará un mensaje indicando que la tarea se realizará automáticamente pasados un tiempo determinado. • Para el caso de los servicios externos, se registrarán en la base de datos estos errores para que luego puedan ser consultados. Además todos los errores dejarán trazas a nivel de log para poder hacerles seguimiento, para ello se utilizará el mecanismo de estándar log4j. • Para todas las excepciones que se produzcan en la aplicación, tanto por causas internas como externas, se redireccionará a una pagina de error donde se notificará al ciudadano que se ha producido un error y el detalle del mismo. La descripción asociada a los errores que puedan producirse en la aplicación estará almacenada en ficheros de propiedades (ApplicationResources.properties en el framework), y la información relativa a su tratamiento vendrá dada en el manejador correspondiente al error. Dentro de las excepciones funcionales vamos a controlar los siguientes tipos de errores: • De base de datos • De Alfresco • De Sistemas externos 23/90 • De aplicación • De usuario Mostrando un mensaje informativo para el caso que corresponda. Atendiendo a la naturaleza de las excepciones podemos clasificarlas como propias del framework que el MPTAP nos proporciona, o técnicas y funcionales o de negocio. A continuación se describe cada una de ellas. 2.3.1.1 Excepciones del Framework Se producen en la ejecución de la aplicación y corresponden a los posibles errores de procesamiento no esperados en la ejecución normal, como por ejemplo que la base de datos de consulta esté caída. En estos casos las excepciones reproducen la información técnica del error para llevar un registro del fallo, y posteriormente se propagan. Los errores de sistemas habrán de ser atendidos por los Administradores del Sistema, de Bases de Datos, del Servidor de Aplicaciones o del Servidor Web. Figura 6 – Diagrama de clases del módulo de excepciones del framework 24/90 2.3.1.2 Excepciones Funcionales o de negocio Son aquellas que tienen definido un tratamiento desde el análisis funcional. Es decir, que se corresponden con un error del que se desea propagar y tomar acciones determinadas frente al usuario final (bien sea mostrando un mensaje con la descripción del error, ejecutar algún proceso alternativo, etc). 2.3.2 Tratamiento de excepciones Las posibles causas de generación de errores en las aplicaciones son las que a continuación se enumeran: • Excepciones del compilador de Java 2 Platform, Standard Edition (JDK 1.6.x). Errores elevados por los distintos paquetes que componen el API del JDK 1.6.x • Excepciones producidas por el Java 2 SDK Enterprise Edition (J2EE). Errores propagados desde los paquetes para el desarrollo de Servlets y EJB • Excepciones de cualquier paquete adicional utilizado. Todos los paquetes usados dentro de una aplicación elevarán sus propios errores. Como por ejemplo, la utilización del motor OR Hibernate. Podríamos considerar que el framework de desarrollo es un paquete adicional. • Excepciones propias de la aplicación. Dentro de éstas estarán las excepciones puramente funcionales de cada aplicación. Desde el punto de vista del tratamiento que pueden recibir, una vez que se han generado, los errores se van a clasificar en: • Recuperable. Este es un caso especial en el que la propia aplicación puede recuperar el error y volver a invocar al método en el que se produjo el mismo. Serán considerados errores recuperables aquellos que se produzcan en operaciones en las que tenga sentido algún reintento, en caso de fallo. Los errores que se produzcan durante el registro de la solicitud en REC recibirán este tipo de tratamiento, ya que la propia aplicación intentará de forma automática realizar el registro y en segunda instancia lo intentará el administrador. 25/90 • Redireccionable. Todas las excepciones definidas en el módulo de tratamiento de errores serán redireccionables, de manera que cualquier error que se produzca en el sistema, una vez capturado, permitirá un tratamiento que redirija al usuario a una página genérica de error, o en el caso en el que se haya configurado para la excepción generada, a una página específica de este error en concreto. En este tipo de tratamiento entran los errores que se producen en la aplicación. Cualquier error que se produzca se redireccionará a una página genérica donde se mostrará el detalle del error que se ha producido. • Auditable. Cualquier excepción que se produzca en el sistema será auditada (escrita en un log de aplicación), de forma que puedan identificarse fácilmente todos los errores que se produzcan en el mismo. Para permitir una mayor flexibilidad, y debido a la integración con el estándar log4j, la configuración del nivel de errores a auditar se especificará de forma declarativa. Para cualquier error que se genere en la aplicación se dejarán trazas en el fichero de logs. Ademas para los servicios externos, se guardarán en base de datos los errores producidos para poder realizar un análisis más detallado de los mismos. • Notificable. Algunos de los errores funcionales que se definan en la aplicación, una vez capturados, necesitarán un tratamiento específico, como podría ser la notificación del error acaecido a una determinada persona o colectivo. Los errores que se produzcan durante el registro de la solicitud recibirán este tipo de tratamiento, ya que la aplicación notificará al Administrador y Centro Gestor (correspondiente) a través de un correo electrónico del error que se ha producido para que estos estén al tanto y puedan tomar las acciones necesarias para su solución. 26/90 2.4 Estándares y normas de diseño y construcción El objetivo de este apartado es describir los estándares y las normas de diseño y construcción que van a ser empleados en la elaboración de la aplicación. Se detallarán los patrones definidos y utilizados en el desarrollo de RFH, que permiten estructurar la aplicación de la mejor manera. 2.4.1 Estándares de codificación Como estándar de codificación se va a emplear el que Sun MicroSystems ha definido. La especificación del mismo se puede encontrar en la URL http://java.sun.com/docs/codeconv/CodeConventions.pdf. 2.4.2 Herramientas de calidad en código Para asegurar la calidad en código vamos a emplear un conjunto de herramientas que son descritas a continuación: 2.4.2.1 Java - Checkstyle Checkstyle es una herramienta de desarrollo, cuyo objetivo es guiar a los programadores en el desarrollo de un código de Java que cumpla un estándar de codificación. Así el objetivo principal será, establecer una serie de reglas de calidad para la automatización del análisis de código estático mediante esta herramienta, en desarrollos sobre Java. Esto la convierte en la herramienta ideal para los proyectos que deseen ajustarse a un estándar de la codificación y calidad. Checkstyle es altamente configurable y adaptable a casi cualquier estándar de codificación. Con la utilización de esta herramienta se pretende mejorar el rendimiento de las aplicaciones así como la calidad del código generado. Esta herramienta se integrará con el entorno de desarrollo Eclipse para Java. 2.4.2.2 PMD PMD es un analizador del código fuente de Java. Mediante esta herramienta y de forma automática podemos realizar el análisis estático de nuestras aplicaciones Java. Incluye herramientas de detección de código idéntico. 27/90 PMD escanea el código Java en busca de problemas potenciales como: • Posibles bugs, como sentencias try/catch/finally/switch incompletas. • Código que no se usa: variables locales, parámetros y métodos privados. • Código poco optimo. • Expresiones redundantes. • Código duplicado. Además PMD se integra con la herramienta de desarrollo Eclipse. La información completa sobre esta herramienta se puede encontrar en http://pmd.sourceforge.net. 2.4.3 Patrones En este apartado se van a describir los patrones de diseño que el framework ha adoptado para la construcción de la aplicación. 2.4.3.1 Patrones de presentación Front Controller El Sistema requiere de un punto centralizado de todas las peticiones para soportar la integración de los servicios, obtención del contenido, gestión de las vistas y navegación. Se propone usar un Controller como punto inicial de toda petición. Éste se encargará de gestionar la petición invocando servicios generales, delegando el proceso de la lógica de negocio, decidiendo qué vista mostrar, realizando la gestión de los errores, etc. (un Servlet principal que recibe todas las peticiones). Este Controller lo provee el Framework de Struts a través del uso de un ActionServlet y su definición se especifica en el fichero web.xml: <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> De esta forma delegamos el procesamiento de las peticiones que llegan a RFH al controlador de Struts y que a través de la configuración del fichero struts-config.xml se encargará de redireccionar las peticiones al componente correspondiente. 28/90 Dispatcher View La capa de Presentación cambia a menudo y es difícil de mantener y desarrollar, debido a la mezcla entre la lógica de acceso a datos y la lógica de formateo de presentación. Esto hace que el sistema sea menos flexible, reutilizable y sostenible. La solución en lo anterior consiste en combinar un patrón Dispatcher con las vistas y los helpers (tags de ayuda, como norma general) para gestionar las peticiones y que sea responsable de la gestión de las vistas y la navegación. Este Dispatcher puede combinarse dentro del FrontController o como un componente separado que será llamado por éste. Este Patrón lo provee el Framework de Struts a través del uso de los forwards que se configuran en el fichero de configuración struts-config.xml y que permite definir un conjunto de redireccionamientos para cada acción dependiendo del valor de retorno de la ejecución de dicho Action. Luego en base a estos forwards se mostrará la vista correspondiente A continuación se muestra un ejemplo de las posibles vistas que se pueden mostrar para un Action de la aplicación RFH: <actionpath="/action/altaHabilitacion" type="es.map.rfh.action.habilitacion.AltaHabilitacionAction" name="altaHabilitacionForm" validate="false" scope="request"> <forwardname="success"path="pages.confirmacion "/> <forwardname="error"path="pages.errorGenerico"/> </action> En este caso el Action AltaHabilitacionAction desencadenará el proceso de alta de una habilitacion en RFH con los datos que reciba en el formulario “altaHabilitacionForm”. Si el alta se realiza correctamente, se mostrará la página de confirmación. En caso de que se produzca un error, se muestra la página de error. Composite View Las páginas Web presentan contenido de diferentes fuentes, usando múltiples subvistas que componen finalmente una única página. Estas múltiples subvistas varían frecuentemente. La modificación del layout de vistas múltiples es difícil de mantener y no exenta de errores debido a la duplicación de código. 29/90 El empleo de este patrón permite usar vistas compuestas por múltiples subvistas atómicas, incluidas dinámicamente mediante la definición de plantillas, de forma que el layout de la página sea gestionado de forma independiente a su contenido. En RFH se usa un layout básico definido en el fichero basicLayout.jsp. El layout luego se informa con el contenido que se debe mostrar según cada caso. Esto se define en el fichero tiles-defs.xml. A continuación se muestra un ejemplo de configuración de una ventana con basicLayout: Para mostrar la lista de habilitaciones se usa el layout básico el cual se compone de un header, título, body y footer: <definitionname="pages.buscarHabilitaciones" path="/layout/basicLayout.jsp"> <putname="header" value="/layout/template/header.jsp "/> <putname="title"value="Búsqueda de habilitaciones"/> <putname="body"value="/jsp/buscarHabilitaciones.jsp"/> <putname="footer"value="/layout/template/footer.jsp"/> </definition> 30/90 • • • • • • basicLayout.jsp header.jsp menu.jsp Título (Cadena) Cuerpo (JSP cuerpo) footer.jsp 2.4.3.2 Patrones de negocio Value Object Este patrón va a ser empleado para encapsular los datos de negocio. Los problemas que solventa el empleo de este patrón son: • • Modelar la información de negocio. Integración entre la capa de presentación y la capa de negocio. En RFH se crean clases Java que encapsulan los datos a usar en las operaciones de negocio. Estos objetos Bean facilitan el flujo de información entre la capa de negocio y la capa de datos. Factory El patrón Factory permite la instancia de objetos en tiempo de ejecución. La ventaja de utilizar este patrón de diseño es que tenemos centralizada la creación de los objetos en una clase que dependiendo de un parámetro, nos devuelve instancias de los mismos. Es una forma de tener el control de la creación de objetos. Para que la creación centralizada de objetos sea lo más útil y eficaz, todos los objetos creados descienden de la misma clase o implementan el mismo interface, con lo que se podrá usarlos todos de la misma manera, con los mismos métodos gracias al polimorfismo, y sin estar ligados a una clase concreta en cada momento. 2.4.3.3 Patrones de integración Data Access Object (DAO) Este patrón consiste en usar un objeto de acceso a datos que abstraiga y encapsule todo el acceso a la fuente de datos, evitando así el acceso a las fuentes de manera compleja. De esta manera cuando la capa de lógica de negocio necesite interactuar con la base de datos, 31/90 ésta utilizará los métodos ofrecidos por DAO. Generalmente la clase de operaciones que ofrece la capa de datos se le conoce como CRUD (Create, Read, Update y Delete). En RFH se ha creado para cada tabla de la Base de Datos una Interfaz DAO y una Clase que implementación esta interfaz usando Hibernate. Esta clase contiene los métodos (crear, modificar, eliminar y buscar) sobre la tabla correspondiente. El uso de una interfaz permite aislar la tecnología usada en la implementación usada para la interacción con la base de datos y de esta forma facilitar el mantenimiento futuro de la aplicación. Los DAOs que se usan en RFH se definen en un fichero de configuración de Spring llamado applicationContext-daos.xml. struts-config.xml ActionServlet Manager Action DAO Browser JSP ActionForm Bean QueryBean Model Tags SearchResult Capa de Presentacion Capa de Lógica de Negocio Capa de Acceso a Datos Figura 7 – División de la arquitectura del framework con patrones Como se aprecia en el diagrama, la capa de presentación se define por la arquitectura de Struts. La capa de negocio, sin embargo, viene definida por dos componentes: • Manager. Son los objetos de proceso de la lógica de negocio desarrollados con java puro, de manera que la capa de presentación sea independiente de la lógica. Esta 32/90 separación permite que por futuras tendencias hacia otros frameworks o tecnologías, la lógica de negocio se mantenga invariable. • Bean. Son los objetos que mantienen los datos de la lógica de negocio. La capa de acceso a datos se define por tres componentes: • Data Access Object (DAO). Son los objetos que encapsulan toda la lógica de acceso a datos • Model. Son los objetos que reflejan la estructura de cada una de las tablas de BD gracias al Mapeo objeto-relacional de Hibernate. • QueryBean. Al igual que Model, reflejan la estructura de las tablas de BD, además de proporcionar funcionalidad para la generacion de Criteria. • SearchResult. Objetos que encapsulan los resultados A continuación se presenta el diagrama de secuencia genérico de una petición realizada del cliente al servidor usando los distintos componentes de la aplicación: 33/90 Figura 8 – Diagrama de Secuencia Generico 34/90 De acuerdo a este diagrama, el ActionServlet de Struts resuelve, a partir de la configuración, a qué Action invocar y pasar el ActionForm. Las Action crean los objetos Bean, a partir de los datos del formulario, y se envían a los objetos Manager. Los Manager crean objetos QueryBean o Model,que pasan a los DAOs cuando quieren persistir u obtener información de la capa de datos. Se crearan Model para las operaciones simples. Si la operación es compleja se pueden crear QueryBeans para facilitar la composición de la query haciendo uso de Criteria, así como aplicar paginación y ordenación. Los objetos DAO, que heredan de la clase AbstractHibernateDao, acceden a BD haciendo uso de Hibernate y retornan el resultado a la capa de negocio. Este resultado será o bien un objeto Model o una colección de ellos encapsulados en un objeto SearchResult Una vez se ha obtenido la información de la capa de datos, los Manager convertirán los Model resultantes a objetos Bean, para posteriormente devolverlos al Action. El Action podrá enviar la información a la JSP o bien por vía Request o vía ActionForm. 2.4.4 Mecanismos Comunes 2.4.4.1 Validaciones RFH realizará únicamente validaciones en el servidor, por lo que no se crearán funciones javascript a tal efecto. Los objetos ActionForm serán los encargados de implementar un método validate que valide los campos del formulario y devuelva un objeto ActionErrors a la JSP. Si se produce uno o varios errores se mostrará el o los mensajes de error en la misma página. 2.4.4.2 Gestión de listados El mecanismo de Gestión de listados dará soporte tanto a la paginación como a la ordenación de listados y se compondrá de: • ListadoUtilBean: Objeto que encapsula los campos necesarios para manejar la paginación y la ordenacion. El encargado de crear este objeto, así como los métodos de su acceso, es el ActionForm. Será recuperado por el Action y pasará al Manager. El Manager, al crear el objeto QueryBean, le pasará la información de paginación y ordenación. 35/90 • ListadoUtil: Clase que contiene métodos estáticos que ofrecen la funcionalidad común de paginación y ordenación. Se accederá a esta clase únicamente desde los objetos QueryBean. 2.4.4.3 Navegación Como se ha definido en este documento, la navegación está soportada por Struts y siempre será una navegación “de avance”. Esto quiere decir que los botones “Volver” desencadenarán el mismo proceso que cualquier otro botón, delegar en Struts para resolver la siguiente acción a ejecutar. Tampoco se podrá retroceder en la navegación a través de las flechas del navegador. Para esto se bloqueará esta funcionalidad en el marco base para todas las JSPs de la aplicación. Siempre que se desee retroceder en la navegación (como hemos visto, sólo a nivel visual) y mostrar la pantalla anterior como estaba, se hace necesario utilizar un sistema de persistencia del formulario entre transiciones de la navegación. 2.4.4.4 Persistencia de formularios El estándar en este aspecto para RFH consistirá en que el Action que recibe el ActionForm de la pantalla que deseamos mantener, lo envíe a la siguiente JSP vía Request. Esta JSP se encargará de enviarlo de nuevo al Action correspondiente. 2.4.4.5 Caché En RFH no se utilizará la caché para hacer una precarga inicial de combos ni para paginar en memoria los resultados de las consultas a BD. Cualquiera de estos casos supondrán consultas independientes a BD. 2.4.4.6 Accesibilidad y usabilidad RFH no será accesible en su totalidad, ya que algunas pantallas de la aplicación requieren la ejecución de código javascript por requisitos propios de la aplicación. Por ejemplo, para que un usuario pueda firmar electrónicamente una habilitación, es necesario usarel cliente de firma de @firma. Este cliente es un applet de Java que se instala en el ordenador del usuario a través de javascript. Si se deshabilita javascript en el ordenador del usuario, no se podrá 36/90 usar correctamente esta funcionalidad de la aplicación. En cuanto a la usabilidad, la aplicación se adaptará a la guía de estilos del 060. Las diferentes pantallas de RFH mostrarán un estilo estandarizado, en donde se mantendrá un cabecera y pie de página común en todas sus páginas. Únicamente variarán las opciones del menú que se muestran al usuario dependiendo de su perfil. Además,la aplicación podrá visualizarse correctamente en los principales navegadores: Internet Explorer (a partir de la versión 7), Firefox (a partir de la versión 3.6). 2.4.4.7 Javascript En RFH se hará uso de Javascript en los siguientes casos: 1. Firma Electrónica: como se ha comentado anteriormente, la firma electrónica se realiza usando el Applet Java de @firma. Este applet se instala mediante la invocación a librerias de Javascript. Estas librerias se importarán en aquellas páginas de la aplicación donde sea necesario la firma del usuario. 2. Selección de Fechas: la aplicación provee un calendario para facilitar la selección de fechas por parte del usuario. Este calendario esta implementado completamente en javascript y se muestra cuando el usuario pulsa sobre el icono correspondiente. Si el usuario desea introducir la fecha manualmente, sin hacer uso del calendario proporcionado, podrá hacerlo. 3. Búsquedas Avanzadas: algunas búsquedas de la aplicación proveerán filtros de búsqueda avanzado que solo se mostrarán cuando el usuario desea hacer uso de ellos (por defecto no se muestran). Para ello, la aplicación porporcionará un icono que mostrará los filtros cuando el usuario lo pulse. Esto se hará a través de javascript 4. Filtros de Búsqueda Específicos: los filtros mostrados en algunas búsquedas dependerán de valores seleccionados en otros campos. En estos casos, se controlará a través de funciones javascript los valores seleccionados o marcados en un campo y dependiendo de este valor, se mostrará un campo u otro. 5. Confirmación de Acciones: para la confirmación de las acciones realizadas por los usuarios, se mostrará una ventana de confirmación a través de una funcion javascript. 2.4.4.8 Log El sistema de log está soportado por las librerías de log4j de Apache y registrará los 37/90 siguientes eventos de la aplicación: • Entrada y salida del método: Se registrará con el tipo “info” e incluirá nombre de la clase y del método. • Error: Se registrará en los catch de la aplicación, con el tipo “error” e incluirá el mensaje de error. 2.5 Entorno tecnológico En este apartado se va a definir en detalle todos los componentes que formarán parte de la infraestructura técnica de los distintos entornos que soportan el sistema. El hardware básico que será necesario para la aplicación estará compuesto por servidores con arquitectura Solaris 10 que proporcionan entre otros los siguientes servicios: • Contenedor servicios lógica negocio: JBOSS 5.1.0, servidor de aplicaciones web que desplegará la aplicación de registro. • SGBD: Oracle 11g, base de datos que se encargará de almacenar la información relativa a los asientos registrales así como la información asociada a la gestión y tratamiento de los mismos. A continuación se especifican las librerías más importantes utilizadas en RFH y qué utilidad se les da dentro de la aplicación. Librería Versión Descripción alfresco-core.jar Librería que permite conectarse a los servicios web de Alfresco para la gestión de documentos. alfresco-repository.jar Librería que permite conectarse a los servicios web de Alfresco para la gestión de documentos.. alfresco-web-service- Librería que permite conectarse a los servicios web de Alfresco para la gestión de documentos.. client.jar axis-1.4.jar 1.4 Librería utiliza para la comunicación con los servicios Web a través de protocolo SOAP. Se utilizará para la conexión con los servicios web del REC y RCP. frameworkmap.jar 2.0 Librería donde se encuentran las funcionalidades proporcionadas por el framework del MPTAP. Entre ellas la del servicio de envio de correos electrónicos. frameworkmapweb.jar 2.0 Librería donde se encuentran las funcionalidades web proporcionadas por el framework del MPTAP. 3.2.5 Librería core de Hibernate. hibernate-3.2.5.ga.jar 38/90 Librería Versión Descripción Librería de Hibernate para el uso de anotaciones. hibernate-annotations.jar 3.6.0 Librería utilizada para generar documentos en formato PDF. En RFH se utiliza para la genreación de justificantes de credenciales en formato PDF. 1.2 Librería utilizada para la gestión de trazas en la aplicación. 3.6 Librería utilizada para exportar a Excel los listados que se muestran en la aplicación: funcionarios, habilitaciones, etc. 2.5.1 Librería utilizada para exportar a Excel. 1.4.5 Librería que permite planificar tareas para ejecutarse a una hora determinada. Esta librería se utilizará para programar los procesos automáticos de verificación de criterios de habilitaciones y de alta de funcionarios. 1.2.7 Librería core de Struts. 2.5.6 Librería core de Spring. jasperreports-3.6.0 log4j-1.2.15.jar poi-3.6 poi-scratchpad-2.5.1 quartz.jar struts-1.2.7.jar spring-2.5.6.jar Además, puesto que los desarrollos del RFH están basados en el framework propuesto por el MPTAP, se aconseja mantener las versiones de las librerías y herramientas incluidas en el mismo. A continuación se muestra una tabla que contiene el nombre de la librería así como la versión de la misma: Librería Versión URL Referencia activation.jar 1.1 http://java.sun.com/products/javabeans/jaf/ antlr-2.7.5H3.jar 2.7.5 http://www.antlr.org/ asm.jar 1.5.3 http://asm.objectweb.org castor-0.9.5.3-xml.jar 0.9.5.3 http://www.castor.org/xml-framework.html cglib-2.1.jar 2.1 http://cglib.sourceforge.net/ commons-beanutils.jar 1.6 http://jakarta.apache.org/commons/beanutils/ 2.1.1.jar 2.1.1 http://jakarta.apache.org/commons/collections/ commons-dbcp.jar 1.0 http://jakarta.apache.org/commons/dbcp/ commons-digester.jar 1.5 http://jakarta.apache.org/commons/digester/ 1.0 http://jakarta.apache.org/commons/fileupload/ commons-collections- commons-fileupload1.0.jar 39/90 Librería Versión URL Referencia commons-io-1.0.jar 1.0 http://jakarta.apache.org/commons/io/ commons-lang.jar 1.0.1 http://jakarta.apache.org/commons/lang/ commons-pool.jar 1.0.1 http://jakarta.apache.org/commons/pool/ commons-services.jar 1.0 http://jakarta.apache.org/commons/ commons-validator.jar 1.1.4 http://jakarta.apache.org/commons/validator/ concurrent-1.3.2.jar 1.3.2 http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html dwr.jar 1.0 http://getahead.ltd.uk/dwr/ ehcache-1.1.jar 1.1 http://ehcache.sourceforge.net/ go.jar 1.0 http://teatrove.sourceforge.net/trove.html groovy-1.0-jsr-01.jar 1.0-jsr-01 http://groovy.codehaus.org/ hibernate-3.2.5.ga.jar 3.2.5 http://www.hibernate.org iText1.1.jar 1.1 http://www.lowagie.com/iText/ jakarta-oro.jar 1.1 http://jakarta.apache.org/oro/ jasperreports-3.6.0.jar 3.6.0 http://jasperreports.sourceforge.net/ js.jar 1.6 R1 http://www.mozilla.org/rhino/ jstl.jar 1.1.2 http://java.sun.com/products/jsp/jstl/ mail.jar 1.4 http://java.sun.com/products/javamail/ NCSOW.jar Domino 5 http://www-10.lotus.com ognl-2.6.7.jar 2.6.7 http://www.ognl.org/ oscache-2.1.jar 2.1 http://www.opensymphony.com/oscache/ 2.5.1 http://jakarta.apache.org/poi/ 20040804.jar 2.5.1 http://jakarta.apache.org/poi/ pushlet.jar 1.0 http://www.pushlets.com/ 2.0.5 http://www.springsource.org/download poi-2.5.1-final20040804.jar poi-contrib-2.5.1-final- spring-security-core2.0.5 40/90 Librería Versión URL Referencia standard.jar 1.1.2 http://jakarta.apache.org/taglibs/doc/standard-doc/intro.html Struts-Layout.jar 1.0 http://struts.application-servers.com/ struts-legacy.jar 1.0 http://struts.apache.org/1.2.4/index.html struts-menu-2.3.jar 2.3 http://struts-menu.sourceforge.net/ tagish.jar 1.0.1 http://free.tagish.net/jaas/doc.html taglibs-session.jar 1.0.1 http://jakarta.apache.org/taglibs/doc/session-doc/intro.html 1.0.4.jar 1.0.4 http://jakarta.apache.org/commons/logging/ log4j.jar 1.2.8 http://logging.apache.org/log4j/docs/index.html xerces-2.6.2.jar 2.6.2 http://xerces.apache.org/ cactus-1.5.jar 1.5 http://jakarta.apache.org/cactus/ httpunit-1.5.3.jar 1.5.3 http://httpunit.sourceforge.net/ junit-3.8.1.jar 3.8.1 http://junit.sourceforge.net/ pushletclient.jar 1.0 http://www.pushlets.com/ dom4j-1.6.1.jar 1.6.1 http://www.dom4j.org/ jta-1_0_1B-classes.jar 1_0_1B http://java.sun.com/javaee/technologies/jta/index.jsp ojdbc14.jar 10.2.0.1.0 http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc101040.html ant-contrib.jar 1.0b2 http://ant-contrib.sourceforge.net/ frameworkmap.jar 2.0 Propia del Framework frameworkmapweb.jar 2.0 Propia del Framework commons-logging- Tabla 1 – Librerías 2.6 Requisitos no funcionales En este apartado se incluyen los requerimientos de seguridad, operación, usabilidad, etc. de la aplicación. 41/90 Código Requerimiento Nombre Descripción Solución Requerimientos Relacionados RFH_INTRAN ET-RS-001 Confidencialid ad de los datos La aplicación deberá garantizar la confidencialidad de los datos sensibles. Los datos de carácter personal manejados por el sistema deberán ser tratados como nivel básico de protección. N/A RFH-RS-002 Modo acceso de El modo de acceso a las funcionalidades restringidas de la aplicación se hará a través del navegador Web utilizando protocolo HTTPS. La aplicación identificará de manera automática a los funcionarios que accedan a las funcionalidades restringidas. La identificación de los funcionarios se realizará a través de certificado digital. Cuando el funcionario acceda a una de las funcionalidades restringidas se solicitará su identificación (cuando no se haya identificado previamente o se haya identificado pero su certificado no esté en la sesión porque ha pasado el tiempo de timeout). Para lograr esto, los componentes que implementan las funcionalidades restringidas se colocarán en una carpeta protegida a través del Apache y a la cual se podrá acceder únicamente a través de HTTPS. Una vez validado el usuario se podrá acceder a cualquier funcionalidad de la aplicación, siempre por HTTPS. N/A RFH-RS-003 Timeout sesión de La aplicación controlará el tiempo de sesión del funcionario. Cuando el usuario no mantenga actividad durante un periodo configurable entre 20 y 30 minutos, se cerrará la sesión y se obligará a autenticarse de nuevo para poder acceder a las funcionalidades restringidas de la aplicación. N/A RFH-RS-004 Log Actividad. de La aplicación debe guardar los datos de acceso de los funcionarios y las acciones que realizan. Se dejarán trazas a nivel en tablas de la base de datos para poder consultar y obtener estadísticas del acceso de los funcionarios a los distintos modulos de la aplicación N/A Tabla 2 – Requerimientos de seguridad Código Requerimiento Nombre Descripción Solución Requerimientos Relacionados RFH-RO-001 Control de errores El sistema deberá controlar adecuadamente los errores generados mediante la captura de cada error en tiempo ejecución. Los errores generados en tiempo de ejecución se capturarán de forma adecuada y se dejará trazas de los mismos en el fichero log de la aplicación. Además se guardará de forma persistente los fallos producidos en los sistemas externos para que puedan ser consultados posteriormente. Esto permitirá analizar las causas de los errores. N/A RFH-RO-002 Notificación de errores La aplicación debe permitir publicar avisos para mantener informado al usuario de errores de la aplicación. Cuando se produzcan en la aplicación se mostrará un mensaje al usuario indicando la causa del error para que este informado. N/A 42/90 Código Requerimiento Nombre Descripción Solución Requerimientos Relacionados RFH-RO-003 Tiempo de respuesta El sistema deberá proporcionar un tiempo de respuesta adecuado en la consulta de las diferentes páginas de acuerdo a las especificaciones para la aplicación web. Los valores de referencia en los tiempos de respuesta se consideran adecuados siempre que estén dentro de 4 segundos. Estos tiempos se validarán durante las pruebas de rendimiento que se realicen en la aplicación. En caso de que un proceso pueda tardar mucho tiempo, se mostrará una barra de estado al usuario para mantenerle informado del progreso del mismo. N/A RFH-RO-004 Escalabilidad La aplicación deberá construirse de tal forma que se garantice su escalabilidad. La aplicación se construirá siguiendo la arquitectura de desarrollo y los patrones de diseño establecidos por el MPTAP y su entorno de desarrollo de aplicaciones web JEE para garantizar su escalabilidad. N/A RFH-RO-005 Alta disponibilidad La aplicación deberá ofrecer servicio disponible 24x7. La aplicación estará instalada en dos servidores con un balanceador de carga para ofrecer un nivel de servicio del 99%. En las Figuras 2 y 3 de este documento, se puede consultar la arquitectura física de la aplicación que ayudará a conseguir este requerimiento. N/A RFH-RO-006 Soporte acceso concurrente La plataforma en el entorno de producción deberá soportar múltiples accesos concurrentes sin bloqueos ni perdida de funcionalidad. Se considera como un nivel de acceso óptimo que la aplicación soporte 50 usuarios concurrentes en un momento determinado. N/A RFH-RO-007 Persistencia La aplicación debe proporcionar un medio de persistencia para mantener los datos y documentos a través del tiempo. Los documentos se mantendrán a través del gestor documental Alfresco. La persistencia de los datos se realizará en el gestor de base de datos Oracle a través del framework de persistencia Hibernate. N/A RFH-RO-008 Portabilidad La aplicación deberá tener la capacidad de ser transferida desde una plataforma a otra. La aplicación será fácilmente configurable. Para ello cualquier dato que sea suceptible de modificarse, en el cambio de un servidor a otro, se dejará en ficheros externos a la aplicación y se indicará en el Manual de Instalación para que pueda ser fácilmente identificado y modificado por el área técnica encargada de la instalación en nuevos entornos. N/A 43/90 Código Requerimiento Nombre Descripción Solución Requerimientos Relacionados RFH-RO-009 Mantenimiento de Sesión La aplicación deberá ser capaz de manejar una sesión para cada usuario en un entorno de balanceador de carga. La aplicación mantendrá los datos de identificación del usuario a través de la sesión. La aplicación tendrá definido un tiempo de timeout, cuando se alcance este tiempo se eliminará la sesión del usuario. El usuario se validará una vez y podrá acceder a cualquier funcionalidad de la aplicación mientras este validado. Debido a la configuración actual de los servidores, cuando un servidor se cae, las sesiones activas en dicho servidor no se podrán traspasar a otro servidor. N/A RFH-RO-010 Calidad en el código de la aplicación La aplicación deberá ajustarse a una guía de buenas prácticas de programación. El código entregado cumplirá con las reglas de programación de Checkstyle. N/A Tabla 3 – Requerimientos operativos y de rendimiento 2.6.1 Integración con sistemas externos A continuación se detallan la integración con sistemas externos. Código Requerimiento Nombre Descripción Solución Requerimientos Relacionados RFH-RI-001 @firma La aplicación deberá integrarse con la plataforma @firma del MPTAP. La aplicación se integrará con @firma a través de los servicios Web que este proporciona para realizar la validación del certificado. Para ello, desde el action ValidarUsuarioAction se realizará la llamada a los metodos de la libreria que permtien realizar la validación. N/A RFH-RI-002 REC La aplicación deberá integrarse con la plataforma de Registro Electrónico Común (REC2) para registrar la solicitud firmada por el ciudadano. La aplicación se integrará con el REC a través de los servicios Web que este proporciona para realizar el registro y realizar consultas. N/A RFH-RI-003 Alfresco La aplicación deberá integrarse con Alfresco para la gestión de los documentos anexados a las solicitudes. La integracióin con el gestor documental se realizará a través de las librerías para conexión a través de servicios que proporciona Alfresco. En la aplicación se importará la librearía que implementa el cliente del servicio Web: alfresco-web-service-client.jar N/A 44/90 Código Requerimiento Nombre Descripción Solución Requerimientos Relacionados RFH-RI-004 RCP La aplicación deberá integrarse con el Registro Central de Personal La aplicación se integrará con el RCP a través de los servicios Web que éste proporciona para realizar el alta de funcionarios. N/A RFH-RI-005 Directorio El Directorio es la base de datos maestra que contiene todos los organismos de la AGE. La aplicación se integrará con el Directorio para obtener la información de los ministerios que se quieran adherir al RFH. N/A RFH-RI-006 Servidor Correo Servidor correo ministerio. El RFH se conectará a este servidor para enviar los avisos que se generen para el ciudadano o funcionario en cuanto a la gestión de las habilitaciones. N/A de del Tabla 4 – Requerimientos de Integración Para más detalle sobre la integración se anexa el documento que recoge toda la información. RFH_Diseño de Interfaces con Servic 2.6.2 Alfresco En RFH la generación y manejo de justificantes es una parte esencial del proceso de habilitaciones. Los documentos que se generan durante el alta, modificación o revocación de una habilitación son documentos en formato PDF que luego pueden ser consultados por los funcionarios de la aplicación. Por lo tanto, estos documentos se almacenan en Alfresco para luego poder hacer uso de ellos. Los tipos de documentos que se deben gestionar en RFH son los siguientes: - Credencial: documento que contiene las habilitaciones activas de un funcionario. - Justificante de Credencial: documento que contiene la información de registro en el REC de una credencial Estos documentos están asociados a cada funcionario, por lo que en Alfresco se creará una carpeta para cada funcionario dado de alta en la aplicación. El nombre de cada carpeta será el identificador del funcionario en la tabla RFH_FUNCIONARIO. A continuación se detallan los aspectos más relevantes relacionados con la gestión que realiza RFH de los documentos a través de Alfresco. 45/90 2.6.2.1 Integración con Alfresco RFH se integrará con Alfresco utilizando los servicios Web que este proporciona. La invocación a los servicios Web de Alfresco se realiza utilizando las siguientes librerías: alfresco-core.jar, alfresco-repository.jar, alfresco-web-service-client.jar. Estas librerías proporcionan las funcionalidades necesarias para realizar operaciones sobre los documentos: insertar, borrar y obtener un documento. RFH proporcionará una clase gestora (GestorDocumental.java) que implementará las operaciones mencionadas. Esta clase será transversal a la aplicación, ya que podrá ser usada por todos los módulos que deseen subir un documento a Alfresco. A continuación se detalla la lógica a seguir dentro de la aplicación para cada una de las operaciones que se realizan con los documentos: Inserción de un documento Para insertar un documento en Alfresco, se debe indicar tres cosas: la ruta donde se debe almacenar el documento, el nombre del documento y el contenido del documento (bytes). Si la ruta que se pasa no existe (por ejemplo cuando se suba el primer documento de un funcionario), la aplicación intentará crear la ruta antes de subir el documento. El nombre del documento debe ser único en la ruta donde se crea. Para garantizar esto, se concatenará al final del nombre del documento el identificador dela credencial asociada al documento que se inserta (esto garantiza que sea único ya que para cada credencial solo exisitrá un documento Credencial, Justificante de Credencial y Justificante de Descarga). Además para el caso de la Credencial del funcionario, se añade el número de registro en REC al nombre del documento para tener más información. De esta forma los nombres de los documentos que se almacenan en Alfresco para RFH son: - Credencial_IDCREDENCIAL_NUMEROREGISTRO.pdf - JustificanteCredencial_IDCREDENCIAL.pdf Obtener documento Para obtener el contenido de un documento se debe indicar la ruta del documento en Alfresco y el nombre del documento. Borrado de un documento Para borrar un documento de Alfresco, se debe indicar: el nombre del documento que se 46/90 desea borrar y la ruta donde se encuentra dicho documento. Como se ha comentado, para realizar cualquiera de las operaciones mencionadas anteriormente, se debe indicar la ruta del documento en Alfresco. Esta ruta se puede componer para cada documento a partir de los datos almacenados en la base de datos. Concretamente, se deben usar los siguientes datos: • ID_FUNCIONARIO: identificador en la tabla RFH_FUNCIONARIO del funcionario al cual pertenece la credencial. • TIPO_DOCUMENTO: Tipo de documento que se desea buscar: Credencial, o Justificante. Corresponde al campo ID_TIPO_DOCUMENTO de la tabla RFH_ANEXO_CREDENCIAL. • NOMBRE_ALFRESCO: nombre que se le ha dado al documento en Alfresco. Corresponde al campo COD_NOMBRE_ALFRESCO de la tabla RFH_ANEXO_CREDENCIAL. Con estos datos se puede generar la ruta en Alfresco donde se encuentra el documento. La ruta se genera de la siguiente manera: “Company Home” > “RFH” >“Funcionarios” >IDFUNCIONARIO>TIPO_DOCUMENTO>NOMBRE_ALFRESCO 2.6.2.2 Configuración de Alfresco en RFH Los datos de configuración relacionados con el Alfresco se dejarán en el fichero de propiedades gestDocumental.properties: URL, usuario, password, aplicación. 2.6.2.3 Estructura de Carpetas en Alfresco Para el correcto funcionamiento de la aplicación, es necesario disponer de la estructura de directorios adecuada en Alfresco. La carpeta base de Alfresco es “Company Home”. En esta carpeta se almacenan por defecto todos los contenidos que se guardan en el gestor documental. 47/90 Para RFH, se debe crear una carpeta raíz llamada “RFH” (en Company Home). De esta carpeta colgará una carpeta llamada “Funcionarios” donde se almacenarán los documentos de generados para cada funcionario. Para cada funcionario se creará una carpeta cuyo nombre sera el identificador del funcionario en la tabla RFH_FUNCIONARIO. Dentro de la carpeta del funcionario se almacenarán las Credenciales, Justificantes de Credencial. A continuación se muestra la estructura que se mantendría en Alfresco para RFH: Según la estructura definida anteriormente, la ruta a la credencial del funcionario con id 1 será por ejemplo: Company Home> RFH >Funcionarios> 1 >Credenciales>Credencial_123_201104051234.pdf Para que se puedan almacenar los documentos de cada funcionario, es necesario que se haya creado manualmente la carpeta raíz “RFH” y dentro de esta, la carpeta “Funcionarios”. Las carpetas para cada funcionario y su contenido se crearán de forma automática a través de la aplicación. 48/90 3 Diseño de casos de uso En este apartado se van a detallar los procesos relacionados con el diseño de los casos de uso especificado en el diseño funcional de la aplicación. En concreto los siguientes casos de uso: • RFH-CU-001 / Autentificar Usuario. • RFH-CU-002 / Dar de alta Habilitación. • RFH-CU-003 / Consultar de Habilitación. • RFH-CU-004 / Ver Detalle Habilitación. • RFH-CU-005 / Revocar Habilitación. • RFH-CU-006 / Modificar Habilitación. • RFH-CU-007 / Consultar Credencial. • RFH-CU-008 / Ver detalle Credencial. • RFH-CU-009 / Creación Credencial. • RFH-CU-010 / Descargar Credencial / Justificante REC • RFH-CU-011 / Dar de Alta Organismo. • RFH-CU-012 / Consultar Organismo. • RFH-CU-013 / Modificar Organismo. • RFH-CU-014 / Reasignar Categoría. • RFH-CU-015 / Reasignar Trámite. • RFH-CU-016 / Crear Categoría. • RFH-CU-017 / Ver detalle de Categoría. • RFH-CU-018 / Modificar Categoría. • RFH-CU-019 / Administrar Trámite. • RFH-CU-020 / Dar de Alta Trámite. • RFH-CU-021 / Ver detalle de Trámite. • RFH-CU-022 / Modificar Trámite. • RFH-CU-023 / Consultar Categoría y Trámites. • RFH-CU-024 / Salir. • RFH-CU-025 / Dar de Alta Usuario. • RFH-CU-026 / Consultar Usuario. • RFH-CU-027 / Ver Detalle Usuario. • RFH-CU-028 / Modificar Usuario. • RFH-CU-029 / Consulta Habilitación WS. • RFH-CU-030 / Descarga Habilitaciones, Funcionarios a Excel. • RFH-CU-031 / Carga de trámites de un Organismo. 49/90 • RFH-CU-032 / Informe de Accesos, Operaciones, Registros y Trámites. • RFH-CU-033 / Dar de Alta funcionario. • RFH-CU-034 / Consultar funcionario. • RFH-CU-035 / Ver Detalle funcionario. • RFH-CU-036 / Modificar funcionario. • RFH-CU-037 / Listado de Habilitaciones vigentes WS • RFH-CU-038 / Batch: Verificación criterios habilitación • RFH-CU-039 / Batch: verificación caducidad habilitación • RFH-CU-040 / Consulta notificaciones • RFH-CU-041 / Enviar notificaciones 50/90 3.1 Tareas unitarias del caso de uso: RFH‐CU‐001 / Autentificar Usuario Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la validación del usuario. Código Tarea Nombre de la Tarea Descripción de la Tarea RFH-CU-001-TA-001 Comprobar autentificación Comprueba si el usuario ha sido autenticado previamente. RFH-CU-001-TA-002 Autentificar usuario. Si no ha sido autentificado previamente, se autentifica mediante @firma al usuario. Se almacenan los datos del usuario en la sesión. RFH-CU-001-TA-003 Almacenar certificado Se almacena el certificado del usuario para posteriores validaciones Tabla 5 – Tareas unitarias del caso de uso RFH-CU-001 / Autentificar Usuario 3.2 Tareas unitarias del caso de uso: RFH‐CU‐002 / Dar de alta Habilitación Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la creación de una habilitación por parte del usuario. Código Tarea Nombre de la Tarea Descripción de la Tarea RFH-CU-002-TA-002 Mostrar páginas creación habilitación. de de Muestra una página web con el formulario para dar de alta una habilitación: funcionarios, trámites, resumen RFH-CU-002-TA-003 Validar formulario de alta. Valida que los datos introducidos en el formulario por el usuario son correctos. RFH-CU-002-TA-004 Mostrar página Confirmación. Guarda datos y muestra la página de confirmación de habilitación correcto. de Tabla 6 – Tareas unitarias del caso de uso RFH -CU-002 / Dar de alta Habilitación 51/90 3.3 Tareas unitarias del caso de uso: RFH‐CU‐003 / Consultar Habilitación Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la consulta de una Habilitación. Código Tarea Nombre de la Tarea RFH-CU-003-TA-001 Recupera datos habilitación. Descripción de la Tarea de Recupera los datos de las habilitaciones según los filtros rellenados. Tabla 7 – Tareas unitarias del caso de uso RFH-CU-003 / Consultar Habilitación 3.4 Tareas unitarias del caso de uso: RFH‐CU‐004 / Ver Detalle Habilitación Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a ver el detalle de una Habilitación. Código Tarea Nombre de la Tarea Descripción de la Tarea RFH-CU-004-TA-001 Recupera datos Habilitación. RFH-CU-004-TA-002 Mostrar página de detalle de Habilitación. de Recupera los datos de Habilitación. Muestra una página web con los datos de la Habilitación. Tabla 8 – Tareas unitarias del caso de uso RFH-CU-004 / Ver Detalle Habilitación 3.5 Tareas unitarias del caso de uso: RFH‐CU‐005 / Revocar Habilitación Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la revocación de una Habilitación. Código Tarea Nombre de la Tarea Descripción de la Tarea RFH-CU-005-TA-001 Recupera datos Habilitación. de Recupera los datos de la Habilitación. RFH-CU-005-TA-002 Mostrar página Habilitaciones seleccionadas. de Muestra una página web con los datos de las Habilitaciones seleccionadas para la revocación. RFH-CU-005-TA-003 Revocar Habilitación. Actualizar el estado de la Habilitación a revocada. Tabla 9 – Tareas unitarias del caso de uso RFH-CU-005 / Revocar Habilitación 52/90 3.6 Tareas unitarias del caso de uso: RFH‐CU‐006 / Modificar Habilitación Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la revocación de una Habilitación. Código Tarea Nombre de la Tarea Descripción de la Tarea RFH-CU-006-TA-001 Recupera datos Habilitación. de Recupera los datos de la Habilitación. RFH-CU-006-TA-002 Mostrar página Habilitación. de Muestra una página web con los datos de la Habilitación. RFH-CU-006-TA-003 Validar formulario de alta. Valida que los datos introducidos en el formulario por el usuario son correctos. RFH-CU-006-TA-004 Mostrar página Confirmación. Guarda datos y muestra la página de confirmación de habilitación correcta. de Tabla 10 – Tareas unitarias del caso de uso RFH-CU-006 / Modificar Habilitación 3.7 Tareas unitarias del caso de uso: RFH‐CU‐007 / Consulta de Credencial Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la consulta de una credencial. Código Tarea Nombre de la Tarea RFH-CU-007-TA-001 Recupera datos Credencial. Descripción de la Tarea de Recupera los datos de la credencial. Tabla 11 – Tareas unitarias del caso de uso RFH-CU-007 / Consulta de Credencial 3.8 Tareas unitarias del caso de uso: RFH‐CU‐008 / Ver Detalle de Credencial Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a ver el detalle de una Credencial. Código Tarea Nombre de la Tarea Descripción de la Tarea RFH-CU-008-TA-001 Recupera datos Credencial. RFH-CU-008-TA-002 Mostrar página de detalle de Credencial. de Recupera los datos de Credencial. Muestra una página web con los datos de la Credencial. Tabla 12 – Tareas unitarias del caso de uso RFH-CU-008 / Ver detalle Credencial 53/90 3.9 Tareas unitarias del caso de uso: RFH‐CU‐009 / Creación de Credencial Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la creación de una credencial, incluye las tareas de firmar electrónicamente la solicitud, registro en el REC, e incorporar el documento generado en sistema externo. Código Tarea Nombre de la Tarea Descripción de la Tarea RFH-CU-009-TA-001 Mostrar páginas de solicitudes pendientes de habilitaciones. Muestra la página web con el formulario de solicitudes pendientes de habilitaciones. RFH-CU-009-TA-002 Validar formulario de solicitud. Valida que los datos introducidos en el formulario por el usuario son correctos. RFH-CU-009-TA-003 El sistema realiza la firma electrónica desde el cliente El sistema realiza la llamada a la plataforma de @Firma para la firma electrónica de los movimientos sobre las solicitudes seleccionadas. RFH-CU-009-TA-004 El sistema realiza el registro en la plataforma REC. El sistema registra en el Registro Electrónico el movimiento efectuado sobre una Credencial. RFH-CU-009-TA-005 Generar el documento de credencial Genera el documento pdf de credencial RFH-CU-009-TA-005 Generar el documento de justificante REC Genera el documento pdf de justificante en el REC RFH-CU-009-TA-006 Almacenar documento en Gestor Documental Se suben los documentos al gestor documental Alfresco RFH-CU-009-TA-007 Guardar datos en base de datos Almacena los datos de las habilitaciones, credencial y documentos anexos RFH-CU-009-TA-008 Mostrar mensaje confirmación Muestra el mensaje de confirmación al ciudadano de Tabla 13 – Tareas unitarias del caso de uso RFH-CU-009 / Creación Credencial 3.10 Tareas unitarias del caso de uso: RFH‐CU‐010 / Descargar Credencial / Justificante REC Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a descargar la credencial y/o justificante REC de una credencial. Código Tarea Nombre de la Tarea RFH-CU-010-TA-001 Recupera datos Credencial. RFH-CU-010-TA-002 Buscar Credencial. Descripción de la Tarea de Recupera los datos de Credencial. Descarga del documento de la credencial. 54/90 RFH-CU-010-TA-003 Buscar REC Justificante Descarga del documento del justificante REC. Tabla 14 – Tareas unitarias del caso de uso RFH-CU-010 / Descargar Credencial / Justificante REC 3.11 Tareas unitarias del caso de uso: RFH‐CU‐011 / Dar de Alta Organismo Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la creación de un organismo. Código Tarea Nombre de la Tarea Descripción de la Tarea RFH-CU-011-TA-001 Mostrar página de creación de organismo. Muestra una página web con el formulario para dar de alta un organismo. RFH-CU-011-TA-002 Validar formulario de alta. Valida que los datos introducidos en el formulario por el usuario son correctos. RFH-CU-011-TA-003 Mostrar página Confirmación. Guarda datos y muestra la página de confirmación de organismo correcto. de Tabla 15 – Tareas unitarias del caso de uso RFH-CU-011 / Dar de Alta Organismo 3.12 Tareas unitarias del caso de uso: RFH‐CU‐012 / Consultar Organismo Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la consulta de un organismo. Código Tarea Nombre de la Tarea Descripción de la Tarea RFH-CU-012-TA-001 Recupera datos organismo. RFH-CU-012-TA-002 Mostrar página de consulta de organismo. de Recupera los datos del organismo. Muestra una página web con los datos de un organismo. Tabla 16 – Tareas unitarias del caso de uso RFH-CU-012 / Consultar Organismo 3.13 Tareas unitarias del caso de uso: RFH‐CU‐013 / Modificar Organismo Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la modificación de un organismo. 55/90 Código Tarea Nombre de la Tarea Descripción de la Tarea RFH-CU-013-TA-001 Recupera datos organismo. de Recupera los datos del organismo. RFH-CU-013-TA-002 Mostrar página modificación Habilitación. de de Muestra una página web con el formulario para modificar el organismo, mostrando los datos actuales. RFH-CU-013-TA-003 Validar formulario de modificación. Valida que los datos introducidos en el formulario por el usuario son correctos. RFH-CU-013-TA-004 Mostrar página Confirmación. Guarda datos y muestra la página de confirmación de organismo correcto. de Tabla 17 – Tareas unitarias del caso de uso RFH-CU-013 / Modificar Organismo 3.14 Tareas unitarias del caso de uso: RFH‐CU‐014 / Reasignar Categorías Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la reasignación de categorías de un Organismo a otro. Código Tarea Nombre de la Tarea Descripción de la Tarea RFH-CU-014-TA-001 Mostrar catgegorías Muestra las categorías asociadas al organismo RFH-CU-014-TA-002 Seleccionar Organismo destino Se selecciona el Organismo destino RFH-CU-014-TA-003 Seleccionar categorías Se seleccionan las categorías. RFH-CU-014-TA-004 Reasignar Categorias las Reasigna las categorías al organismo destino seleccionado Tabla 18 – Tareas unitarias del caso de uso RFH-CU-014 / Reasignar Categorías 3.15 Tareas unitarias del caso de uso: RFH‐CU‐015 / Reasignar Trámites Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la reasignación de trámites. Código Tarea Nombre de la Tarea Descripción de la Tarea RFH-CU-015-TA-001 Mostrar trámites Muestra los trámites asociadas al organismo RFH-CU-015-TA-002 Seleccionar Organismo destino Se selecciona el Organismo destino 56/90 RFH-CU-015-TA-003 Seleccionar trámites RFH-CU-015-TA-004 Reasignar Trámites los Se selccionan los trámites. Reasigna los trámites al organismo destino seleccionado Tabla 19 – Tareas unitarias del caso de uso RFH-CU-015 / Reasignar Trámites 3.16 Tareas unitarias del caso de uso: RFH‐CU‐016 / Crear Categoría Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la creación de a categoria por parte del usuario. Código Tarea Nombre de la Tarea Descripción de la Tarea RFH-CU-016-TA-001 Mostrar página de creación de categoría. Muestra una página web con el formulario para dar de alta una categoría. RFH-CU-016-TA-002 Validar formulario de alta. Valida que los datos introducidos en el formulario por el usuario son correctos. RFH-CU-016-TA-003 Mostrar página Confirmación. Guarda datos y muestra la página de confirmación de categoría correcta. de Tabla 20 – Tareas unitarias del caso de uso RFH-CU-016 / Crear Categoría 3.17 Tareas unitarias del caso de uso: RFH‐CU‐017 / Ver detalle de Categoría Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la consulta de una categoria. Código Tarea Nombre de la Tarea Descripción de la Tarea RFH-CU-017-TA-001 Recupera datos categorias. RFH-CU-017-TA-002 Mostrar página de consulta de categoría. de Recupera los datos de la categoria. Muestra una página web con los datos de una categoría. Tabla 21 – Tareas unitarias del caso de uso RFH-CU-017 / Consulta de Categoría 57/90 3.18 Tareas unitarias del caso de uso: RFH‐CU‐018 / Modificar Categoria Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la modificación de una categoria. Código Tarea Nombre de la Tarea Descripción de la Tarea RFH-CU-018-TA-001 Recupera categoria. datos de Recupera los datos de la categoria. RFH-CU-018-TA-002 Mostrar página modificación categoria. de de Muestra una página web con el formulario para modificar la categoria, mostrando los datos actuales. RFH-CU-018-TA-003 Validar formulario de modificación. Valida que los datos introducidos en el formulario por el usuario son correctos. RFH-CU-018-TA-004 Mostrar página Confirmación. Guarda datos y muestra la página de confirmación de categoria correcta. de Tabla 22 – Tareas unitarias del caso de uso RFH-CU-018 / Modificar Categoria 3.19 Tareas unitarias del caso de uso: RFH‐CU‐019 / Administrar Trámite Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la administración de trámites en una categoría, es decir, asociación/desasociacion de trámites. Código Tarea Nombre de la Tarea Descripción de la Tarea RFH-CU-019-TA-001 Recupera datos trámites y categorías. RFH-CU-019-TA-002 Mostrar página de asociación/desasociacion de trámite. Muestra una página web con el formulario para asociar/desasociar el trámite a una categoría seleccionada. RFH-CU-019-TA-003 Mostrar página Confirmación. Guarda datos y muestra la asociación/desasociacion correcta. de de Recupera los datos de los trámite y las categorías. página de confirmación Tabla 23 – Tareas unitarias del caso de uso RFH-CU-019 / Administrar Trámites 58/90 de 3.20 Tareas unitarias del caso de uso: RFH‐CU‐020 / Dar de Alta Trámite Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la creación de un trámite por parte del usuario. Código Tarea Nombre de la Tarea Descripción de la Tarea RFH-CU-020-TA-001 Mostrar página de creación de trámite. Muestra una página web con el formulario para dar de alta un trámite. RFH-CU-020-TA-002 Validar formulario de alta. Valida que los datos introducidos en el formulario por el usuario son correctos. RFH-CU-020-TA-003 Mostrar página Confirmación. Guarda datos y muestra la página de confirmación de trámite correcto. de Tabla 24 – Tareas unitarias del caso de uso RFH-CU-020 / Dar de Alta Trámite 3.21 Tareas unitarias del caso de uso: RFH‐CU‐021 / Ver detalle de Trámites Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la consulta de un trámite. Código Tarea Nombre de la Tarea RFH-CU-021-TA-001 Recupera trámite. RFH-CU-021-TA-002 Mostrar página de consulta de trámite. datos Descripción de la Tarea de Recupera los datos del trámite. Muestra una página web con los datos de un trámite. Tabla 25 – Tareas unitarias del caso de uso RFH-CU-021 / Consulta deTrámites 3.22 Tareas unitarias del caso de uso: RFH‐CU‐022 / Modificar Tramite Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la modificación de un trámite. Código Tarea Nombre de la Tarea RFH-CU-022-TA-001 Recupera trámite. datos Descripción de la Tarea de Recupera los datos del trámite. 59/90 RFH-CU-022-TA-002 Mostrar página modificación trámite. de de Muestra una página web con el formulario para modificar el trámite, mostrando los datos actuales. RFH-CU-022-TA-003 Validar formulario de modificación. Valida que los datos introducidos en el formulario por el usuario son correctos. RFH-CU-022-TA-004 Mostrar página Confirmación. Guarda datos y muestra la página de confirmación de trámite correcto. de Tabla 26 – Tareas unitarias del caso de uso RFH-CU-022 / Modificar Trámite 3.23 Tareas unitarias del caso de uso: RFH‐CU‐023 / Consultar Categoría y Trámite Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la búsqueda de categorías y trámites. Código Tarea Nombre de la Tarea RFH-CU-023-TA-001 Recupera datos categorías. RFH-CU-023-TA-002 Mostrar página de consulta de categorías. Muestra una página web con los datos de las categorías. RFH-CU-023-TA-001 Recupera trámites. Recupera los datos de los trámites. RFH-CU-023-TA-002 Mostrar página de consulta de trámites. datos Descripción de la Tarea de de Recupera los datos de las categorias. Muestra una página web con los datos de los trámites. Tabla 27 – Tareas unitarias del caso de uso RFH-CU-023 / Consultar Categoría y Trámite 3.24 Tareas unitarias del caso de uso: RFH‐CU‐024 / Salir Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo al cierre de sesión del usuario. Código Tarea Nombre de la Tarea Descripción de la Tarea RFH-CU-024-TA-001 Eliminar autentificación Eliminar la sesión del usuario. RFH-CU-024-TA-002 Ir a página inicial de acceso. Mostrar la página de acceso a la aplicación. Tabla 28 – Tareas unitarias del caso de uso RFH-CU-024 / Salir 60/90 3.25 Tareas unitarias del caso de uso: RFH‐CU‐025 / Dar de Alta Usuarios Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la creación de un usuario. Código Tarea Nombre de la Tarea Descripción de la Tarea RFH-CU-025-TA-001 Mostrar página de creación de usuario. Muestra una página web con el formulario para dar de alta un usuario. RFH-CU-025-TA-002 Validar formulario de alta. Valida que los datos introducidos en el formulario por el usuario son correctos. RFH-CU-025-TA-003 Mostrar página Confirmación. Guarda datos y muestra la página de confirmación de usuario correcto. de Tabla 29 – Tareas unitarias del caso de uso RFH-CU-025 / Dar de Alta Usuario 3.26 Tareas unitarias del caso de uso: RFH‐CU‐026 / Consultar Usuario Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la consulta de un usuario. Código Tarea Nombre de la Tarea RFH-CU-026-TA-001 Recupera usuario. datos Descripción de la Tarea de Recupera los datos de los usuarios según los filtros rellenados. Tabla 30 – Tareas unitarias del caso de uso RFH-CU-026 / Consultar Usuario 3.27 Tareas unitarias del caso de uso: RFH‐CU‐027 / Ver Detalle Usuario Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la consulta de un usuario. Código Tarea Nombre de la Tarea RFH-CU-027-TA-001 Recupera usuario. RFH-CU-027-TA-002 Mostrar detalle. Descripción de la Tarea datos de Recupera los datos de los usuarios según los filtros rellenados. página de Muestra una página web con los datos actuales del usuario. Tabla 31 – Tareas unitarias del caso de uso RFH-CU-027 / Consultar Usuario 61/90 3.28 Tareas unitarias del caso de uso: RFH‐CU‐028 / Modificar Usuario Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la modificación de un usuario. Código Tarea Nombre de la Tarea Descripción de la Tarea RFH-CU-028-TA-001 Recupera usuario. datos de Recupera los datos del usuario. RFH-CU-028-TA-002 Mostrar página modificación usuario. de de Muestra una página web con el formulario para modificar el usuario, mostrando los datos actuales. RFH-CU-028-TA-003 Validar formulario de modificación. Valida que los datos introducidos en el formulario por el usuario son correctos. RFH-CU-028-TA-004 Mostrar página Confirmación. Guarda datos y muestra la página de confirmación de usuario correcto. de Tabla 32 – Tareas unitarias del caso de uso RFH-CU-028 / Modificar Usuario 3.29 Tareas unitarias del caso de uso: RFH‐CU‐029 / Consulta de Habilitación WS Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo al Servicio Web que permite realizar consultas de las Habilitaciones registradas en RFH. Código Tarea Nombre de la Tarea Descripción de la Tarea RFH-CU-029-TA-001 Obtener parámetros. Obtener los parámetros enviados al servicio web. RFH-CU-029-TA-002 Realizar búsqueda Se recogen los filtros seleccionados y se realiza la búsqueda RFH-CU-029-TA-003 Mostrar página resultados. de Se realiza la búsqueda según los filtros seleccionados y se devuelve al servicio web el resultado encontrado. Tabla 33 – Tareas unitarias del caso de uso RFH-CU-029 / Consulta de Habilitación WS 3.30 Tareas unitarias del caso de uso: RFH‐CU‐030 / Descarga de Habilitaciones, funcionarios a excel Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la descarga de un listado de las habilitaciones registradas en RFH. 62/90 Código Tarea Nombre de la Tarea RFH-CU-030-TA-001 Mostrar página búsqueda. RFH-CU-030-TA-002 Realizar búsqueda RFH-CU-030-TA-003 Mostrar página resultados. RFH-CU-030-TA-004 Exportar resultados. RFH-CU-030-TA-001 Mostrar página búsqueda. RFH-CU-030-TA-002 Realizar búsqueda RFH-CU-030-TA-003 Mostrar página resultados. RFH-CU-030-TA-004 Exportar resultados. Descripción de la Tarea de Muestra una página web con filtros de búsqueda. Se recogen los filtros seleccionados y se realiza la búsqueda de Se realiza la búsqueda según los filtros seleccionados y se muestra una página web con la lista de los resultados encontrados. Se exportan los resultados en el formato deseado. de Muestra una página web con filtros de búsqueda. Se recogen los filtros seleccionados y se realiza la búsqueda de Se realiza la búsqueda según los filtros seleccionados y se muestra una página web con la lista de los resultados encontrados. Se exportan los resultados en el formato deseado. Tabla 34 – Tareas unitarias del caso de uso RFH-CU-30 / Descarga de Habilitaciones, funcionarios a excel 3.31 Tareas unitarias del caso de uso: RFH‐CU‐031 / Carga de Trámites de un Organismo vía fichero Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso que permite realizar la carga masiva de trámites vía fichero. Código Tarea Nombre de la Tarea Descripción de la Tarea RFH-CU-031-TA-001 Leer fichero. Obtener los datos del fichero proporcionado. RFH-CU-031-TA-002 Guardar datos. Guarda datos. RFH-CU-031-TA-003 Mostrar Confirmación. Mostrar confirmación correcta. Tabla 35 – Tareas unitarias del caso de uso RFH-CU-031 / Carga de Trámites de un Organismo vía fichero 63/90 3.32 Tareas unitarias del caso de uso: RFH‐CU‐032 / Informe de Accesos, Operaciones, Registros y Trámites Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la generación de informes de accesos, operaciones, registros y trámites. Código Tarea Nombre de la Tarea RFH-CU-032-TA-001 Mostrar página búsqueda. RFH-CU-032-TA-002 Realizar búsqueda RFH-CU-032-TA-003 Mostrar página resultados. Descripción de la Tarea de Muestra una página web con filtros de búsqueda. Se recogen los filtros seleccionados y se realiza la búsqueda de Se realiza la búsqueda según los filtros seleccionados y se muestra una página web con la lista de los resultados encontrados. Tabla 36 – Tareas unitarias del caso de uso RFH-CU-032 / Informe de Accesos, Operaciones, Registros y Trámites 3.33 Tareas unitarias del caso de uso: RFH‐CU‐033 / Dar de Alta Funcionarios Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la creación de un funcionario. Código Tarea Nombre de la Tarea Descripción de la Tarea RFH-CU-033-TA-001 Mostrar página creación funcionario. RFH-CU-033-TA-002 Validar formulario de alta. Valida que los datos mostrados en el formulario son correctos. RFH-CU-033-TA-003 Búsqueda en RCP. Búsqueda de la información en RCP a través del WS. RFH-CU-033-TA-004 Mostrar página Confirmación. de de de Muestra una página web con el formulario para dar de alta un funcionario. Guarda datos y muestra la página de confirmación de funcionario correcto. Tabla 37 – Tareas unitarias del caso de uso RFH-CU-033 / Dar de Alta Funcionario 3.34 Tareas unitarias del caso de uso: RFH‐CU‐034 / Consultar Funcionario Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la consulta de un funcionario. 64/90 Código Tarea Nombre de la Tarea RFH-CU-034-TA-001 Recupera datos funcionario. Descripción de la Tarea de Recupera los datos de los funcionarios según los filtros rellenados. Tabla 38 – Tareas unitarias del caso de uso RFH-CU-034 / Consultar Funcionario 3.35 Tareas unitarias del caso de uso: RFH‐CU‐035 / Ver Detalle Funcionario Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la consulta de un funcionario. Código Tarea Nombre de la Tarea RFH-CU-035-TA-001 Recupera datos funcionario. de Recupera los datos de los funcionarios según los filtros rellenados. RFH-CU-035-TA-002 Mostrar detalle. de Muestra una página web con los datos actuales del funcionario. página Descripción de la Tarea Tabla 39 – Tareas unitarias del caso de uso RFH-CU-027 / Ver Detalle Funcionario 3.36 Tareas unitarias del caso de uso: RFH‐CU‐036 / Modificar Funcionario Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la modificación de un funcionario. Código Tarea Nombre de la Tarea Descripción de la Tarea RFH-CU-036-TA-001 Recupera datos funcionario. de Recupera los datos del funcionario. RFH-CU-036-TA-002 Mostrar página modificación funcionario. de de Muestra una página web con el formulario para modificar el funcionario, mostrando los datos actuales. RFH-CU-036-TA-003 Validar formulario de modificación. Valida que los datos introducidos en el formulario por el usuario son correctos. RFH-CU-036-TA-004 Mostrar página Confirmación. Guarda datos y muestra la página de confirmación de funcionario correcto. de Tabla 40 – Tareas unitarias del caso de uso RFH-CU-036 / Modificar Funcionario 65/90 3.37 Tareas unitarias del caso de uso: RFH‐CU‐037 / Listado de Habilitaciones vigentes WS Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo al Servicio Web que permite obtener el listado de las Habilitaciones vigentes registradas en RFH. Código Tarea Nombre de la Tarea Descripción de la Tarea RFH-CU-037-TA-001 Obtener parámetros. Obtener los parámetros enviados al servicio web. RFH-CU-037-TA-002 Realizar búsqueda Se recogen los filtros seleccionados y se realiza la búsqueda. RFH-CU-037-TA-003 Mostrar página resultados. de Se realiza la búsqueda según los filtros seleccionados y se devuelve al servicio web el resultado encontrado. Tabla 41 – Tareas unitarias del caso de uso RFH-CU-037 / Listado de habilitaciones vigentes WS 3.38 Tareas unitarias del caso de uso: RFH‐CU‐038 / Batch: Verificación criterios habilitación Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo al proceso batch que verifica los criterios de habilitación. Código Tarea Nombre de la Tarea Descripción de la Tarea RFH-CU-038-TA-001 Obtener datos RCP. Obtener los datos de los funcionarios a partir del WS de RCP. RFH-CU-038-TA-002 Realizar actualización. Actualizar la información existente en RFH con la obtenida del RCP para cada funcionario. RFH-CU-038-TA-003 Verificar habilitaciones Comprobar que la información del funcionario corresponde con la de la habilitación. RFH-CU-038-TA-004 Grabar modificaciones Guarda datos Tabla 42 – Tareas unitarias del caso de uso RFH-CU-038 / Batch: verificación criterios habilitación 3.39 Tareas unitarias del caso de uso: RFH‐CU‐039 / Batch: Verificación caducidad habilitación Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo al proceso batch que verifica la caducidad de las habilitaciones. 66/90 Código Tarea Nombre de la Tarea Descripción de la Tarea RFH-CU-039-TA-001 Busqueda habilitaciones. Buscar las habilitaciones a verificar su caducidad. RFH-CU-039-TA-002 Verificar habilitaciones Comprobar la información de la habilitación. RFH-CU-039-TA-003 Grabar modificaciones Guarda datos Tabla 43 – Tareas unitarias del caso de uso RFH-CU-039 / Batch: verificación caducidad habilitación 3.40 Tareas unitarias del caso de uso: RFH‐CU‐040 / Consulta notificaciones Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo a la consulta de notificaciones. Código Tarea Nombre de la Tarea RFH-CU-040-TA-001 Recupera datos notificaciones. Descripción de la Tarea de Recupera los datos de las notificaciones. Tabla 44 – Tareas unitarias del caso de uso RFH-CU-040 / Consulta notificaciones 3.41 Tareas unitarias del caso de uso: RFH‐CU‐041 / Enviar notificaciones Las tareas que a continuación se relacionan definen la funcionalidad definida en el caso de uso relativo al envío de notificaciones. Código Tarea Nombre de la Tarea Descripción de la Tarea RFH-CU-041-TA-001 Recuperar notificación. Recupera los datos de las notificaciones. RFH-CU-041-TA-002 Enviar notificación. Enviar la notificación según los datos de la misma. Tabla 45 – Tareas unitarias del caso de uso RFH-CU-041 / Enviar notificaciones 67/90 4 Especificación de componentes software Este apartado se definirá durante la construcción y pruebas de la aplicación. A continuación se muestra un ejemplo de cómo será representado cada uno de los componentes. Código Componente Sw Nombre del Componente Sw Descripción del Componente Componentes Action Form Se indicarán una vez finalizada la fase de construcción Componentes JSP Se indicarán una vez finalizada la fase de construcción Tabla 46 – Componentes software de la capa de presentación Código Sw Componente Nombre del Componente Sw Descripción del Componente Se indicarán una vez finalizada la fase de construcción Tabla 47 – Componentes software de lógica de negocio Código Componente Sw Nombre del Componente Sw Descripción del Componente RFH-SW-1 Habilitacion Clase que contiene toda la información almacenada en la base de datos sobre una habilitación RFH-SW-2 HabilitacionDAO Interface que nos permite interactuar con la información de Habilitación presente en la base de datos. RFH-SW-3 Notificaciones Clase que contiene toda la información almacenada en la base de datos sobre las notificaciones realizadas RFH-SW-4 NotificacionDAO Interface que nos permite interactuar con la información de las notificaciones presente en la base de datos. RFH-SW-5 Funcionario Clase que contiene toda la información almacenada en la base de datos sobre los funcionarios relacionados con la aplicación. RFH-SW-6 FuncionarioDAO Interface que nos permite interactuar con la información de Funcionario presente en la base de datos. RFH-SW-7 Credencial Clase que contiene toda la información almacenada en la base de datos sobre las credenciales realizadas. RFH-SW-8 CredencialDAO Interface que nos permite interactuar con la información de Credencial presente en la base de datos. 68/90 RFH-SW-9 AnexoCredencial Clase que contiene toda la información almacenada en la base de datos sobre los anexos a las credenciales realizadas. RFH-SW-10 AnexoCredencialDAO Interface que nos permite interactuar con la información de Anexo Credencial presente en la base de datos. RFH-SW-11 HistHabilitacion Clase que contiene toda la información almacenada en la base de datos sobre el histórico de la habilitación realizada. RFH-SW-12 HistHabilitacionDAO Interface que nos permite interactuar con la información del histórico de las habilitaciones presente en la base de datos. RFH-SW-13 HistFuncionario Clase que contiene toda la información almacenada en la base de datos sobre el histórico de los funcionarios relacionados en la aplicación. RFH-SW-14 HistFuncionarioDAO Interface que nos permite interactuar con la información del histórico de funcionarios presente en la base de datos. RFH-SW-15 HabilitacionDAOImpl Clase DAO encargada de implementar los métodos definidos en laInterface HabilitacionDAO RFH-SW-16 NotificacionDAOImpl Clase DAO encargada de implementar los métodos definidos en laInterface NotificacionDAO RFH-SW-17 FuncionarioDAOImpl Clase DAO encargada de implementar los métodos definidos en laInterface FuncionarioDAO RFH-SW-18 CredencialDAOImpl Clase DAO encargada de implementar los métodos definidos en laInterface CredencialDAO RFH-SW-19 AnexoCredencialDAOImpl Clase DAO encargada de implementar los métodos definidos en laInterface AnexoCredencialDAO. RFH-SW-20 HistHabilitacionDAOImpl Clase DAO encargada de implementar los métodos definidos en laInterface HistHabilitacionDAO. RFH-SW-21 HistFuncionarioDAOImpl Clase DAO encargada de implementar los métodos definidos en laInterface HistFuncionarioDAO. Tabla 48 – Componentes software de acceso a datos 4.1 Diagrama de componentes software de la capa de presentación Diagrama de clases: • Actions 69/90 Figura 9 – Actions. Figura Genérica • ActionsForm Figura 10 – ActionsForm. Figura Generica 4.1.1 Descripción del componente Sw: RFH -SW-001 / HabilitacionForm Nombre: HabilitacionForm Funcionalidad: Clase ActionForm encargada de guardar la información relativa a una 70/90 habilitación. Constructor Ámbito Nombre Argumento Tipo de Argumento Public HabilitacionForm x x Atributos Ámbito Nombre Tipo atributo de Descripción Ámbito Nombre Argumento Tipo de argumento Valores Tipo de Valores Descripción Public get… x x x x Métodos get para los atributos definidos en la clase. Public set… x x x x Métodos set de los definidos en la clase. private Métodos Relaciones Nombre Tipo BaseActionForm Herencia 71/90 atributos 4.2 Diagrama de componentes software de la capa lógica de negocio Figura 11 – Diagrama genérico de managers 72/90 4.2.1 Descripción del componente Sw: RFH-SW-999 / HabilitacionManager Nombre: HabilitacionManager Funcionalidad: Interface general de Objeto de negocio para la consulta de habilitaciones. Constructor Ámbito Nombre Argumento Tipo de Argumento x x x x Atributos Ámbito Nombre Tipo de atributo Descripción x x x x Métodos Ámbito Nombre Argumento Tipo argumento de Valores Public Public Public Public Relaciones Nombre Tipo MaintenanceManager Herencia 73/90 Tipo Valores de Descripción 4.3 Diagrama de componentes software de la capa de acceso a datos En este apartado se detallan los componentes relevantes de RFH. Se reutilizarán los componentes software relativos a Categorías, Organismos, Usuarios, Trámites ya definidos en el Registro Electrónico de Apoderamientos. • ValueObjects Figura 12 – Value Objects. Figura genérica • Hibernate DAO´S DAO MaintenanceDAO Entidad1DAO AbstractMaintenanceDAO Entidad1DAOImpl Entidad2DAO Entidad1DAOImpl Figura 13 – DAO genéricos 74/90 4.3.1 Descripción del componente Sw: RFH-SW-1 / Habilitacion Nombre: Habilitacion Funcionalidad: Clase Value Object que contiene toda la información almacenada en la base de datos sobre una habilitación. Constructor Ámbito Nombre Argumento Tipo de Argumento public Habilitacion x x Atributos Ámbito Nombre Tipo atributo de Descripción private ID_HABILITACION Long Código único de identificación de la habilitación private ID_TRAMITE Trámite Código unívoco de trámite private IID_FUNCIONARIO Funcionario Código unívoco de funcionario private ID_HIST_FUNCIONARIO Long Código unívoco del histórico de funcionario private FH_INICIO_HABILITACION String Fecha de inicio de la habilitación private FH_FIN_HABILITACION String Fecha de fin de la habilitación private FH_REVOCACION_HABILITACION String Fecha de revocación private DESC_CAUSA_REVOCACION String Causa de revocación private ID_ESTADO_HABILITACION String Estado de habilitación private ID_ESTADO_TRAMITACION String Estado de solicitud de habilitación private FH_CREACION String Fecha de creación del registro private ID_USUARIO_CREACION String Código unívoco de usuario que realiza la soilcitud private FH_FIN_HAB_PROPUESTA String Fecha de fin de habilitación propuesta private FH_MODIFICACION String Fecha de modificiación del registro private ID_USUARIO_MODIFICACION String Usuario que realiza la modificación private DESC_CAUSA_DENEGA String Causa de denegación private ID_AT String Código unívoco de usuario AT que supervisa la solicitud private ID_SUPERVISOR String Código unívoco de usuario Supervisor que valida la solicitud private ID_HIST_TRAMITE String Código unívoco del histórico de trámite private ID_TIPO_SOLICITUD String Tipo de solicitud Nombre Argumento Métodos Ámbito Tipo de argumento 75/90 Valores Tipo de Valores Descripción public get… x x x x Métodos atributos clase. get para los definidos en la public set… x x x x Métodos set de los atributos definidos en la clase. Relaciones Nombre Tipo BaseEntity Herencia 4.3.1 4.3.2 Descripción del componente Sw: RFH-SW-2 / HabilitacionDAO Nombre: HabilitacionDAO Funcionalidad: Interface que nos permite interactuar con la información de Habilitación presente en la base de datos. Constructor Ámbito Nombre Argumento Tipo de Argumento public HabilitacionDAO x x Atributos Ámbito Nombre Tipo atributo de Descripción x x x Ámbito Nombre Argumento Tipo de argumento Valores Tipo de Valores Descripción x x x x x x x x Métodos Relaciones Nombre Tipo DAO Herencia 4.3.3 Descripción del componente Sw: RFH-SW-3 / Notificaciones Nombre: Notificaciones Funcionalidad: Clase Value Object que contiene toda la información almacenada en la base de datos sobre las notificaciones realizadas. 76/90 Constructor Ámbito Nombre Argumento Tipo de Argumento public Notificaciones x x Atributos Ámbito Nombre Tipo de atributo Descripción private ID_Notificacion Long Identificativo de la notificación private Usuario_Dtno String Usuario destinatario private Habilitacion Habilitación Identificativo de la habilitación que se está notificando private Usuario_AH String Identificativo del usuario remitente Ámbito Nombre Argumento Tipo de argumento Valores Tipo de Valores Descripción public get… x x x x Métodos get para los atributos definidos en la clase. public set… x x x x Métodos set de los atributos definidos en la clase. Métodos Relaciones Nombre Tipo BaseEntity Herencia 4.3.4 Descripción del componente Sw: RFH-SW-4 / NotificacionDAO Nombre: NotificacionDAO Funcionalidad: Interface que nos permite interactuar con la información de las notificaciones presente en la base de datos. Constructor Ámbito Nombre Argumento Tipo de Argumento public NotificacionDAO x X Atributos 77/90 Ámbito Nombre Tipo atributo de Descripción x x x Ámbito Nombre Argumento Tipo de argumento Valores Tipo de Valores Descripción x x x x x x X X Métodos Relaciones Nombre Tipo DAO Herencia 4.3.5 Descripción del componente Sw: RFH-SW-5 / Funcionario Nombre: Funcionario Funcionalidad: Clase Value Object que contiene toda la información almacenada en la base de datos sobre los funcionarios relacionados con la aplicación. Constructor Ámbito Nombre Argumento Tipo de Argumento public Funcionario x x Atributos Ámbito Nombre Tipo de atributo Descripción private nif String NIF del funcionario private Organismo Organismo Organismo al que pertenece el funcionario private nombre String Nombre del funcionario private apellido1 String Primer apellido del funcionario private apellido2 String Segundo apellido del funcionario private email String Email del funcionario private telefono String Telefono del funcionario Métodos Ámbito Nombre Argumento Tipo de argumento Valores Tipo de Valores Descripción public get… x x x x Métodos atributos clase. public set… x x x x Métodos set de los atributos definidos en la clase. Relaciones 78/90 get para los definidos en la Nombre Tipo BaseEntity Herencia 4.3.6 Descripción del componente Sw: RFH-SW-6 / FuncionarioDAO Nombre: FuncionarioDAO Funcionalidad: Interface que nos permite interactuar con la información de Funcionario presente en la base de datos. Constructor Ámbito Nombre Argumento Tipo de Argumento public FUNCIONARIODAO x x Atributos Ámbito Nombre Tipo atributo de Descripción x x x Ámbito Nombre Argumento Tipo de argumento Valores Tipo de Valores Descripción x x x x x x x x Métodos Relaciones Nombre Tipo DAO Herencia 4.3.7 Descripción del componente Sw: RFH-SW-7 / Credencial Nombre: Credencial Funcionalidad: Clase Value Object que contiene toda la información almacenada en la base de datos sobre las credenciales realizadas. Constructor Ámbito Nombre Argumento Tipo de Argumento public Credencial x x Atributos 79/90 Ámbito Nombre Tipo de atributo Descripción private Id_credencial String Código identificativo de la credencial private Id_funcionario Funcionario Código del funcionario que posee la credencial private Id_supervisor String Identificativo del supervisor Métodos Ámbito Nombre Argumento Tipo de argumento Valores Tipo de Valores Descripción public get… x x x x Métodos atributos clase. public set… x x x x Métodos set de los atributos definidos en la clase. get para los definidos en la Relaciones Nombre Tipo BaseEntity Herencia 4.3.8 Descripción del componente Sw: RFH-SW-8 / CredencialDAO Nombre: CredencialDAO Funcionalidad: Interface que nos permite interactuar con la información de Credencial presente en la base de datos. Constructor Ámbito Nombre Argumento Tipo de Argumento public CREDENCIALDAO x x Atributos Ámbito Nombre Tipo atributo de Descripción x x x Ámbito Nombre Argumento Tipo de argumento Valores Tipo de Valores Descripción x x x x x x x x Métodos Relaciones Nombre Tipo DAO Herencia 80/90 4.3.9 Descripción del componente Sw: RFH-SW-9 / AnexoCredencial Nombre: AnexoCredencial Funcionalidad: Clase Value Object que contiene toda la información almacenada en la base de datos sobre los anexos a las credenciales realizadas. Constructor Ámbito Nombre Argumento Tipo de Argumento public AnexoCredencial x x Atributos Ámbito Nombre Tipo de atributo Descripción private Id_anexo Long Código identificativo del anexo private Id_credencial Credencial Credencial al que pertenece el anexo private nombre_alfresco String Nombre del documento en el gestor documental Métodos Ámbito Nombre Argumento Tipo de argumento Valores Tipo de Valores Descripción public get… x x x x Métodos atributos clase. public set… x x x x Métodos set de los atributos definidos en la clase. get para los definidos en la Relaciones Nombre Tipo BaseEntity Herencia 4.3.10 Descripción del componente Sw: RFH-SW-10 / AnexoCredencialDAO Nombre: AnexoCredencialDAO Funcionalidad: Interface que nos permite interactuar con la información de Anexo Credencial presente en la base de datos. Constructor Ámbito Nombre Argumento Tipo de Argumento public ANEXOCREDENCIALDAO x x Atributos 81/90 Ámbito Nombre Tipo atributo de Descripción x x x Ámbito Nombre Argumento Tipo de argumento Valores Tipo de Valores Descripción x x x x x x x x Métodos Relaciones Nombre Tipo DAO Herencia 4.3.11 Descripción del componente Sw: RFH-SW-11 / HistHabilitacion Nombre: HistHabilitacion Funcionalidad: Clase Value Object que contiene toda la información almacenada en la base de datos sobre el histórico de la habilitación realizada. Constructor Ámbito Nombre Argumento Tipo de Argumento public HistHabilitacion x x Atributos Ámbito Nombre Tipo atributo de Descripción private ID_Hist_HABILITACION Long Código único de identificación de la habilitación en el histórico private ID_HABILITACION Long Código único de identificación de la habilitación private ID_TRAMITE Trámite Código unívoco de trámite private IID_FUNCIONARIO Funcionario Código unívoco de funcionario private ID_HIST_FUNCIONARIO Long Código unívoco del histórico de funcionario private FH_INICIO_HABILITACION String Fecha de inicio de la habilitación private FH_FIN_HABILITACION String Fecha de fin de la habilitación private FH_REVOCACION_HABILITACION String Fecha de revocación private ID_ESTADO_HABILITACION String Estado de habilitación private ID_ESTADO_TRAMITACION String Estado de solicitud de habilitación private FH_FIN_HAB_PROPUESTA String Fecha de fin de habilitación propuesta private ID_AT String Código unívoco de usuario AT que supervisa la solicitud 82/90 private ID_SUPERVISOR String Código unívoco de usuario Supervisor que valida la solicitud private ID_HIST_TRAMITE String Código unívoco del histórico de trámite private ID_TIPO_SOLICITUD String Tipo de solicitud Ámbito Nombre Argumento Tipo de argumento Valores Tipo de Valores Descripción public get… x x x x Métodos atributos clase. public set… x x x x Métodos set de los atributos definidos en la clase. Métodos get para los definidos en la Relaciones Nombre Tipo BaseEntity Herencia 4.3.12 Descripción del componente Sw: RFH-SW-12 / HistHabilitacionDAO Nombre: HistHabilitacionDAO Funcionalidad: Interface que nos permite interactuar con la información del histórico de las habilitaciones presente en la base de datos. Constructor Ámbito Nombre Argumento Tipo de Argumento public HISTHABILITACIONDAO x x Atributos Ámbito Nombre Tipo atributo de Descripción x x x Ámbito Nombre Argumento Tipo de argumento Valores Tipo de Valores Descripción x x x x x x x x Métodos Relaciones Nombre Tipo DAO Herencia 83/90 4.3.13 Descripción del componente Sw: RFH-SW-13 / HistFuncionario Nombre: HistFuncionario Funcionalidad: Clase Value Object que contiene toda la información almacenada en la base de datos sobre el histórico de los funcionarios relacionados en la aplicación. Constructor Ámbito Nombre Argumento Tipo de Argumento public Funcionario x x Atributos Ámbito Nombre Tipo de atributo Descripción private nif String NIF del funcionario private Organismo Organismo Organismo al que pertenece el funcionario private nombre String Nombre del funcionario private apellido1 String Primer apellido del funcionario private apellido2 String Segundo apellido del funcionario private email String Email del funcionario private telefono String Telefono del funcionario Métodos Ámbito Nombre Argumento Tipo de argumento Valores Tipo de Valores Descripción public get… x x x x Métodos atributos clase. public set… x x x x Métodos set de los atributos definidos en la clase. get para los definidos en la Relaciones Nombre Tipo BaseEntity Herencia 4.3.14 Descripción del componente Sw: RFH-SW-14 / HistFuncionarioDAO Nombre: HistFuncionarioDAO Funcionalidad: Interface que nos permite interactuar con la información del histórico de 84/90 funcionarios presente en la base de datos. Constructor Ámbito Nombre Argumento Tipo de Argumento public HISTFUNCIONARIODAO x x Atributos Ámbito Nombre Tipo atributo de Descripción x x x Ámbito Nombre Argumento Tipo de argumento Valores Tipo de Valores Descripción x x x x x x x x Métodos Relaciones Nombre Tipo DAO Herencia 4.3.15 Descripción del componente Sw: RFH-SW-15 / HabilitacionDAOImpl Nombre: HabilitacionDAOImpl Funcionalidad: Clase DAO encargada de implementar los métodos definidos en la interface HabilitacionDAO 4.3.16 Descripción del componente Sw: RFH-SW-16 / NotificacionDAOImpl Nombre: NotificacionDAOImpl Funcionalidad: Clase DAO encargada de implementar los métodos definidos en la interface NotificacionDAO 4.3.17 Descripción del componente Sw: RFH-SW-17 / FuncionarioDAOImpl Nombre: FuncionarioDAOImpl Funcionalidad: Clase DAO encargada de implementar los métodos definidos en la interface FuncionarioDAO 85/90 4.3.18 Descripción del componente Sw: RFH-SW-18 / CredencialDAOImpl Nombre: CredencialDAOImpl Funcionalidad: Clase DAO encargada de implementar los métodos definidos en la interface CredencialDAO 4.3.19 Descripción del componente Sw: RFH-SW-19 / AnexoCredencialDAOImpl Nombre: AnexoCredencialDAOImpl Funcionalidad: Clase DAO encargada de implementar los métodos definidos en la interface AnexoCredencialDAO 4.3.20 Descripción del componente Sw: RFH-SW-20 / HistHabilitacionDAOImpl Nombre: HistHabilitacionDAOImpl Funcionalidad: Clase DAO encargada de implementar los métodos definidos en la interface HistHabilitacionDAO 4.3.21 Descripción del componente Sw: RFH-SW-21 / HistFuncionarioDAOImpl Nombre: HistFuncionarioDAOImpl Funcionalidad: Clase DAO encargada de implementar los métodos definidos en la interface HistFuncionarioDAO 86/90 87/90 5 Diagrama de Navegación En este apartado se muestra el diagrama de navegación de la aplicación. RFH-Diagrama_Nave gacion Figura 14 – Diagrama de navegación de RFH 88/90 6 Prototipo A continuación se indexa un fichero con el prototipo de pantallas diseñado. Prototipo_RFH Figura 15 – Prototipo de pantallas RFH 89/90 7 Estructura física de la información A continuación se especifica el modelo de datos que utiliza la aplicación RFH, definido en el archivo que se incluye a continuación. Figura 16 – Modelo Entidad-Relación RFH RFH_Modelo_ER RFH_Report_Modelo 90/90