UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE INGENIERÍA CIENCIAS FÍSICAS Y MATEMÁTICA

CARRERA DE INGENIERÍA INFORMÁTICA

DESARROLLO DE UN SISTEMA DE INFORMACIÓN PARA LA ADMINISTRACIÓN DE DOCENTES DE LA FACULTAD DE CIENCIAS MÉDICAS

TRABAJO DE GRADUACIÓN, PREVIO A LA OBTENCIÓN DEL TÍTULO DE INGENIERO INFORMÁTICO

AUTOR: SAMUEZA GUAMÁN PATRICIO XAVIER. TUTOR: ING. MARIO RAÚL MORALES MORALES, MBA.

QUITO – 8 DE DICIEMBRE

2016

AUTORIZACIÓN DE LA AUTORIA INTELECTUAL

Yo, PATRICIO XAVIER SAMUEZA GUAMÁN en calidad de autor del trabajo del proyecto integrador DISEÑO DE UN SISTEMA DE INFORMACIÓN PARA LA ADMINISTRACIÓN DE DOCENTES DE LA FACULTAD DE CIENCIAS MÉDICAS, autorizo a la UNIVERSIDAD CENTRAL DEL ECUADOR, hacer uso de todos los contenidos que me pertenecen o de parte de los que contienen esta obra, con fines estrictamente académicos o de investigación.

Los derechos que como autor me corresponden, con excepción de la presente autorización, seguirán vigentes a mi favor, de conformidad con lo establecido en los artículos 5, 6, 8; 19 y demás pertinente de la Ley de Propiedad Intelectual y su Reglamento.

Asimismo, autorizo a la Universidad Central del Ecuador para que realice la digitalización y publicación de este trabajo de investigación en el repositorio virtual, de conformidad a lo dispuesto en el Art. 144 de la Ley Orgánica de Educación Superior.

En la ciudad de Quito, a los 8 días del mes de Diciembre del 2016.

Patricio Xavier Samueza Guamán

C.C 171541381-9

Tfno: 0987740752

Correo: [email protected] ii

CERTIFICACIÓN DEL TUTOR

Yo, Ing. Mario Raúl Morales Morales en calidad de Tutor del Proyecto Integrador, Desarrollo De Un Sistema De Información Para La Administración De Docentes De La Facultad De Ciencias Médicas, presentado por Patricio Xavier Samueza Guamán de la Carrera de Ingeniería Informática, Facultad de Ingeniería Ciencias Físicas y Matemática de la Universidad Central del Ecuador, considero que el mismo reúne los requisitos y méritos necesarios en el campo metodológico y en el campo epistemológico, para ser sometido a la evaluación por parte del jurado examinador que se designe, por lo que lo APRUEBO, a fin de que el proyecto integrador sea habilitado para continuar con el proceso de titulación determinado por la Universidad Central del Ecuador. Certifico que este documento fue revisado en el programa antiplagio URKUD.

En la ciudad de Quito, a los 6 días del mes de Mayo de 2015.

Ing. Mario Raúl Morales Morales C.C 1709026577 Tfno: 0997739957 [email protected]

iii

APROBACIÓN DEL TRIBUNAL

iv

v

DEDICATORIA

El presente trabajo dedico con mucho amor y gratitud a DIOS, que me guía y me mira con amor cada mañana quien inspiro mi espíritu para seguir cuando ya no tenía fuerzas y a la Virgen María, mi intercesora y abogada. A mis padres quienes me dieron vida, valores, educación, apoyo y consejos.

A mis hermanas, hermanos por su respeto y cariño.

A mi novia, Mashury que siempre estuvo a mi lado y confió en mí aun cuando las cosas no iban bien. A mi amigo de la infancia Francisco, gracias por su apoyo constante y por ser una gran persona A mi tutor, Ingeniero Mario Morales, por haberme guiado en el transcurso y desarrollo del proyecto. Al ingeniero Palma, por abrirme las puertas de la Facultad de Medicina para poder desarrollar el proyecto

A todos ellos se los agradezco desde el fondo de mi alma. Para todos ellos hago esta dedicatoria.

PATRICIO

vi

AGRADECIMIENTOS

En primer lugar mi profundo agradecimiento a Dios el Creador y dador de la vida mi guía y protector mi dulce sustento, mi Padre de amor y bondad; en segundo lugar a cada uno de los que son parte de mi familia a mi PADRE Francisco Samueza que Dios lo tenga en su gloria, a mi MADRE Natividad del Carmen Guamán por su gran lucha, por su constante apoyo, por proveer el sustento diario pero sobre todo por su testimonio de vida y por su gran amor , paciencia y su gran ejemplo para formarme en una persona en valores y en victoria a pesar de la lucha diaria. A mis hermanos y hermanas por su apoyo incondicional por sus consejos y sobre todo por creer en mi a pesar de las adversidades, a Mashury mi novia por su gran persona, una gran amiga y compañera, por siempre haberme dado fuerzas a través de sus oraciones, ayunos, palabras de vida y bendición que me han ayudado a levantarme y seguir caminando en busca de la meta propuesta.

vii

CONTENIDO

pág

AUTORIZACIÓN DE LA AUTORIA INTELECTUAL ...... ii CERTIFICACIÓN DEL TUTOR ...... iii APROBACIÓN DEL TRIBUNAL ...... iv DEDICATORIA ...... vi AGRADECIMIENTO ...... vii LISTA DE TABLAS ...... xii LISTA DE FIGURAS ...... xiii GLOSARIO ...... xv RESUMEN ...... xvi ABSTRACT ...... xvii INTRODUCCIÓN ...... 1 1. PRESENTACIÓN DEL PROBLEMA ...... 2 1.1 Planteamiento del Problema ...... 2 1.2 Objetivos del Proyecto...... 3 1.2.1 Objetivo General ...... 3

1.2.2 Objetivos Específicos ...... 3

1.3 Justificación ...... 3 1.4 Alcance ...... 4 2. MARCO TEORICO ...... 6 2.1 Ingeniería de software ...... 6 2.2 Arquitectura ...... 6 2.2.1 Java Platform Enterprise Edition Versión 7 ...... 6

2.2.2 Capa de Base de Datos ...... 8

2.2.3 Capa de Datos...... 8

2.2.4 Capa de Lógica de Negocio ...... 8

2.2.5 Capa de Integración ...... 9

viii

2.2.6 Capa Web ...... 9

2.2.7 Capa Cliente ...... 10

2.3 Tecnologías para el desarrollo de aplicaciones Java Web...... 10 2.3.1 Tecnologías en la capa de acceso de datos...... 10

2.3.2 Tecnologías en la capa de lógica de negocio...... 11

2.3.3 Tecnologías en la capa web...... 13

2.4 Herramientas de desarrollo ...... 15 2.4.1 Java...... 15

2.4.2 Servidor de Aplicaciones Java EE ...... 15

2.4.3 GlassFish Server Edition versión 4.1...... 15

2.4.4 PostgreSQL 9.3...... 16

2.4.5 PgAdmin III ...... 18

2.4.6 PrimeFaces ...... 18

2.4.7 Alfresco Community Edition 5.1...... 18

2.4.8 NetBeans 8.1...... 19

3. METODOLOGIA ...... 20 3.1 Metodologías ágiles...... 20 3.2 Comparación de Metodologías Ágiles vs Metodologías Tradicionales ...... 21 3.3 Valores de XP ...... 22 3.4 Ciclo de Vida de XP ...... 23 3.5 Aplicación de la Metodología ...... 27 3.5.1 Actores o Roles que Intervienen en el Sistema...... 27

3.5.2 Fase de Exploración...... 27

3.5.3 Historia de los Usuarios ...... 29

3.6 Fase de Diseño ...... 33 3.6.1 TARJETAS CRC...... 33

3.6.2 Tarjeta CRC para la creación Genérica de las Entidades...... 33

3.6.3 Tarjeta CRC para la Validación de Fechas...... 34 ix

3.6.4 Tarjeta CRC para el Control de Acceso sin sección iniciada...... 34

3.6.5 Tarjeta CRC para la Administración Carera...... 35

3.6.6 Tarjeta CRC para la Administración Malla...... 35

3.6.7 Tarjeta CRC para la Administración Período...... 36

3.6.8 Tarjeta CRC para la Administración Docente...... 36

3.6.9 Tarjeta CRC para la Administración Relación Laboral...... 37

3.6.10 Tarjeta CRC para la Administración carga horaria...... 37

3.6.11 Tarjeta CRC para la Administración de Formación docente...... 38

3.6.12 Tarjeta CRC para la Administración de Cargo Directivo...... 38

3.6.13 Tarjeta CRC para la Administración de Publicaciones...... 39

3.6.14 Tarjeta CRC para la Administración de Capacitación...... 39

3.7 Diagramas UML...... 41 3.8 Autenticación y Autorización (Spring Security) ...... 42 3.8.1 Configuración de Spring Security...... 43

3.8.2 Principales Filtros Utilizados ...... 45

3.9 Modelo Entidad-Relación Sistema Docente ...... 49 3.10 Fase de Codificación...... 50 3.10.1 Diseño de la estructura del Sistema ...... 50

3.10.2 Autenticación y Autorización de Usuario ...... 51

3.10.3 Patrón de diseño Session Facade ...... 54

3.10.4 Clases de Validación...... 56

3.10.5 Generación de Notificaciones...... 57

3.10.6 Generación de Reportes ...... 59

3.11 Fase de Puesta en Producción ...... 63 3.11.1 Implementación...... 63

3.11.2 Despliegue de la Aplicación ...... 64

3.11.3 Carga de Datos...... 64 x

4. SISTEMA GESTION DOCUMENTAL ...... 65 4.1 Alfresco...... 65 4.2 Alfresco en el Cuadrante Mágico de Gartner ...... 66 4.3 Gestión de Roles para los usuarios...... 67 4.4 Estructura del Repositorio ...... 68 4.5 Modelo de Contenido en Alfresco ...... 70 4.6 Metadatos ...... 72 4.7 Motor de Búsqueda de Alfresco...... 77 4.8 Integración de Alfresco con CMIS...... 78 4.8.1 Apache Chemistry...... 78

4.8.2 Servicios de Interoperabilidad de Gestión de Contenidos (CMIS versión 1.1) ...... 79

4.8.3 Lenguaje de Consulta CMIS...... 80

4.9 Alfresco Share ...... 81 5. CONCLUSIONES ...... 84 6. RECOMENDACIONES ...... 85 BIBLIOGRAFÍA ...... 86 ANEXOS ...... 89 ANEXO A. HISTORIAS DE LOS USUARIOS...... 89 ANEXO B. DIAGRAMAS UML ...... 102 ANEXO C. DICCIONARIO DE DATOS ...... 136

xi

LISTA DE TABLAS

Pág

Tabla 1.Metodología Ágil Vs Metodología Tradicional...... 21 Tabla 2.Lista de historias de usuario de la aplicación...... 28 Tabla 3. Tarjeta CRC para la creación Genérica de las Entidades...... 33 Tabla 4.Tarjeta CRC para la Validación de Fechas...... 34 Tabla 5. Tarjeta CRC para el Control de Acceso sin sección iniciada...... 34 Tabla 6. Tarjeta CRC para la Administración Carera...... 35 Tabla 7.Tarjeta CRC para la Administración Malla...... 35 Tabla 8.Tarjeta CRC para la Administración Periodo...... 36 Tabla 9.Tarjetas CRC para la Administración Docente...... 36 Tabla 10.Tarjeta CRC para la Administración Relación Laboral...... 37 Tabla 11.Tarjeta CRC para la Administración carga horaria...... 37 Tabla 12.Tarjeta CRC para la Administración de Formación docente...... 38 Tabla 13.Tarjeta CRC para la Administración de Cargo Directivo...... 38 Tabla 14.Tarjeta CRC para la Administración de Publicaciones...... 39 Tabla 15.Tarjeta CRC para la Administración de Capacitación...... 39 Tabla 16. Índices Comunes para los Tipos Documentales de la Facultad de Ciencias Médicas...... 74 Tabla 17.Metadatos para el Tipo de Documento General...... 74 Tabla 18.Metadatos para el Tipo de Documento Malla...... 74 Tabla 19. Metadatos para el Tipo de Documento Cargo Directivo...... 75 Tabla 20. Metadatos para el Tipo de Documento Capacitación...... 75 Tabla 21.Metadatos para el Tipo de Documento Formación...... 76 Tabla 22. Metadatos para el Tipo de Documento Publicación...... 76 Tabla 23. Metadatos para el Tipo de Documento Relación Laboral...... 77

xii

LISTA DE FIGURAS

pág

Figura 1. Arquitectura de la aplicación ...... 7 Figura 2. Logotipo GlassFish ...... 16 Figura 3.PostgreSQL ...... 17 Figura 4.Logo de Alfresco ...... 19 Figura 5.NetBeans IDE ...... 19 Figura 6.Ciclo de vida XP ...... 23 Figura 7. Roles XP ...... 25 Figura 8. Diagrama General de Casos de Uso del Sistema ...... 41 Figura 9.Filtros de Spring Security ...... 43 Figura 10. Proceso de Autenticación...... 46 Figura 11.Logout Filter ...... 47 Figura 12.Modelo Entidad-Relación Sistema Docente...... 49 Figura 13.Estructura General del Sistema ...... 50 Figura 14.Codigo Plantilla Estructura General del Sistema ...... 51 Figura 15.Plantilla Web del Sistema ...... 51 Figura 16.Interfaz para la autenticación de Usuario ...... 52 Figura 17.Selección del Periodo ...... 52 Figura 18.Página de inicio Sistema Docente ...... 53 Figura 19. loginFailed.xhtml ...... 53 Figura 20. Estructura del Patrón Session Facade en la Aplicación ...... 55 Figura 21. Clase AbstractFacade.java en la aplicación ...... 56 Figura 22.ValidatorFechas.java ...... 57 Figura 23. Notificación para la clase ValidatorFechas.java ...... 57 Figura 24.Arquitectura de JasperReports ...... 60 Figura 25.Clase GenerarReportes.java ...... 61 Figura 26. Generación de Reportes...... 62 Figura 27.Diagrama de despliegue Sistema A Docente ...... 64 xiii

Figura 28.Plataforma de ALFRESCO ...... 66 Figura 29.Alfresco en el Cuadrante de GARTNER ...... 67 Figura 30.Contenido en Alfresco ...... 69 Figura 31.Estructura del repositorio en Alfresco ...... 69 Figura 32.Modelo de Contenido para la Facultad de Ciencias Médicas ...... 71 Figura 33.Tipos Documentales para la Facultad de Ciencias Médicas ...... 72 Figura 34.Metadatos ...... 73 Figura 35.Clientes para CMIS ...... 79 Figura 36.Logo de CMIS ...... 79 Figura 37.Sitio para la Facultad de Ciencias Médicas ...... 81 Figura 38.Biblioteca de Documentos ...... 81 Figura 39. Formulario para la Visualización de los Metadatos del Documento.... 82 Figura 40. Formulario para Editar los Metadatos del Documento ...... 82 Figura 41.Busqueda Avanzado para los Tipos Documentales en Alfresco Share .. 83

xiv

GLOSARIO

API: Interfaz de programación de Aplicaciones, es un conjunto de funciones y procedimientos (o métodos, en la programación orientada a objetos), que ofrecen cierta biblioteca para ser utilizado por otro software como una capa de abstracción. Son usadas como generalmente en las librerías. Bean: Es un componente de software que permite encapsular información para reutilizar código. Extreme Programming: Es una metodología ágil centrada en potenciar las relaciones interpersonales como clave para el éxito en desarrollo de software, promoviendo el trabajo en equipo, preocupándose por el aprendizaje de los desarrolladores, y propiciando un buen clima de trabajo. EJB: Enterprise JavaBeans, es una de las API que forma parte del estándar de construcción de aplicaciones empresariales JEE, que permite la implementación de los servicios de negocio dentro de una aplicación con arquitectura JEE. JEE: Java Platform, Enterprise Edition o Java EE, es una plataforma de programación que forma parte de la plataforma Java para hacer referencia a aplicaciones empresariales construidas con Java. JPA: Java Persistence API, es una especificación de Sun Microsystem desarrollada para la plataforma JEE para la persistencia de objetos Java a cualquier base de datos relacional. JPQL: Java Persistencia Query Language (JPQL), es un lenguaje de consulta independiente de la plataforma orientada a objetos definidos como parte de la especificación JPA. JSF: Es una tecnología y framework para aplicaciones Java basadas en web que simplifica el desarrollo de interfaces de usuario en aplicaciones Java EE.

xv

RESUMEN

DESARROLLO DE UN SISTEMA DE INFORMACIÓN PARA LA ADMINISTRACIÓN DE DOCENTES DE LA FACULTAD DE CIENCIAS MÉDICAS, MODALIDAD PROYECTO INTEGRADOR.

Autor: Patricio Xavier Samueza Guamán. Tutor: Ing. Mario Raúl Morales Morales.

El presente trabajo tiene como finalidad dotar de una herramienta informática, que facilite la recolección de información personal, laboral, formación académica, actualización de conocimientos, publicaciones, cargos administrativos y actividades de los docentes de las diferentes carreras de la Facultad de Ciencias Médicas. Para sustentar el ingreso de la misma, la aplicación permite almacenar el documento digital en un Sistema de Gestión Documental.

El aplicación web se desarrolló bajo la metodología XP (Extreme Programming), con las herramientas de software: Lenguaje de programación Java, bajo su plataforma Java Enterprise Edition versión 7, Glassfish, Netbeans, PrimeFaces, PostgreSQL y Alfresco.

Por lo expuesto anteriormente, el desarrollo de la aplicación tendrá un impacto directo en el proceso de acreditación de carreras, ya que las autoridades, tendrán a su disposición una información oportuna, confiable y consistente de los docentes de la Facultad de Ciencias Médicas.

PALABRAS CLAVES: SISTEMA DE GESTIÓN DOCUMENTAL/ APLICACIÓN WEB/ METODOLOGÍA XP/ LENGUAJE DE PROGRAMACIÓN JAVA/ BASE DE DATOS POSTGRESQL/ SERVIDOR DE APLICACIONES. xvi

ABSTRACT

DEVELOPMENT OF AN INFORMATION SYSTEM FOR THE ADMINISTRATION OF PROFESSORS OF THE MEDICAL SCIENCES FACULTY.

Author: Patricio Xavier Samueza Guamán.

Tutor: Ing. Mario Raúl Morales Morales.

The present work has as purpose to provide a computing tool, which facilitates the collection of personal information, labor, academic training, updating knowledge, publications, administrative positions and activities of the teachers of the differents careers of the Medical Sciences Faculty. To support the entry of the same, the application allows you to store your digital document in a Document Management System.

The web application is developed under the methodology XP (Extreme Programming), with the software tools: Java Programming Language, under their Java Platform Enterprise Edition Version 7, Glassfish, Netbeans, PrimeFaces, PostgreSQL and Alfresco.

The development of the application will have a direct impact on the process of accreditation of careers because the authorities, will have at their disposal a timely, reliable and consistent of the professors of the Medical Sciences Faculty.

KEYWORDS: DOCUMENT MANAGEMENT SYSTEM/ WEB APPLICATION/ METHODOLOGY XP/ JAVA PROGRAMMING LANGUAGE/ POSTGRESQL DATABASE/ APPLICATION SERVER.

I CERTIFY that the above and foregoing is a true and correct translation of the original document in Spanish

______Lcda. Mashury Jessenia Pilamunga Yacchirema. Certified Translator ID: 020202200-0 No.REG: 1005-2016-1677878

xvii

INTRODUCCIÓN

La Ley Orgánica de Educación Superior (LOES) establece en el art. 95 que “La Acreditación es una validación de vigencia quinquenal realizada por el Consejo de Evaluación, Acreditación y Aseguramiento de la Calidad de la Educación Superior (CEAACES), para certificar la calidad de las Instituciones de Educación Superior, carreras o programas educativos, sobre la base de una evaluación previa” (EcuadorUniversitario, 2013).

En cumplimiento de las funciones otorgadas por la LOES en el artículo 174, el CEAACES deberá evaluar, acreditar y categorizar a todas las carreras de las Instituciones de Educación Superior. La evaluación de carreras es una tarea compleja y específica que demanda de la intervención de profesionales expertos en el área de conocimiento específico a evaluarse; sin embargo, el Consejo ha determinado un modelo genérico que acoge cinco criterios de evaluación: Pertinencia, Plan Curricular, Academia, Ambiente Institucional y Estudiantes, normas que reúnen aspectos comunes y fundamentales en todas las carreras (CEAACES, 2014).

Actualmente, la Facultad de Ciencias Médicas de la UCE, se encuentra en proceso de acreditación, para lo cual es necesario estar preparado en el criterio de Academia, criterio fundamental para el ejercicio de una Docencia de calidad impartida en las Instituciones de Educación Superior. Se debe tener presente que la docencia universitaria de calidad debe constituirse en una verdadera comunidad científica, relacionada con la formación académica, tiempo de dedicación, etc.

Por consiguiente, la Comisión de Evaluación Interna de la Universidad Central del Ecuador, a través de la “Matriz de Docentes” recolectó información de los docentes, la misma que fue almacenada en hojas electrónicas, convirtiéndose en información frágil y redundante.

El desarrollo de la aplicación web, propone mejorar los procesos de recolección de datos de los docentes, para permitir obtener información oportuna, consistente y confiable de los mismos, en las diferentes Carrera de la Facultad de Ciencias Médicas, utilizando la metodología XP para el desarrollo de la aplicación. 1

1. PRESENTACIÓN DEL PROBLEMA

1.1 Planteamiento del Problema

Desde el año 2013 inicio el proceso de acreditación en la Universidad Central del Ecuador, por parte del Consejo de Evaluación, Acreditación y Aseguramiento de la Calidad de la Educación Superior (CEAACES), cabe mencionar que las primeras carreras en ser evaluadas son: la Carrera de Medicina, Carrera de Odontología, y la Carrera de Derecho.

A pesar de que el proceso de acreditación ha sido un éxito, se han encontrado algunas falencias con respecto al manejo de la información de docentes en lo que concierne a información personal, laboral, formación académica, capacitación del personal docente, ocasionando que dicha información se encuentre desactualizada, siendo este un pilar importante para poder llegar a la tan ansiada acreditación de las distintas carreras.

Actualmente, la Facultad de Ciencias Médicas atraviesa por un problema crítico, debido a que las Matrices de Docentes se elaboran en hojas electrónicas, teniendo así una información imprecisa, inconsistente y redundante sobre la gestión de los docentes de la Facultad. También cabe mencionar, que el proceso de recolección de documentos se lo realiza de manera manual, ocasionando muchas veces duplicidad de tareas en los diferentes departamentos de la Facultad, los mismos que son almacenados en archivadores físicos, de tal manera que puede existir perdida de documentos.

Por lo expuesto anteriormente en la Carrera de Medicina, se ha detectado la necesidad de desarrollar una aplicación informática, que permita automatizar el ingreso de datos de los docentes y la administración de los documentos digitales mediante un Sistema de Gestión Documental para la Facultad de Ciencias Médicas, que serán de gran apoyo, para tener una información oportuna confiable y consistente.

2

1.2 Objetivos del Proyecto.

1.2.1 Objetivo General Desarrollar e implementar un sistema de información, para gestionar información de docentes de la Facultad de Ciencias Médicas, que permita el registro de información personal, formación académica, cargos directivos, relación laboral, mallas, publicaciones, capacitación y carga horaria, para manejar el historial del docente y la presentación de información a las autoridades pertinentes.

1.2.2 Objetivos Específicos  Convertir el proceso de registro de información de los docentes de la Facultad de Ciencias Médicas en una actividad automatizada, cómoda y ágil, mediante una aplicación web de fácil uso para el usuario.  Gestionar la documentación digital de una forma efectiva, mediante la utilización de un DMS (Sistema de Gestión de Documentos), para almacenar los archivos digitales, que respalden la información registrada como evidencia de las actividades del docente en la Institución.  Generar reportes con información estructurada de los docentes, que servirán de apoyo, para la gestión administrativa en el proceso de evaluación.

1.3 Justificación

Con este proyecto, se busca tener un control más eficiente de la información de los docentes de la Facultad de Ciencias Médicas de la Universidad Central del Ecuador, mediante un sistema de información de docentes, desarrollada en ambiente web, que permita consolidar dicha información de manera segura y rápida, para ayudar a las autoridades, a visualizar la información mediante la generación reportes.

3

1.4 Alcance  Esta aplicación permitirá, registrar la información de los docentes en las diferentes carreras de la Facultad de Ciencias Médicas, pero de manera inmediata en la Carrera de Enfermería, próxima a ser evaluada en el año 2017.  La aplicación se basará solo en la gestión de información de docentes.  Los datos históricos, con los que se disponen son del período 2015-2016 y solo de la Carrera de Enfermería.  La aplicación permitirá, descargar reportes en formato .xlsx relacionada con la información de los docentes, capacitación, formación, cargo directivo, publicación, relación laboral y sus actividades en la Institución.  Almacenar la documentación digital, en un repositorio digital o DMS (Sistema de Gestión de Documentos).

Módulo Parámetros y Seguridad  Universidad.  Facultad.  Carrera.  Mallas.  Períodos.  Usuarios.

Módulo Docentes  Datos Personales.  Relación Laboral.  Formación Académica.  Capacitación.  Cargos Directivos.  Publicaciones. Libros. Artículos. Capítulos de libro. Ponencias. 4

Módulo Carga de Evidencia En este módulo, se almacena el documento digital en el Sistema de Gestión Documental Alfresco, para sustentar los datos ingresados.  Evidencia Malla.  Evidencia Cargo Directivo.  Evidencia Capacitación.  Evidencia Formación.  Evidencia Publicación.  Evidencia Relación Laboral.

5

2. MARCO TEORICO

2.1 Ingeniería de software

La ingeniería de software se preocupa por crear procesos que aseguren calidad en los programas que se realizan y esa calidad atiende a diversos parámetros que son deseables para todo desarrollo, como la estructuración de los programas o reutilización del código, lo que debe influir positivamente en la facilidad de desarrollo y el mantenimiento.

2.2 Arquitectura

2.2.1 Java Platform Enterprise Edition Versión 7 Es una plataforma de programación Java para desarrollar y ejecutar software de aplicaciones en el lenguaje de programación Java. El modelo de aplicaciones Java EE define una arquitectura para implementar servicios como aplicaciones multicapa que aseguran la escalabilidad, accesibilidad y facilidad de gestión necesarias en un ámbito empresarial. La plataforma JEE está definida por parte de Java Community Process como una especificación de Java, además es considerada de manera informal como un estándar a la hora de crear software, ya que los proveedores deben llegar a cumplir ciertos requisitos para declarar que sus productos son conforme a Java EE. Java EE es un conjunto de especificaciones que permiten soluciones para el desarrollo, despliegue y gestión de aplicaciones multicapa centradas en un servidor. La plataforma Java Enterprise Edition ha pasado por distintas nomenclaturas y versiones a lo largo de su vida, de manera que hubo momentos en el tiempo en el que se denominó Java 2EE y actualmente se lo llama como Java EE. Las especificaciones de la tecnología de la plataforma Java EE utilizadas en el desarrollo de la aplicación.

 Java Platform, Enterprise Edition 7 (JSR 342)  Java Persistence API 2.1 (JSR 338).

6

 Enterprise JavaBeans 3.2 (JSR 345).  JavaServer Faces 2.2 (JSR 344).  Bean Validation 1.1 (JSR 349).

Web Browser

CAPA CLIENTE

Java JEE Server

Contenedor WEB

JSF CAPA DE WEB

Beaking Bean

Capa Integración Contenedor EJB

OPEN CMISS EJB Servicios CAPA DE NEGOCIO

Session Bean CMIS SERVICE

Persistecia JPA CAPA DE DATOS DAO

ENTIDADES

ALFRESCO

CAPA DE BASE DE DATOS

Figura 1. Arquitectura de la aplicación

Fuente: Samueza Guamán Patricio Xavier

7

A continuación mencionaremos cada una de las capas de la aplicación.

2.2.2 Capa de Base de Datos Es donde residen los datos. Está formada por uno o más gestor de bases de datos que realiza todo el almacenamiento de datos de nuestra aplicación, para el desarrollo de la aplicación utilizaremos PostgreSQL.

2.2.3 Capa de Datos. La capa de datos está formada por los servicios que proporcionan los datos persistentes utilizados por la lógica de negocios. Es la capa responsable de la información de la empresa que puede incluir sistemas de bases de bases de datos o sistemas de procesamiento datos. En esta capa se posee el acceso a los datos almacenados. En la capa de datos encontramos: Patrón de Diseño Data Access Object (DAO): Para poder abstraer la lógica de negocio del sistema de la persistencia de datos usamos el patrón de diseño DAO, de tal manera que un cambio en la forma de acceder a los datos solo afectaría al DAO pero no a la lógica de negocio. Entidades: Es un objeto que representa una tabla en el modelo de datos relacional, donde cada instancia de esta entidad corresponde a un registro en esa tabla.

2.2.4 Capa de Lógica de Negocio En esta capa se encuentra la lógica del negocio de la aplicación. Dispone de las interfaces necesarias para interactuar con la capa de datos y poder recuperar, ingresar, eliminar y actualizar datos que serán usados para cálculos luego de una petición del usuario realizada desde el nivel de la capa Web. En esta capa podemos encontrar la tecnología Enterprise Java Beans (EJBs).Un EJB es un componente de software que se ejecuta del lado del servidor en una aplicación multicapa. Los clientes de EJB acceden a él por medio de una interfaz que esconde los detalles de la implementación del componente. En esta capa se utilizan los Session Beans:

8

 Session Beans: Pensados para modelar procesos de negocio que son accedidos de manera síncrona.

2.2.5 Capa de Integración Esta capa se encarga de integrar el Sistema de Gestión Documental Alfresco con la aplicación web, permite subir el documento digital al repositorio junto con sus metadatos. Para integrar Alfresco con la Aplicación utilizamos CMIS acrónimo para Servicios de Interoperabilidad de Gestión de Contenidos, es un estándar de comunicación entre el Sistema de Gestión Documental y la aplicación Java. Para mayor detalle del Sistema de Gestión de contenidos revisar el capitulo 4.

2.2.6 Capa Web Se encarga de recibir los datos del usuario desde la capa cliente y basándose en éstos genera una respuesta apropiada a la solicitud. Este nivel se comunica directamente con la capa de lógica de negocios, utilizando el patrón de diseño Modelo - Vista – Controlador

 Patrón de diseño Modelo - Vista - Controlador. Este patrón es una solución efectiva al problema de arquitectura que plantea la necesidad de separar la parte de presentación o vista y la parte de datos o modelo, introduciendo un tercer componente denominado Controlador. El Modelo: Es la representación de la información con la cual el sistema opera, por lo tanto gestiona todos los accesos a dicha información, tanto consultas como actualizaciones, implementando también los privilegios de acceso que se hayan descrito en las especificaciones de la aplicación (lógica de negocio). Envía a la “vista” aquella parte de la información que en cada momento se le solicita para que sea mostrada (típicamente a un usuario). Las peticiones de acceso o manipulación de información llegan al “modelo” a través del “controlador”. (WIKIPEDIA, 2015) En JSF el Modelo se implementa en las clases Managed Bean, también conocidos como Backing Beans. El Controlador: Responde a eventos (usualmente acciones del usuario) e invoca peticiones al “modelo” cuando se hace alguna solicitud sobre la información (por 9

ejemplo, editar un documento o un registro en una base de datos). También puede enviar comandos a su “vista” asociada si se solicita un cambio en la forma en que se presenta el “modelo” (por ejemplo, desplazamiento o scroll por un documento o por los diferentes registros de una base de datos), por tanto se podría decir que el “controlador” hace de intermediario entre la “vista” y el “modelo” (WIKIPEDIA, 2015). La Vista: Presenta el “modelo” (información y lógica de negocio) en un formato adecuado para interactuar (usualmente la interfaz de usuario), por tanto requiere de dicho “modelo” la información que debe representar como salida (WIKIPEDIA, 2015). Aquí se sitúan los elementos para la entrada y salida de datos de usuario implementados con la tecnología Facelets de JSF y con el lenguaje “EL” de expresiones. Los elementos JSF de la Vista son:  Páginas XHTML.  Clases representando conversores, validadores y listeners.  Propiedades de la Vista en las clases Managed Bean.  Elementos que extienden la Vista: Renderers y componentes propios.

2.2.7 Capa Cliente Se encarga de recibir los datos del usuario para poder acceder a la aplicación por medio de un navegador Web.

2.3 Tecnologías para el desarrollo de aplicaciones Java Web.

2.3.1 Tecnologías en la capa de acceso de datos.

 Java Persistencia API (JPA). Es un API de persistencia proporcionada por la plataforma JEE, utiliza un patrón de mapeo objeto/relacional que permita tener una comunicación entre un modelo orientado a objetos y una base relacional.

10

El objetivo que persigue el diseño de esta API es no perder las ventajas de la orientación a objetos al interactuar con una base de datos, y permitir usar objetos regulares (conocidos como POJOs1). JPA se compone de las siguientes áreas:  La API en sí misma, JPA.  La Java Persistence Query Languaje (JQPL), lenguaje de consulta definido como parte de la especificación JPA, está inspirado en SQL solo que opera contra entidades JPA en lugar de hacerlo directamente a las tablas de la base de datos.  Mapeo objeto/relacional.

2.3.2 Tecnologías en la capa de lógica de negocio.

 Servidor de Aplicaciones: GlassFish es un servidor de aplicaciones, considerado como una solución para el despliegue de aplicaciones web, ya que implementa herramientas en la Plataforma Java Enterprise Edition. Es gratuito y de código libre. Incluye un middleware que permite la comunicación con varios servicios web, permite el funcionamiento en ambientes web de manera segura y la conexión a una gran variedad de fuentes de datos, sistemas y dispositivos (Goncalves, 2013).  Enterprise JavaBeans (EJB) Un EJB es un componente de software que se ejecuta del lado del servidor para la plataforma JEE que simplifica el proceso de construcción de aplicaciones de componentes empresariales distribuidas en Java, de tal manera que es posible desarrollar aplicaciones escalables, fiables y seguras. Características de los EJB:  Se ejecutan en un contenedor EJB (en un servidor de aplicaciones).  Implementan la lógica de negocio de la aplicación.  Son reusables.  Bean de sesión (Session bean).

1 Plain Old Java Object (POJO).- son las siglas utilizadas por programadores Java para enfatizar el uso de clases simples y que no dependen de un framework en especial.

11

Gestionan la lógica de negocio para un cliente, el tiempo de vida es limitado por la duración de la sesión2 del cliente, por lo cual no son persistentes en el tiempo. Existen tres tipos de Session Beans: beans con estado, sin estado y de estancia única.  Con estado (stateful). Este tipo de bean mantiene un estado en donde Las instancias de un bean de sesión están dedicadas a responder a un solo cliente.  Se crean cuando un cliente accede por primera vez a algún método.  Mantienen el estado en sus variables de instancia.  Se destruyen cuando el cliente termina la sesión.  Sin estado (stateless). Están pensados para modelar los procesos de negocios que tienden naturalmente a una única interacción, por tanto no requieren de mantener un estado entre múltiples invocaciones. Después de la ejecución de cada método, el contenedor puede decidir mantenerlo, destruirlo o limpiar toda la información resultante de ejecuciones previas o reutilizarlo en otros clientes.  No mantienen el estado del cliente.  La tarea que realizan debe ser completada en una llamada a un solo método.  Generalmente agrupan métodos relacionados entre sí.  Son los que tienen mejor rendimiento.  De estancia única (singleton). Este tipo de bean crea una sola instancia del bean en toda la aplicación, viven durante toda la duración de la aplicación y mantiene su estado entre las invocaciones de los clientes.  Contenedor EJB El contenedor EJB proporciona un entorno de ejecución controlado en el cual operan los componentes EJB para aplicaciones Java EE. Los contenedores de EJB proveen servicios a los EJB como:

 Comunicación remota: comunicación entre el bean y el cliente en máquinas diferentes.

2 Sesión: Una sesión es una conexión entre un cliente y un servidor la misma que dura una cantidad finita de tiempo. 12

 Control de concurrencia: llamada simultánea a un mismo bean desde múltiples clientes.  Control de Transacciones: Apertura y cierre de las diferentes transacciones.  Servicios de nombres y directorios.  Seguridad: comprobación de permisos de acceso a métodos en el bean.

2.3.3 Tecnologías en la capa web.

 JavaServer Faces (JSF): Es un framework para aplicaciones web basadas en Java que simplifica el desarrollo de interfaces de usuario en aplicaciones Java EE. JSF usa JSP3 (JavaServer Pages) como la tecnología que permite hacer el despliegue de las páginas, pero también se puede acomodar a otras tecnologías JSF nos permite desarrollar rápidamente aplicaciones de negocio dinámicas en las que toda la lógica de negocio se implementa en Java, creando páginas para las vistas muy sencillas. JSF es un marco de trabajo para crear aplicaciones Java JEE basadas en el patrón MVC (Modelo - Vista - Controlador) basado en el API de Servlets que proporciona un conjunto de componentes en forma de etiquetas definidas en páginas XHTML, lo que da como resultado un desarrollo simple y una aplicación mejor estructurada.

Algunas de las características más importantes de JSF en la actualidad:

 Framework con estándar definido en la especificación Java EE.  Soporte en todos los servidores de aplicaciones y en las herramientas de desarrollo: Eclipse, GlassFish, etc.  Entornos gráficos para desarrollar rápidamente aplicaciones JSF.  Gran variedad de implementaciones de componentes.  Fácil integración con frameworks en la capa de negocio y de persistencia: Spring, JPA, etc.

3 JSP: Es una tecnología que ayuda a los desarrolladores de software a crear páginas web dinámicas basadas en HTML, XML, pero usa el lenguaje de programación Java. 13

 Facelets: Es un lenguaje de declaración de páginas potente pero ligero que se utiliza para construir JavaServer Faces utilizando plantillas de estilo HTML y para construir árboles de componentes, en donde es posible diseñar de forma libre una página web y luego asociarle los componentes JSF específicos. Aporta mayor libertad al diseñador y mejora los informes de errores que tiene JSF. Permite que JSP (Java Server Pages) y JSF (Java Server Faces) puedan funcionar conjuntamente en una misma aplicación web. Estos no se complementan naturalmente. JSP procesa los elementos de la página de arriba a abajo, mientras que JSF dicta su propia renderización (ya que su ciclo de vida está dividido en fases marcadas). Facelets llena este vacío entre JSP y JSF, siendo una tecnología centrada en crear árboles de componentes y estar relacionado con el complejo ciclo de vida JSF. Las principales ventajas de Facelets son:  Construcción de interfaces basadas en plantillas.

 Usa XHTML para la creación de páginas web.  Rápida creación de componentes por composición.

 Fácil creación de funciones y librerías de componentes.

 Muy rápido de compilar y renderizar, con validaciones en tiempo de compilación.  Facelets provee un proceso de compilación más rápido que JSP.

 Provee template, lo cual implica reutilización de código, simplificación de desarrollo y facilidad en el mantenimiento de grandes aplicaciones.

 Lenguaje de Marcado de Hipertexto Extensible (XHTML): Es una versión más estricta y limpia de HTML, que nace con el objetivo de remplazar a HTML ante su limitación de uso con herramientas basadas en XML4. Se trata de una adaptación del lenguaje HTML para que sea compatible con el lenguaje XML, otorga mayor robustez y capacidad de adaptación al momento de crear páginas web.

4 XML. Especificación para diseñar lenguajes de marcado, que permite definir etiquetas personalizadas para descripción y organización de datos 14

2.4 Herramientas de desarrollo

El desarrollo de la aplicación se realizó con las siguientes herramientas:  Lenguaje de programación Java.  Servidor de Aplicaciones GlassFish Server Open Source Edition versión 4.1.  Sistema Gestor De Base de Datos Postgresql 9.3.  Primefaces.  Alfresco Community Edition 5.1.  IDE de Desarrollo Netbeans 8.1.

2.4.1 Java. Es un lenguaje de Programación Orientada a Objetos comercializada por primera vez en 1995 por Sun Microsystems, es un lenguaje multiplataforma es decir tiene la posibilidad de ejecutar un mismo programa en diferentes sistemas operativos dado que no es el sistema quien lo ejecuta sino la máquina virtual (Java Virtual Machine o JVM). Existe diferentes IDE (Entorno de desarrollo integrado) que ofrecen al programador un marco de desarrollo amigable para realizar nuestras aplicaciones compuesto por un editor de código, un compilador, un depurador y un constructor de interfaz gráfica. (Oracle Corporation, 2015)

2.4.2 Servidor de Aplicaciones Java EE Un servidor de aplicaciones es un producto de software que implementa todas las especificaciones Java EE. De manera que al desplegar o instalar una aplicación Java EE en el servidor, sabemos seguro que va a encontrarse con todos los contenedores y servicios definidos por la especificación que utiliza y necesita la aplicación. Existen diferentes pruebas estándar que todo proveedor de servidor de aplicaciones debe pasar satisfactoriamente para poder decir que es Java EE. Es lo que se conoce con el nombre de JCK (Java Compatibility kit o Kit de Compatibilidad Java).

2.4.3 GlassFish Server Edition versión 4.1. GlassFish es un servidor de aplicaciones de código abierto para el desarrollo y despliegue de la plataforma Java EE y como tal soporta Enterprise JavaBeans, JPA,

15

Java Server Faces, JMS, RMI, Java Server Pages, además de otros. Todo lo anterior permite a los desarrolladores crear aplicaciones empresariales que son portables y escalables, fue iniciado por Sun Microsystems para la plataforma Java EE y por un tiempo fue patrocinado por Oracle Corporation. La versión comercial es denominada Oracle GlassFish Enterprise Server (antes Sun GlassFish Enterprise Server). GlassFish 4.1 incluye numerosas mejoras en la consola de administración, ejecución en background de comandos que tarden mucho en completarse (así puedes seguir usando la consola), mejor soporte para REST en la API de administración, cambios en el formato de los logs, configuraciones por defecto para los domain y una mejor administración de la plataforma OSGI (Open Services Gateway Initiative) (Oracle, 2013)

Figura 2. Logotipo GlassFish

2.4.4 PostgreSQL 9.3. PostgreSQL es un Sistema Gestor de Bases de Datos objeto-relacional, distribuido bajo licencia BSD de código libre desarrollado por la comunidad PGDG (PostgreSQL Global Development Group). PostgreSQL utiliza un modelo cliente/servidor y usa multiprocesos en vez de multihilos para garantizar la estabilidad del sistema. Un fallo en uno de los procesos no afectará el resto y el sistema continuará funcionando. a) Características  Es una base de datos 100% ACID acrónimo de Atomicidad, Consistencia, Aislamiento y Durabilidad.  Soporta distintos tipos de datos: además del soporte para los tipos base, también soporta datos de tipo fecha, monetarios, elementos gráficos, datos sobre redes

16

(MAC, IP), cadenas de bits, etc. También permite la creación de tipos propios.  Incluye herencia entre tablas, por lo que a este gestor de bases de datos se le incluye entre los gestores objeto-relacionales.  Copias de seguridad en caliente (Online/hot backups).  UNICODE.  Múltiples métodos de autentificación.  Acceso encriptado vía SSL.  Documentación completa.  Licencia BSD es decir que permite el uso del código fuente en software no libre.  Disponible para Linux y UNIX en todas sus variantes (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64) y Windows 32/64bit. b) Ventajas:  Es ideal para tecnologías Web.  Fácil de administrar.  Su sintaxis SQL es estándar y fácil de aprender.  Multiplataforma.  Capacidades de replicación de datos.  Soporte empresarial disponible.

Figura 3.PostgreSQL

17

2.4.5 PgAdmin III Es la aplicación de código abierto más popular disponible para la administración de PostgresSql, está diseñada para responder a las necesidades de los usuarios, desde escribir consultas SQL sencillas hasta crear bases de datos complejas y robustas. La interfaz gráfica es compatible con todas las características de PostgreSQL facilitando así su administración. PgAdmin es desarrollado por una comunidad de expertos de PostgreSQL en todo el mundo y está disponible en diferentes idiomas.

2.4.6 PrimeFaces Es una librería de componentes visuales de código abierto basado en el estándar JSF 2.0 que facilita la programación de páginas web y mejora la visualización a los usuarios finales gracias a sus librerías enriquecidas.  PrimeFaces soporta la tecnología Ajax que permite un comportamiento asíncrono del lado del cliente lo que mejora la experiencia del usuario al realizar peticiones y carga de datos.  La integración con JavaScript que permiten invocar procesos del lado del cliente para aliviar la demanda de peticiones al servidor desde sus componentes. Soporta CSS, y temas que permiten la creación de diseño en la página y creación de estilos estándares que facilitan el mantenimiento de las páginas. (Enrique, 2010).

2.4.7 Alfresco Community Edition 5.1. Es una plataforma de código abierto para la gestión de contenido empresarial creada para usarse en entornos no críticos. Distribuido con la licencia LGPLv3. Permite a las organizaciones gestionar cualquier tipo de contenido, desde sencillos documentos administrativos a imágenes escaneadas y grabados de ingeniería. Se utiliza en gran medida, ofreciendo una plataforma de gestión de contenido robusta con un repositorio compatible con CMIS. Características de Alfresco:

 Colaboración simple y fácil de usar con la interfaz web de Alfresco Share.  Integración con aplicaciones ya conocidas, como Microsoft Office y Google Docs.  Acceso nativo como una unidad de red en Windows o Mac. 18

 Soporte para aplicaciones de Alfresco Mobile para iOS y Android (SDK incluidos).

Figura 4.Logo de Alfresco

2.4.8 NetBeans 8.1. NetBeans IDE es un entorno de desarrollo integrado de fuente libre y abierta para el desarrollo de aplicaciones en los sistemas operativos Windows, Mac, Linux y Solaris. Es una herramienta para que los programadores puedan escribir, compilar, depurar y ejecutar programas. Es ideal para trabajar con el lenguaje de desarrollo JAVA, pero puede servir para cualquier otro lenguaje de programación como C++, PHP, Python, Groovy, Ruby, y otros. Tomando ventaja de casi 10 años de desarrollo constante, la plataforma NetBeans logró ser creada con la contribución de la comunidad de código abierto, siendo un paquete IDE bien diseñado que puede ser usado para la creación de cualquier tipo de aplicaciones de escritorio, web y móvil.

Figura 5.NetBeans IDE

19

3. METODOLOGIA

El desarrollo de software no es una tarea fácil. Prueba de ello es que existen numerosas propuestas metodológicas, que inciden en distintas dimensiones del proceso de desarrollo, cuyo objetivo es garantizar la calidad del software mediante procedimientos, que faciliten su desarrollo en la búsqueda de mejorar el diseño, disminución de costos y tiempos de desarrollo, mejorar la organización del equipo de trabajo y facilitar el mantenimiento de los sistemas; para ello se han establecido diferentes metodologías.

3.1 Metodologías ágiles.

La característica fundamental de estas metodologías, es el desarrollo iterativo e incremental, aquí los requerimientos y soluciones evolucionan, mediante la colaboración e intervención de grupos relacionados con el proyecto en desarrollo.

Estas metodologías enfatizan los siguientes valores:

 El individuo y la gente de desarrollo, es el principal factor de éxito de un proyecto de software sobre el proceso y herramientas a usarse.  Desarrollar un software funcional, antes que producir documentación buena, ésta última debe producirse en el caso de ser necesaria de forma inmediata, así mismo estos documentos deben ser cortos y centrarse en lo fundamental.  La interacción constante entre el cliente y el equipo de desarrollo, más que la negociación de un contrato. Este detalle será la pauta que marque la marcha del proyecto y asegure su éxito.  Responder a los cambios que se susciten a lo largo del proyecto, antes que seguir estrictamente una planificación.

20

3.2 Comparación de Metodologías Ágiles vs Metodologías Tradicionales

Para que el desarrollo de software sea exitoso, se requiere de diversos elementos agrupados que ayuden a obtener este objetivo, que no solo afectan el proceso en sí, sino también el contexto del equipo de trabajo y su organización. Por ello existen varias consideraciones, que debe analizar antes de seleccionar una metodología, con la finalidad de obtener mayor beneficio de su aplicación y no convertirlo en un riesgo o impedimento; para el avance en el desarrollo del proyecto.

Tabla 1.Metodología Ágil Vs Metodología Tradicional. Fuente: Samueza Guamán Patricio Xavier. Metodologías Tradicionales Metodologías Ágiles Rigidez ante los cambios. Flexibilidad ante los cambios del Los clientes interactúan con el equipo de proyecto de forma moderada a rápida desarrollo mediante reuniones. Los clientes hacen parte del equipo de Grupos de gran tamaño y varias veces desarrollo. distribuidos en diferentes sitios. Grupos pequeños (promedio 10 Dependencia de la arquitectura de software participantes in situ) en el mismo mediante modelos. lugar. Poco Feedback, lo que extiende el tiempo Menor dependencia de la arquitectura de entrega. de software. Mínimos roles. Continúo Feedback, acortando el Basadas en normas de estándares de tiempo de entrega. desarrollo. Diversidad de roles. Procesos muy controlados por políticas y Basadas en heurísticas a partir de normas. prácticas de producción de código. Seguimiento estricto del plan inicial de Procesos menos controlados, pocas desarrollo. políticas y normas. Capacidad de respuesta ante los cambios.

21

3.3 Valores de XP

Simplicidad: Se simplifica el diseño para agilizar el desarrollo y facilitar el mantenimiento. Un diseño complejo del código junto a sucesivas modificaciones por parte de diferentes desarrolladores hace que la complejidad aumente exponencialmente. Para mantener la simplicidad es necesaria la Refactorización del Código, ésta es la manera de mantener el código simple a medida que crece. También se aplica la simplicidad en la documentación, de esta manera el código debe comentarse en su justa medida, intentando eso sí que el código esté auto-documentado. Para ello se deben elegir adecuadamente los nombres de las variables, métodos y clases. Los nombres largos no decrementan la eficiencia del código ni el tiempo de desarrollo gracias a las herramientas de autocompletado y refactorización que existen actualmente.

Comunicación: se realiza de diferentes formas, para los Programadores el código comunica mejor cuanto más simple sea. Si el código es complejo hay que esforzarse para hacerlo inteligible. El código auto-documentado es más fiable que los comentarios ya que éstos últimos pronto quedan desfasados con el código a medida que es modificado. Debe comentarse sólo aquello que no va a variar, por ejemplo, el objetivo de una clase o la funcionalidad de un método.

Las Pruebas Unitarias son otra forma de comunicación ya que describen el diseño de las clases y los métodos al mostrar ejemplos concretos de cómo utilizar su funcionalidad. Los programadores se comunican constantemente gracias a la programación por parejas. La comunicación con el cliente es fluida ya que el cliente forma parte del equipo de desarrollo. El cliente decide qué características tienen prioridad y siempre debe estar disponible para solucionar dudas.

Retroalimentación:

Valentía: enfrentarse a nuevos retos.

Tomando en consideración lo mencionado anteriormente ya que el proyecto posee requisitos cambiantes se opta por escoger la METODOLOGÍA DE PROGRAMACIÓN EXTREMA O XP, para el desarrollo de la aplicación, la cual permitirá el progreso del 22

sistema ajustándose estrictamente a las necesidades del cliente logrando un producto de calidad en corto tiempo (Wikipedia, 2016).

3.4 Ciclo de Vida de XP

Figura 6.Ciclo de vida XP

Fuente: https://grupo13sistemaacademicoescolar.wordpress.com/2-3-metodologias/

Exploración o Planeación: En esta fase, los clientes plantean a grandes rasgos las historias de usuario que son de interés para la primera entrega del producto. Al mismo tiempo el equipo de desarrollo se familiariza con las herramientas, tecnologías y prácticas que se utilizarán en el proyecto. Se prueba la tecnología y se exploran las posibilidades de la arquitectura del sistema construyendo un prototipo. La fase de exploración toma de pocas semanas a pocos meses, dependiendo del tamaño y familiaridad que tengan los programadores con la tecnología (Letelier P, 2016).

Diseño: La metodología XP sugiere que hay que conseguir diseños simples y sencillos. Hay que procurar hacerlo todo lo menos complicado posible para conseguir un diseño fácilmente entendible e impleméntable que a la larga costará menos tiempo y esfuerzo desarrollar.  Refactorizar: Refactorizar es mejorar y modificar la estructura y codificación de códigos ya creados sin alterar su funcionalidad. Refactorizar supone revisar de nuevo estos códigos para procurar optimizar su funcionamiento. Es muy común rehusar 23

códigos ya creados que contienen funcionalidades que no serán usadas y diseños obsoletos.

Codificación: Como ya se dijo en la introducción, el cliente es una parte más del equipo de desarrollo; su presencia es indispensable en las distintas fases de XP. A la hora de codificar una historia de usuario su presencia es aún más necesaria. No olvidemos que los clientes son los que crean las historias de usuario y negocian los tiempos en los que serán implementadas. Antes del desarrollo de cada historia de usuario el cliente debe especificar detalladamente lo que ésta hará y también tendrá que estar presente cuando se realicen los test que verifiquen que la historia implementada cumple la funcionalidad especificada. La codificación debe hacerse ateniendo a estándares de codificación ya creados. Programar bajo estándares mantiene el código consistente y facilita su comprensión y escalabilidad (Dayana, 2014).

Producción: La fase de producción requiere de pruebas adicionales y revisiones de rendimiento antes de que el sistema sea trasladado al entorno del cliente. Al mismo tiempo, se deben tomar decisiones sobre la inclusión de nuevas características a la versión actual, debido a cambios durante esta fase. Es posible que se rebaje el tiempo que toma cada iteración, de tres a una semana. Las ideas que han sido propuestas y las sugerencias son documentadas para su posterior implementación (por ejemplo, durante la fase de mantenimiento) (Letelier P, 2016).

24

3.3.3 Roles y Responsabilidades

Figura 7. Roles XP

Programador  Pieza básica en desarrollos XP.  Más responsabilidad que en otros modos de desarrollo.  Responsable sobre el código.  Responsable sobre el diseño (refactorización, simplicidad).  Responsable sobre la integridad del sistema (pruebas).  Capacidad de comunicación.  Acepta críticas (código colectivo).

Cliente  Pieza básica en desarrollos XP.  Define especificaciones.  Influye sin controlar.  Confía en el grupo de desarrollo.  Define pruebas funcionales.

25

Encargado de Pruebas  Apoya al cliente en la preparación/realización de las pruebas funcionales.  Ejecuta las pruebas funcionales y publica los resultados.

Encargado de Seguimiento (Tracker)  Recoge, analiza y publica información sobre la marcha del proyecto sin afectar demasiado el proceso.  Supervisa el cumplimiento de las estimaciones en cada iteración.  Informa sobre la marcha de la iteración en curso.  Controla la marcha de las pruebas funcionales, de los errores reportados, de las responsabilidades aceptadas y de las pruebas añadidas por los errores encontrados.

Entrenador (Coach)  Experto en XP.  Responsable del proceso en su conjunto.  Identifica las desviaciones y reclama atención sobre las mismas.  Guía al grupo de forma indirecta (sin dañar su seguridad ni confianza).  Interviene directamente si es necesario.  Atajar rápidamente el problema.

Consultor  Apoya al equipo XP en cuestiones puntuales.

Jefe del Proyecto  Favorece la relación entre usuarios y desarrolladores.  Confía en el equipo XP.  Cubre las necesidades del equipo XP.  Asegura que alcanza sus objetivos. (XP, 2013)

26

3.5 Aplicación de la Metodología

Para la realización del proyecto Desarrollo de un Sistema de Información para la Administración de Docentes de la Facultad de Ciencias Médicas se utilizó la metodología Extreme Programming (XP), la cual pertenece al grupo de metodologías ágiles y que nos permite adatarnos a situaciones cambiantes. De tal manera que se ira detallando el proceso de evolución del proyecto desde sus requerimientos hasta la culminación de la aplicación.

3.5.1 Actores o Roles que Intervienen en el Sistema El Sistema Desarrollo de un Sistema de Información para la Administración de Docentes de la Facultad de Ciencias Médicas contiene los siguientes actores.  Usuario SuperAdministrador. Este usuario es el encargado de la Administración de los datos de toda la aplicación y posee el acceso a todos los módulos además es el encargado de la administración de las cuentas de usuarios en la aplicación.  Usuario Administrador. Este usuario es el encargado del manejo de los datos de una determinada Carrera y de las tablas auxiliares necesarias para ingresar los datos en el módulo docente.  Usuario Secretaria Este usuario es el usuario final, es el encargo del ingreso, modificación y eliminación de los datos del módulo docente.

3.5.2 Fase de Exploración. En la fase de exploración se han acordado la construcción de las historias de usuario para la especificación de requisitos, permitiendo disminuir la documentación. Las historias de usuario: permite administrar de forma rápida los requisitos de los usuarios sin tener que elaborar gran cantidad de documentos formales y sin requerir de mucho tiempo para administrarlos. Las historias de usuario permiten responder prontamente a los requisitos cambiantes.

27

A continuación, la tabla 2 muestra una lita de las historias de usuario levantadas con el equipo de la Facultad de Ciencias Médicas:

Tabla 2.Lista de historias de usuario de la aplicación.

Fuente: Samueza Guamán Patricio Xavier. Nª Nombre(Historia de Usuario) 1 Autenticación de Usuarios 2 Administración de Usuarios 3 Administración de Carreras 4 Administración de Malla 5 Administración de Materias 6 Administración de Periodos 7 Administración de Docentes 8 Administración de Relación Laboral 9 Administración de Carga Horaria 10 Administración de Formación Académica 11 Administración de Publicaciones. 12 Administración de Cargo Directivo 13 Administración de Capacitación

Una vez recolectadas todas las historias de usuario, se hizo una reunión del equipo de trabajo donde se plantearon los tiempos necesarios para su implementación, los cuales resultaron en estimaciones inusualmente aproximadas de los tiempos de desarrollo en comparación con los realmente requeridos.

Finalmente, desde el punto de vista del número de historias de usuario, se obtuvo un total 13 historias de usuario entre las más importantes.

A continuación, se detallará un breve resumen de cada una de las historias de usuario detalladas anteriormente.

28

3.5.3 Historia de los Usuarios

Historia de Usuario 1. Autenticar usuario Historia de usuario para el control de ingreso a la aplicación utilizando un nombre de Usuario con su respectiva contraseña. Se creará una ventana para que el usuario pueda ingresar al sistema introduciendo una cuenta de usuario y una clave personal. Si la clave es correcta podrá ingresar al sistema y acceder a los menús de acuerdo al rol o perfil que se le asigne al dicho usuario, caso contrario se redireccionará a una nueva página con un mensaje diciendo que los datos ingresados son incorrectos. Ver (Anexo A: Autenticación de Usuarios)

Historia de Usuario 2. Administración de Usuarios Historia de usuario para el ingreso, modificación de cuentas de usuario en el sistema. Estos usuarios pueden acceder al sistema según el rol asignado. La información que se requiere para ingresar un nuevo usuario son: Nombre del usuario, apellido del usuario, userName, password, correo electrónico, fecha de registro y estado. Ver (Anexo A: Administración de Usuarios)

Historia de Usuario 3. Administración de Carreras. Historia de usuario para el ingreso, actualización, eliminación y búsqueda de los datos más relevantes concernientes a las diferentes carreras de la Facultad de Ciencias Médicas. La información que se requiere para llenar una carrera es la siguiente. Nombre de la Universidad, de la Facultad, Carrera, código de subárea específica, nivel, nombre del título que otorga, número de registro de órgano colegiado, fecha del registro del órgano colegiado, número del registro CONESUP, fecha del registro CONESUP, modalidad, duración, nombre del Director de Carrera. Ver (Anexo A: Administración de Carreras)

Historia de Usuario 4. Administración de Mallas. Historia de usuario para el ingreso, actualización, eliminación y búsqueda de los datos de una o varias mallas pertenecientes a una determinada carrera.

29

La información que se requiere para llenar una malla es la siguiente. Nombre de la Facultad, Carrera, código de malla, nombre de la malla, organización, meses de duración de la malla sin tesis, meses de duración de la malla con tesis, créditos de la malla sin tesis, créditos de la malla con tesis, fecha de inicio de vigencia de la malla, fecha de fin o expiración de vigencia de la malla, número de semestres que contiene la malla, nombre e id de archivo pdf como evidencia de la malla y estado de la malla. Ver (Anexo A: Administración de Mallas)

Historia de Usuario 5. Administración de Materias. Historia de usuario para el ingreso, actualización, eliminación y búsqueda de materias que conforman la malla curricular de una determinada carrera. Primero se debe tener ingresado una malla curricular aprobada por las instancias pertinentes y que ya está ingresada en el sistema para poder seleccionar dicha malla curricular y poder ingresar sus respectivas materias, con esto simplemente se toma la información de las materias que conforman la malla curricular y se las va ingresando al sistema. La información que se requiere para asignar una materia a una malla curricular es la siguiente: Nombre de la materia, código de la materia, semestre, número de horas, número de créditos y observaciones. Ver (Anexo A: Administración de Materias)

Historia de Usuario 6. Administración de Períodos. Permite el ingreso, actualización, eliminación y búsqueda de períodos en los cuales los docentes prestan sus servicios profesionales y que están dentro del proceso de evaluación. La información que se requiere para ingresar los datos de un periodo son: Nombre del período, fecha de inicio del período, fecha de fin del período y estado del período. Ver (Anexo A: Administración de Períodos)

Historia de Usuario 7. Administración de Docentes. Historia de usuario para el ingreso, actualización, eliminación y búsqueda de datos personales de los docentes que pertenecen a una determinada Carrera de la Facultad de Ciencias Médicas.

30

La información que se necesita para ingresar los datos de un docente son: Tipo de identificación, identificación, apellido paterno ,apellido materno, nombres , sexo, dirección, fecha de nacimiento, fecha de ingreso Ies, fecha de salida de la Ies, discapacidad, tipo de discapacidad, número de CONADIS, porcentaje de discapacidad, correo personal, correo institucional ,estado, observación. Ver (Anexo A: Administración de Docentes)

Historia de Usuario 8. Administración de Relación Laboral. Historia de usuario para el ingreso, actualización, eliminación y búsqueda de contratos o relación laboral que pertenecen a un docente. Primero se debe seleccionar un docente para así poderle asignarle un contrato en dicho proceso. La información que se necesita para ingresar los datos de un contrato o relación laboral son: Tipo de personal, categoría, tipo de documento, número de documento, contrato relacionado, fecha Inicio, fecha fin, relación IES, ingreso por concurso, tiempo de dedicación, remuneración mensual, remuneración hora y observaciones. Ver (Anexo A: Administración de Relación Laboral)

Historia de Usuario 9. Administración de Carga Horaria. Historia de usuario para el ingreso, actualización, eliminación y búsqueda de actividades académicas que el docente tiene cumplir semanalmente en su contrato de acuerdo a su tiempo dedicación (Tiempo Completo, Medio Tiempo, Tiempo Parcial) en un determinado periodo de evaluación. Primero se debe seleccionar un docente, un contrato, una malla con sus respectivas materias, un periodo de evaluación y un tipo de actividad que fueron creados anteriormente. La información que se necesita para ingresar la carga horaria de un docente son: Seleccionar un contrato, Seleccionar un período, selecciona malla curricular, seleccionar materias de una malla, número de horas, seleccionar el tipo de actividad, número de paralelos y número de estudiantes. Ver (Anexo A: Administración de Carga Horaria)

31

Historia de Usuario 10. Administración de Formación Docente. Historia de usuario para el ingreso, actualización, eliminación y búsqueda de títulos de tercer y cuarto nivel pertenecientes a un docente obtenidos a la largo de su trayectoria académica. La información que se necesita para ingresar la formación académica de un docente son: País de estudio, nombre de la IES (Instituto de Educación Superior), código de la IES, nivel (tercer nivel, cuarto nivel), grado, nombre del título, código subárea específica, estado del título (terminado o en curso), número de registro SENESCYT, fecha en la cual obtuvo el título y alguna observación. Ver (Anexo A: Administración de Formación Docente)

Historia de Usuario 11. Administración de Cargo Directivo. Historia de usuario para el ingreso, actualización, eliminación y búsqueda de cargos administrativos que el docente ha ocupado en un determinado periodo. La información que se necesita para ingresar el cargo administrativo es: Cargo autoridad, número de Documento donde constato que el docente ha ocupado dicho cargo directivo, fecha en el inicio en la cual inicio sus actividades como autoridad, Fecha de fin en el cual terminara o termino sus actividades como autoridad, documento digital del contrato en la cual se le asigna como autoridad al docente y cualquier tipo de observación. Ver (Anexo A: Administración de Cargo Directivo)

Historia de Usuario 12. Administración de Publicaciones. Historia de usuario para el ingreso, actualización, eliminación y búsqueda de publicaciones que el docente ha publicado a lo largo de su trayectoria profesional. La información que se necesita para ingresar el cargo administrativo es: Permite registrar las publicaciones realizadas por un docente que puede ser de Libros, Capítulos del Libro (varios autores), Artículos y Ponencias se necesita la siguiente información. Ver (Anexo A: Administración de Publicaciones)

32

Historia de Usuario 13. Administración de Capacitación Docente. Historia de usuario para el ingreso, actualización, eliminación y búsqueda de capacitación o cursos de actualización científica que el docente ha cursado a lo largo de su trayectoria profesional. Los cursos pueden ser tanto nacionales e internacionales pero que superen las 32 horas. La información que se necesita para ingresar los cursos de capacitación docente son: Nombre del evento, fecha de inicio del evento, fecha de fin del evento, nombre de institución donde se realizó el evento, número de horas de duración del evento, tipo de curso (Curso de Metodología de la Enseñanza, Curso a fin de la Catedra), localidad del curso (Nacional, Internacional), país donde se realizó la capacitación, nombre e id del archivo pdf, que respalde que el docente culminó el curso de actualización de conocimientos y algún tipo de observación. Ver (Anexo A: Administración de Capacitación Docente)

3.6 Fase de Diseño

3.6.1 TARJETAS CRC. Son una herramienta de brainstorming (lluvia de ideas), usado como metodología para el diseño de software objetos. Estas tarjetas se dividen en tres secciones que contienen la información del nombre de la clase, sus responsabilidades y sus colaboradores.

3.6.2 Tarjeta CRC para la creación Genérica de las Entidades.

Tabla 3. Tarjeta CRC para la creación Genérica de las Entidades.

Fuente: Samueza Guamán Patricio Xavier. TARJETA CRC Clase: Abstract Facade Responsabilidades Colaboradores  Insertar Entidad. Todas las entidades (Objetos) dependen  Actualizar Entidad. de esta clase para el CRUD de los  Eliminar Entidad. objetos.

33

 Listar todas las Entidades.  Buscar Entidad por id.  Contar registros.

3.6.3 Tarjeta CRC para la Validación de Fechas.

Tabla 4.Tarjeta CRC para la Validación de Fechas.

Fuente: Samueza Guamán Patricio Xavier. TARJETA CRC Clase: ValidatorFechas Responsabilidades Colaboradores  Controla y valida el rango de Ninguno. fechas de inicio y Finalización de eventos. De tal manera que la FechaFin>FechaInicio

3.6.4 Tarjeta CRC para el Control de Acceso sin sección iniciada.

Tabla 5. Tarjeta CRC para el Control de Acceso sin sección iniciada.

Fuente: Samueza Guamán Patricio Xavier TARJETA CRC Clase: spring-security.xml Responsabilidades Colaboradores  Controla y valida el acceso a Motor de seguridad. diferentes páginas de acuerdo al rol asignado al usuario.

34

3.6.5 Tarjeta CRC para la Administración Carera.

Tabla 6. Tarjeta CRC para la Administración Carera.

Fuente: Samueza Guamán Patricio Xavier. TARJETA CRC Clase: Carrera Responsabilidades Colaboradores  Nuevo Carrera. Administrador.  Actualizar Carrera.  Eliminar Carrera.  Ver Datos Carrera.  Listar Carrera.

3.6.6 Tarjeta CRC para la Administración Malla.

Tabla 7.Tarjeta CRC para la Administración Malla.

Fuente: Samueza Guamán Patricio Xavier. TARJETA CRC Clase: Malla Responsabilidades Colaboradores  Nuevo Malla. Administrador, Secretaria.  Actualizar Malla.  Eliminar Malla.  Ver Datos Malla.  Listar Malla por Carrera.  Subir documento al repositorio.  Eliminar documento del repositorio.  Descargar documento del repositorio.

35

3.6.7 Tarjeta CRC para la Administración Período.

Tabla 8.Tarjeta CRC para la Administración Periodo.

Fuente: Samueza Guamán Patricio Xavier. TARJETA CRC Clase: Periodo Responsabilidades Colaboradores  Nuevo Período. Administrador.  Actualizar Período.  Eliminar Período.  Ver Datos Período.  Listar Malla por Período.

3.6.8 Tarjeta CRC para la Administración Docente.

Tabla 9.Tarjetas CRC para la Administración Docente.

Fuente: Samueza Guamán Patricio Xavier. TARJETA CRC Clase: Docente Responsabilidades Colaboradores  Nuevo Docente. Administrador.  Actualizar Docente.  Eliminar Docente.  Ver Datos Docente.  Listar Docentes.

36

3.6.9 Tarjeta CRC para la Administración Relación Laboral.

Tabla 10.Tarjeta CRC para la Administración Relación Laboral.

Fuente: Samueza Guamán Patricio Xavier. TARJETA CRC Clase: RelacionLaboral. Responsabilidades Colaboradores  Nuevo Relación Laboral. Secretaria.  Actualizar Relación Laboral.  Ver Datos Relación Laboral.  Eliminar Relación Laboral.  Listar Relación Laboral por Docente.  Subir evidencia al repositorio.  Descargar evidencia del repositorio.  Eliminar evidencia del repositorio.

3.6.10 Tarjeta CRC para la Administración carga horaria.

Tabla 11.Tarjeta CRC para la Administración carga horaria.

Fuente: Samueza Guamán Patricio Xavier. TARJETA CRC Clase: DocentesMallaContratoMateria. Responsabilidades Colaboradores  Nuevo Carga Horaria. Secretaria.  Actualizar Carga Horaria.  Ver Datos Carga Horaria.  Eliminar Carga Horaria.

37

 Listar Carga Horaria por Docente.

3.6.11 Tarjeta CRC para la Administración de Formación docente.

Tabla 12.Tarjeta CRC para la Administración de Formación docente.

Fuente: Samueza Guamán Patricio Xavier TARJETA CRC Clase: Formacion. Responsabilidades Colaboradores  Nueva Formación. Secretaria.  Actualizar Formación.  Ver Datos Formación.  Eliminar Formación.  Listar Formación por Docente.  Subir evidencia al repositorio.  Descargar evidencia.  Eliminar evidencia del repositorio.

3.6.12 Tarjeta CRC para la Administración de Cargo Directivo.

Tabla 13.Tarjeta CRC para la Administración de Cargo Directivo.

Fuente: Samueza Guamán Patricio Xavier. TARJETA CRC Clase: CargoDirectivo. Responsabilidades Colaboradores  Nueva Cargo Directivo. Secretaria.  Actualizar Cargo Directivo.  Eliminar Cargo Directivo.  Ver Datos Cargo Directivo.

38

 Listar Cargo Directivo por Docente.  Subir evidencia al repositorio.  Descargar evidencia.  Eliminar evidencia del repositorio.

3.6.13 Tarjeta CRC para la Administración de Publicaciones.

Tabla 14.Tarjeta CRC para la Administración de Publicaciones.

Fuente: Samueza Guamán Patricio Xavier. TARJETA CRC Clase: Publicaciones. Responsabilidades Colaboradores  Nueva Publicaciones. Secretaria  Actualizar Publicaciones.  Ver Datos Publicaciones.  Listar Publicaciones por Docente.  Descargar Archivo de Publicaciones.  Visualizar Archivo de Publicaciones

3.6.14 Tarjeta CRC para la Administración de Capacitación.

Tabla 15.Tarjeta CRC para la Administración de Capacitación.

Fuente: Samueza Guamán Patricio Xavier. TARJETA CRC Clase: Capacitacion. Responsabilidades Colaboradores  Nueva Capacitación. Secretaria 39

 Actualizar Capacitación.  Ver Datos Capacitación.  Listar Capacitación por Docente.  Descargar Archivo de Capacitación.  Visualizar Archivo de Capacitación

40

3.7 Diagramas UML. UML (Lenguaje Unificado de Modelado) está compuesto por diversos elementos gráficos que se combinan para conformar diagramas. El modelo UML describe lo que hará un sistema, pero no dice cómo implementar dicho sistema. A partir de las Historias de usuario se realizara el Diagrama de casos de Uso para el sistema, que nos dará una idea clara de cómo está funcionando la aplicación.

Diagrama General de Casos de Uso del Sistema

<> Administración General Administrar Usuario Sistema

<> <> Administrar Universidad

Seleccionar <> Periodo 1 Administrar Facultad

<> <> Administrar Período Ingresar Sistema3

<> Administrar Carrera

<>

Administrar Malla SuperAdministrador

<> Administrar Materia

<> <> Administrar Docente

<> <> Administrar Relación Laboral

<> <> <> Administrar Carga Ingresar Sistema Seleccionar Periodo Horaria Administrador

<> <> Administrar Formación

<> <> Administrar Cargo <> Directivo Seleccionar Ingresar Periodo 2 Sistema2 <> <> Administrar Secretaria Publicación

<> Administrar <> Capacitación

<> <> Generar Reportes

<> <> Cargar Evidencias

Figura 8. Diagrama General de Casos de Uso del Sistema Fuente: Samueza Guamán Patricio Xavier 41

El diagrama anterior muestra el diagrama general de los casos de uso para el Desarrollo del Sistema de Información para la Administración de Docentes de la Facultad de Ciencias Médicas. En el cual se muestra el modelo gráfico de los módulos y los permisos a los módulos a los cuales cada actor podrá interactuar, en el caso del actor SuperAdministrador tendrá el acceso completo al sistema. Para ver el detalle de los demás casos de uso del sistema ver Anexo B.

3.8 Autenticación y Autorización (Spring Security) Es un framework que se centra en proporcionar servicios de seguridad para aplicaciones de software empresarial basadas en Java EE. Se centra principalmente en dos áreas de seguridad como son: la autenticación y autorización para aplicaciones Java. Permite gestionar todo lo relativo a la seguridad de nuestra aplicación web, desde el protocolo de seguridad, hasta los roles que necesitan los usuarios para acceder a los diferentes recursos de la aplicación. Autentificación.- La autentificación representa el proceso a través del cual se establece si un usuario es quien dice ser para poder acceder a un conjunto de servicios. Autorización.- La autorización representa el proceso a través del cual se controlan las acciones de un usuario ya autentificado, por lo tanto se le conceden o niegan permisos sobre distintos servicios.

A nivel de autenticación Spring Security soporta muchos modelos de autenticación, muchos de estos modelos de autenticación son proporcionados por terceros o son desarrollados por estándares importantes como el IETF5 (Internet Engineering Task Force), adicionalmente, Spring Security proporciona su propio conjunto de características de autenticación. Específicamente, Spring Security actualmente soporta integración de autenticación con una variedad de tecnologías pero en JEE son:  HTTP BASIC. Donde el navegador muestra una ventana propia para introducir el login y password.

5IETF: Es una organización internacional abierta de normalización, que tiene como objetivos el contribuir a la ingeniería de Internet, actuando en diversas áreas, como transporte, encaminamiento, seguridad. 42

 HTTP Digest. Es similar a la anterior, Con la diferencia que la contraseña es cifrada.  Form-based authentication. Login con formulario web

3.8.1 Configuración de Spring Security. Spring Security usa filtros6 de servlets para poder controlar la seguridad y cada filtro cumple una determinada función. A continuación se muestra un esquema general de cómo funciona los filtros con Spring Security.

Figura 9.Filtros de Spring Security

6 Filtro: Los filtros son clases de Java que implementan la interfaz javax.servlet.Filter, y cuya misión es interceptar las peticiones antes de que lleguen a los servlets y después realizar ciertas operaciones. 43

Para que la aplicación web quede protegida por Spring Security. Lo primero que debemos hacer es dar de alta en el fichero web.xml la ruta en donde tenemos ubicado el fichero de configuración de Spring Security. El siguiente paso es declarar un listener que permite inicializar el framework y por último declarar el filtro que proteja toda la aplicación de accesos no permitidos, para ello se usa el filtro de la clase DelegatingFilterProxy que se encarga de invocar al FilterChainProxy que es el encargado de invocar a los demás filtros utilizados. A continuación se muestra la configuración de Spring Security en el web.xml. contextConfigLocation /WEB-INF/spring-security.xml, /WEB-INF/spring-database.xml, org.springframework.web.context.ContextLoaderListener springSecurityFilterChain org.springframework.web.filter.DelegatingFilterProxy springSecurityFilterChain /* REQUEST FORWARD

44

3.8.2 Principales Filtros Utilizados  UsernamePasswordAutenticationFilter: Este filtro es el encargado del proceso de Autenticación, cuyo propósito es extraer las credenciales del usuario de la petición HTTP. Por defecto, la autenticación está basada en HTTP , pero en la aplicación se ha utilizado una autenticación basada en formulario utilizando la siguiente configuración en spring-security.xml:

Con el atributo login-page se especifica la página que contiene el formulario de login y con default-target-url la dirección a la que se saltará por defecto. En la autenticación basada en formulario, este filtro se llama por defecto y requiere que se configure un AutenticationManager.  AutenticationManager. Esta interfaz solo define un método: Authentication authenticate (Authentication authenticaction) throws AuthenticationException; El parámetro de entrada tendrá los datos básicos de autenticación. Con este dato se procederá a obtener toda la información de las credenciales asociadas con el principal (usuario) y se comprobará si dichas credenciales son correctas. En el caso de que las credenciales no sean correctas el proceso de autenticación lanzará una AuthenticationException (error de autenticación). Si la autenticación es correcta se obtendrán las autoridades (roles) asociadas al usuario y serán guardadas en el objeto Authentication, el cual será devuelto por el método. AuthenticationManager delega responsabilidades, teniendo un conjunto de componentes denominados ProviderManager los cuales son los encargados de implementar el proceso de autenticación. Los objetos ProviderManager están más cercanos a la tecnología usada para implementar la seguridad en la

45

aplicación, es decir al DaoAuthenticationProvider ya que utilizamos una base de datos. En el siguiente diagrama se muestra la colaboración entre componentes para implementar el proceso de autenticación en la aplicación aplicación.

Figura 10. Proceso de Autenticación A continuación se muestra el código del namespace para el el cual es responsable de registrar la AuthenticationManager que proporciona servicios de autenticación en la aplicación.

Como las credenciales están en una base de datos debemos conectarnos con ella a través de un dataSource. Para lo cual accedemos al dataSources utilizando JNDI7 (Java Naming and Directory Interface) con la etiqueta .

7 JDNI. Es una API de Java para servicios de directorio. Permite a los clientes descubrir y buscar objetos y datos a través de un nombre. 46

 LogoutFilter. Se encarga de invalidar automáticamente la sesión HTTP y redirigir al usuario a una página de salida, para lo cual se utiliza el filtro de logout, cuyo esquema es el siguiente:

Figura 11.Logout Filter Para personalizar el logout desde la aplicación web se debe configura en el archivo spring-security.xml de la siguiente manera:

El atributo logout-url indica que URL "disparará" el proceso. Por tanto, para que el usuario pueda hacer logout bastará con un enlace a esta URL en cualquier página. Con logout-success-url indicamos a qué página se re direccionará tras invalidar la sesión.

47

 FilterSecurityInterceptor Es responsable de manejar la seguridad de los recursos HTTP. Se requiere una referencia a un AuthenticationManager y un AccessDecisionManager. Para el se utilizan dos atributos: el pattern y el acceso. A continuación se muestra la configuración en el archivo spring-security.xml.

48

3.9 Modelo Entidad-Relación Sistema Docente

A continuación se presenta el modelo de datos empleado para la aplicación final. (Diccionario de Datos: ver Anexo C)

Figura 12.Modelo Entidad-Relación Sistema Docente.

Fuente: Samueza Guamán Patricio Xavier. 49

3.10 Fase de Codificación. En esta etapa se detalla el desarrollo del sistema después de la fase de diseño. 3.10.1 Diseño de la estructura del Sistema Para el diseño de la estructura del proyecto Sistema de Gestión de Docentes se hace uso de una plantilla web que permite desarrollar el sitio web de una forma mucho más fácil y rápida que los diseños a medida. Para lo cual se utilizó Facelets que es un sistema de código abierto de plantillas web bajo licencia de Apache que es compatible con todos los componentes de JSF.

CABECERA

CONTENIDO

Figura 13.Estructura General del Sistema

Fuente: Samueza Guamán Patricio Xavier  Cabecera: contiene el nombre de institución, el menú con todas las opciones a las que tiene acceso el usuario, el nombre del usuario loqueado y el botón de ingreso de sección.  Contenido: varía según la opción seleccionada en el menú que se encuentra en la cabecera. A continuación se muestra el código y la plantilla web utilizada en todos los módulos del sistema.

50

Cabecera

Contenido

Figura 14.Codigo Plantilla Estructura General del Sistema

Fuente: Samueza Guamán Patricio Xavier

Figura 15.Plantilla Web del Sistema

Fuente: Samueza Guamán Patricio Xavier

3.10.2 Autenticación y Autorización de Usuario Una de las tareas más importantes dentro del sistema es asegurar el acceso correcto a los módulos del sistema, para ello utilizamos el framework Spring Security que ofrece una serie de filtros que se encargan de interceptar las peticiones HTTP y aplicar

51

procesamientos de índole variada antes de que estas alcancen el destino final, de tal manera que los filtros se encargan de comprobar si el usuario está autenticado en el sistema y de determinar si el usuario tiene permisos suficientes para acceder al recurso. Para lo cual se provee una interfaz en la que se pide las siguientes credenciales:  Nombre de Usuario.  Contraseña.

Figura 16.Interfaz para la autenticación de Usuario

Fuente: Samueza Guamán Patricio Xavier

Si los datos son correctos se direccionará a la página de seleccionarPeriodo.xhtml.

Figura 17.Selección del Periodo Fuente: Samueza Guamán Patricio Xavier

Una vez seleccionado el periodo se direccionará a la página de inicio.xhtml.

52

Figura 18.Página de inicio Sistema Docente Fuente: Samueza Guamán Patricio Xavier

Caso contrario si las credenciales son incorrectas Spring Security re-direccionara a la página loginFailed.xhtml.

Figura 19. loginFailed.xhtml Fuente: Samueza Guamán Patricio Xavier

Para el reguardar la contraseña del usuario en la base de datos Spring Security ofrece una serie de algoritmos que permite encriptar la contraseña, tales como: MD4, MD5, SHA, BCrypt, etc. Para encriptar la contraseña en nuestra aplicación se utilizó el algoritmo Bcrypt. Bcrypt, es la mejor solución disponible para encriptar la contraseña en la base de datos, ya que genera internamente un Salt8 azar lo que permite tener un resultado diferente cada vez que se encripte una contraseña.

8 Salt: Es un número de dígitos aleatorios que se le agrega al hash ya sea al principio o al final. 53

Para enlazar el cifrador con el proveedor de autenticación debemos declarar el bean de la clase org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder. A continuación se muestra la creación del bean en el archivo spring-encoder.xml

Para enlazar el bean que encripta la contraseña debemos declararla en el proveedor de autenticación de la siguiente manera:

3.10.3 Patrón de diseño Session Facade El sistema de Administración de Docentes, utiliza un bean de sesión como una fachada (Facade) para encapsular la complejidad de las interacciones entre los objetos de negocio participantes en un flujo de trabajo. El Session Facade maneja los objetos de negocio y proporciona un servicio de acceso uniforme a los clientes. Las principales características para aplicar este patrón son los siguientes:  Proporciona acceso genérico.  Proporcionar a los clientes una interfaz sencilla que oculte todas interacciones complejas entre los componentes de negocio.  Reducir el número de objetos de negocio que se exponen al cliente a través de la capa de servicio sobre la red.

54

 Ocultar al cliente las interacciones y las interdependencias entre los componentes de negocio.  Centraliza el control de transacciones, se obtiene mayor flexibilidad y mayor habilidad para soportar los cambios.  Proporcionar una capa de servicio uniforme para separar la implementación de los objetos de negocio de la abstracción del servicio de negocio.  Evitar la exposición directa de los objetos de negocio a los clientes para mantener el acoplamiento entre las dos capas al mínimo.

Cliente <> SessionFacade 1.. x Objetos de Negocio 1..x accesses

<> Entidades de Negocio Data Acces Object

accesses

Figura 20. Estructura del Patrón Session Facade en la Aplicación Fuente: Samueza Guamán Patricio Xavier

Cliente Representa el cliente del Session Facade, que necesita acceso a servicios en la aplicación. SessionFacade. El SessionFacade se implementa como un bean de sesión, que gestiona las relaciones entre los numerosos objetos de negocio, además proporciona un nivel de abstracción más alto para el cliente. El SessionFacade ofrece acceso genérico a los objetos de negocio. Objetos de Negocio El objeto de negocio es un objeto de función que facilita la aplicación de diferentes estrategias, como beans de sesión, beans de entidad y DAO. Un objeto de negocio proporciona datos y / o algún servicio en el diagrama de clases. El SessionFacade interactúa con varias instancias de los objetos de negocio para prestar el servicio. 55

A continuación se presenta un gráfico con la clase AbstractFacade que se utiliza como un bean de fachada en la aplicación.

Figura 21. Clase AbstractFacade.java en la aplicación

Fuente: Samueza Guamán Patricio Xavier

3.10.4 Clases de Validación.  Validación de Fechas.-Esta clase se utiliza en todas los módulos donde se necesita una fecha de inicio y una fecha de fin de tal manera que valida que la fecha final sea mayor o igual que la fecha de inicio permitiendo así la reutilización de código

56

Figura 22.ValidatorFechas.java

Fuente: Samueza Guamán Patricio Xavier

A continuación se expone un ejemplo de la clase ValidatorFechas.java

Figura 23. Notificación para la clase ValidatorFechas.java

Fuente: Samueza Guamán Patricio Xavier

3.10.5 Generación de Notificaciones. Para la generación de notificaciones la aplicación usa la clase MensajesFaces, la cual permite la generación de notificaciones.

57

Estos mensajes de notificaciones pueden ser de información, advertencia, error y error fatal. A continuación se muestra el código de la clase para la generación de notificaciones. public class MensajesFaces { /** * Método que permite presentar un mensaje informativo al usuario. * @param summary: encabezado del mensaje * @param detail: detalle del mensaje */ public static void informacion(String summary, String detail) { FacesContext.getCurrentInstance().addMessage("SG", new FacesMessage(FacesMessage.SEVERITY_INFO, summary, detail)); } /** * Método que permite presentar un mensaje de adevertencia al usuario. * @param summary * @param detail */ public static void advertencia(String summary, String detail) { FacesContext.getCurrentInstance().addMessage("SG", new FacesMessage(FacesMessage.SEVERITY_WARN, summary, detail)); }

/** *Método que permite presentar un mensaje error al usuario. * @param summary * @param detail */ public static void error(String summary, String detail) { FacesContext.getCurrentInstance().addMessage("SG", new FacesMessage(FacesMessage.SEVERITY_ERROR, summary, detail));

58

} /** *Método que permite presentar un mensaje fatal al usuario. * @param summary * @param detail */ public static void fatal(String summary, String detail) { FacesContext.getCurrentInstance().addMessage("SG", new FacesMessage(FacesMessage.SEVERITY_FATAL, summary, detail)); } }

A continuación se muestra las notificaciones que se generan:  Mensaje de información.

 Mensaje de advertencia

 Mensaje de error.

 Mensaje de error fatal.

3.10.6 Generación de Reportes Para la generación de reportes para la aplicación utilizamos lo que es la librería JasperReports, que permite generar reportes de las diferentes entidades manejadas en la aplicación. Es una poderosa y flexible herramienta de código abierto, escrito completamente en Java, que permite la generación y gestión de informes con un contenido enriquecido. El principal objetivo de esta herramienta es facilitar la construcción de documentos con contenido dinámico y su visualización en diferentes formatos. 59

Su funcionamiento consiste en escribir un archivo xml donde se recogen las particularidades del informe. De tal manera que se obtiene documentos tipo páginas para imprimir o exportar en una variedad de formatos de documentos incluyendo HTML, PDF, Excel, OpenOffice y Word (JaspertSoft Community, 2016).

Figura 24.Arquitectura de JasperReports

Fuente: https://dzone.com/articles/java-reporting-part-2

60

A continuación se presenta la clase GeneradorReportes.java, la cual permite realizar los reportes de los diferentes módulos.

Figura 25.Clase GenerarReportes.java

Fuente: Samueza Guamán Patricio Xavier

61

En la siguiente imagen se muestra cómo se comporta al sistema al generar un reporte.

Figura 26. Generación de Reportes Fuente: Samueza Guamán Patricio Xavier

62

3.11 Fase de Puesta en Producción

3.11.1 Implementación. La Implementación del Sistema de Información para la Administración de Docentes se la realizo en un servidor de la Facultad de Ciencias Médicas ubicado dentro de las mismas instalaciones. Las características del Servidor donde se implementó el sistema son:

Máquina Servidor Web.

 Máquina con Sistema operativo Windows 7.  Procesador Intel Core i7 con una velocidad de 3.4GHz.  1 Tera de almacenamiento.  4 GB de memoria RAM.

Máquina Base de datos.

 Máquina con Sistema operativo Windows 7.  Procesador Intel Core i5 con una velocidad de 2.4GHz.  1 Tera de almacenamiento.  4 GB de memoria RAM.

63

3.11.2 Despliegue de la Aplicación A continuación, se muestra un diagrama de la implementación previa del sistema en una intranet.

HP Core i7 4GB de RAM 1 Tera de almacenamiento

HP Core i5 4GB de RAM 1 Tera de almacenamiento

SistemaADocente.war Computadora Personal http TCP/IP

PostgreSQL

Alfresco

Figura 27.Diagrama de despliegue Sistema A Docente Fuente: Samueza Guamán Patricio Xavier

3.11.3 Carga de Datos. Una vez que la aplicación fue puesta en producción se procedió a subir los datos de los docentes a nuestra base de datos. Los datos ingresados fueron los datos de las matrices de docentes, que la Carrera de Enfermería había recolectado durante los periodos académicos 2015-2015,2015-2016, mediante la importación de los datos de Excel a la base de datos Postgres.

64

4. SISTEMA GESTION DOCUMENTAL

Un gestor documental o gestor de contenidos (DMS), es una herramienta que permite la gestión de grandes cantidades de información almacenadas en forma de documentos. Un gestor documental permite compartir la información contenida de los documentos que son creados, editados y borrados por sus usuarios. Por tanto, debe proveer de mecanismos que posibiliten esta colaboración y todo lo que ello conlleva: organización del repositorio de documentos, gestión de los usuarios y sus permisos para el acceso a los documentos y para la modificación de estos, control de versiones de documentos, búsquedas sobre los documentos, etc.

4.1 Alfresco.

Es una plataforma de Gestión de Contenidos Empresariales (ECM) de código abierto, que permite la creación de un repositorio de archivos y contenidos, almacenando toda la información en un mismo Sistema. Alfresco ofrece dos versiones: Alfresco Community y Alfresco Enterprise. Alfresco posee grandes ventajas gracias a: Estándares de código abierto y Arquitectura abierta.- Gracias al repositorio compatible con CMIS, Alfresco se adapta fácilmente con toda la infraestructura de TI corporativa. No Licenciado.- Alfresco puede ser instalado en su versión Community, que tiene algunas desventajas con respecto a asesoría, pero esto no es un problema ya que cuenta con todas las funcionalidades para la Gestión del Contenido. Software de alta Calidad.- Al ser un sistema de código abierto la comunidad de desarrolladores del sistema es muy numeroso, esta mejora drásticamente la prueba y depuración, de tal manera que aumenta la posibilidad de encontrar soluciones a los problemas. Entre las funcionalidades principales de Alfresco cabe destacar:

 Organiza y facilita la gestión de contenidos de todo tipo.

65

 Gestión libre de los metadatos que están asociados a un documento.  Realizar búsquedas complejas, incluyendo el contenido del documento, metadatos, categorías, etc.

Figura 28.Plataforma de ALFRESCO

4.2 Alfresco en el Cuadrante Mágico de Gartner

Gartner es una empresa de consultoría dedicada de manera exclusiva a investigar la industria de las TI, analizar las tendencias del mercado y elaborar el ranking de soluciones tecnológicas, para facilitar la selección de soluciones y productos, basados en una metodología de trabajo propia, cuenta con un equipo de trabajo con una vasta experiencia y distribuido en todo el planeta.

66

Figura 29.Alfresco en el Cuadrante de GARTNER Fuente: Garnert (Octubre 2015)

 Gartner ha reconocido a Alfresco como un “Visionario” en el Cuadrante Mágico para la Gestión de Contenidos Empresariales (ECM). Ya que es una plataforma abierta, potente y fácil de integrar con otros sistemas empresariales.  Gartner ubica a Alfresco entre las soluciones ECM más completas y seguras, permitiendo la colaboración en toda la empresa, sin pérdida de control de contenido.

4.3 Gestión de Roles para los usuarios.

El rol de un usuario determina lo que pueden y no pueden hacer un usuario en un sitio. Cada rol tiene un conjunto predeterminado de permisos. En Alfresco existe 4 tipos de roles para los usuarios en los que tenemos: Administrador, Colaborador, Contribuidor, Consumidor. 67

 Administradores: tienen derecho sobre todos los contenidos del sitio, los que ellos mismos han creado y lo que otros miembros del sitio han creado.  Colaboradores: tienen derecho sobre todo al contenido del sitio de su propiedad, pueden editar pero no eliminar el contenido creado por otros miembros del sitio.  Contribuyentes: tienen todos los derechos al contenido del sitio de su propiedad pero no pueden editar o eliminar el contenido creado por otros miembros del sitio.  Consumidores: tienen derechos de visualización en un sitio, no pueden crear sus propios contenidos.

4.4 Estructura del Repositorio

El repositorio de Alfresco se construye a partir de los conceptos básicos: espacio contenido.  Espacios: Alfresco funciona mediante “Espacios de Trabajo” superpuestos. Los espacios son equivalente al concepto de directorio o carpeta, pero con propiedades adicionales como reglas de contenido y de seguridad, a los que se les denomina espacios inteligentes. Los espacios pueden contener otros espacios y contenidos.  Contenido: Alfresco es capaz de gestionar todo tipo de documentos, desde archivos de texto simples a archivos binarios pasando por documentos ofimáticos. Con ciertos tipos de documentos, Alfresco puede analizar el archivo para recuperar metadatos (título, descripción,…) que serán archivados en los metadatos del documento Alfresco. Esto se da especialmente con archivos Word, Excel, PowerPoint, PDF. Desde un punto de vista técnico, la aplicación utiliza herramientas como PDFBox y Open Office que permiten leer, escribir e incluso convertir los archivos en formatos diferentes. De este modo, podremos convertir automáticamente cualquier documento Office en PDF o un PowerPoint.

68

Figura 30.Contenido en Alfresco El repositorio se estructura en forma de árbol a partir del Espacio Raíz, del que cuelgan todos los espacios y contenidos que se crean.

Figura 31.Estructura del repositorio en Alfresco Fuente: https://documenta.ugr.es:8443/alfresco/d/d/workspace/SpacesStore/b155c802-f825- 4e49-9ab6-256625c7d2be/ManualAlfresco_CSIRC_v1.0.pdf

69

4.5 Modelo de Contenido en Alfresco Alfresco trabaja con un concepto denominado modelo de contenido, que no es más que la estructura que define la información que acompañaran a nuestros documentos digitales, lo cual permite dotar de propiedades al documento para que posteriormente se puedan realizar búsquedas y procesos más eficientes. Alfresco incorpora un metamodelo en su estructura, es decir, la capacidad para que nosotros declaremos nuevos modelos de contenido. El modelo de contenido por defecto en Alfresco se conoce como Diccionario de Datos, que describe la estructura del contenido a través de propiedades, asociaciones y restricciones. Soporta ser extendida para que el repositorio pueda manejar nuevos modelos de contenido. El metamodelo permite definir en el modelo de contenido dos clases de estructuras: tipos de contenido y aspectos de contenido.

 Tipos de contenido. - presentan un gran parecido a las clases en la programación orientación a objetos. Pueden usarse para representar objetos en nuestro modelo de contenido, tienen propiedades y pueden heredar de un tipo base. Los tipos base definidos en Alfresco son tres: Contenido (cm:content) , Persona (cm:person) o Carpeta (cm:folder).  Aspectos de contenido. - los aspectos aportan características a un documento. Por defecto, en Alfresco ya existen una serie de aspectos predefinidos tales como: cm:versionable, cm:auditable o cm:taggable. Los aspectos contienen un conjunto de propiedades dinámicas que pueden aplicarse a diferentes tipos documentales.  Propiedades. - son metadatos asociados con un tipo particular. En estas se definen el tipo de dato que manejamos y que incluye los tipos básicos fundamentales como texto, fechas (dates) o booleanos, etc.  Restricciones (constrains). - permiten aplicar restricciones sobre cualquier tipo de propiedad. Hay de cuatro tipos: REGEX: Se usa para restringir en base a una expresión regular. Se utiliza para restringir en base a una lista de valores.

70

LIST: Se utiliza para restringir en base a una lista de valores. MINMAX: Se utiliza para restringir las cotas superior e inferior de un valor numérico. LENGTH: Se utiliza para restringir la longitud de un literal. A continuación se presenta el modelo de contenido en forma de árbol para la facultad de Ciencias médicas.

Figura 32.Modelo de Contenido para la Facultad de Ciencias Médicas Fuente: Samueza Guamán Patricio Xavier

A partir del modelo base “content” generamos dos subtipos:

 Tipo para documentos externos. Tipo de documentos focalizada para extender el árbol del modelo contenido en un futuro.  Tipo para documentos para la acreditación. Tipo de documento para gestionar los subtipos de documentos necesarios para el proceso de acreditación.

71

A continuación, se presentan los tipos documentales para la Facultad de Ciencias Médicas creadas a partir el árbol del modelo de contenido.

Figura 33.Tipos Documentales para la Facultad de Ciencias Médicas Fuente: Samueza Guamán Patricio Xavier

4.6 Metadatos

Los metadatos son datos sobre los datos es decir son las propiedades que se la dan a los datos y que permiten caracterizar un documento, por ejemplo (título, autor, etc.). Estas propiedades pueden ser de diferente naturaleza:

 TEXT (d:text): que introduce un campo de tipo cadena de texto (un nombre etc..).  CONTENT (d:content): que permite la introducción de un documento binario.  INT (d:int): que permite asociar un dígito entero.  LONG (d:long): se utiliza para añadir un entero grande.  FLOAT (d:float): que se usa para introducir un número decimal (coma flotante).  DATE (d:date): que se utiliza para añadir la fecha (año, mes, día).  DATETIME (d:datetime): que permite añadir fecha y hora (denominado en inglés timestamp).  BOOLEAN (d:boolean): que introduce un valor binario TRUE o FALSE

72

 CATEGORY (d:category): que hace referencia a una categoría con una clasificación.  PATH (d:path): que permite la introducción de una URL.

Figura 34.Metadatos Fuente: CMIS y APACHE CHEMISTRY en ACCION

Los Metadatos de los Tipos Documentales definidos para la Facultad de Ciencias Médicas se muestran a continuación:

73

Tabla 16. Índices Comunes para los Tipos Documentales de la Facultad de Ciencias Médicas.

Fuente: Samueza Guamán Patricio Xavier.

Apecto docente Aspecto Fechas Aspecto IES Aspecto periodo Definición Definición Definición Tipo de Tipo de Tipo de Definición de la Tipo de de la Descripción de la Descripción de la Descripción Descripción propiedad propiedad propiedad propiedad propiedad propiedad propiedad propiedad Nombre del Fecha de Nombre de Nombre de nombre text docente fechaInicio date inicio nombre IES text la IES nombrePeriodo text la Período Apellido del Fecha de País dela apellido text docente fechaFin date Fin pais text IES Cédula del ci text docente

 Metadatos para el Documento General Acreditación.

Tabla 17.Metadatos para el Tipo de Documento General.

Fuente: Samueza Guamán Patricio Xavier Definición de la Tipo de Descripción propiedad propiedad Título del titulo text documento. Código del codigo text documento. Nombre del nombre text documento.

 Metadatos para el Tipo de Documento Malla.

Tabla 18.Metadatos para el Tipo de Documento Malla.

Fuente: Samueza Guamán Patricio Xavier.

Definición de la Tipo de Descripción propiedad propiedad nombreMalla text Nombre de la malla. codMalla text Código de la malla. carrera aspecto Aspecto carrera. fechas aspecto Aspecto docente.

74

 Metadatos para el tipo de documento Cargo Directivo.

Tabla 19. Metadatos para el Tipo de Documento Cargo Directivo.

Fuente: Samueza Guamán Patricio Xavier.

Definición de la Tipo de Descripción propiedad propiedad numeroDocumento text Número de documento del cargo. tipo de Cargo text Tipo de cargo que ocupo. carrera aspecto Aspecto carrera. docente aspecto Aspecto docente. fechas aspecto Aspecto fechas. Periodo apecto Aspecto periodo

 Metadatos para el Tipo de Documento Capacitación. Tabla 20. Metadatos para el Tipo de Documento Capacitación.

Fuente: Samueza Guamán Patricio Xavier.

Definición de la Tipo de Descripción propiedad propiedad Nombre del evento de nombreEvento text capacitación. numHoras text Número de horas de duración. tipoCurso text Tipo de curso. localidad text Localidad. docente aspecto Aspecto docente. fechas aspecto Aspecto fechas. IES aspecto Aspecto IES.

75

 Metadatos para el Tipo de Documento Formación.

Tabla 21.Metadatos para el Tipo de Documento Formación.

Fuente: Samueza Guamán Patricio Xavier.

Definición de la Tipo de Descripción propiedad propiedad nombreTitulo text Nombre del título. Número de registro del registroSenescyt text SENESCYT. fechaTitulo date Fecha en la cual obtuvo el título. tipoGrado text Tipo de Grado. nivel text Nivel del título. docente aspecto Aspecto docente. IES aspecto Aspecto IES.

 Metadatos para el Tipo de Documento Publicación.

Tabla 22. Metadatos para el Tipo de Documento Publicación.

Fuente: Samueza Guamán Patricio Xavier.

Definición de la Tipo de Descripción propiedad propiedad tipoPublicacion text Tipo de publicación codigoPublicacion text Código de la publicación nombrePublicacion text Nombre de la publicación ISBN_ISSN text Númeo de ISBN o ISSN fechaPublicacion Date Fecha de publicación participacion text Tipo de participación docente aspecto Aspecto docente

76

 Metadatos para el Tipo de Documento Relación Laboral. Tabla 23. Metadatos para el Tipo de Documento Relación Laboral.

Fuente: Samueza Guamán Patricio Xavier.

Definición de la Tipo de Descripción propiedad propiedad

numDocumentoRelacion text Número de documento Tipo de personal con que tipoPersonal text cuenta la IES categoria text Nombre de la categoría Nombre del tipo de tipoDocumento text documento Nombre de la relación con la relacionIES text IES Estado en el que se encuentra estado text el documento docente aspecto Aspecto docente fechas apecto Aspecto fechas carrera apecto Aspecto carrera periodo apecto Aspecto periodo

4.7 Motor de Búsqueda de Alfresco.

Alfresco integra el motor de búsqueda que es una plataforma de búsquedas basada en , que funciona como un "servidor de búsquedas". Sus principales características incluyen búsquedas de texto completo, resaltado de resultados, clustering dinámico y manejo de documentos ricos (como Word y PDF). Solr es escalable permitiendo realizar búsquedas distribuidas y replicación de índices. Algunas de las características más sobresalientes de Solr son:

 Servidor con interfaz tipo REST (interacción vía HTTP, XML, JASON, CSV, etc.)  Permite la configuración de la indexación y recuperación de documentos mediante ficheros de configuración XML.

77

 Incluye caches internas para devolver con mayor rapidez el resultado de las consultas.  Interface Web de administración que permite: consultar estadísticas de rendimiento, incluyendo el uso de cache, realizar búsquedas mediante un formulario.  Navegación de resultados por facetas.  Está escrito en Java, se trata de una aplicación web que se puede desplegar en cualquier contenedor de servlets.  Análisis de texto (Tokenización, normalización, etc.)

4.8 Integración de Alfresco con CMIS.

Para la integración de Alfresco con la aplicación se utilizó la librería OpenCMIS distribuida por Apache Chemestry.

4.8.1 Apache Chemistry. Es el proyecto de la Apache Software Foundation que provee implementaciones de código abierto de la especificación CMIS que regula la interoperabilidad de los Sistemas de Gestión de Contenidos. Apache Chemistry provee librerías y frameworks para diferentes lenguajes de programación como:  Apache OpenCMIS: Bibliotecas CMIS, cliente y servidor en Java.  Cmislib: biblioteca de cliente CMIS en Python.  Phpclient: biblioteca de cliente CMIS en PHP.  DotCMIS - biblioteca de cliente CMIS para .NET

78

Figura 35.Clientes para CMIS Fuente: CMIS y Apache Chemistry in Accion

4.8.2 Servicios de Interoperabilidad de Gestión de Contenidos (CMIS versión 1.1) Es un estándar abierto de OASIS9 que permite a diferentes Sistemas de Gestión de Contenidos (ECM) interoperar a través de Internet. CMIS define un modelo de datos, servicios genéricos, así como protocolos de conexión a esos servicios, incluyendo SOAP, REST (para usar ATOM). Al usar SOAP y REST como interfaces de comunicación se consigue abstracción de lenguaje, por lo que ambos lados (cliente y servidor) se podrán comunicar independientemente del lenguaje en el que esté construido cada uno.

Figura 36.Logo de CMIS

9 OASIS: Acrónimo para Organización para el Avance de Estándares de Información Estructurada, es un consorcio internacional sin fines de lucro que se orienta al desarrollo, la convergencia y la adopción de los estándares para la sociedad de la información global. 79

4.8.3 Lenguaje de Consulta CMIS. El lenguaje de consulta de CMIS se la denomina CMIS SQL, este lenguaje de consulta se basa en SQL-92, que permite hacer búsquedas por contenidos, metadatos, contenido de un documento, etc. La consulta es de sólo lectura y no permite manipulación de datos. En la sintaxis de la consulta se utilizan las siguientes clausulas:  SELECT. - describe las columnas virtuales o propiedades que serán devueltas en un resultado.  FROM. - describe las tablas virtuales o tipos objetos contra el cual se desea ejecutar la consulta.  JOIN. - para realizar una combinación entre los tipos de objetos (aspectos).  WHERE. - describe las condiciones que los objetos deben cumplir para que devuelva el resultado de la consulta.  IN y ANY. - para consultar propiedades multi-valores.  CONTAINS. - para especificar un texto concreto en la búsqueda.  IN_FOLDER y IN_TREE. - para buscar dentro de una jerarquía de carpetas.  ORDERBY. - para ordenar los resultados. A continuación, se muestran algunos ejemplos de consultas utilizando CMIS SQL:  Devuelve todas las propiedades de todos los documentos. SELECT * FROM cmis:document  Devuelve todas las propiedades del documento según el nombre del docuemnto SELECT * FROM cmis:document WHERE cmis:name = 'invite-email.ftl'  Devuelve todas las propiedades de un documento cuando la fecha de creación es a la condición.  SELECT * FROM cmis:document WHERE cmis:creationDate > TIMESTAMP '2011-04-01T00:00:00.000+00:00'  Devuelve las propiedades del documento cuando contiene la palabra alfresco.  SELECT * FROM cmis:document WHERE CONTAINS('alfresco')

80

4.9 Alfresco Share

Alfresco Share es un entorno de gestión de contenidos colaborativo basado en la web que se ejecuta en la plataforma Java y . Permite gestionar y compartir documentos, wikis, contenidos, blogs, etc. Alfresco Share permite construir espacios de colaboración, denominados “Sitios”. Estos son espacios donde se puede compartir contenido y permiten colaborar con otros miembros del sitio, pueden ser creados por colaboradores con permisos para ello.

Figura 37.Sitio para la Facultad de Ciencias Médicas Fuente: Samueza Guamán Patricio Xavier La biblioteca de documentos de Alfresco Share permite el acceso al repositorio de Alfresco, dando una visibilidad completa del contenido en el repositorio. Permite el acceso a múltiples opciones de navegación, por ejemplo, acceso a las carpetas, archivos compartidos, etc.

Figura 38.Biblioteca de Documentos Fuente: Samueza Guamán Patricio Xavier 81

Alfresco permite crear formularios tanto para la visualización, actualización y búsqueda de las propiedades o metadatos de los diferentes tipos documentales para a facultad de Ciencias Médicas A continuación, se muestra los formularios creados en Alfresco.

Figura 39. Formulario para la Visualización de los Metadatos del Documento Fuente: Samueza Guamán Patricio Xavier

Figura 40. Formulario para Editar los Metadatos del Documento Fuente: Samueza Guamán Patricio Xavier

82

Figura 41.Busqueda Avanzado para los Tipos Documentales en Alfresco Share Fuente: Samueza Guamán Patricio Xavier

83

5. CONCLUSIONES

Al término del desarrollo de este proyecto integrador, previo a la obtención del título de Ingeniero Informático, se puede establecer las siguientes conclusiones:  El desarrollo del Sistema de Docentes para la facultad de Ciencias Médicas demostró que puede gestionar y controlar de manera más eficiente los datos de sus docentes, teniendo así información más segura, rápida y oportuna, siendo una herramienta de apoyo para las autoridades encargadas del área docente en el proceso de evaluación de las carreras.  El Sistema de Gestión Documental Alfresco permite almacenar, mantener y organizar información digital de las actividades de los docentes, estos archivos respaldan los datos ingresados en los diferentes módulos, de tal manera que se evita tener tanto papeleo guardado, evitando la pérdida de documentos.

 La creación de un módulo de reportes en la aplicación permite obtener reportes en formato Excel de las actividades de los docentes ingresados en los diferentes módulos, estos reportes son de suma importancia porque proveen información a las autoridades pertinentes, además que sirven para la carga de los datos en la plataforma Sistema de Gestión de la Información de las Instituciones de Educación Superior (GIIES) que es el sistema del CEAACES en el cual se suben los datos de los docentes cuando las carreras se encuentra en el proceso de evaluación.

 El uso de la metodología ágil Extreme Programming (XP), en el desarrollo de software, permitió tener una visión concreta de los procesos dentro de la administración de docentes de la Facultad de Ciencias Médicas, permitiendo la construcción de un software que satisfaga los objetivos plateados, con la documentación necesaria y la obtención de código fuente funcional en poco tiempo, en base a los requerimientos funcionales planteados por la autoridades de la facultad.

84

6. RECOMENDACIONES

 Se recomienda implementar nuevas funcionalidades al Sistema de Administración Docente que no fueron considerados dentro del alcance del proyecto. Tales como un sistema de Inteligencia de Negocios BI (que permita la explotación de los datos de nuestra base de datos).  Se sugiere a los usuarios revisar la documentación de la aplicación en el manual de usuario, que asegurará la correcta utilización del sistema y obtener así todos sus beneficios.  Es necesario fomentar el uso del sistema, para aprovechar al máximo los beneficios que el sistema éste brinda a las autoridades de la Facultad de Ciencias Médicas.  Se sugiere que el personal encargado del control total de la aplicación esté capacitado en lo que son herramientas informáticas, ya que éste tendrá acceso a todos los módulos del sistema y en el mantenimiento de la base de datos.

85

BIBLIOGRAFÍA

1. CEAACES. (01 de 01 de 2014). CEAACES. Recuperado el 12 de 12 de 2015, de Modelo Generico para Evaluación de las Carreras Presenciales y Semipresenciales: http://www.ceaaces.gob.ec/sitio/modelo-generico-de-carreras- presenciales-y-semipresenciales/ 2. ORACLE CORPORATION. (01 de 01 de 2015). ¿Qué es la tecnología Java y para qué la necesito? . Obtenido de OracleLegal: https://www.java.com/es/download/faq/whatis_java.xml 3. PARRAGA, I. (2003), Curso de Java, Recuperado de http://dis.um.es/~bmoros/privado/bibliografia/cursoJava.pdf 4. JASPERTSOFT COMMUNITY. (01 de 01 de 2016). JasperReports® Library. Recuperado de http://community.jaspersoft.com/project/jasperreports-library 5. ORDAX, J. M, & OCAÑA, P. (2012). Programación Web en Java, España, Ministerio de Educación, Cultura y Deporte 6. LETELIER, P. (2016). Métodologías ágiles para el desarrollo de software: eXtreme Programming (XP). CyTA. Obtenido de http://www.cyta.com.ar/ta0502/v5n2a1.htm 7. ORACLE. (2013). GlassFish Server Open Source Edition. En Oracle, GlassFish Server Open Source Edition (págs. 1-2). 8. ORACLE CORPORATION. (01 de 01 de 2015). ¿Qué es la tecnología Java y para qué la necesito? . Obtenido de Oracle: https://www.java.com/es/download/faq/whatis_java.xml 9. UNIVERSIDAD DE ALICANTE. (01 de 01 de 2015). Modelo vista controlador (MVC). Obtenido de Servivio de Infromacion ASP.NET MVC Framework: http://si.ua.es/es/documentacion/asp-net-mvc-3/1-dia/modelo-vista- controlador-mvc.html 10. WIKIPEDIA. (14 de 04 de 2016). Programación extrema. Obtenido de Wikipedia: https://es.wikipedia.org/wiki/Programaci%C3%B3n_extrema 11. SPRING. (01/01/2015). Spring Security Reference. Obtenido de Spring: http://docs.spring.io/spring-security/site/docs/current/reference/htmlsingle/

86

12. SPRING. (01/01/2015). Core Security Filters. Obtenido de Spring: http://docs.spring.io/spring-security/site/docs/3.0.x/reference/core-web- filters.html 13. CODE PROJECT. (13/09/2011) Getting Started Spring Security. Obtenido de: http://www.codeproject.com/Articles/253901/Getting-Started-Spring-Security 14. AZNAR, A. (2015). Alfresco:Modelo de gestion documental y la utilizacion de metadatos Obtenido de Scribd: https://es.scribd.com/doc/85529855/Alfresco- Manual 15. SLIDESHARE. (01/01/2015). Alfresco ECM tipos de contenidos personalizados. Obtenido de SlideShare: http://es.slideshare.net/EmatizTecnologia/contenidos-personalizados-en- alfresco-ecm 16. MILLER, K. (Ed.). (2013) CMIS and Apache Chemistry in Action. Shelter Island,Estados Unidos: Editorial Manning Pubkications Co

87

ANEXOS

88

ANEXOS

ANEXO A. HISTORIAS DE LOS USUARIOS. A continuación se presenta el detalle las historias de usuario para el sistema.

Historia de Usuario 1. Autenticar Usuario

Fuente: Samueza Guamán Patricio Xavier Historia de Usuario SISTEMA WEB DE ADMINISTRACIÓN DOCENTE Número de historia :1 Título: Autenticar Usuario Usuario: SuperAdministrador, Administrador, Secretaria Fecha Inicio: 08/04/2016 Fecha Fin: 12/04/2016 Prioridad en Negocio: Alta Riesgo en Desarrollo: Alta Descripción de la historia:

Permite el acceso a la aplicación de un usuario registrado y acceder a la aplicación con los permisos de acuerdo a su Rol (SuperAdministrador, Administrador, Secretaria).

Anotaciones:

Mensaje de error si se ingresa un usuario o clave incorrecta.

Historia de Usuario 1 Controla el ingreso a la aplicación utilizando un nombre de Usuario con su respectiva contraseña: Se creará una ventana para que el usuario pueda ingresar al sistema introduciendo una cuenta de usuario y una clave personal. Si la clave es correcta podrá ingresar al sistema

89

y acceder a los menús de acuerdo al rol o perfil que se le asigne al dicho usuario, caso contrario se presentará un mensaje indicando que el usuario y contraseña son incorrectos.

Historia de Usuario 2. Administrador de Usuarios

Fuente: Samueza Guamán Patricio Xavier Historia de Usuario SISTEMA WEB DE ADMINISTRACIÓN DOCENTE Número de historia :1 Título: Administrador de Usuarios Usuario: SuperAdministrador Modificación de historia: 12/04/2016 Prioridad en Negocio: Alta Riesgo en Desarrollo: Alta Descripción de la historia:

Permite la creación, modificación y eliminación de cuentas de usuario en el

sistema. (SuperAdministrador, Administrador o Secretaria).

La información que se requiere para ingresar un nuevo usuario son: Nombre del usuario, apellido del usuario, userName, password, correo electrónico, fecha de registro y estado.

Anotaciones:

Primero se crea un usuario para luego poder asignarle un rol.

90

Historia de Usuario 3. Administración de Carreras.

Fuente: Samueza Guamán Patricio Xavier. Historias de usuarios SISTEMA WEB DE ADMINISTRACIÓN DOCENTE Número de historia: 3 Título: Administración de carreras. Usuario: SuperAdministrador, Administrador Modificación de historia: 13/04/2016 Prioridad en Negocio: Alta Riesgo en Desarrollo: Media Descripción de la historia:

Ingreso, actualización y búsqueda de carrera s pertenecientes a la Facultad de Ciencias Médicas. Las ventanas presentarán una interface sencilla y fácil de utilizar. Para el ingreso de una carrera primero se debe tener ingresada una universidad y una facultad para posteriormente ingresar los datos de la carrera. La información que se requiere para llenar una carrera es la siguiente. Nombre de la Universidad, de la Facultad, Carrera, código de subárea específica ,nivel ,nombre del título que otorga, número de registro de órgano colegiado, fecha del registro del órgano colegiado , número del registro CONESUP ,fecha del registro CONESUP, modalidad, duración, nombre del Director de Carrera. Anotaciones:

Se ingresaran solo las carreras pertenecientes a la Facultad de Ciencias Médicas.

91

Historia de Usuario 4. Administración de Mallas.

Fuente: Samueza Guamán Patricio Xavier Historias de usuarios SISTEMA WEB DE ADMINISTRACIÓN DOCENTE Número de historia: 4 Título: Administración de Mallas. Usuario: SuperAdministrador, Administrador Modificación de historia: 05/04/2016 Prioridad en Negocio: Alta Riesgo en Desarrollo: Media Descripción de la historia: Ingreso, actualización y búsqueda de carrera s. Las ventanas presentarán una interface sencilla y fácil de utilizar. La información que se requiere para llenar una malla es la siguiente. Nombre de la Facultad, Carrera, código de malla, nombre de la malla, organización, meses de duración de la malla sin tesis, meses de duración de la malla con tesis, créditos de la malla sin tesis, créditos de la malla con tesis, fecha de inicio de vigencia de la malla, fecha de fin o expiración de vigencia de la malla, número de semestres que contiene la malla, nombre de archivo pdf como evidencia de la malla y estado de la malla. Anotaciones:

Se puede tener dos más mallas vigentes en un mismo periodo de evaluación.

92

Historia de Usuario 5. Administración de Materias.

Fuente: Samueza Guamán Patricio Xavier. Historias de usuarios SISTEMA WEB DE ADMINISTRACIÓN DOCENTE Número de historia: 5 Título: Administración de Materias. Usuario: SuperAdministrador, Administrador Modificación de historia: 07/04/2016 Prioridad en Negocio: Alta Riesgo en Desarrollo: Media Descripción de la historia: Ingreso, actualización, eliminación y búsqueda de materias que pertenecen a una determina malla curricular de una determinada Carrera. Las ventanas presentarán una interface sencilla y fácil de utilizar. Primero se debe tener ingresado una malla curricular aprobada por las instancias pertinentes y que ya está ingresada en el sistema para poder seleccionar dicha malla curricular y poder ingresar sus respectivas materias, con esto simplemente se toma la información de las materias que conforman la malla curricular y se las va ingresando al sistema. La información que se requiere para asignar una materia a una malla curricular es la siguiente: Nombre de la materia, código de la materia, semestre, número de horas, número de créditos y observaciones.

Anotaciones:

Hay que tener en cuenta que un crédito equivale a 16 horas.

93

Historia de Usuario 6. Administración de Períodos.

Fuente: Samueza Guamán Patricio Xavier Historias de usuarios SISTEMA WEB DE ADMINISTRACIÓN DOCENTE Número de historia: 6 Título: Administración de Períodos. Usuario: SuperAdministrador, Administrador Fecha Inicio: 13/04/2016 Fecha Fin: 16/04/2016 Prioridad en Negocio: Alta Riesgo en Desarrollo: Media Descripción de la historia:

Ingreso, actualización, y búsqueda de períodos en los cuales se realiza el

proceso de evaluación. Las ventanas presentarán una interface sencilla y fácil

de utilizar. La información que se requiere para ingresar los datos de un período son: nombre del período, fecha de inicio del período, fecha de fin del período y estado del período.

Anotaciones:

Los períodos de evaluación corresponden a los 2 últimos períodos

académicos en los cuales los docentes impartieron clases.

94

Historia de Usuario 7. Administración de Docentes.

Fuente: Samueza Guamán Patricio Xavier. Historias de usuarios SISTEMA WEB DE ADMINISTRACIÓN DOCENTE Número de historia: 7 Título: Administración de Docentes. Usuario: SuperAdministrador, Administrador

Fecha Inicio: 13/04/2016 Fecha Fin: 16/04/2016 Prioridad en Negocio: Alta Riesgo en Desarrollo: Alta Descripción de la historia: Ingreso, actualización, y búsqueda de datos personales de los docentes de una determinada Carrera en un determinado periodo, vigentes en el proceso de evaluación. Las ventanas presentarán una interface sencilla y fácil de utilizar. Primero se ingresan los datos personales de los docentes que estarán vigentes en el proceso de evaluación con los datos que nos piden la Comisión de Evaluación de Acreditación de la Universidad Central del Ecuador. La información que se necesita para ingresar los datos de un docente son: Tipo de identificación, identificación, apellido paterno ,apellido materno, nombres , sexo , dirección ,fecha de nacimiento, fecha de ingreso Ies, fecha de salida de la Ies, discapacidad, tipo de discapacidad, número de CONADIS, porcentaje de discapacidad, correo personal, correo institucional ,estado, observación.

Anotaciones:

El usuario con rol de Secretaria solo podrá ver un listado de los docentes

cuyo estado sea Activo en el periodo de evaluación de una determinada

carrera.

95

Historia de Usuario 8. Administración de Relación Laboral.

Fuente: Samueza Guamán Patricio Xavier. Historias de usuarios SISTEMA WEB DE ADMINISTRACIÓN DOCENTE Número de historia: 8 Título: Administración de relación laboral. Usuario: SuperAdministrador, Administrador, Secretaria Fecha Inicio: 13/04/2016 Fecha Fin: 16/04/2016 Prioridad en Negocio: Alta Riesgo en Desarrollo: Alta Descripción de la historia: Ingreso, actualización, eliminación y búsqueda de contratos o relación laboral de los docentes de una determinada Carrera en un periodo determinado . Las ventanas presentarán una interface sencilla y fácil de utilizar. Primero se debe identificar un docente para así poderle asignarle un contrato. La información que se necesita para ingresar los datos de un contrato o relación laboral son: Tipo de personal, categoría, tipo de documento, número de documento, contrato relacionado, fecha Inicio, fecha fin, relación IES, ingreso por concurso, tiempo de dedicación, remuneración mensual, remuneración hora y observaciones.

Anotaciones:

El docente puede tener dos o más contratos en un mismo período de

evaluación.

96

Historia de Usuario 9. Administración de Carga Horaria.

Fuente: Samueza Guamán Patricio Xavier. Historias de usuarios SISTEMA WEB DE ADMINISTRACIÓN DOCENTE Número de historia: 9 Título: Administración de Carga horaria. Usuario: SuperAdministrador, Administrador, Secretaria Fecha Inicio: 13/04/2016 Fecha Fin: 16/04/2016 Prioridad en Negocio: Alta Riesgo en Desarrollo: Alta Descripción de la historia: Ingreso, actualización, eliminación y búsqueda de actividades académicas que el docente tiene cumplir semanalmente en su contrato de acuerdo a su tiempo dedicación (Tiempo Completo, Medio Tiempo, Tiempo Parcial) en un determinado período de evaluación. Primero se debe seleccionar un docente, un contrato, una malla con sus respectivas materias, un período de evaluación y un tipo de actividad que fueron creados anteriormente. La información que se necesita para ingresar la carga horaria de un docente son: Seleccionar un contrato, Seleccionar un período, selecciona malla curricular, seleccionar materias de una malla, número de horas, seleccionar el tipo de actividad, número de paralelos y número de estudiantes.

Anotaciones:

Es necesario que los datos del contrato, período, malla curricular con sus

respectivas materias y el tipo de actividad estén creados con anterioridad

para poder ingresar su carga horaria.

97

Historia de Usuario 10. Administración de Formación Docente.

Fuente: Samueza Guamán Patricio Xavier. Historias de usuarios SISTEMA WEB DE ADMINISTRACIÓN DOCENTE Número de historia: 10 Título: Administración de Formación Docente. Usuario: SuperAdministrador, Administrador, Secretaria Fecha Inicio: 13/04/2016 Fecha Fin: 16/04/2016 Prioridad en Negocio: Alta Riesgo en Desarrollo: Media Descripción de la historia: Ingreso, actualización, eliminación y búsqueda de títulos de un docente obtenidos a lo largo de su trayectoria académica. La información que se necesita para ingresar la formación académica de un docente son: País de estudio, nombre de la IES (Instituto de Educación Superior), código de la IES, nivel (tercer nivel, cuarto nivel), grado, nombre del título, código subárea específica, estado del título (terminado o en curso), número de registro SENESCYT, fecha en la cual obtuvo el título y alguna observación.

Anotaciones:

Es necesario que los datos del docente a seleccionar este creado con

anterioridad.

98

Historia de Usuario 11. Administración de Cargo Directivo.

Fuente: Samueza Guamán Patricio Xavier. Historias de usuarios SISTEMA WEB DE ADMINISTRACIÓN DOCENTE Número de historia: 11 Título: Administración de Cargo Directivo. Usuario: SuperAdministrador, Administrador, Secretaria Fecha Inicio: 13/04/2016 Fecha Fin: 16/04/2016 Prioridad en Negocio: Media Riesgo en Desarrollo: Media Descripción de la historia:

Ingreso, actualización, eliminación y búsqueda de cargos administrativos

que el docente ha ocupado en un determinado período. La información que se

necesita para ingresar el cargo administrativo es: Cargo autoridad, número de documento donde constato que el docente ha ocupado dicho cargo directivo, fecha en el inicio en la cual inicio sus actividades como autoridad, fecha de fin en el cual terminará o terminó sus actividades como autoridad, documento digital del contrato en la cual se le asigna como autoridad al docente y cualquier tipo de observación.

Anotaciones:

Es necesario que los datos del docente a seleccionar este creado con

anterioridad.

99

Historia de Usuario 12. Administración de Publicaciones.

Fuente: Samueza Guamán Patricio Xavier. Historias de usuarios SISTEMA WEB DE ADMINISTRACIÓN DOCENTE Número de historia: 12 Título: Administración de Publicaciones. Usuario: SuperAdministrador, Administrador, Secretaria Fecha Inicio: 13/04/2016 Fecha Fin: 16/04/2016 Prioridad en Negocio: Media Riesgo en Desarrollo: Media Descripción de la historia: Ingreso, actualización, eliminación y búsqueda de publicaciones que el docente ha publicado a lo largo de su trayectoria profesional. La información que se necesita para ingresar el cargo administrativo es: Permite registrar las publicaciones realizadas por un docente que puede ser de Libros, Capítulos del Libro (varios autores), Artículos y Ponencias se necesita la siguiente información. Tipo de Publicación, área de conocimiento, nombre publicación, subárea de conocimiento, fecha de publicación, número ISBN, revista indexada, filiación, subárea específica de conocimiento, participación, estado de publicación, nombre de base de indexada, código de publicación revisión por pares, nombre de revista, nombre e id del documento digital que respalde que la publicación existe y alguna Observación.

Anotaciones:

Es necesario que los datos del docente a seleccionar este creado con

anterioridad.

100

Historia de Usuario 13. Administración de Capacitación Docente.

Fuente: Samueza Guamán Patricio Xavier. Historias de usuarios SISTEMA WEB DE ADMINISTRACIÓN DOCENTE Número de historia: 13 Título: Administración de capacitación docente. Usuario: SuperAdministrador, Administrador, Secretaria Fecha Inicio: 13/04/2016 Fecha Fin: 16/04/2016 Prioridad en Negocio: Media Riesgo en Desarrollo: Media Descripción de la historia: Ingreso, actualización, eliminación y búsqueda de capacitación o cursos de actualización científica que el docente ha cursado a lo largo de su trayectoria profesional. Los cursos de capacitación deben tener un número superior a 32 horas La información que se necesita para ingresar los cursos de capacitación docente son: Nombre del evento, fecha de inicio del evento, fecha de fin del evento, nombre de institución donde se realizó el evento, número de horas de duración del evento, tipo de curso (Curso de Metodología de la Enseñanza, Curso a fin de la Catedra), localidad del curso (Nacional, Internacional), país donde se realizó la capacitación, nombre e id del archivo pdf que respalde que el docente culminó el curso de actualización de conocimientos y algún tipo de observación. Anotaciones:

Es necesario que los datos del docente a seleccionar este creado con

anterioridad.

101

ANEXO B. DIAGRAMAS UML A continuación se presenta los diagramas de casos de uso para el Sistema.

Diagrama CU-01: Autenticación de Usuario

Iniciar Sesión Verificar Credenciales

Validar Usuario Ingresar al Sistema

Usuario

Fuente: Samueza Guamán Patricio Xavier.

Fuente: Samueza Guamán Patricio Xavier. Nombre Caso de Uso: Autenticación de Usuario

Descripción: Proceso llevado acabo para acceder a la página principal de la aplicación que contiene los diferentes módulos. Actores: SuperAdministrador, Administrador, Secretaria

Precondiciones: Tener un usuario habilitado con su rol asignado correctamente. Flujo de eventos Actividades 1. Ingresar a la página de login donde de los Actores se solicitan los parámetros de entrada.  Nombre de Usuario.  Contraseña. Luego damos clic en el botón aceptar

Respuesta del 2. El sistema validará los datos Sistema ingresados para verificar que exista el usuario en la base de datos y

102

verificara los permisos que tiene asignado.

3. El sistema despliega la página de inicio para que el usuario pueda ingresar a los módulos según los permisos asignados. Situaciones Excepcionales: Si el usuario ha ingresado las credenciales incorrectas o el estado del usuario es inactivo, el sistema direccionará a una página de error para que vuelva ingresar nuevamente a la página de login. Postcondiciones: Una vez que el usuario ha ingresado al sistema, podrá acceder solo a los módulos a los cuales tiene permiso. El usuario podrá salir del sistema dando clic en el link cerrar sesión.

Diagrama CU-02: Módulo Administrar Usuario.

Registrar Usuario

Ingresar Sistema Administrar Usuario Modificar Usuario2 Consultar Usuario2 SuperAdministrador1

Eliminar Usuario

Consultar Usuario

Fuente: Samueza Guamán Patricio Xavier

Fuente: Samueza Guamán Patricio Xavier. Caso de uso CU-02 Nombre Administrar Usuario Roles SuperAdministrador El usuario con perfil SuperAdministrador accederá mediante el Precondiciones caso de uso 1.

103

Casos de Uso Flujo Normal Consultar Usuario 1. Del menú principal selecciona la opción General-Usuario – Crear Usuario. 2. El sistema presenta el listado de usuarios existentes, con los siguientes campos: Nombre de la Facultad. Nombre de la Carrera. Nombre del usuario. Apellido del usuario. Nick Name. Fecha de Registro. Estado (Activo e Inactivo). Acciones: en el cuál se encontrará los botones de ver y actualizar. 1. Del menú principal selecciona la opción General-Usuario – Crear Usuario, luego el botón Nuevo. 2. El sistema verifica la existencia del registro, si no lo encuentra procede el usuario a ingresar los datos que se indican: Nombre de la Facultad. Nombre de la Carrera. Nombres del usuario. Apellidos del usuario. Registrar Usuario Cedula. Nick Name. Contraseña. Correo electrónico. Fecha de registro. Vigencia (Activo e Inactivo). 3. Seleccionar la opción, agregar para validar e ingresar los datos. Modificar 1. De consultar usuario, seleccione el botón actualizar. Usuario 2. El sistema verifica la existencia del registro en la base de

104

datos. 3. Una vez que lo encuentra, el sistema lo presenta en una pantalla toda la información, en el cual podrá realizar los cambios, si así lo requiere. 4. Selecciona la opción, actualizar para validar y guardar los datos. 1. De consultar usuario, seleccione el botón eliminar. 2. El sistema verifica la existencia del registro en la base de Eliminar Usuario datos. 3. Una vez que lo encuentra, el sistema envía un mensaje de confirmación, si desea eliminar el mismo.

Diagrama CU-03: Módulo Administrar Carrera.

Fuente: Samueza Guamán Patricio Xavier.

Fuente: Samueza Guamán Patricio Xavier. Nombre Administrar Carrera Actor SuperAdministrador, Administrador Casos de Uso Flujo Normal Consultar Carrera 1. Del menú principal selecciona la opción Carrera- Carrera.

105

2. El sistema presenta el listado de carreras existentes, con los siguientes campos: Nombre de la Facultad. Nombre de Carrera. Modalidad. Nivel. Título Otorgado. Duración. Acciones: en el cuál se encontrará los botones de visualizar, actualizar, eliminar. 1. Del menú principal selecciona la opción Carrera y luego el botón Nuevo. 2. El sistema verifica la existencia del registro, si no lo encuentra el usuario ingresa los datos que se indican: Nombre de la Facultad. Nombre de Carrera. Registrar Carrera Modalidad. Título Otorgado. Nivel. Director, entre otros. 3. Seleccionar la opción, agregar para validar e ingresar los datos. 1. De consultar carrera, seleccione el botón actualizar. 2. El sistema verifica la existencia del registro en la base de datos. 3. Una vez que lo encuentra, el sistema presenta en una Modificar Carrera pantalla toda la información, en el cual podrá realizar los cambios si así lo requiere. 4. Selecciona la opción, actualizar para validar y guardar los datos. 1. De consultar carrera, seleccione el botón eliminar. Eliminar Carrera 2. El sistema verifica la existencia del registro en la base

106

de datos. 3. Una vez que lo encuentra, el sistema envía un mensaje de confirmación, si desea eliminar la carrera. 1. De consultar carrera, seleccione el botón ver. 2. El sistema verifica la existencia del registro en la base Visualizar Carrera de datos. 3. El sistema presentará, toda la información del registro seleccionado. Flujo Alternativo 1. El usuario debe ingresar todos los campos que son obligatorios. 3. en el caso de no ingresar los campos obligatorios, Todos presentará un mensaje de error. 2. En cada acción realizada, siempre se presenta el mensaje de confirmación, para que el usuario este seguro de la acción realizada.

Diagrama CU-04: Módulo Administrar Malla.

Fuente: Samueza Guamán Patricio Xavier.

Fuente: Samueza Guamán Patricio Xavier. Nombre Administrar Malla Actor Administrador

107

Casos de Uso Flujo Normal Consultar Malla 1. Del menú principal selecciona la opción Carrera-Malla. 2. El sistema presenta el listado de mallas existentes, con los siguientes campos: Nombre de la Facultad. Nombre de Carrera. Nombre de la malla. Fecha de inicio. Fecha de Fin. Organización de la malla. Semestres. Estado(activo o inactivo) Acciones: en el cuál se encontrará los botones de visualizar, actualizar y eliminar. 1. Del menú principal selecciona la opción Carrera-Malla y luego el botón Nuevo. 2. El sistema verifica la existencia del registro, si no lo encuentra el usuario ingresa los datos que se indican: Nombre de la Facultad Nombre de Carrera. Nombre de la malla. Registrar Malla Fecha de inicio. Fecha de Fin. Organización de la malla. Semestres. Estado (activo o inactivo), entre otros. 3. Seleccionar la opción, agregar para validar e ingresar los datos. 1. De consultar malla, seleccione el botón actualizar. 2. El sistema verifica la existencia del registro en la base Modificar Malla de datos. 3. Una vez que lo encuentra, el sistema presenta en una

108

pantalla toda la información, en el cual podrá realizar los cambios si así lo requiere. 4. Selecciona la opción, actualizar para validar y guardar los datos. 1. De consultar malla, seleccione el botón eliminar. 2. El sistema verifica la existencia del registro en la base Eliminar Malla de datos. 3. Una vez que lo encuentra, el sistema envía un mensaje de confirmación, si desea eliminar la malla. 1. De consultar malla, seleccione el botón ver. 2. El sistema verifica la existencia del registro en la base Visualizar Malla de datos. 3. El sistema presentará, toda la información del registro seleccionado. Flujo Alternativo 1. El usuario debe ingresar todos los campos que son obligatorios. 3. en el caso de no ingresar los campos obligatorios, Todos presentará un mensaje de error. 2. En cada acción realizada, siempre se presenta el mensaje de confirmación, para que el usuario este seguro de la acción realizada.

109

Diagrama CU-05: Módulo Administrar Materia.

Usuario4

<> <> Ingresar Sistema5 Regristrar Materia

<> <> <> Administrar Consultar Malla1 Listar Materias Materia1 Modificar Materia <> Listar Materia

<> Eliminar Materia <> Fuente: Samueza Guamán Patricio Xavier.

Fuente: Samueza Guamán Patricio Xavier. Nombre Administrar Materia Actor SuperAdministrador, Administrador Casos de Uso Flujo Normal Consultar Malla 1. Del menú principal selecciona la opción Carrera- Materia. 2. El sistema presenta el listado de mallas existentes, con los siguientes campos: Código de la malla. Nombre de la malla. Fecha de inicio. Fecha de Fin. Nombre de la carrera. Acciones: en el cuál se encontrará el botón seleccionar. Listar Materia 1. De consultar malla selecciona la opción seleccionar. 2. El sistema presenta el listado de todas las materias que pertenecen a la malla seleccionada con los siguientes campos. Código materia. Nombre de la materia. Semestre.

110

Número de horas. Número de créditos. Acciones: en el cuál se encontrará los botones de visualizar, actualizar y eliminar. 1. De Consultar malla selecciono el botón Nuevo. 2. El sistema verifica la existencia del registro, si no lo encuentra el usuario ingresa los datos que se indican: Código materia. Nombre de la materia. Registrar Materia Semestre. Número de horas. Número de créditos, entre otros. 3. Seleccionar la opción, agregar para validar e ingresar los datos. 1. De listar materia, seleccione el botón actualizar. 2. El sistema verifica la existencia del registro en la base de datos. 3. Una vez que lo encuentra, el sistema presenta en una Modificar Materia pantalla toda la información, en el cual podrá realizar los cambios si así lo requiere. 4. Selecciona la opción, actualizar para validar y guardar los datos. 1. De listar materia, seleccione el botón eliminar. 2. El sistema verifica la existencia del registro en la base Eliminar Materia de datos. 3. Una vez que lo encuentra, el sistema envía un mensaje de confirmación, si desea eliminar la malla. 1. De listar materia, seleccione el botón ver. 2. El sistema verifica la existencia del registro en la base Visualizar Materia de datos. 3. El sistema presentará, toda la información del registro seleccionado.

111

Flujo Alternativo 1. El usuario debe ingresar todos los campos que son obligatorios. 3. en el caso de no ingresar los campos obligatorios, Todos presentará un mensaje de error. 2. En cada acción realizada, siempre se presenta el mensaje de confirmación, para que el usuario este seguro de la acción realizada.

Diagrama CU-06: Módulo Administrar Período.

Fuente: Samueza Guamán Patricio Xavier.

Fuente: Samueza Guamán Patricio Xavier. Nombre Administrar Período Actor SuperAdministrador, Administrador Casos de Uso Flujo Normal Consultar Período 1. Del menú principal selecciona la opción Carrera- Período. 2. El sistema presenta el listado de períodos existentes, con los siguientes campos: Nombre del período. Fecha de inicio del período. Fecha de fin del período.

112

Estado (activo o inactivo). Acciones: en el cuál se encontrará los botones de visualizar, actualizar y eliminar. 1. Del menú principal selecciona la opción Carrera - Materia y luego el botón Nuevo. 2. El sistema verifica la existencia del registro, si no lo encuentra el usuario ingresa los datos que se indican: Nombre del período. Registrar Período Fecha de inicio del período. Fecha de fin del período. Estado (activo o inactivo). 3. Seleccionar la opción, agregar para validar e ingresar los datos. 1. De consultar período, seleccione el botón actualizar. 2. El sistema verifica la existencia del registro en la base de datos. 3. Una vez que lo encuentra, el sistema presenta en una Modificar Período pantalla toda la información, en el cual podrá realizar los cambios si así lo requiere. 4. Selecciona la opción, actualizar para validar y guardar los datos. 1. De consultar período, seleccione el botón eliminar. 2. El sistema verifica la existencia del registro en la base Eliminar Período de datos. 3. Una vez que lo encuentra, el sistema envía un mensaje de confirmación, si desea eliminar la materia. 1. De consultar período, seleccione el botón ver. 2. El sistema verifica la existencia del registro en la base Visualizar Período de datos. 3. El sistema presentará, toda la información del registro seleccionado. Flujo Alternativo

113

1. El usuario debe ingresar todos los campos que son obligatorios. 3. en el caso de no ingresar los campos obligatorios, Todos presentará un mensaje de error. 2. En cada acción realizada, siempre se presenta el mensaje de confirmación, para que el usuario este seguro de la acción realizada.

Diagrama CU-07: Módulo Administrar Docente.

<> <> Regristrar Docente

<> Administrar <> Ingresar Sistema6 Seleccionar Periodo Modificar Docente <> Consultar Docente11 Usuario11 Docente12

<> Eliminar Docente <> <>

Consultar Docente 12

Fuente: Samueza Guamán Patricio Xavier.

Fuente: Samueza Guamán Patricio Xavier. Nombre Administrar Docente Actor SuperAdministrador, Administrador, Secretaria Casos de Uso Flujo Normal 1. Una vez ingresado al sistema, se selecciona un período, Seleccionar Período a partir del cual se direccionará al menú principal. Consultar Docente 1. Del menú principal selecciona la opción Módulo Docente-Docente Carrera. 2. El sistema presenta el listado de docentes existentes en una determinada Carrera y que existe en el periodo seleccionado, con los siguientes campos: Nombre de la carrera. Primer apellido.

114

Segundo apellido. Nombres. Identificación. País. Estado (activo o inactivo). Acciones: en el cuál se encontrará los botones de visualizar, actualizar y eliminar. 1. Del menú principal selecciona la opción Módulo Docente-Docente Carrera y luego el botón Nuevo. 2.-En el formulario para registrar el docente ingreso la identificación del docente y selecciono el botón buscar. 3. El sistema verifica la existencia del registro, si no lo encuentra el usuario ingresa los datos que se indican: Tipo de identificación. Nombre de la carrera. Registrar Docente Primer apellido. Segundo apellido. Nombres. País. Fecha de nacimiento. Estado (activo o inactivo), entre otros. 4. Seleccionar la opción agregar para validar e ingresar los datos. 1. De consultar docente, seleccione el botón actualizar. 2. El sistema verifica la existencia del registro en la base de datos. 3. Una vez que lo encuentra, el sistema presenta en una Modificar Docente pantalla toda la información, en el cual podrá realizar los cambios si así lo requiere. 4. Selecciona la opción, actualizar para validar y guardar los datos. Eliminar Docente 1. De consultar docente, seleccione el botón eliminar.

115

2. El sistema verifica la existencia del registro en la base de datos. 3. Una vez que lo encuentra, el sistema envía un mensaje de confirmación, si desea eliminar el docente. 1. De consultar docente, seleccione el botón ver. 2. El sistema verifica la existencia del registro en la base Visualizar Docente de datos. 3. El sistema presentará, toda la información del registro seleccionado. Flujo Alternativo 1. El usuario debe ingresar todos los campos que son obligatorios. 3. en el caso de no ingresar los campos obligatorios, Todos presentará un mensaje de error. 2. En cada acción realizada, siempre se presenta el mensaje de confirmación, para que el usuario este seguro de la acción realizada.

Diagrama CU-08: Módulo Administrar Relación Laboral.

<> Administrar <> Regristrar Relacion <> Relacion Laboral1 Laboral

<>

<> Seleccionar <> Modificar Relacion Listar Relacion Ingresar Sistema7 Periodo2 Consultar Docente3 Listar Relacion <> laboral Laboral Laboral1 Usuario12

<>

<> Eliminar Relacion <> Laboral

Fuente: Samueza Guamán Patricio Xavier.

116

Fuente: Samueza Guamán Patricio Xavier. Nombre Administrar Relación Laboral Actor SuperAdministrador, Administrador, Secretaria Casos de Uso Flujo Normal 1. Una vez ingresado al sistema, se selecciona un período, Seleccionar Período a partir del cual se direccionara al menú principal. Consultar Docente 1. Del menú principal selecciona la opción Módulo Docente-Relación Laboral. 2. El sistema presenta el listado de docentes existentes en una determinada carrera y del período seleccionado, con los siguientes campos: Nombre de la carrera. Primer apellido. Segundo apellido. Nombres. Identificación. Acciones: en el cuál se encontrará el botón seleccionar. Listar Relación Laboral 1. De consultar docente selecciona la opción seleccionar. 2. El sistema presenta el listado de todas las relaciones laborales que pertenecen al docente seleccionado con los siguientes campos. Número de documento. Tipo de personal. Categoría. Fecha de fin. Estado (activo o inactivo). Acciones: en el cuál se encontrará los botones de visualizar, actualizar y eliminar. 1. De listar relación laboral selecciono el botón Nuevo. Registrar Relación 2. El sistema verifica la existencia del registro, si no lo Laboral encuentra el usuario ingresa los datos que se indican: Número de documento.

117

Tipo de personal. Tipo de documento. Tiempo de dedicación. Relación con la IES. Fecha de inicio. Fecha de fin. Estado (vigente o no vigente), entre otros. 3. Seleccionar la opción, agregar para validar e ingresar los datos. 1. De listar relación laboral, seleccione el botón actualizar. 2. El sistema verifica la existencia del registro en la base de datos. Modificar Relación 3. Una vez que lo encuentra, el sistema presenta en una Laboral pantalla toda la información, en el cual podrá realizar los cambios si así lo requiere. 4. Selecciona la opción, actualizar para validar y guardar los datos. 1. De listar relación laboral, seleccione el botón eliminar. 2. El sistema verifica la existencia del registro en la base Eliminar Relación de datos. Laboral 3. Una vez que lo encuentra, el sistema envía un mensaje de confirmación, si desea eliminar la relación laboral. 1. De Relación Laboral, seleccione el botón ver. 2. El sistema verifica la existencia del registro en la base Visualizar Relación de datos. Laboral 3. El sistema presentará, toda la información del registro seleccionado. Flujo Alternativo 1. El usuario debe ingresar todos los campos que son obligatorios. Todos 3. en el caso de no ingresar los campos obligatorios, presentará un mensaje de error.

118

2. En cada acción realizada, siempre se presenta el mensaje de confirmación, para que el usuario este seguro de la acción realizada.

Diagrama CU-09: Módulo Administrar Carga Horaria.

<> Consultar Carga Horaria1

<> Regristrar Carga <> <> Horaria

<> Seleccionar Listar Carga <> Modificar Carga Ingresar Sistema9 Consultar Docente4 <> Listar Carga Periodo4 Horaria1 Horaria Usuario13 <> Horaria

<> Eliminar Carga <> Horaria1

Fuente: Samueza Guamán Patricio Xavier.

Fuente: Samueza Guamán Patricio Xavier. Nombre Administrar Relación Laboral Actor SuperAdministrador, Administrador, Secretaria Casos de Uso Flujo Normal 1. Una vez ingresado al sistema, se selecciona un período, Seleccionar Período a partir del cual se direccionara al menú principal. Consultar Docente 1. Del menú principal selecciona la opción Módulo Docente-Carga Horaria. 2. El sistema presenta el listado de docentes existentes, con los siguientes campos: Nombre de la carrera. Primer apellido. Segundo apellido. Nombres. Identificación.

119

Acciones: en el cuál se encontrará el botón seleccionar. Listar Carga Horaria 1. De consultar período el sistema presenta el listado de todas las actividades que realiza el docente en la institución un determinado período con los siguientes campos. Número de documento. Nombre de la actividad. Nombre de la materia. Nombre del semestre. Número de horas. Acciones: en el cuál se encontrará los botones de visualizar, actualizar y eliminar. 1. De listar carga horaria selecciono el botón Nuevo. 2. El sistema verifica la existencia del registro, si no lo encuentra el usuario ingresa los datos que se indican: Nombre del período. Tipo de personal. Registrar Carga Horaria Tipo de actividad. Nombre de la relación laboral. Número de horas, entre otros. 3. Seleccionar la opción, agregar para validar e ingresar los datos. 1. De listar carga horaria, seleccione el botón actualizar. 2. El sistema verifica la existencia del registro en la base de datos. Modificar Carga 3. Una vez que lo encuentra, el sistema presenta en una Horaria pantalla toda la información, en el cual podrá realizar los cambios si así lo requiere. 4. Selecciona la opción, actualizar para validar y guardar los datos. 1. De listar carga horaria, seleccione el botón eliminar. Eliminar Carga Horaria 2. El sistema verifica la existencia del registro en la base

120

de datos. 3. Una vez que lo encuentra, el sistema envía un mensaje de confirmación, si desea eliminar. 1. De listar carga horaria, seleccione el botón ver. 2. El sistema verifica la existencia del registro en la base Visualizar Carga de datos. Horaria 3. El sistema presentará, toda la información del registro seleccionado. Flujo Alternativo 1. El usuario debe ingresar todos los campos que son obligatorios. 3. en el caso de no ingresar los campos obligatorios, Todos presentará un mensaje de error. 2. En cada acción realizada, siempre se presenta el mensaje de confirmación, para que el usuario este seguro de la acción realizada.

Diagrama CU-10: Módulo Administrar Formación.

<> Administrar Formación2 <> Regristrar <> Formación <>

<> Seleccionar <> Modificar Ingresar Sistema10 Listar Formación1 <> Período5 Consultar Docente5 Formación Listar Formación Usuario14 <>

<> Eliminar <> Formación

Fuente: Samueza Guamán Patricio Xavier.

121

Fuente: Samueza Guamán Patricio Xavier. Nombre Administrar Formación Actor SuperAdministrador, Administrador, Secretaria Casos de Uso Flujo Normal 1. Una vez ingresado al sistema, se selecciona un período, Seleccionar Período a partir del cual se direccionara al menú principal. Consultar Docente 1. Del menú principal selecciona la opción Módulo Docente-Formación. 2. El sistema presenta el listado de docentes existentes en el período seleccionado, con los siguientes campos: Nombre de la carrera. Primer apellido. Segundo apellido. Nombres. Identificación. Acciones: en el cuál se encontrará el botón seleccionar. Listar Formación 1. De consultar docente selecciona la opción seleccionar. 2. El sistema presenta el listado de todos los títulos de formación académica que pertenecen al docente seleccionado con los siguientes campos. País de estudio. Nombre del título. Nombre de la IES. Nivel. Grado. Fecha en que obtuvo el título. Estado (terminado o en curso). Acciones: en el cuál se encontrará los botones de visualizar, actualizar y eliminar. 1. De listar formación selecciono el botón Nuevo. Registrar Formación 2. El sistema verifica la existencia del registro, si no lo encuentra el usuario ingresa los datos que se indican:

122

País de estudio. Nombre del título. Nombre de la IES. Nivel. Grado. Fecha en que obtuvo el título. Estado (terminado o en curso), entre otros. 3. Seleccionar la opción, agregar para validar e ingresar los datos. 1. De listar formación, seleccione el botón actualizar. 2. El sistema verifica la existencia del registro en la base de datos. 3. Una vez que lo encuentra, el sistema presenta en una Modificar Formación pantalla toda la información, en el cual podrá realizar los cambios si así lo requiere. 4. Selecciona la opción, actualizar para validar y guardar los datos. 1. De listar formación, seleccione el botón eliminar. 2. El sistema verifica la existencia del registro en la base de datos. Eliminar Formación 3. Una vez que lo encuentra, el sistema envía un mensaje de confirmación, si desea eliminar el título de formación académica. 1. De listar formación, seleccione el botón ver. 2. El sistema verifica la existencia del registro en la base Visualizar Formación de datos. 3. El sistema presentará, toda la información del registro seleccionado. Flujo Alternativo 1. El usuario debe ingresar todos los campos que son Todos obligatorios.

123

3. en el caso de no ingresar los campos obligatorios, presentará un mensaje de error. 2. En cada acción realizada, siempre se presenta el mensaje de confirmación, para que el usuario este seguro de la acción realizada.

Diagrama CU-11: Módulo Administrar Publicación.

<> Administrar Publicación2 <> Regristrar <> Publicación <>

<> Seleccionar Ingresar Sistema11 <> Modificar Período6 Consultar Docente6 Listar Publicación <> Publicación Listar Publicación1 Usuario15 <>

<> Eliminar <> Publicación

Fuente: Samueza Guamán Patricio Xavier.

Fuente: Samueza Guamán Patricio Xavier. Nombre Administrar Publicación Actor SuperAdministrador, Administrador, Secretaria Casos de Uso Flujo Normal 1. Una vez ingresado al sistema, se selecciona un período, Seleccionar Período a partir del cual se direccionara al menú principal. Consultar Docente 1. Del menú principal selecciona la opción Módulo Docente-Publicación. 2. El sistema presenta el listado de docentes existentes en el periodo seleccionado, con los siguientes campos: Nombre de la carrera. Primer apellido.

124

Segundo apellido. Nombres. Identificación. Acciones: en el cuál se encontrará el botón seleccionar. Listar Publicación 1. De consultar docente selecciona la opción seleccionar. 2. El sistema presenta el listado de todas las publicaciones pertenecientes al docente seleccionado con los siguientes campos. Tipo de publicación. Código de publicación. Nombre publicación. Número de ISBN/ISSN. Fecha de publicación. Acciones: en el cuál se encontrará los botones de visualizar, actualizar y eliminar. 1. De listar publicación selecciono el botón Nuevo. 2. El sistema verifica la existencia del registro, si no lo encuentra el usuario ingresa los datos que se indican: Tipo de publicación. Código de publicación. Filiación. Registrar Publicación Nombre del área, subárea y subárea especifica de conocimiento. Nombre publicación. Número de ISBN/ISSN. Fecha de publicación, entre otros. 3. Seleccionar la opción, agregar para validar e ingresar los datos. 1. De listar publicación, seleccione el botón actualizar. 2. El sistema verifica la existencia del registro en la base Modificar Publicación de datos. 3. Una vez que lo encuentra, el sistema presenta en una

125

pantalla toda la información, en el cual podrá realizar los cambios si así lo requiere. 4. Selecciona la opción, actualizar para validar y guardar los datos. 1. De listar publicación, seleccione el botón eliminar. 2. El sistema verifica la existencia del registro en la base Eliminar Publicación de datos. 3. Una vez que lo encuentra, el sistema envía un mensaje de confirmación, si desea eliminar la publicación. 1. De listar publicación, seleccione el botón ver. 2. El sistema verifica la existencia del registro en la base Visualizar Publicación de datos. 3. El sistema presentará, toda la información del registro seleccionado. Flujo Alternativo 1. El usuario debe ingresar todos los campos que son obligatorios. 3. en el caso de no ingresar los campos obligatorios, Todos presentará un mensaje de error. 2. En cada acción realizada, siempre se presenta el mensaje de confirmación, para que el usuario este seguro de la acción realizada.

Diagrama CU-12: Módulo Administrar Cargo Directivo.

<> Administrar Cargo Directivo2 <> Regristrar Cargo <> Directivo

<>

<> Seleccionar Listar Cargo <> Ingresar Sistema12 Modificar Cargo <> Período7 Consultar Docente7 Directivo Directivo Usuario16 <>

<> Eliminar Cargo <> Directivo

Fuente: Samueza Guamán Patricio Xavier. 126

Fuente: Samueza Guamán Patricio Xavier. Nombre Administrar Cargo Directivo Actor SuperAdministrador, Administrador, Secretaria Casos de Uso Flujo Normal 1. Una vez ingresado al sistema, se selecciona un período, Seleccionar Período. a partir del cual se direccionara al menú principal. Consultar Docente 1. Del menú principal selecciona la opción Módulo Docente-Cargo Directivo. 2. El sistema presenta el listado de docentes existentes en el periodo seleccionado, con los siguientes campos: Nombre de la carrera. Primer apellido. Segundo apellido. Nombres. Identificación. Acciones: en el cuál se encontrará el botón seleccionar. Consultar Período 1.- De consultar docente el sistema muestra un listado con el nombre de los períodos existentes. 2.-Seleccionar un período. Listar Cargo 1. De consultar período el sistema presenta el listado de Directivo todos los cargos directivos pertenecientes al docente seleccionado con los siguientes campos. Nombre del cargo. Número del Documento. Fecha de inicio. Fecha fin. Nombre del período. Acciones: en el cuál se encontrará los botones de visualizar, actualizar y eliminar. 1. De listar cargo directivo selecciono el botón Nuevo. Registrar Cargo 2. El sistema verifica la existencia del registro, si no lo Directivo encuentra el usuario ingresa los datos que se indican:

127

Nombre del cargo. Número del Documento. Fecha de inicio. Fecha fin. Alguna observación, entre otros. 3. Seleccionar la opción, agregar para validar e ingresar los datos. 1. De listar cargo directivo, seleccione el botón actualizar. 2. El sistema verifica la existencia del registro en la base de datos. Modificar Cargo 3. Una vez que lo encuentra, el sistema presenta en una Directivo pantalla toda la información, en el cual podrá realizar los cambios si así lo requiere. 4. Selecciona la opción, actualizar para validar y guardar los datos. 1. De listar cargo directivo, seleccione el botón eliminar. 2. El sistema verifica la existencia del registro en la base Eliminar Cargo de datos. Directivo 3. Una vez que lo encuentra, el sistema envía un mensaje de confirmación, si desea eliminar el cargo directivo. 1. De listar cargo directivo, seleccione el botón ver. 2. El sistema verifica la existencia del registro en la base Visualizar Cargo de datos. Directivo 3. El sistema presentará, toda la información del registro seleccionado. Flujo Alternativo 1. El usuario debe ingresar todos los campos que son obligatorios. 3. en el caso de no ingresar los campos obligatorios, Todos presentará un mensaje de error. 2. En cada acción realizada, siempre se presenta el mensaje de confirmación, para que el usuario este seguro

128

de la acción realizada.

Diagrama CU-13: Módulo Administrar Capacitación.

<> Administrar Capacitación2 <> Regristrar <> Capacitación <>

<> Seleccionar Consultar Docente8 Listar Capacitación <> Ingresar Sistema13 Modificar <> Período8 1 Capacitación Listar Capacitación2 Usuario17 <>

<> Eliminar <> Capacitación

Fuente: Samueza Guamán Patricio Xavier.

Fuente: Samueza Guamán Patricio Xavier. Nombre Administrar Capacitación Actor SuperAdministrador, Administrador, Secretaria Casos de Uso Flujo Normal 1. Una vez ingresado al sistema, se selecciona un período, Seleccionar Período a partir del cual se direccionara al menú principal. Consultar Docente 1. Del menú principal selecciona la opción Módulo Docente - Capacitación. 2. El sistema presenta el listado de docentes existentes en el período seleccionado, con los siguientes campos: Nombre de la carrera. Primer apellido. Segundo apellido. Nombres. Identificación. Acciones: en el cuál se encontrará el botón seleccionar. Listar Capacitación 1. De consultar docente el sistema presenta el listado de

129

todos los cursos de capacitación pertenecientes al docente seleccionado con los siguientes campos. Nombre del evento de capacitación. Nombre de la Institución. Número de horas. Fecha de inicio. Fecha fin. Acciones: en el cuál se encontrará los botones de visualizar, actualizar y eliminar. 1. De consultar docente selecciono el botón Nuevo pero antes se debe seleccionar un docente. 2. El sistema verifica la existencia del registro, si no lo encuentra el usuario ingresa los datos que se indican: Nombre del evento de capacitación. Registrar Fecha de inicio del evento. Capacitación Fecha fin del evento. Nombre de la Institución. Número de horas. Alguna observación, entre otros. 3. Seleccionar la opción, agregar para validar e ingresar los datos. 1. De listar capacitación, seleccione el botón actualizar. 2. El sistema verifica la existencia del registro en la base de datos. Modificar 3. Una vez que lo encuentra, el sistema presenta en una Capacitación pantalla toda la información, en el cual podrá realizar los cambios si así lo requiere. 4. Selecciona la opción, actualizar para validar y guardar los datos. 1. De listar capacitación, seleccione el botón eliminar. Eliminar Capacitación 2. El sistema verifica la existencia del registro en la base de datos.

130

3. Una vez que lo encuentra, el sistema envía un mensaje de confirmación, si desea eliminar el registro de capacitación. 1. De listar capacitación, seleccione el botón ver. 2. El sistema verifica la existencia del registro en la base Visualizar de datos. Capacitación 3. El sistema presentará, toda la información del registro seleccionado. Flujo Alternativo 1. El usuario debe ingresar todos los campos que son obligatorios. 3. en el caso de no ingresar los campos obligatorios, Todos presentará un mensaje de error. 2. En cada acción realizada, siempre se presenta el mensaje de confirmación, para que el usuario este seguro de la acción realizada.

Diagrama CU-14: Módulo Cargar Evidencia Malla.

Usuario12

<>

Ingresar Sistema13 Cargar Archivo <> Malla

<> Cargar Evidencia <> Malla Consultar Malla 1 Descargar Archivo Consultar Archivo Malla Repositorio <>

<> Eliminar Archivo Malla <> Fuente: Samueza Guamán Patricio Xavier.

131

Fuente: Samueza Guamán Patricio Xavier. Nombre Cargar Evidencia Malla Actor SuperAdministrador, Administrador, Secretaria Casos de Uso Flujo Normal Consultar Malla 1. Del menú principal selecciona la opción Carga de Evidencias - Malla. 2. El sistema presenta el listado de mallas existentes, con los siguientes campos: Código de la malla. Nombre de la malla. Fecha de inicio. Fecha fin. Carrera. Lista de archivos: en el cual se encuentra las opciones de descargar y eliminar. Acciones: en el cuál se encontrará el botón de cargar archivo. Cargar Archivo 1. De consultar malla, el usuario selecciona la opción Malla cargar archivo en donde se abre una dialogo para seleccionar el documento digital que se desea subir al repositorio, este archivo se almacenara en el repositorio junto con sus metadatos. Descargar Archivo 1. De consultar malla, seleccione el botón descargar, el Malla archivo se descargara en la carpeta de descargas. Eliminar Archivo 1. De consultar malla, seleccione el botón eliminar. Malla 2. El archivo digital se eliminara del repositorio.

132

Diagrama CU-15: Módulo Cargar Evidencia Capacitación.

<> Cargar Evidencia Capacitación3 <> Registrar Archivo <> Capacitación2 <>

<> Seleccionar Consultar Docente9 Listar Capacitación <> Modificar Archivo Ingresar Sistema14 <> Consultar Archivo Período9 2 Capacitación2 Usuario18 Repositorio <>

<> Eliminar Archivo <> Capacitación2

Fuente: Samueza Guamán Patricio Xavier.

Fuente: Samueza Guamán Patricio Xavier. Nombre Cargar Evidencia Capacitación Actor SuperAdministrador, Administrador, Secretaria Casos de Uso Flujo Normal Consultar Docente 1. Del menú principal selecciona la opción Carga de Evidencias - Capacitación. 2. El sistema presenta el listado de docentes existentes, con los siguientes campos: Nombre de la carrera. Primer apellido. Segundo apellido. Nombres. Identificación. Acciones: con el botón de seleccionar. Consultar 1. De consultar docente y seleccionar un docente el Capacitación sistema presenta el listado de capacitaciones que pertenecen al docente seleccionado con los siguientes campos: Nombre del evento de capacitación.

133

Nombre de la Institución. Número de horas. Lista de archivos: en el cual se encuentra las opciones de descargar y eliminar. Acciones: en el cuál se encontrará el botón de cargar archivo. Cargar Archivo 1. De consultar capacitación, el usuario selecciona la Capacitación opción cargar archivo, en donde se abre una dialogo para seleccionar el documento digital que se desea subir al repositorio, este archivo se almacenara en el repositorio junto con sus metadatos. 1. De consultar capacitación, seleccione el botón Descargar Archivo descargar, el archivo se descargara en la carpeta de Capacitación descargas. 1. De consultar malla, seleccione el botón eliminar. Eliminar Archivo 2. El archivo digital se eliminara del repositorio junto con Capacitación sus metadatos. Cabe mencionar, que el proceso para la carga de evidencia de: carga directivo, formación, publicación y relación NOTA: laboral es similar al caso de uso carga de evidencia capacitación.

Diagrama CU-16: Generar Reportes.

Fuente: Samueza Guamán Patricio Xavier.

134

Fuente: Samueza Guamán Patricio Xavier. Nombre Generar Reportes Actor SuperAdministrador, Administrador, Secretaria Casos de Uso Flujo Normal Ingresar Parámetros 1. Del menú principal selecciona la opción Reportes - Reportes Docente. 2. El sistema presenta el listado con los tipos de reportes que se desea generar y que se presentan continuación: Reporte Docentes. Reporte Capacitación. Reporte Cargo Directivo. Reporte Publicaciones. Reporte Formación. Reporte Relación Laboral. Reporte por Actividad. Reporte Carga Horaria. Verificar Parámetros 1. El sistema verifica que se habilite los parámetros de entrada según el tipo de reporte que se escogió.

Validar Parámetros 1. El sistema valida que todos los campos necesarios para que se generen el reporte estén llenos caso contrario mostrara un mensaje de error. Una vez validado los reportes el usuario podrá dar clic en Visualizar reporte la opción descargar Excel, para poder visualizar el reporte.

135

ANEXO C. DICCIONARIO DE DATOS A continuación se detalla la lista de todos los elementos que compone el flujo de datos de nuestro sistema.  A continuación se detalla el diccionario de datos de las tablas consideradas como catálogos: Tabla Authorities. En esta tabla se almacenará los diferentes tipo de roles para que los usuarios puedan acceder al sistema.

Nombre Tipo de Longitud Decimal PK NOT UNIQUE FK Columna dato NULL id_rol serial * * username varchar(n) 100 * * users.username authority varchar(n) 100 *

Tabla: actividad. En esta tabla se almacenará los diferentes tipos de actividad o funciones que el docente tiene que cumplir en su contrato.

Fuente: Samueza Guamán Patricio Xavier. Nombre Tipo de Longitud Decimal PK NOT UNIQUE FK Columna dato NULL id_actividad serial * * nom_actividad varchar(n) 80 * * materia boolean *

Tabla: categoria. En esta tabla se almacenará los diferentes tipos de categorías que el personal académico de la Facultad tendrá al momento de su contrato.

Fuente: Samueza Guamán Patricio Xavier. Nombre Tipo de Longitud Decimal PK NOT UNIQUE FK Columna dato NULL id_categoria serial * * nom_categoria varchar(n) 50 * *

136

Tabla: ies. En esta tabla se almacenará los diferentes tipos IES o Institutos de Educación Superior.

Fuente: Samueza Guamán Patricio Xavier. Nombre Tipo de Longitud Decimal PK NOT UNIQUE FK Columna dato NULL id_ies serial * * cod_ies int nom_ies varchar(n) 200 * *

Tabla: pais_origen. En esta tabla se almacenará los diferentes países que existen y que serán utilizados en los diferentes módulos.

Fuente: Samueza Guamán Patricio Xavier. Nombre Tipo de Longitud Decimal PK NOT UNIQUE FK Columna dato NULL id_pais serial * * nom_pais varchar(n) 100 * *

Tabla: periodo. En esta tabla se almacenará los diferentes períodos de evaluación en la cual se realizará la evaluación a la Carrera.

Fuente: Samueza Guamán Patricio Xavier. Nombre Tipo de Longitud Decimal PK NOT UNIQUE FK Columna dato NULL id_periodo serial * * fe_in_Per date * fe_fin_Per date * nombre_periodo varchar(n) 50 * * estado_periodo boolean *

137

Tabla: relacion_ies. En esta tabla se almacenará los diferentes tipos de relación que el docente tiene con la Institución. Fuente: Samueza Guamán Patricio Xavier. Nombre Columna Tipo de Longitud Decimal PK NOT UNIQUE FK dato NULL id_relacion_ies serial * * nom_relacion_ies varchar(n) 50 * *

Tabla: tiempo_dedicacion. En esta tabla se almacenará los diferentes tipos de tiempo de dedicación que el docente tiene que cumplir en la institución mensualmente.

Fuente: Samueza Guamán Patricio Xavier. Nombre Tipo de Longitud Decimal PK NOT UNIQUE FK Columna dato NULL id_tdedi serial * * nom_tdedi varchar(n) 50 * * num_horas int *

Tabla: tipo_documento. En esta tabla se almacenará los diferentes tipos de documento que se establecen en un contrato del docente.

Fuente: Samueza Guamán Patricio Xavier. Nombre Columna Tipo de Longitud Decimal PK NOT UNIQUE FK dato NULL id_tipo_documento serial * *

nom_tipo_documento varchar(n) 50 * *

138

Tabla: tipo_publicacion. En esta tabla se almacenará los diferentes tipos de publicación.

Fuente: Samueza Guamán Patricio Xavier. Nombre Columna Tipo de Longitud Decimal PK NOT UNIQUE FK dato NULL id_tipo_publicacion serial * *

nom_tipo_publicacion varchar(n) 50 *

estado_habilitar_revista boolean *

 A continuación se detalla el diccionario de datos de las Tablas principales en el sistema:

Tabla: users. En esta tabla se almacenará los diferentes usuarios que interactúan con el sistema.

Fuente: Samueza Guamán Patricio Xavier. Nombre Type Length Decimal PK NOT FK Columna NULL id_carrera int * carrera.id_carrera nombre_usuario varchar(n) 300 * apellido_usuario varchar(n) 300 * username varchar(n) 100 * * password varchar(n) 300 * ci varchar(n) 15 * correo varchar(n) 255 fecha_registro date * enabled boolean *

139

Tabla: universidad. Esta tabla almacenará la información general de la Universidad en el sistema.

Fuente: Samueza Guamán Patricio Xavier. Nombre Columna Tipo de Longitud PK NOT FK dato NULL id_universidad serial * * cod_universidad int * tipo_universidad varchar(n) 70 * nom_universidad varchar(n) 100 * direccion_universidad varchar(n) 100 *

telefono_universidad varchar(n) 15

sitio_web varchar(n) 120 pais varchar(n) 80 * provincia varchar(n) 80 * ciudad varchar(n) 80 * autoridad varchar(n) 80

Tabla: facultad. Esta tabla almacenará la información general de la Facultad en el sistema.

Fuente: Samueza Guamán Patricio Xavier. Nombre Columna Tipo de Longitud PK NOT FK dato NULL id_facultad serial * * id_universidad int * universidad.id_universidad nom_facultad varchar(n) 100 * telefono char(n) 15 direccion_facultad varchar(n) 225 *

director_facultad varchar(n) 300

140

Tabla: carrera. En esta tabla se almacenará las diferentes carreras de la Facultad de Ciencias Médicas que estarán en el proceso de evaluación.

Fuente: Samueza Guamán Patricio Xavier. Nombre Columna Tipo de dato Longitud PK NOT FK NULL id_carrera serial * * id_facultad int * facultad.id_facultad nom_carrera varchar(n) 300 * telefono varchar(n) 15 modalidad varchar(n) 80 * areaunesco varchar(n) 100 subareaunesco varchar(n) 100 nivel varchar(n) 80 * titulo_otorga varchar(n) 500 * num_reg_organo_ varchar(n) 40 colegiado fecha_organo_col date egiado num_reg_conesup varchar(n) 40

fecha_reg_conesu date p duracion_carrera int *

nom_director varchar(n) 225

Tabla: malla. En esta tabla se almacenará las diferentes mallas pertenecientes a las diferentes carreras de la Facultad de Ciencias Médicas.

Fuente: Samueza Guamán Patricio Xavier. Nombre Columna Type Length PK NOT FK NULL id_malla serial * * id_carrera int * carrera.id_carrera cod_malla varchar(n) 100 * nom_malla varchar(n) 100 * organizacion_malla varchar(n) 40 *

141

meses_sin_tesis int * meses_con_tesis int *

creditos_sin_tesis int *

creditos_con_tesis int *

fecha_ini_malla date * fecha_fin_Malla date * num_semestres int * nombre_doc_malla varchar(n) 150

id_doc_malla varchar(n) 200 estado_malla boolean

Tabla: materia. En esta tabla se almacenarán las diferentes materias de una determinada malla curricular.

Fuente: Samueza Guamán Patricio Xavier. Nombre Type Length PK NOT FK Columna NULL id_materia serial * * id_malla int * malla.id_malla nom_materia varchar(n) 100 * cod_materia varchar(n) 10 * semestre varchar(n) 40 num_horas int * creditos int * obser_materia varchar(n) 200

142

Tabla: docente. En esta tabla se almacenarán los diferentes docentes pertenecientes a la Facultad de Ciencias Médicas.

Fuente: Samueza Guamán Patricio Xavier. Nombre Columna Type Length Decimal PK NOT FK NULL id_docente serial * * id_pais int * pais_origen.id_pais t_Identificacion varchar(n) 50 * identificacion varchar(n) 20 * apellido_paterno varchar(n) 50 * apellido_materno varchar(n) 50 nombres varchar(n) 100 * sexo varchar(n) 50 * direccion_docente varchar(n) 200

fecha_nacimiento date *

discapacidad boolean tipo_discapacidad varchar(n) 50

num_conadis varchar(n) 50 porcentaje_discapacidad int

corre_personal varchar(n) 100 correo_institucional varchar(n) 100

obs_docente varchar(n) 200 pais_docente varchar(n) 100 telefono_docente varchar(n) 10 celular_docente varchar(n) 10

143

Tabla: carrera_docente En esta tabla se almacenará los diferentes docentes que pertenecen a una determinada Carrera.

Fuente: Samueza Guamán Patricio Xavier. Nombre Columna Type Length Decimal PK NOT FK NULL id_carrera_docente serial * *

id_carrera int * carrera.id_carrera id_docente int * docente.id_docente id_periodo int * periodo.id_periodo

fecha_ingreso_ies date

fecha_salida_ies date estado_docente boolean * observaciones varchar(n) 500

Tabla: relacion_laboral. En esta tabla se almacenará los diferentes contratos de los docentes de una determinada Carrera de la Facultad de Ciencias Médicas.

Fuente: Samueza Guamán Patricio Xavier. Nombre Type Length Decimal PK NOT FK Columna NULL id_re_Laboral serial * * id_carrera_doce int * docente.id_carrera_doc nte ente id_categoria int * categoria.id_categoria

id_tipo_documen int * tipo_documento.id_tipo to _documento id_relacion_ies int * relacion_ies.id_relacion _ies id_tdedi int * tiempo_dedicacion.id_t dedi tipo_personal varchar(n) 50 * num_documento varchar(n) 100 * contrato_relacion varchar(n) 50 ado

144

fecha_inicio_cont date * rato fecha_fin_contrat date o ingreso_por_con boolean curso tiempo_dedicaci varchar(n) 100 on remu_mensual numeric(p, 6 2 s) remu_hora numeric(p, 5 2 s) obs_relacion_lab varchar(n) 200 oral estado_relacion boolean * nombre_doc_rel varchar(n) 150 acion_labo id_doc_relacion_ varchar(n) 200 labo

Tabla: formacion. En esta tabla se almacenará los títulos de formación académica que el docente ha conseguido al paso de su vida estudiantil.

Fuente: Samueza Guamán Patricio Xavier. Nombre Columna Type Length PK NOT FK NULL id_formacion serial * * id_docente int * docente.id_docente id_ies int * ies.id_ies pais_estudio varchar(n) 100 * nivel varchar(n) 50 * grado varchar(n) 50 * nom_titulo varchar(n) 200 * cod_subarea_especifica varchar(n) 500

estado_titulo varchar(n) 50 * num_reg_senescyt varchar(n) 100 *

fecha_titulo date obs_titulo varchar(n) 200 nombre_doc_formacion varchar(n) 150

145

id_doc_formacion varchar(n) 200

Tabla: publicaciones. En esta tabla se almacenará las diferentes publicaciones, como: libros, revistas, capítulos de libro y ponencias que los docentes han llegado a publicar o están en proceso de publicación en su vida profesional.

Fuente: Samueza Guamán Patricio Xavier. Nombre Columna Type Length P NOT FK K NULL id_publicacion serial * * id_docente int * docente.id_docente id_tipo_publicacion int * tipo_publicacion.id_tipo_public acion cod_publicacion varchar(n) 50 * filiacion boolean area_conocimiento varchar(n) 100

subarea_conocimiento varchar(n) 200

subarea_espe_conocimient varchar(n) 200 o nom_publicacion varchar(n) 500 * fecha_publicacion date *

participacion varchar(n) 50 revison_pares boolean num_isbn_issn varchar(n) 100 * nombre_revista varchar(n) 100 estado_publicacion varchar(n) 50 *

revista_indexada boolean nom_base_indexada varchar(n) 50

obs_publicaciones varchar(n) 200

nombre_doc_publicacion varchar(n) 150

id_docu_publicacion varchar(n) 200

146

Tabla: cargo_directivo. En esta tabla se almacenará los diferentes cargos administrativos que el docente ha llegado a ocupar en la Facultad de Ciencias Médicas.

Fuente: Samueza Guamán Patricio Xavier. Nombre Columna Type Length PK NOT FK NULL id_cargo serial * * id_carrera_docente int * docente.id_carrera_docente id_periodo int * periodo.id_periodo tipo_cargo varchar(n) 100 * num_documento varchar(n) 100 * fecha_ini_cargo date * fecha_fin_cargo date obs_cargo_directivo varchar(n) 200

nombre_doc_cargo varchar(n) 150

id_doc_cargo varchar(n) 200

Tabla: capacitacion. En esta tabla se almacenarán los cursos de actualización científica que el docente ha cursado y que sirven como evidencia de que el docente está actualizando constantemente sus conocimientos.

Fuente: Samueza Guamán Patricio Xavier. Nombre Columna Tipo de Longitud PK NOT FK dato NULL id_capacitacion serial * *

id_docente int * docente.id_docente nom_evento varchar(n) 600 * fecha_inicio_evento date *

fecha_fin_evento date * nom_institucion varchar(n) 600 * num_horas int * tipo_curso varchar(n) 100 * localidad varchar(n) 100 *

147

pais_actualizacion varchar(n) 100 * obs_capacitacion varchar(n) 200 nombre_doc_capacitaci varchar(n) 150 on id_doc_capacitacion varchar(n) 200

148