UNIVERSIDAD NACIONAL ABIERTA VICE-RECTORADO ACADEMICO AREA DE INGENIERIA CARRERA INGENIERIA DE SISTEMAS Aplicación Web para el Registro y Control de Documentos de las Dependencias Administrativas de la Universidad Nacional Abierta Caso de Estudio Centro Local Lara Informe Final de Práctica Profesional Autor: Br. Amarelis del Carmen Ybarra Dugarte C.I. 15.032.367 Tutor Académico: Prof. Pedro Luis Rodríguez C.I. 11.187.871 Tutor Empresarial: Profa. Saibel Ramos C.I.:9.837.306 Centro Local Portuguesa MARZO, 2014 i INDICE GENERAL Dedicatoria……………………………………………………………………………i Agradecimientos……………………………………………………………………..ii Resumen………………………………………………………………………...…..iii Introducción…………........................................................................................1 CAPITULO I Planteamiento del problema.............................................................................4 Objetivos……………………………………………………………………………..6 Objetivo general..........................................................................................6 Objetivos específicos……...........................................................................6 Alcance.............................................................................................................7 CAPITULO II MARCO TEÓRICO....………………………………………………………………9 Ingeniería del Software……...............................................................12 Lenguaje Unificado de Modelado UML…………………………..........14 Objetivos de UML……..............................................................19 Uso del Lenguaje unificado de modelado...............................20 Fases del ciclo de desarrollo que soporta UML…..…………..20 Diagramas que ofrece el UML………………...…………….….21 Modelo cliente-servidor…………………………..…………..….33 Programación orientada a objetos……………………………...34 Servidor Web Seguro……………………………………..…..…36 Páginas Web……………………………………………………...37 Lenguaje SQL…………………………………………………...38 ii Bases de Datos………………………………………………….40 Modelo Entidad-Relación……………………………………....41 Normalización……………………………………………………44 Lenguaje de Programación PHP………………………….…..50 Common Getaway Interface (CGI)……………………………52 Secure Socket Layer (SSL)……………………………………53 Sistema Operativo GNU/Linux………………………………..57 CAPITULO III MARCO METODOLÓGICO Dimensiones del RUP..........................................................................61 Fases…………………..……………......................................................73 Disciplinas………..……………………..................................................80 Modelado del Negocio…............................................................80 Requerimientos...........................................................................81 Análisis y Diseño.........................................................................81 Implementación...........................................................................81 Pruebas…...................................................................................82 Despliegue…………....................................................................82 Gestión y configuración de cambios...........................................82 Gestión del Proyecto……...........................................................83 Entorno…………………..............................................................84 Organización y elementos en RUP.......................................................84 Análisis y diseño de la Metodología RUP………………………………………97 CAPITULO IV iii ORGANIZACIÓN Y ANÁLISIS DE LOS RESULTADOS Modelado del Negocio…………………………………………………………..107 Requerimientos………………………………………………………………….109 Especificaciones Complementarias……………………………………………112 Actores del Sistema……………………………………………………………..113 Casos de Uso………………………………………………………………….…113 Diagramas de Casos de Uso……………………………………………………116 Diagramas de Estado de RED…………………………………………………172 Diagramas de Secuencia………………………………………………………176 Asignación de Operaciones a las Clases (Control de Documentos)………185 Asignación de Operaciones a las Clases (Seguridad)……………….………186 Diagrama de Despliegue…………………………………………………..……187 Diagrama de Base de Datos..……………………………………………..……187 Modelo Entidad Relación de RED……………………………………...………191 Gestión de Proyecto: Escogencia del lenguaje de programación………….192 Escogencia del Gestor de Base de Datos……………………………………193 Actividades de formación………………………………………………………194 Recursos Adicionales……………………………………………………………195 Implementación…………………………………………………………………..195 Desarrollo de componentes y codificación de software……………………..195 Relación de los componentes con la Base de Datos…………………..……196 Funcionalidades del Sistema……………………………………………………197 Interfaz de Usuario……………………………………………………………….197 Interfaz de Acceso al Sistema RED……………………………………………198 iv Interfaz General del sistema RED……………………………………………..199 CAPITULO V CONCLUSIONES Y RECOMENDACIONES…………………………………………………….…....224 Bibliografía……………………………………………………………………..…227 Anexos………………………………………………………………………….…231 v ÍNDICE DE TABLAS Tabla Nº 1 Estereotipo Utilizados en la Notación WAE 31 Tabla Nº 2 Esfuerzo – Horario contra fases del RUP 73 87 Tabla Nº 3 Artefactos en las Fases de RUP 92 Tabla Nº 4 Desarrollo de la RUP 109 Tabla Nº 5 Actores del Sistema Tabla Nº 6 Descripción de los Casos de Uso 110 186 Tabla Nº7 Descripción de las tablas de la Base de Datos vi INDICE DE FIGURAS Figura Nº 1 Modelo de Cascada de Desarrollo de Software 13 Figura Nº 2 Desarrollo de UML, con sus versiones 16 Figura Nº 3 Casos de Uso 18 Figura Nº 4 Diagramas del UML que expresan gráficamente un Modelo 21 Figura Nº 5 Ejemplo de Modelo de Casos d Uso 22 Figura Nº 6 Ejemplo de un Diagrama de Clases 25 Figura Nº 7 Ejemplo de un Diagrama de Colaboración 26 Figura Nº 8 Ejemplo de un Diagrama de Secuencia 29 Figura Nº 9 Modelo Cliente Servidor en un entrono WEB 34 Figura Nº 10 Intercambio de Información entre un Navegador Web y un Servidor WEB 37 Figura Nº 11 Tabla en Primera forma Normal 46 Figura Nº 12 Tabla que no está en Segunda Forma Normal 47 Figura Nº 13 Tabla Productos 47 Figura Nº 14 Tabla Proveedores 48 Figura Nº 15 Tabla Atletas 49 Figura Nº 16 Tabla Atletas parte 1 49 vii Figura Nº 17 Tabla Atletas parte 2 49 Figura Nº 18 Transacción usando cifrado SSl 53 Figura Nº 19 Indicación de una conexión segura en Navegadores Web 55 Figura Nº 20 Historia del RUP 60 Figura Nº 21 Disciplinas, fases, iteraciones del RUP 62 Figura Nº 22 Los Casos de Uso integran al trabajo 63 Figura Nº 23 Trazabilidad a partir de los Casos de Uso 64 Figura Nº 24 Evolución arquitectura del sistema la 66 Figura Nº 25 Los modelos se completan, la arquitectura no cambia drásticamente 67 Figura Nº 26 Una iteración RUP 69 Figura Nº 27 Ciclo de Vida 70 Figura Nº 28 Fases del RUP 71 Figura Nº 29 Recursos utilizados en las fases del RUP en el tiempo 74 Figura Nº 30 Ciclo evolutivo en la elaboración de software basado en RUP 75 Figura Nº 31 Esfuerzo respecto de los flujos de trabajo 76 Figura Nº 32 Esfuerzo respecto de las fases 77 de viii Figura Nº 33 Elementos conforman el RUO que 83 Figura Nº 34 Artefactos en las disciplinas de la RUP 88 Figura Nº 35 Grado de finalización de artefactos 89 Figura Nº 36 Comparación entre diagramas de casos de uso 98 Figura Nº 37 Comparación entre diagramas de objetos 99 Figura Nº 38 Comparación entre diagramas de estados 100 Figura Nº 39 Comparación entre diagramas de actividades 100 Figura Nº 40 Comparación entre diagramas de secuencia 101 Figura Nº 41 Comparación entre diagramas de colaboración 102 Figura Nº 42 componentes de 102 Figura Nº 43 Comparación entre diagramas de despliegue 103 Figura Nº 44 Diagrama del Caso de Uso Incluir Estado 113 Figura Nº 46 Diagrama del Caso de Uso Eliminar Estado 115 Figura Nº 47 Diagrama del Caso de Uso Buscar Estado 116 Figura Nº 48 Diagrama del Caso de Uso Incluir Tipo Documento 117 Figura Nº 49 Diagrama del Caso de 118 Diagramas ix Uso Modificar Tipo Documento Figura Nº 50 Diagrama del Caso de Uso Eliminar Tipo Documento 119 Figura Nº 51 Diagrama del Caso de Uso Buscar Tipo Documento 120 Figura Nº 52 Diagrama del Caso de Uso Incluir Entidad 121 Figura Nº 53 Diagrama del Caso de Uso Modificar Entidad 122 Figura Nº 54 Diagrama del Caso de Uso Eliminar Entidad 123 Figura Nº 55 Diagrama del Caso de Uso Buscar Entidad 124 Figura Nº 56 Diagrama del Caso de Uso Incluir Tipo Entidad 124 Figura Nº 56 Diagrama del Caso de Uso Modificar Tipo Entidad 125 Figura Nº 57 Diagrama del Caso de Uso Eliminar Tipo Entidad 126 Figura Nº 59 Diagrama del Caso de Uso Incluir Archivo 128 Figura Nº 60 Diagrama del Caso de Uso Modificar Archivo 129 Figura Nº 61 Diagrama del Caso de Uso Eliminar Archivo 130 Figura Nº 62 Diagrama del Caso de Uso Buscar Archivo 131 Figura Nº 63 Diagrama del Caso de Uso Incluir Documento 132 Figura Nº 64 Diagrama del Caso de Uso Modificar Documento 133 x Figura Nº 65 Diagrama del Caso de Uso Eliminar Documento 135 Figura Nº 66 Diagrama del Caso de Uso Buscar Documento 136 Figura Nº 67 Diagrama del Caso de Uso Incluir Seguimiento 137 Figura Nº 68 Diagrama del Caso de Uso Modificar Seguimiento 138 Figura Nº 69 Diagrama del Caso de Uso Eliminar Seguimiento 139 Figura Nº 70 Diagrama del Caso de Uso Buscar Seguimiento 140 Figura Nº 71 Diagrama de Caso de Uso Reporte Tipo Documento 141 Figura Nº 73 Diagrama de Caso de Uso Reporte Estados 143 Figura Nº 74 Diagrama de Caso de Uso Reporte Entidades 144 Figura Nº 75 Diagrama de Caso de Uso Reporte Documentos 145 Figura Nº 76 Diagrama de Caso de Uso Reporte Archivadores 146 Figura Nº 77 Diagrama de Caso de Uso Incluir Sistema 147 Figura Nº 78 Diagrama de Caso de Uso Modificar Sistema 148 Figura Nº 79 Diagrama de Caso de Uso Eliminar Sistema 149 Figura Nº 80 Diagrama de Caso de Uso Buscar Sistema 150 Figura Nº 81 Diagrama de Caso de 151 xi Uso Incluir Perfil Usuario Figura Nº 82 Diagrama de Caso de Uso Modificar Perfil Usuario 152 Figura Nº 83 Diagrama de Caso de Uso Eliminar Perfil Usuario 153 Figura Nº 84 Diagrama de Caso de Uso Buscar Perfil Usuario 154 Figura Nº 85 Diagrama de Caso de Uso Incluir Cargo Usuario 155 Figura Nº 87 Diagrama de Caso de Uso Eliminar Cargo Usuario 157 Figura Nº 88 Diagrama de Caso de Uso Buscar Cargo Usuario 158 Figura Nº 89 Diagrama de Caso de Uso Incluir Usuario 159 Figura Nº 90 Diagrama de Caso de Uso Modificar Usuario 160 Figura Nº 91 Diagrama de Caso de Uso Eliminar Usuario 161 Figura Nº 92 Diagrama de Caso de Uso Buscar Usuario 162 Figura Nº 93 Modelo General del Diagrama de Casos de Uso de RED 163 Figura Nº 94 Diagrama de Clases (Módulo Control de Documentos) 166 Figura Nº 95 Diagrama de clases (Módulo Seguridad) 167 Figura Nº 96 Diagrama de Clases Usando estereotipos (Control de documentos) 168 Figura Nº 97 Diagrama de Clases Usando estereotipos (Seguridad) 168 xii Figura Nº 98 Diagrama de Estados (Control de Documentos) 170 Figura Nº 99 Diagrama de Estados (Seguridad) 171 Figura Nº 100 Diagrama de Secuencia del Caso de Uso Incluir Documento 173 Figura Nº 101 Diagrama de Secuencia del Caso de Uso Modificar Documento 174 Figura Nº 102 Diagrama de Secuencia del Caso de Uso Eliminar Documento 175 Figura Nº 103 Diagrama de Secuencia del Caso de Uso Buscar Documento 176 Figura Nº 104 Diagrama de Secuencia del Caso de Uso Incluir Seguimiento 177 Figura Nº 105 Diagrama de Secuencia del Caso de Uso Modifica Seguimiento 178 Figura Nº 106 Diagrama de Secuencia del Caso de Uso Eliminar Seguimiento 179 Figura Nº 107 Diagrama de Secuencia del Caso de Uso Buscar Seguimiento 180 Figura Nº 108 Diagrama de Secuencia del Caso de Uso Reporte Documento 181 Figura Nº 109 Diagrama Despliegue de RED 185 de xiii Figura Nº 110 Lenguaje de Programación utilizado para el desarrollo de la aplicación 191 Figura Nº 111 Interfaz del entorno MySQL Administrator 192 Figura Nº 112 Interfaz de Inicio de Sesión al sistema RED 269 Figura Nº 113 Interfaz de Principal del sistema RED 270 Figura Nº 114 Interfaz del Menú del Módulo Seguridad 271 Figura Nº 115 Interfaz para sistemas 272 Figura Nº 116 Interfaz de Perfiles de Usuarios 272 Figura Nº 117 Interfaz de Cargos de Usuarios 273 Figura Nº 118 Interfaz Usuarios 274 Figura Nº 119 Interfaz de salida del sistema 274 Figura Nº 120 Interfaz para el Usuario del Menú Definiciones 275 Figura Nº 121 Interfaz para el Usuario del Menú Proceso 276 Figura Nº 122 Interfaz para el Usuario del Menú Reportes 277 Figura Nº 123 Interfaz para la Inserción, Eliminación, Modificación y Búsqueda de Estados 278 Figura Nº 124 Interfaz de Búsqueda de un Estado 278 Figura Nº 125 Interfaz para la 279 xiv Inserción, Eliminación, Modificación y Búsqueda de Tipo de Documento Figura Nº 127 Interfaz para la Inserción, Eliminación, Modificación y Búsqueda de Entidades 280 Figura Nº 128 Interfaz de Búsqueda de una entidad 281 Figura Nº 129 Interfaz para la Inserción, Eliminación, Modificación y Búsqueda de Tipo de Entidades 281 Figura Nº 130 Interfaz de Búsqueda para tipo de Entidades 282 Figura Nº 131 Interfaz para la Inserción, Eliminación, Modificación y Búsqueda de Archivos 282 Figura Nº 132 Interfaz de Búsqueda de Archivo 283 Figura Nº 133 Interfaz para la Inserción, Eliminación, Modificación y Búsqueda de Documentos 284 Figura Nº 134 Interfaz de Búsqueda de Documentos 285 Figura Nº 135 Interfaz para la Inserción, Eliminación, Modificación y Búsqueda de Seguimiento 286 Figura Nº 136 Interfaz de Búsqueda de Seguimiento de Documentos 287 Figura Nº 137 Interfaz para el reporte de Tipo de Entidades 287 Figura Nº 138 Archivo PDF de Tipo de Entidades 288 Figura Nº 139 Interfaz de Reporte de Tipos de Documentos 289 xv Figura Nº 140 Archivo PDF de Tipos de Documentos 290 Figura Nº 141 Interfaz de Reporte de Tipos de Estados 291 Figura Nº 142 Archivo PDF de Estados 291 Figura Nº 143 Interfaz de Reporte Entidades 292 Figura Nº 144 Archivo PDF de Entidades 293 Figura Nº 145 Interfaz de Reporte de Archivos 293 Figura Nº 146 Archivo PDF de Archivos 294 Figura Nº 147 Interfaz de Reporte de documentos por medio de Descriptores 295 xvi DEDICATORIA Primero que todo quiero dedicarle éste paso en mi vida profesional a Dios Todopoderoso y a la Santísima Virgen por darme la virtud y la fortaleza necesaria para salir siempre adelante, pese a las dificultades; iluminando cada paso de mi vida. A mis Padres, Albis y Teodolinda, son ustedes quienes verdaderamente son los dueños de éste título, sin su apoyo no lo habría logrado, mil gracias por ser mis guías y un ejemplo de trabajo, esfuerzo y dedicación. A mi Hermana Theisy, porque nunca dudó de que lograría este triunfo y con la que compartí cada etapa de este camino, recibiendo siempre una sonrisa y un apoyo irremplazable. A mi Tío Jesús Rangel (Q.E.P.D.), quien siempre me motivó a seguir adelante y a quien prometí terminaría mis estudios. Promesa cumplida. Sin Ustedes no hubiese podido hacer realidad este sueño. ¡Los Amo! i AGRADECIMIENTOS A Dios y la Virgen, por ser mis guías, iluminando y protegiendo siempre mi camino. A mis Padres y Hermana, por sus consejos, atenciones, cariño y apoyo incondicional a lo largo de la carrera. A mi Esposo quien me brindó su apoyo constante y paciencia para que pudiera terminar esta meta. A la Universidad Nacional Abierta, mi casa de estudio, por brindarme la formación académica requerida. A mis Profesores Carlos Aguirre, Pedro Rodríguez y Saibel Ramos, por su ayuda, confianza, paciencia, estímulo, calidad profesional y conocimientos que me ayudaron a finalizar mi trabajo. A Dra. Dora de Valderrama, Sra. María Peraza y Elizabeht Valladares, por la comprensión, amistad, confianza, paciencia, ánimos y por darme el permiso en mi área laboral cuando necesité ausentarme. En General a todas aquellas personas que de una u otra forma colaboraron o participaron en mi formación como persona y profesional, hago extensivo mis más sinceros agradecimientos. ¡Mil Gracias! ii RESUMEN La Sección Académica del Centro Local Lara de la Universidad Nacional Abierta, es el organismo destinado para estudiar las cuestiones relacionadas con las funciones de docencia, investigación y extensión que ejerce en dicha universidad. Para mejorar su funcionamiento surgió la necesidad de desarrollar un software que automatizara la Recepción y Emisión de Documentos desde, y para este departamento. La aplicación fue desarrollada bajo los lineamientos de la Metodología del Proceso Unificado, la cual divide el desarrollo del proyecto en 4 fases: Inicio, Elaboración, Construcción y Transición. Con el desarrollo de esta práctica profesional se pretendió implantar en la Unidad Académica del Centro Local Lara de la Universidad Nacional Abierta una aplicación que tuviese el siguiente alcance: a) Controlar los documentos enviados y recibidos de las diferentes áreas y departamentos del propio centro local. b) Registrar y controlar los documentos que provienen y/o son enviados a otros centros locales o a nivel central. c) Optimización de la búsqueda de información que requieren consultar dichas dependencias en un momento determinado, y que difícilmente la persona encargada en el departamento. d) Hacer un registro adecuado de la información generada y recibida en cada departamento. Se realizó la metodología una iteración por cada fase, se identificaron los requisitos del departamento y se representaron en un modelo de caso de uso. Luego se realizó el análisis y diseño de los casos de usos y de las clases que fueron implementadas. El sistema fue codificado utilizando el lenguaje de programación PHP (Adobe Dreamweaver CS5). Se utilizó el sistema manejador de base de datos MySQL Administrator para la implementación de la base de datos. Palabras claves: Unidad Sección Académica, recepción, emisión, documentos, búsqueda, metodología. iii INTRODUCCIÓN En la actualidad las grandes empresas e instituciones públicas o privadas requieren inmediatez en el manejo de información, debido a la rapidez con la que se manejan datos en los diferentes departamentos que conforman dichas instituciones, los cuales son de vital importancia para el buen funcionamiento de los mismos. Es por ello que las aplicaciones Web se están implementando en muchas empresas donde sus procesos administrativos carecen de bases tecnológicas que ayuden a fortalecer la estructura comunicacional de las mismas. A mediados del siglo pasado los cambios tecnológicos se sucedían muy lentamente, con lo cual las organizaciones disponían del tiempo suficiente para analizar los factores relevantes y adoptar nuevas decisiones que condujesen a su buen funcionamiento. Actualmente, la complejidad de los sistemas va en aumento con la aparición de nuevas tecnologías en un entorno que cambia sin cesar; el tiempo que se tarda en transformar una necesidad identificada en el desarrollo de un nuevo sistema operativo es cada vez más largo y los costos asociados con el desarrollo, producción, utilización y apoyo de los sistemas están incrementando. Para los Ingenieros Carlos Curotto y Pablo Díaz: “En los primeros días los sitios Web consistían de páginas estáticas, permitiendo una interacción limitada con el usuario. Al comienzo de los años 90, estas limitaciones fueron superadas cuando los servidores Web fueron reemplazados para permitir comunicaciones a través del desarrollo de fragmentos de código que eran ejecutados del lado del servidor. A partir de entonces las aplicaciones 1 dejaron de ser estáticas y solamente editadas por aquellos “gurúes” del HTML y se permitieron a usuarios normales interactuar con las aplicaciones por primera vez.” Este fue un paso fundamental para llegar a la Web que hoy en día conocemos. Sin la interacción no existiría el comercio electrónico (Ej.: Amazon.com), el Web-mail (Ej.: Gmail), Internet-banking, blogs, fórums o comunidades online, entre otros. A través del tiempo, el conocimiento necesario para construir aplicaciones ha sido reducido. Hoy día, es relativamente sencillo construir aplicaciones sofisticadas utilizando las modernas plataformas y lenguajes, como ser PHP, .NET o Java. La falta de manejos de sesiones y control de autorización por parte de Common Gateway Interface (CGI) impidió el desarrollo de aplicaciones Web comerciales con esa tecnología. Los desarrolladores Web comenzaron entonces a utilizar lenguajes de script, como ser JavaScript o PHP para resolver esos problemas. Básicamente los lenguajes de script son ejecutados en el servidor Web y como son no compilados son desarrollados e implementados más fácilmente. El propósito de este trabajo se enmarca dentro de este interés, enmarcada bajo los lineamientos de la Metodología RUP (Rational Unified Process) debido a la flexibilidad que tiene de adaptarse a cualquier tipo de proyecto haciendo uso de buenas prácticas en el desarrollo de software como desarrollo iterativo, administrativo eficiente de requerimientos y prototipos incrementales Es por ello que se plantea la realización de una Aplicación Web para el Registro y Control de Documentos en las dependencias administrativas de los Centros Locales de la Universidad 2 Nacional Abierta, la cual permitirá la optimización de la búsqueda de información que requieren consultar en las distintas dependencias en un momento determinado. Esta investigación se encuentra formulada de la siguiente manera: a) Capítulo I: abarca el Planteamiento del Problema, donde se describe la situación del problema, el trabajo a desarrollar, la situación actual y área problemática, así como la solución propuesta y los beneficios que la misma traería, además del Objetivo General y los objetivos Específicos, que se alcanzan en el desarrollo del proyecto y el Alcance del Trabajo, en el cual se indicará hasta dónde se llegará con el trabajo, demarcando los límites del mismo. b) Capítulo II: engloba el Marco Teórico de la Investigación, incluye los trabajos de investigación de diferentes autores que hacen referencia al tema (Desarrollo de Aplicaciones WEB) y las bases teóricas que ayudaron al desarrollo de la misma. c) Capítulo III: corresponde al Marco Metodológico, donde se describe la metodología a utilizar en el desarrollo de la solución propuesta. d) Capitulo IV: contiene la Organización y Análisis de los Resultados obtenidos en el trabajo de investigación. e) Capítulo V: comprende las Conclusiones y Recomendaciones que arrojaron el trabajo de investigación 3 CAPÍTULO I PLANTEAMIENTO DEL PROBLEMA La Unidad Académica del Centro Local Lara de la Universidad Nacional Abierta (UNA), es el organismo destinado para estudiar las cuestiones relacionadas con las funciones de docencia, investigación y extensión que ejerce en dicha universidad, para el Estado Lara específicamente. Siendo esta dependencia la que se tomará como referencia de estudio para esta investigación, donde se pretende analizar la forma de cómo llevar de manera automatizada la recepción y envíos de documentos en este departamento, ya sea de manera interna o externa en el centro local. Actualmente dicha entidad presenta la necesidad de un sistema de control de documentos enviados y recibidos de las diferentes áreas y departamentos del propio centro local. Es conveniente resaltar que su sistema real es el físico, lo cual hace que dicha actividad sea lenta y en algunos casos infructuosa, debido a que se maneja un archivo de documentos (lugar donde se almacena el material escrito), conllevando a que exista la posibilidad de que no sea encontrada la información requerida y así ayude a la pérdida de tiempo y esfuerzo por parte de la persona encargada de su búsqueda. Por ejemplo, si un profesor que recién encargan para dirigir una oficina como la de sección académica, (unidad esta que recibe y emite diariamente muchos documentos), es muy difícil que recuerde documentos que recibió hace un mes, o su defecto más complicado tener en cuenta documentos que hayan recibido antes de su gestión, esto hace la gerencia de este tipo de cargos transitorios muy complicados ya que sin un registro indexado sea físico o 4 automatizado de los documentos procesados se haga un tarea cuesta arriba y conlleva una pérdida de tiempo muy importante. Por ello se requiere registrar y controlar los documentos que provienen y/o son enviados a otros centros locales o a nivel central. Todo esto con la finalidad de poder consultar en línea con buscadores especiales, (sobre la intranet del centro local en estudio), la ubicación exacta del documento solicitado en el archivo físico donde está almacenado el mismo. Dicha búsqueda será realizada específicamente por una frase del documento, una fecha, un tema, una dependencia, un remitente, etc. La realización de una aplicación web para el Registro y Control de Documentos en las dependencias administrativas de los Centros Locales de la Universidad Nacional Abierta, permitirá la optimización de la búsqueda de información que requieren consultar dichas dependencias en un momento determinado, y que difícilmente la persona encargada en el departamento, en este caso la Unidad Académica del Centro Local Lara, pueda saberla o en su defecto recordarla. Además, por medio de dicha aplicación se podrá hacer un registro adecuado de la información generada y recibida en cada departamento, teniendo la posibilidad de ordenar electrónicamente la ubicación de los documentos y hacerlos corresponder con el espacio físico donde se encuentren. 5 OBJETIVOS OBJETIVO GENERAL Desarrollar una Aplicación Web para el Registro y Control de Documentos de las Dependencias Administrativas de los Centros Locales de la Universidad Nacional Abierta. OBJETIVOS ESPECÍFICOS a) Realizar el modelo del negocio, mediante el estudio y descripción de las funciones que cumple la Unidad Académica del Centro Local Lara. b) Especificar los requisitos, que permitan satisfacer las necesidades de información de los usuarios del sistema que llevará el Registro y Control de Documentos. c) Realizar el modelado de diseño y de datos del sistema. d) Implementar la aplicación web. e) Realizar las pruebas necesarias para medir el comportamiento y asegurar el buen funcionamiento de la aplicación web desarrollada. f) Implantar la aplicación web en la Unidad Académica del Centro Local Lara. g) Elaborar el Informe Final de Práctica Profesional. 6 ALCANCE Las aplicaciones Web ofrecen un complejo arreglo de contenido y funcionalidad a una amplia población de usuarios finales y se evalúan mediante criterios tanto técnicos como institucionales. En base a la motivación del trabajo, en el desarrollo de esta práctica profesional se pretende implantar en la Unidad Académica del Centro Local Lara de la Universidad Nacional Abierta una aplicación que resuelva todos o la mayoría de los problemas presentados como son: a) Controlar los documentos enviados y recibidos de las diferentes áreas y departamentos del propio centro local. b) Registrar y controlar los documentos que provienen y/o son enviados a otros centros locales o a nivel central. Todo esto con la finalidad de poder consultar en línea con buscadores especiales, (sobre la intranet del centro local en estudio), la ubicación exacta del documento solicitado en el archivo físico donde está almacenado el específicamente mismo. Dicha búsqueda será realizada por una frase del documento, una fecha, un tema, una dependencia, un remitente, etc. 7 c) Optimización de la búsqueda de información que requieren consultar dichas dependencias en un momento determinado, y que difícilmente la persona encargada en el departamento, en este caso la Secretaria y/o Jefe de la Unidad Académica del Centro Local Lara, pueda saberla o en su defecto recordarla. d) Hacer un registro adecuado de la información generada y recibida en cada departamento, teniendo la posibilidad de ordenar electrónicamente la ubicación de los documentos y hacerlos corresponder con el espacio físico donde se encuentren. Sin embargo como toda aplicación, esta no está exenta de presentar algunas limitaciones, entre las cuales podemos mencionar: a) Dificultades para obtener en las aplicaciones Web comportamientos clásicos de aplicaciones stand-alone (Hecho a la medida). b) Necesidad de aprendizaje de lenguajes adicionales (HTML, JavaScript, CSS) que pertenecen al basamento del desarrollo de aplicaciones Web, para construir apropiadamente la aplicación. Es importante acotar que la aplicación propuesta posee características valiosas que nos servirán como punto de partida para resolver el tema planteado, es decir llevar el registro y control de todos los documentos en las dependencias administrativas, para así evitar la pérdida de datos e información y con ello implantar una novedosa aplicación que podrá ser instalada en cualquier departamento e incluso en instituciones ajenas a la Universidad Nacional Abierta en un momento dado y de esta forma ayudar al crecimiento en materia tecnológica a quienes lo requieran. 8 CAPÍTULO II MARCO TEÓRICO Dentro de la línea de investigación que se ha realizado a cerca de las aplicaciones Web sea recopiló información de varios autores que sirvieron como soporte para llevar a cabo tal investigación. Entre los trabajos más relevantes que aportaron información (aplicaciones web y metodología a usar) sobre el tema tratado en este estudio se encuentran: Intriago Macias, Ana Yadira (2013), en su trabajo de grado Desarrollo e Implementación de un Aplicación Web de encuestas de satisfacción docente y currículum para la Facultad de Ciencias Informáticas, permite obtener el currículum actualizado y realizar encuestas online y conocer la satisfacción del docente en las diferentes áreas, sean estas académicas, gestión, investigación, vinculación, infraestructura, entre otras. Tubay Vergara, José Luis (2010), realizó como tesis de grado Desarrollo de una Aplicación Web para el control de Avances Académicos y Asistencia de Docentes, con la cual se puede obtener 9 un control de cada uno de los Docentes en el cumplimiento académico de una manera fácil y rápida. Guariman Rondón, Oscar Enrique (2009), en su trabajo de grado Diseño de una aplicación Web para la Gestión en Línea de los Servicios Académicos de una Institución de Educación Superior se refiere al diseño de una aplicación informática utilizando tecnología Web. Este permitirá la gestión en línea de los servicios académicos de la Universidad Bolivariana de Venezuela (UBV), la cual está distribuida en 5 sedes en todo el territorio nacional. La UBV ofrece Programas de Formación de Grado que se imparten no sólo en la sede, sino también en otras instalaciones denominadas “aldeas”. Para la recolección de información acerca de los procesos que dan soporte a los servicios académicos como son: las inscripciones, solicitud de documentos, registro de notas, prosecución del estudiante, entre otros, se emplearon técnicas como la entrevista y observación directa. Blanco, Ignacio Carlos (2008), en su trabajo de tesis denominado Plataformas de desarrollo de Aplicaciones Web orientadas a componentes reutilizables, estudia las plataformas de desarrollo de aplicaciones Web existentes teniendo en cuenta su arquitectura, los servicios prestados así como también sus fortalezas y debilidades. En base al análisis comparativo y a un conjunto de requerimientos necesarios para el desarrollo de aplicaciones Web empresariales se planteará una posible solución, una plataforma, que cumpla con los requerimientos y a la vez que resuelva las debilidades encontradas en las plataformas estudiadas. 10 Mora Luján, Sergio (2002), en su trabajo sobre Programación sobre Aplicaciones Web, nos explica que las aplicaciones web permiten la generación automática de contenido, la creación de páginas personalizadas según el perfil del usuario o el desarrollo del comercio electrónico, además permite interactuar con los sistemas informáticos de gestión de un empresa, como puede ser gestión de clientes, contabilidad o inventario a través de una página web. También nos señala que las aplicaciones web se encuentran dentro de las arquitecturas cliente/servidor. Para el año 2001 el estudiante Iván José Puglieser Saroff realizó el trabajo de grado Cliente/Servidor “Desarrollo para la del Sistema Universidad de de Oriente, Compras Núcleo Anzoátegui”, En este trabajo se plantea la necesidad de que en la Universidad de Oriente Núcleo Anzoátegui se desarrolle un sistema que permita gestionar las compras de la Universidad de Oriente núcleo Anzoátegui, para lo cual el estudiante Iván Puglieser diseñó una herramienta para gestionar el procesamiento de las solicitudes de compras, ordenes de compras, hojas de análisis e informe de recepción. El análisis y diseño de esta aplicación fue realizado mediante la notación UML (Unified Modeling Language) y fue implantado bajo la tecnología cliente/servidor. Para el año 2001 el estudiante Alfredo Molero desarrolló el trabajo titulado “Diseño de la Intranet de la Escuela de Medicina de la Universidad de Oriente Núcleo de Anzoátegui”. Donde se plantea el diseño e implantación de un proyecto de alto nivel tecnológico que solvente los problemas de comunicación y coordinación de índole académico-administrativo de la escuela de medicina. Para ello de 11 diseño una infraestructura de hardware y software que conformó la Intranet de dicha escuela la cual permitió el uso de aplicaciones que se diseñaron para el uso en la Intranet así como herramientas que permitieran ayudar al control de las distintas actividades administrativas. BASES TEÓRICAS A continuación se presentarán una serie de conceptos y definiciones relacionadas con el tema central de este trabajo. INGENIERÍA DE SOFTWARE El proceso de ingeniería de software se define como “un conjunto de etapas parcialmente ordenadas con la intención de lograr un objetivo, en este caso, la obtención de un producto de software de calidad…".Roger Presman Ingeniería del Software (Pág…24) El proceso de desarrollo de software “es aquel en que las necesidades del usuario son traducidas en requerimientos de software, estos requerimientos transformados en diseño y el diseño implementado en código, el código es probado, documentado y certificado para su uso operativo". Concretamente "define quién está haciendo qué, cuándo hacerlo y cómo alcanzar un cierto objetivo…." (Pág…24). El proceso de desarrollo de software requiere por un lado un conjunto de conceptos, una metodología y un lenguaje propio. A este proceso también se le llama el ciclo de vida del software que comprende cuatro grandes fases: concepción, elaboración, construcción y transición (véase figura Nº 1). 12 La concepción define el alcance del proyecto y desarrolla un caso de negocio, la elaboración define un plan del proyecto, especifica las características y fundamenta la arquitectura, la construcción crea el producto y la transición transfiere el producto a los usuarios. Figura Nº 1 Modelo de Cascada de Desarrollo de Software. Fuente: elaboración propia, año: 2014. Actualmente se encuentra en una etapa de madurez el enfoque OO (Orientado a Objetos) como paradigma del desarrollo de sistemas de información. El (OMG) Object Management Group es un consorcio a nivel internacional que integra a los principales representantes en la industria de la tecnología de información OO, éste tiene como objetivo central la promoción, fortalecimiento e impulso de la tecnología OO, propone y adopta por consenso especificaciones entorno a esta. Una de las especificaciones más importantes es la adopción en 1998 del Lenguaje de Modelado Unificado o UML como un estándar, que junto con el Proceso Unificado están consolidando la tecnología OO. 13 LENGUAJE UNIFICADO DE MODELADO UML UML surge como respuesta al problema de contar con un lenguaje estándar para escribir planos de software. Muchas personas han creído ver UML como solución para todos los problemas sin saber en muchos casos de lo que se trataba en realidad. El Lenguaje Unificado de Modelado, UML es una notación estándar para el modelado de sistemas software, resultado de una propuesta de estandarización promovida por el consorcio OMG (Object Management Group),del cual forman parte las empresas más importantes que se dedican al desarrollo de software, en 1996. UML representa la unificación de las notaciones de los métodos Booch, Objectory (Ivar Jacobson) y OMT (James Rumbaugh) siendo su sucesor directory compatible. Igualmente, UML incorpora ideas de otros metodólogos entre los que se pueden incluir a Peter Coad, Derek Coleman, Ward Cunningham, David Harel, Richard Helm, Ralph Johnson, Stephen Mellor, Bertrand Meyer, Jim Odell, Kenny Rubin, Sally Shlaer, John Vlissides, Paul Ward, Rebecca Wirfs-Brock y Ed Yourdon. En Septiembre de 2001 se ha publicada la especificación de la versión1.4. Es importante recalcar que sólo se trata de una notación, es decir, de una serie de reglas y recomendaciones para representar modelos. UML no es un proceso de desarrollo, es decir, no describe los pasos sistemáticos a seguir para desarrollar software. UML sólo permite documentar y especificar los elementos creados mediante un lenguaje común describiendo modelos. El Lenguaje Unificado de Modelado o UML es una técnica para la especificación de sistemas en todas sus fases. Esta ha sido desarrollada por 14 los más importantes autores en materia de análisis y diseño de sistemas, ha sido usada con éxito en sistemas hechos para toda clase de industrias alrededor del mundo: salud, bancos, comunicaciones, aeronáutica, finanzas, etc. UML no es un lenguaje de programación. Existen herramientas que pueden ofrecer generadores de código de UML para una gran variedad de lenguaje de programación, así como construir modelos por ingeniería inversa a partir de programas existentes. Este es pues un lenguaje de propósito general para el modelado orientado a objetos, UML es también un lenguaje de modelamiento visual que permite una abstracción del sistema y sus componentes. En la figura Nº 2 se puede observar el desarrollo de UML y sus versiones en los años dados, sufriendo revisiones menores, y ciertos participantes en las diversas versiones. 15 Figura Nº 2. Desarrollo de UML, con sus versiones Fuente: http://www.usmp.edu.pe/publicaciones/boletin/fia/info21/fig_uml.jpg UML es un lenguaje de propósito general para el modelado orientado a objetos, que combina notaciones provenientes desde: Modelado Orientado a Objetos, Modelado de Datos, Modelado de Componentes, Modelado de Flujos de Trabajo (Workflows). En todos los ámbitos de la ingeniería se construyen modelos, en realidad, simplificaciones de la realidad, para comprender mejor el sistema que vamos a desarrollar: los arquitectos utilizan y construyen planos (modelos) delos edificios, los grandes diseñadores de coches preparan modelos en sistemas existentes con todos los detalles y los ingenieros de software deberían igualmente construir modelos de los sistemas software. 16 Un enfoque sistemático permite construir estos modelos de una forma consistente demostrando su utilidad en sistemas de cierto tamaño. Cuando se trata de un programa de cincuenta, cien líneas, la utilidad del modelado parece discutible pero cuando involucramos a cientos de desarrolladores trabajando y compartiendo información, el uso de modelos y el proporcionar información sobre las decisiones tomadas, es vital no sólo durante el desarrollo del proyecto, sino una vez finalizado éste, cuando se requiere algún cambio en el sistema. En realidad, incluso en el proyecto más simple los desarrolladores hacen algo de modelado, si bien informalmente. Para la construcción de modelos, hay que centrarse en los detalles relevantes mientras se ignoran los demás, por lo cual con un único modelo no tenemos bastante. Como Inconvenientes en UML se tiene que Como todo en el desarrollo de software UML presenta ciertos inconvenientes, entre los cuales se pueden mencionar: Falta integración con respecto de otras técnicas tales como patrones de diseño, interfaces de usuario, documentación, etc., los ejemplos aislados, el monopolio de conceptos, técnicas y métodos en torno a UML. También se prevé varias perspectivas de UML ya que por ser un lenguaje de propósito general será un lenguaje de modelado orientado a objetos estándar predominante los próximos años, esto se basa en las siguientes razones: Participación de metodólogos influyentes Participación de importantes empresas Aceptación del OMG como notación estándar Se muestran las siguientes evidencias que apoyan lo antedicho: 17 Herramientas que proveen la notación UML “Edición” de libros Congresos, cursos, “camisetas”, etc. Descripción de los diagramas Un modelo captura una vista de un sistema del mundo real. Es una abstracción de dicho sistema, considerando un cierto propósito. Así, el modelo describe completamente aquellos aspectos del sistema que son relevantes al propósito del modelo, y a un apropiado nivel de detalle. Un diagrama es una representación gráfica de una colección de elementos de modelado, a menudo dibujada como un grafo con vértices conectados por arcos Un proceso de desarrollo de software debe ofrecer un conjunto de modelos que permitan expresar el producto desde cada una de las perspectivas de interés. Es aquí donde se hace evidente la importancia de UML en el contexto de un proceso de desarrollo de software. El código fuente del sistema es el modelo más detallado del sistema (y además es ejecutable). Sin embargo, se requieren otros modelos. Figura Nº 3. Relaciones de enlaces entre modelos Fuente: http://www.monografias.com/trabajos-pdf5/diagramas-casosuso/image001.jpg 18 Cada modelo es completo desde su punto de vista del sistema, sin embargo, existen relaciones de enlaces entre los diferentes modelos (figura Nº 3). Objetivos del lenguaje unificado de modelado. UML es un lenguaje de modelado que pueden usar todos los modeladores. No tiene propietario y está basado en el común acuerdo de gran parte de la comunidad informática. UML no pretende ser un método de desarrollo completo, pues no incluye un proceso de desarrollo paso a paso, pero puede manejar todos los conceptos que se consideran necesarios para utilizar un proceso moderno de desarrollo, basado en construir una sólida arquitectura para resolver requisitos dirigidos por casos de uso, por otro lado busca ser tan simple como sea posible pero manteniendo la capacidad de modelar toda la gama de sistemas que se necesiten construir. UML necesita ser lo suficientemente expresivo para manejar todos los conceptos que se originan en un sistema moderno, tales como la concurrencia y distribución, así como también los mecanismos de la ingeniería de software como son la encapsulación y componentes. Uso del lenguaje unificado de modelado. UML sirve para hacer modelos que permitan: a) Visualizar como es un sistema o como de desea. 19 b) Especificar la estructura y/o comportamiento de un sistema. c) Hacer una plantilla que guíe la construcción de los sistemas El modelado sirve no solamente para los grandes sistemas; aún en aplicaciones de pequeño tamaño se obtienen beneficios de modelar, sin embargo, es un hecho que entre más grande y más complejo es el sistema, el modelado juega un papel más importante, esto se debe a una razón simple: se hacen modelos de sistemas complejos porque no se pueden entender en su totalidad. El UML es independiente de metodología, por lo que puede ser usada y lo es en distintas metodología como: Fusion, Objectory, Rational Unified Process, OMT, ECM, Catalysys, etc. La independencia antes mencionada permite que las organizaciones adapten el uso de UML a la metodología que consideren más apropiada. Fases del ciclo de desarrollo que soporta UML. Cada diagrama puede ser usado con énfasis distinto en las fase de desarrollo: análisis, diseño e implementación, un diagrama cualquiera en una fase de tendrá un estudio lógico, cabe aclarar que aunque UML es orientado a objetos preferentemente, esto es útil en cualquier modelo tecnológico ya que es independiente de lenguajes de programación o tecnología determinada. Diagramas que ofrece el UML. 20 El UML tiene una notación gráfica muy expresiva que permite representar en mayor o menor medida todas las fases de un proyecto informático pasando por el análisis, diseño, implementación y hasta configuración. Estos gráficos son un conjunto de elementos con sus relaciones, por otro lado ofrecen una vista del sistema a modelar. Para poder representar correctamente un sistema UML ofrece una amplia variedad de diagramas para visualizar el sistema desde varias perspectivas, entre estos diagramas se tienen los siguientes: Figura Nº 4 Diagramas del UML que expresan gráficamente un Modelo. Fuente: elaboración propia, año: 2009. 21 Diagrama de Casos de Usos. El diagrama de casos de usos representa gráficamente los casos de uso que tiene un sistema véase figura Nº 5. Se define un caso de uso como cada interacción supuesta con el sistema a desarrollar donde se representan los requisitos funcionales. Es decir se está diciendo lo que tiene que hacer un sistema Figura Nº 5 Ejemplo de Modelo de Casos de Uso. Fuente: http: //www.cyta.com.ar/ta0604/v6n4a1.htm, año: 2007 Diagrama de Clase. Un diagrama de clases sirve para visualizar las relaciones entre las clases que involucran el sistema, las cuales pueden ser asociativas, de herencia, de uso y de contenido. Un diagrama de clases está compuesto por los siguientes elementos: •Clase: atributos, métodos y visibilidad. 22 • Relaciones: Herencia, Composición, Agregación, Asociación y Uso. Clase: Es la unidad básica que encapsula toda la información de un Objeto (un objeto es una instancia de una clase). A través de ella podemos modelar el entorno en estudio (una Casa, un Auto, una Cuenta Corriente, etc.). Relaciones entre Clases: Ahora ya definido el concepto de Clase, es necesario explicar cómo se pueden interrelacionar dos o más clases (cada uno con características y objetivos diferentes). Antes es necesario explicar el concepto de cardinalidad de relaciones: En UML, la cardinalidad de las relaciones indica el grado y nivel de dependencia, se anotan en cada extremo de la relación y éstas pueden ser: • Uno o muchos: 1...* (1...n) • 0 o muchos: 0...* (0...n) • Número fijo: m (m denota el número). Herencia (Especialización/Generalización): Indica que una subclase hereda los métodos y atributos especificados por una Súper Clase, por ende la Subclase además de poseer sus propios métodos y atributos, poseerá las características y atributos visibles de la Súper Clase (public y protected). Agregación: Para modelar objetos complejos, n bastan los tipos de datos básicos que proveen los lenguajes: enteros, reales y secuencias de caracteres. Cuando se requiere componer objetos que son instancias de clases definidas por el desarrollador de la aplicación, tenemos dos posibilidades: • Por Valor: Es un tipo de relación estática, en donde el tiempo de vida del objeto incluido está condicionado por el tiempo de vida del que lo incluye. Este tipo de relación es comúnmente llamada Composición 23 (el Objeto base se construye a partir del objeto incluido, es decir, es "parte/todo"). • Por Referencia: Es un tipo de relación dinámica, en donde el tiempo de vida del objeto incluido es independiente del que lo incluye. Este tipo de relación es comúnmente llamada Agregación (el objeto base utiliza al incluido para su funcionamiento). Asociación: La relación entre clases conocida como Asociación, permite asociar objetos que colaboran entre sí. Cabe destacar que no es una relación fuerte, es decir, el tiempo de vida de un objeto no depende del otro. Dependencia o Instanciación (uso): Representa un tipo de relación muy particular, en la que una clase es instanciada (su instanciación es dependiente de otro objeto/clase). Se denota por una flecha punteada. El uso más particular de este tipo de relación es para denotar la dependencia que tiene una clase de otra, como por ejemplo una aplicación gráfica que instancia una ventana (la creación del Objeto Ventana está condicionado a la instanciación proveniente desde el objeto Aplicación): 24 Figura Nº 6 Ejemplo de un Diagrama de Clases. Fuente: http: //es.geocities.com/nacarit_espaa/fase2/t1.html, año: 2007 Diagrama de Colaboración Un diagrama de colaboración es una forma alternativa al diagrama de secuencia para mostrar un escenario. Este tipo de diagrama muestra las interacciones entre objetos y los enlaces entre ellos. Los diagramas de secuencia proporcionan una forma de ver el escenario en un orden temporal - qué pasa primero, qué pasa después -, los clientes entienden fácilmente este tipo de diagramas, por lo que resultan útiles en las primeras fases de análisis. Por tanto los diagramas de 25 colaboración proporcionan la representación principal de un escenario, ya que las colaboraciones se organizan entorno a los enlaces de unos objetos con otros. Este tipo de diagramas se utilizan frecuentemente en la fase de diseño, véase figura Nº 7 donde se muestra un ejemplo. Figura Nº 7 Ejemplo de un Diagrama de Colaboración. Fuente: http: //rtlabnet.wikidot.com/doc: diseno: rcu: editor, año: 2007. Diagrama de Secuencia Un diagrama de secuencia es una forma de diagrama de interacción que muestra los objetos como líneas de vida a lo largo de la página y con sus interacciones en el tiempo representadas como mensajes dibujados como flechas desde la línea de vida origen hasta la línea de vida destino. Los diagramas de secuencia son buenos para mostrar qué objetos se comunican 26 con qué otros objetos y qué mensajes disparan esas comunicaciones. Los diagramas de secuencia no están pensados para mostrar lógicas de procedimientos complejos, véase figura Nº 8. Línea de Vida Una línea de vida representa un participante individual en un diagrama de secuencia. Una línea de vida usualmente tiene un rectángulo que contiene el nombre del objeto. Si el nombre es self entonces eso indica que la línea de vida representa el clasificador que posee el diagrama de secuencia. Algunas veces un diagrama de secuencia tendrá una línea de vida con un símbolo del elemento actor en la parte superior. Este usualmente sería el caso si un diagrama de secuencia es contenido por un caso de uso. Los elementos entidad, control y límite de los diagramas de robustez también pueden contener líneas de vida. Mensajes Los mensajes se muestran como flechas. Los mensajes pueden ser completos, perdidos o encontrados; síncronos o asíncronos: llamadas o señales. Ocurrencia de ejecución Un rectángulo fino a lo largo de la línea de vida denota la ocurrencia de ejecución o activación de un foco de control. 27 Mensaje Self Un mensaje self puede representar una llamada recursiva de una operación, o un método llamando a otro método perteneciente al mismo objeto. Este se muestra como cuando crea un foco de control anidado en la ocurrencia de ejecución de la línea de vida. Mensajes perdidos y encontrados Los mensajes perdidos son aquellos que han sido enviados pero que no han llegado al destino esperado, o que han llegado a un destino que no se muestra en el diagrama actual. Los mensajes encontrados son aquellos que llegan de un remitente no conocido, o de un remitente no conocido en el diagrama actual. Ellos se denotan yendo o llegando desde un elemento de punto final. Inicio y final de línea de vida Una línea de vida se puede crear o destruir durante la escala de tiempo representada por un diagrama de secuencia. En el último caso, la línea de vida se termina por un símbolo de detención, representado como una cruz. En el primer caso, el símbolo al inicio de la línea de vida se muestra en un nivel más bajo de la página que el símbolo del objeto que causó la creación. Restricciones de tiempo y duración En forma predeterminada, un mensaje se muestra como una línea horizontal. Ya que la línea de vida representa el pasaje de tiempo hacia abajo, cuando se modela un sistema en tiempo real, o incluso un proceso de 28 negocios en tiempo límite, puede ser importante considerar el tiempo que toma realizar las acciones. Al configurar una restricción de duración para un mensaje, el mensaje se mostrará como una línea inclinada. Figura Nº 8 Ejemplo de un Diagrama de Secuencia. Fuente: http: //www.chuidiang.com/ood/metodologia/diagrama_secuencia.php, año: 2007. Extensión WAE del UML. Una de las características más relevantes de la notación UML es su capacidad para absorber nueva semántica sin romper su lógica interna. La necesidad de implementar complejas arquitecturas con múltiples capas y una gran dispersión geográfica de nodos, ha supuesto todo un reto al abordar su modelado y especificación. Jim Conallen ha desarrollado desde 1998 una extensión de la notación UML denominada WAE “Web Application Extensión” 29 que permite rentabilizar toda la gramática interna de UML para modelar aplicaciones con elementos específicos de la arquitectura de un entorno WEB. La tabla Nº 1, muestra los estereotipos que se utilizan en WAE. Una página cliente es una unidad de código HTML que es distribuida por el servidor Web a sus clientes, que son los navegadores Web, los navegadores interpretan el código y presentan la información que contiene al usuario. Para obtener una página cliente, el navegador envía al servidor Web la dirección URL (Uniform Resource Locator) de la página. Una página servidora, por su parte, es una secuencia de comandos en algún lenguaje de programación como ser PHP, ASP, JSP, PERL, etc. que son procesados por el mismo servidor. Al igual que las páginas cliente la página servidora tienen una URL que es enviada por el navegador al servidor Web, pero éste, en lugar de distribuir la página, ejecuta las instrucciones que contiene. Estas instrucciones pueden ser, por ejemplo, para consultar una base de datos y extraer de ella información que interesa al usuario del navegador, y terminan generalmente con la construcción de una página cliente que contiene la información obtenida, y que es enviada entonces por el servidor Web al navegador para que se la presente al usuario. Desde el punto de vista de éste, el servidor Web le envía la página cliente construida en forma dinámica, en respuesta a la URL de la página servidora enviada 30 previamente. Tabla Nº 1 Estereotipos Utilizados en la Notación WAE. Estereotipos para las Clases Estereotipo Descripción Representa una página Web que tiene scripts ejecutados por el servidor. Estos scripts interactúan con los recursos que se encuentran al alcance del servidor. Sólo puede Server Page mantener relaciones con objetos que se encuentren en el servidor Representan páginas que son dibujadas por el Client Page navegador web y pueden ser una combinación de algún o algunos lenguajes de marcado, scripts del lado del cliente, islas de datos, etc. Representa una colección de campos de entrada que forman parte con una página del Form lado cliente (Client correspondencia Page). directa con Tiene la una etiqueta <FORM> de XHTML. Es una colección de scripts del lado del cliente ClientScript que existe como un archivo separado y que 31 Object son incluidos mediante una petición independiente por parte del navegador. Estereotipos para las Relaciones entre las Clases Representa un apuntador desde una “client Link page” hacia una “client page” o “server page”. Corresponde directamente con una etiqueta <a> (ancla) de HTML Esta relación siempre se da entre una “form” y Submit una “server page”, por supuesto, la “server page” procesa los datos que la “form” le envía (submits) Sirve para identificar cuales “server page” son responsables de la creación de una “client Build page”. Una “server page” puede crear varias “client page”, pero una “client page” sólo puede ser creada por una sola “server page”. Esta relación siempre es unidireccional Esta es también una relación unidireccional que indica que una página Web redirige hacia Redirect otra. En caso de que la página origen sea una “client page” esta asociación corresponderá con la “META” etiqueta y valor HTTP-EQUIV de “Refresh”*. 32 MODELO CLIENTE-SERVIDOR. La tecnología denominada Cliente/Servidor es utilizada en todas las aplicaciones de Internet/intranet, un servidor es un ordenador remoto en algún lugar de la red que proporciona información según la petición véase figura Nº 9. Un cliente funciona en su computador local que se comunica con el servidor remoto y pide a éste información. Un servidor típicamente sirve a una multitud de clientes, ahorrando a cada uno de ellos el problema de tener la información instalada y almacenada localmente. Los sistemas Cliente/Servidor pueden ser de muchos tipos, dependiendo de las aplicaciones que el servidor pone a disposición de los clientes, entre otros, existen los siguientes: • Servidor de Impresión: mediante el cual los usuarios imprimen remotamente. • Servidor de Archivos: con el cual los clientes comparten y/o almacenan archivos, a este servicio se le conoce cono Servidor FTP. • Servidor de Bases de Datos: donde existe uno o varios sistemas de Base de Datos. • Servidor de Nombres: el cual convierte las direcciones IP (Protocolo Internet) en nombres y viceversa también se conoce como Servidor DNS. Servidor Web: el cual sirve páginas Web. • Servidor de Correo: el cual permite enviar y/o recibir correo electrónicos mediante un cliente de correo electrónico. 33 Figura Nº 9Modelo Cliente-Servidor en un entorno Web. Fuente: http://daw-fiec.pbworks.com/f/cliente_servidor2.jpg PROGRAMACIÓN ORIENTADA A OBJETOS. El paradigma OO se basa en el concepto de objeto, un objeto es aquello que tiene estado (propiedades más valores), comportamiento (acciones y reacciones a mensajes) e identidad (propiedad que lo distingue de los demás objetos). La estructura y comportamiento de objetos similares están definidos en una clase común, los términos instancia y objeto son intercambiables. Una clase es un conjunto de objetos que comparten una estructura y comportamiento común, la diferencia entre un objeto y una clase es que un objeto es una entidad concreta que existe en tiempo y espacio, mientras que una clase representa una abstracción, la "esencia" de un objeto, tal como son, de aquí que un objeto no es una clase, sin embargo, una clase puede ser un objeto. 34 En el enfoque OO las propiedades del objeto son claves, los principios del modelo OO son: • Abstracción: Es una descripción simplificada o especificación de un sistema que enfatiza algunos de los detalles o propiedades del sistema, mientras suprime otros. • Encapsulación: Es el proceso de ocultar todos los detalles de un objeto que no contribuyen a sus características esenciales. • Modularidad: Es la propiedad de un sistema que ha sido descompuesto en un conjunto de módulos coherentes e independientes. • Jerarquía o herencia: Es el orden de las abstracciones organizado por niveles. • Tipificación: Es la definición precisa de un objeto de tal forma que objetos de diferentes tipos no puedan ser intercambiados o cuando mucho, puedan intercambiarse de manera muy restringida. • Concurrencia: Es la propiedad que distingue un objeto que está activo de uno que no lo está. • Persistencia: Es la propiedad de un objeto a través de la cual su existencia trasciende el tiempo (es decir, el objeto continua existiendo después de que su creador ha dejado de existir) y/o el espacio es decir, la localización del objeto se mueve del espacio de dirección en que fue creado. Si un modelo que se dice OO no contiene alguno de los primeros cuatro elementos, entonces no es OO. 35 Los beneficios del enfoque OO. • El uso del modelo OO ayuda a explotar el poder expresivo de todos los lenguajes de programación basados en objetos y los orientados a objetos, como Smalltalk, Object Pascal, C++, CLOS, Ada, y Java. • El uso del modelo OO alienta el rehúso no solo del software, sino de diseños completos. • Produce sistemas que están construidos en formas intermedias estables y por ello son más resistentes al cambio en especificaciones y tecnología. SERVIDOR WEB SEGURO. Existen ocasiones en las que se hace necesario recibir/enviar información sensible a un Servidor Web, es por ello que se hace imprescindible el contar con un mecanismo que dé fe de si, un servidor seguro es en quien se cree y se puede confiar en él a la hora de transmitirle la información. La forma como se hace es mediante las Autoridades de Certificación (AC), conocidas informalmente como notarios electrónicos, encargadas de autenticar a los participantes en transacciones y comunicaciones a través de la red. Su función es emitir certificados a los usuarios, de manera que se pueda estar seguro de que el interlocutor (cliente o servidor) es quien pretende ser, garantizando así la seguridad de las transacciones, véase figura Nº 10. El certificado de seguridad se concede a una entidad después de comprobar una serie de referencias, para asegurar la identidad del receptor de los datos cifrados. Se construye a partir de la clave pública del servidor solicitante, junto con algunos datos básicos del mismo y es firmado por la 36 autoridad de certificación correspondiente con su clave privada. En la práctica, se sabe que el servidor es seguro porque en el navegador de Internet se ve una llave o un candado cerrado en la barra de estado de éste. Figura Nº 10 Intercambio de Información entre un Navegador Web (cliente) y un Servidor Web Seguro. Fuente: http: //neo.lcc.uma.es/evirtual/cdd/tutorial/presentacion/ssl.html, año 2007. PÁGINAS WEB 37 Una página Web estática incluye un contenido que se muestra del mismo modo cada vez que se solicita desde un navegador. Un ejemplo de una página Web estática es una página de servicio al cliente que contiene información de contacto como por ejemplo: los números de teléfono, los números de fax y las direcciones de correo electrónico que no suelen cambiar con frecuencia. Una página Web estática se crea utilizando sólo HTML lenguaje que interpretan los navegadores Web. Una página Web estática contiene además del código HTML, texto, así como otros elementos apropiados para la página como imágenes y animación, pero no utilizan la información almacenada en Base de Datos. El contenido de una página Web dinámica en cambio se genera cuando el usuario solicita la página. Generalmente el contenido se extrae de una Base de Datos, lo que permite presentar la información más actual sin volver a codificar la página Web. Una página Web dinámica actúa como una plantilla: contiene código para recuperar la información solicitada y dar formato a la salida. EL LENGUAJE SQL. El SQL (Structured Query Language) o Lenguaje de Consultas Estructurado, es el lenguaje que permite la comunicación con el Sistema Gestor de Bases de Datos. Es un lenguaje unificado, y lo utilizan todo tipo de usuarios, desde el administrador de la Base de Datos, hasta el usuario final. El SQL es un lenguaje no procedimental esto quiere decir que el usuario especifica Qué quiere, no Cómo ni Dónde conseguirlo. El SQL es 38 relacionalmente completo esto permite la realización de cualquier consulta de datos. Las sentencias SQL pertenecen a dos categorías principales: Lenguaje de Definición de Datos (DDL) y Lenguaje de Manipulación de Datos (DML). Estos dos lenguajes no son lenguajes en sí mismos, sino que es una forma de clasificar las sentencias de lenguaje SQL en función de su cometido. La diferencia principal reside en que el DDL crea objetos en la base de datos y sus efectos se pueden ver en el diccionario de la base de datos, mientras que el DML es el que permite consultar, insertar, modificar y eliminar la información almacenada en los objetos de la base de datos. El lenguaje SQL está basado en el cálculo relacional de tuplas. Como resultado, toda consulta formulada utilizando el cálculo relacional de tuplas (o su equivalente, el álgebra relacional) se pude formular también utilizando SQL. Hay, sin embargo, capacidades que van más allá del cálculo o del álgebra relaciona. A continuación se muestra una lista de algunas características proporcionadas por SQL que no forman parte del álgebra y de cálculo relacionales: Comandos para inserción, borrado o modificación de datos. Capacidades aritméticas: En SQL es posible incluir operaciones aritméticas así como comparaciones, por ejemplo A < B + 3. Nótese que ni + ni otros operadores aritméticos aparecían en el álgebra relacional ni en cálculo relacional. Asignación y comandos de impresión: es posible imprimir una relación construida por una consulta y asignar una relación calculada a un nombre de relación. 39 Funciones agregadas: Operaciones tales como promedio (average), suma (sum), máximo (max), etc. se pueden aplicar a las columnas de una relación para obtener una cantidad única. LAS BASES DE DATOS Una base de datos es un conjunto de datos estructurados, en un soporte de almacenamiento de datos y se puede acceder a ella desde uno o varios programas. Antes de diseñar una base de datos se debe establecer un proceso partiendo del mundo real, de manera que sea posible plasmar éste mediante una serie de datos. La imagen que se obtiene del mundo real se denomina modelo conceptual y consiste en una serie de elementos que definen perfectamente lo que se quiere plasmar del mundo real en la base de datos. El Sistema Gestor de Bases de Datos (SGBD) es un conjunto de programas, procedimientos y lenguajes que proporcionan a los usuarios las herramientas necesarias para operar con una base de datos. Por tanto, el SGBD actúa como un intermediario entre los usuarios y los datos. Debe cumplir una serie de funciones como descripción de los datos, de manera que debe permitir definir los registros, sus campos, sus relaciones de autorización, etc. Debe manipular los datos permitiendo a los usuarios insertar, suprimir, modificar y consultar datos de la base de datos y por último, debe permitir usar la base de datos, dando un interfaz adecuado a cada tipo de usuario. 40 EL MODELO ENTIDAD-RELACIÓN Es una técnica de diseño de bases de datos gráfica, que incorpora información relativa a los datos y la relación existente entre ellos, para poder así plasmar una visión del mundo real sobre un soporte informático. Sus características fundamentales son: 1. Reflejan tan sólo la existencia de los datos sin expresar lo que se hace con ellos. 2. Es independiente de las bases de datos y de los sistemas operativos. 3. Incluye todos los datos que se estudian sin tener en cuenta las aplicaciones que se van a tratar. Las entidades se representan como rectángulos, los atributos como elipses y las relaciones como rombos. Entidad: Una entidad es un objeto concreto o abstracto que presenta interés para el sistema y sobre el que se recoge información la cual va a ser representada en un sistema de base de datos. La mayoría de las entidades modelan objetos o eventos del mundo real, por ejemplo, clientes, productos o llamadas de pedidos. Atributo: Es una unidad básica e indivisible de información acerca de una entidad o una relación y sirve para identificar y describir a las mismas. Por ejemplo, si se va a modelar un evento como una llamada al servicio de asistencia, probablemente se querrá saber quién era el cliente, quién hizo la 41 llamada y cuándo, así como si se resolvió o no el problema. La determinación de los atributos que hay que incluir en el modelo es un problema semántico (de significado). Se deben tomar decisiones basadas en el significado de los datos y en cómo se utilizarán. Dominio: Un dominio es el conjunto de valores que puede tomar cada uno de los atributos. Tabla: Organización de los datos en forma de filas y columnas. Cada fila se llama tupla, y cada columna dentro de una tupla corresponde al valor de un atributo para esa tupla. Relación: Asociación entre entidades. Por ejemplo, un "alumno" "tiene" una "asignatura". Tabla relacional: Es una tabla que debe cumplir las siguientes características: • Cada fila debe ser única. • Cada columna debe ser única. • Los valores de las columnas deben pertenecer al dominio de cada atributo. • Debe tener un solo tipo de fila, cuyo formato está definido por el esquema de la tabla o relación. • El valor de la columna para cada fila debe ser único. Clave candidata: Atributo o atributos que pueden distinguir de forma unívoca una tupla dentro de una tabla. Puede haber varias claves candidatas para distinguir una misma entidad. Se elegirá como clave candidata aquel atributo que posea un dominio en el que se tenga valores únicos. Si esto no 42 es posible, entonces se usa como clave candidata la combinación de varios atributos, de manera que esta combinación sí sea única. Clave principal: Aquella de las claves candidatas que es designada para distinguir de forma unívoca una tupla dentro de una tabla. Clave ajena: Se trata de un atributo que es clave principal en otra tabla. Vista: Una vista es una tabla ficticia cuya definición y tuplas se obtiene a partir de una o más tablas base. Sus características son: 1. Sus columnas se obtienen a partir de varias tablas base. 2. Pueden estar definidas a partir de otras vistas. 3. Sus datos se obtienen como resultado de una consulta a la base de datos. 4. Se puede almacenar su estructura. Se trata de una tabla virtual que no existe como tabla en el disco. Inconsistencia: Se da cuando se encuentra un valor en una clave ajena no existente en la entidad donde ésta sea clave principal. Asociaciones entre entidades Asociaciones uno-a-uno: Si es cierto que cualquier ejemplar de la entidad X se puede asociar con tan sólo un ejemplar de la entidad Y, entonces se dice que la asociación es uno-a-uno. Cuando se elige una asociación uno-auno se debe asegurar de que se mantenga la asociación en todo momento. 43 Asociaciones uno-a-muchos: Es el tipo de asociación más común, donde un solo ejemplar de una entidad se puede asociar con cero, uno o muchos ejemplares de otra entidad. Por ejemplo, una persona puede tener varios números de teléfono. Asociaciones muchos-a-muchos: Los clientes compran en muchas tiendas, una tienda tiene muchos clientes. Como este tipo de relaciones no se puede modelar directamente en una base de datos relacional, se modela usando una tabla intermedia que tenga una asociación uno-a-muchos con cada uno de los participantes originales. Por ejemplo, un pedido puede tener muchos tipos de confección, y un tipo de confección puede aparecer en varios pedidos. Normalización La normalización se encarga de obtener los datos agrupados en distintas tablas siguiendo una serie de pasos, de tal manera que los datos obtenidos tienen una estructura óptima para su implementación, gestión y explotación desde distintas aplicaciones futuras. Una de las ventajas principales que se obtiene al realizar la normalización es que la información no estará duplicada innecesariamente dentro de las estructuras: habrá mínima redundancia. Dependencia funcional. Se dice que un atributo B depende funcionalmente de A (A -> B) si cada valor de A se corresponde con un único valor de B o, visto de otra manera, si dado A se puede obtener B. Un caso típico podría ser DNI -> Nombre, pues dado un DNI se puede obtener el nombre de la persona con ese DNI. Existen reglas que se pueden realizar entre atributos para poder obtener 44 dependencias funcionales adicionalmente. Supóngase que T es una tabla relacional y X, Y, Z son subconjuntos de atributos de la tabla T. Reflexividad: Si los valores de un subconjunto de atributos Y están incluidos dentro de un subconjunto de atributos X, se dice que X depende funcionalmente de Y (Y -> X). Aumentación: Si un subconjunto X depende funcionalmente de otro Y, dicha dependencia se mantendrá aunque se añada otro atributo a los dos subconjuntos (X -> Y entonces X.a ->Y.a). Transitividad: Si Y depende funcionalmente de X y Z depende funcionalmente de Y, entonces Z depende funcionalmente de X (X -> Y e Y > Z entonces X -> Z). Por ejemplo, DNI -> NOMBRE y NOMBRE -> DIRECCIÓN, luego DNI -> DIRECCIÓN. Dependencia funcional total: Un atributo Y tiene una dependencia funcional total con otro atributo X si tiene una dependencia funcional con X y no depende funcionalmente de ningún subconjunto de X. Por ejemplo, supóngase que una empresa tiene empleados y que una persona puede ser empleado de varias empresas. Según esto, se podría decir que DNI.EMPRESA -> NOMBRE, pero esta dependencia no es total porque también es cierto que DNI -> NOMBRE. Sin embargo, no se puede identificar el sueldo de un empleado sin saber a qué empresa pertenece, por lo tanto, DNI.EMPRESA -> SUELDO sí es una dependencia funcional total. 45 Primera Forma Normal (1FN). Se dice que una tabla está en primera forma normal si todos los valores que componen a sus tuplas son atómicos: un atributo no puede tener más de un valor. Para normalizar una tabla que no esté en 1FN han de seguirse los siguientes pasos: • Se localizan los atributos correspondientes a la clave principal • Se realiza una proyección sobre la tabla y así se descompone en varias, de manera que se hace la proyección de la clave con los atributos que tengan los valores únicos. Por ejemplo, la figura Nº 11 muestra una tabla que no está en 1FN: Figura Nº 11Tabla en Primera Forma Normal. Fuente:http://www.formauri.es/arrobamasmas/Cursos/index.php?apdo=05&curso=51&cap=4 , año: 2009. Segunda Forma Normal (2FN). Esta forma normal se considerará únicamente cuando la clave principal sea compuesta, si no (la clave principal está formada por un único atributo) la tabla estaría en segunda forma normal. Se dice que una tabla está en segunda forma normal si se cumplen las siguientes condiciones: • Está en 1FN. 46 • Todo atributo secundario (los que no pertenecen a la clave principal) tiene una dependencia funcional total de la clave completa y no de una parte de ella. Para convertir una tabla que no esté en 2FN a 2FN se creará una tabla con la clave y todas sus dependencias funcionales totales y otra tabla con la parte de la clave que tiene dependencias con los atributos secundarios. Por ejemplo, la figura Nº 12 muestra una tabla que no está en 2FN: Figura Nº 12Tabla que no está en 2FN. Fuente:http://www.formauri.es/arrobamasmas/Cursos/index.php?apdo=05&curso=51&cap=4 , año: 2009. Ya que el campo "TeléfonoProveedor" no es dependiente de la clave candidata {"NombreProducto, "NombreProveedor"} sino únicamente de "NombreProveedor". Se trata de no representar dos entidades distintas en una sola tabla. En este ejemplo, se reorganizan los datos de la siguiente manera: 47 Tabla Productos: Figura Nº 13Tabla Productos Fuente:http://www.formauri.es/arrobamasmas/Cursos/index.php?apdo=05&curso=51&cap=4 , año: 2009. Tabla Proveedores: Figura Nº 14Tabla Proveedores. Fuente:http://www.formauri.es/arrobamasmas/Cursos/index.php?apdo=05&curso=51&cap=4 , año: 2009. Tercera Forma Normal (3FN). Una tabla está en 3FN si: • Está en 2FN • No existen atributos no primarios (no pertenecen a la clave) que son transitivamente dependientes de cada posible clave de la tabla, o lo que es lo mismo, un atributo secundario sólo puede ser conocido a través 48 de la clave principal o claves secundarias de la tabla y no por medio de otro atributo no primario. Para convertir una tabla a 3FN se realizará una proyección de la clave a los elementos que no tengan dependencia funcional transitiva y otra tabla con una nueva clave a los elementos que anteriormente tenían esta dependencia. Por ejemplo, la siguiente tabla no está en 3FN: Tabla Atletas: Figura Nº 15 Tabla Atletas. Fuente:http://www.formauri.es/arrobamasmas/Cursos/index.php?apdo=05&curso=51&cap=4 , año: 2009. Ya que, dado un número de licencia, se puede obtener la edad del inscrito, y dada la edad del inscrito, se puede averiguar la categoría a la que pertenece: teniendo entonces una dependencia funcional transitiva. Evidentemente, dado el número de licencia se puede averiguar la categoría pero lo importante aquí es que la categoría depende de un atributo que no forma parte de la clave. Para normalizar, se descompone la tabla en las siguientes: 49 Figura Nº 16Tabla Atletas parte 1. Fuente:http://www.formauri.es/arrobamasmas/Cursos/index.php?apdo=05&curso=51&cap=4 , año: 2009. Figura Nº 17Tabla Atletas parte2. Fuente:http://www.formauri.es/arrobamasmas/Cursos/index.php?apdo=05&curso=51&cap=4 , año: 2009. LENGUAJE DE PROGRAMACIÓN PHP. PHP es originalmente un para lenguaje la de creación programación de páginas interpretado, dinámicas. diseñado Es usado principalmente en interpretación del lado del servidor (server-side scripting) pero actualmente puede ser utilizado desde una interfaz de línea de comandos o en la creación de otros tipos de programas incluyendo aplicaciones con interfaz gráfica usando las bibliotecas Qt o GTK+. PHP es un acrónimo recursivo que significa PHP Hypertext Pre-processor (inicialmente PHP Tools, o, Personal Home Page Tools). Fue creado originalmente por Rasmus Lerdof en 1994; sin embargo la implementación 50 principal de PHP es producida ahora por The PHP Group y sirve como el estándar de facto para PHP al no haber una especificación formal. Publicado bajo la PHP License, la Free Software Foundation considera esta licencia como software libre. Ventajas del lenguaje PHP. • Es un lenguaje multiplataforma. • Capacidad de conexión con la mayoría de los manejadores de base de datos que se utilizan en la actualidad, destaca su conectividad con MySQL • Capacidad de expandir su potencial utilizando la enorme cantidad de módulos (llamados ext's o extensiones). • Posee una amplia documentación en su página oficial ([2]), entre la cual se destaca que todas las funciones del sistema están explicadas y ejemplificadas en un único archivo de ayuda. • Es libre, por lo que se presenta como una alternativa de fácil acceso para todos. • Permite las técnicas de Programación Orientada a Objetos. • Biblioteca nativa de funciones sumamente amplia e incluida. • No requiere definición de tipos de variables. • Tiene manejo de excepciones (desde php5). 51 Desventajas del Lenguaje PHP. Si bien PHP no obliga a quien lo usa a seguir una determinada metodología a la hora de programar (muchos otros lenguajes tampoco lo hacen), aun estando dirigido a alguna en particular, el programador puede aplicar en su trabajo cualquier técnica de programación y/o desarrollo que le permita escribir código ordenado, estructurado y manejable. Un ejemplo de esto son los desarrollos que en PHP se han hecho del patrón de diseño Modelo Vista Controlador (o MVC), que permiten separar el tratamiento y acceso a los datos, la lógica de control y la interfaz de usuario en tres componentes independientes (ver más abajo Frameworks en PHP). COMMON GATEWAY INTERFACE (CGI). El CGI (Por sus siglas en inglés "Common Gateway Interface") cambio la forma de manipular información en el Web. En sí, es un método para la transmisión de información hacia un compilador instalado en el servidor. Su función principal es la de añadir una mayor interacción a los documentos Web que por medio del HTML se presentan de forma estática. El CGI es utilizado comúnmente para contadores, bases de datos, motores de búsqueda, formularios, generadores de email automático, foros de discusión, chats, comercio electrónico, rotadores y mapas de imágenes, juegos en línea y otros. Esta tecnología tiene la ventaja de correr en el servidor cuando el usuario lo solicita por lo que es dependiente del servidor y no de la computadora del usuario. 52 De acuerdo a la traducción de la NCSA: "Un documento HTML es estático, lo que significa que existe en un estado constante; es un archivo de texto que no cambia. Un script CGI por otro lado, es ejecutado en tiempo real, lo que permite que regrese información dinámica”. Por ejemplo, si se desea conectar las bases de datos de Unix al World Wide Web para permitir que las personas de todo el mundo la manipulen básicamente, lo se debe hacer es crear un script CGI que será ejecutado por el servidor para transmitir información al motor de la base de datos, recibir los resultados y mostrárselos al cliente. Los programas que maneja el CGI pueden estar compilados en diferentes lenguajes de programación. El más popular para el desarrollo de contenidos Web es el lenguaje Perl de distribución gratuita, aunque también podemos mencionar: C, C++ y Java. El funcionamiento de esta tecnología es muy sencillo. Los scripts residen en el servidor, donde son llamados, ejecutados y regresa información de vuelta al usuario. SECURE SOCKET LAYER (SSL). El protocolo SSL es un sistema diseñado y propuesto por Netscape Communications Corporation. Este se encuentra en la pila OSI entre los niveles de TCP/IP y de los protocolos HTTP, FTP, SMTP, etc. Proporciona sus servicios de seguridad cifrando los datos intercambiados entre el servidor y el cliente con un algoritmo de cifrado simétrico, típicamente el RC4 o IDEA, y cifrando la clave de sesión de RC4 o IDEA mediante un algoritmo de cifrado de clave pública, típicamente el RSA. La clave de sesión es la que se utiliza para cifrar los datos que vienen y van al servidor seguro. Se genera una clave de sesión distinta para cada transacción, lo cual permite que 53 aunque sea reventada por un atacante en una transacción dada, no sirva para descifrar futuras transacciones (véase figura Nº 18). El MD5 se usa como algoritmo de hash. El SSL proporciona cifrado de datos, autenticación de servidores, integridad de mensajes y opcionalmente autenticación de cliente para conexiones TCP/IP. Cuando el cliente pide al servidor seguro una comunicación segura, el servidor abre un puerto cifrado, gestionado por un software llamado Protocolo SSL Record, situado encima de TCP. Será el software de alto nivel, Protocolo SSL Handshake, quien utilice el Protocolo SSL Record y el puerto abierto para comunicarse de forma segura con el cliente. Figura Nº 18Transacción usando Cifrado SSL. Fuente: http: //www.enelnombredetux.com/project.php?project=pgp, año:2008. El Protocolo SSL Handshake. Durante el protocolo SSL Handshake, el cliente y el servidor intercambian una serie de mensajes para negociar las mejoras de seguridad. Este protocolo sigue las siguientes seis fases: 54 • La fase “hola”, usada para ponerse de acuerdo sobre el conjunto de algoritmos para mantener la intimidad y para la autenticación. • La fase de intercambio de claves, en la que intercambia información sobre las claves, de modo que al final ambas partes comparten una clave maestra. • La fase de producción de clave de sesión, que será la usada para cifrar los datos intercambiados. • La fase de verificación del servidor, presente sólo cuando se usa RSA como algoritmo de intercambio de claves, y sirve para que el cliente autentique al servidor. • La fase de autenticación del cliente, en la que el servidor solicita al cliente un certificado X.509 (si es necesaria la autenticación de cliente). • Por último, la fase de fin, que indica que ya se puede comenzar la sesión segura. Protocolo SSL Record. El Protocolo SSL Record especifica la forma de encapsular los datos transmitidos y recibidos. La porción de datos del protocolo tiene tres componentes: • MAC-DATA, el código de autenticación del mensaje. • ACTUAL-DATA, los datos de aplicación a transmitir. • PADDING-DATA, los datos requeridos para rellenar el mensaje cuando se usa cifrado en bloque. 55 Cómo saber si una Conexión se está Realizando Mediante SSL. Los navegadores Web disponen de un icono que lo indica, generalmente un candado en la parte inferior de la ventana, véase figura Nº 19. Si el candado está abierto se trata de una conexión normal, y si está cerrado de una conexión segura. Si hace “doble click” sobre el candado cerrado aparecerá el Certificado Digital del Servidor Web Seguro. Figura Nº 19Indicación de una Conexión Segura en Navegadores Web. Fuente:http://www.microsoft.com/spain/protect/yourself/phishing/spoof.mspx, año:2009 OpenSSL. El software OpenSSL es un proyecto de software desarrollado por lo miembros de la comunidad Open Source (código abierto). Es un robusto juego de herramientas que le ayudan a su sistema a implementar el Secure Sockets Layer (SSL), así como otros protocolos relacionados con la seguridad, tales como el Transport Layer Security (TLS). También incluye una librería de criptografía. 56 SISTEMA OPERATIVO GNU/LINUX GNU/Linux es un Sistema Operativo, es una implementación de libre distribución UNIX para computadoras personales (PC), servidores, y estaciones de trabajo. Fue desarrollado para el i386 y ahora soporta los procesadores i486, Pentium, Pentium Pro y Pentium II, así como los clones AMD y Cyrix. También soporta máquinas basadas en SPARC, DEC Alpha, PowerPC/PowerMac, y Mac/Amiga Motorola 680x0. Como sistema operativo, GNU/Linux es muy eficiente y tiene un excelente diseño. Es multitarea, multiusuario, multiplataforma y multiprocesador; en las plataformas Intel corre en modo protegido; protege la memoria para que un programa no pueda hacer caer al resto del sistema; carga sólo las partes de un programa que se usan; comparte la memoria entre programas aumentando la velocidad y disminuyendo el uso de memoria; usa un sistema de memoria virtual por páginas; utiliza toda la memoria libre para cache; permite usar bibliotecas enlazadas tanto estática como dinámicamente; se distribuye con código fuente; usa hasta 64 consolas virtuales; tiene un sistema de archivos avanzado pero puede usar los de los otros sistemas; y soporta redes tanto en TCP/IP como en otros protocolos. GNU/Linux es una muy buena alternativa frente a los demás sistemas operativos. Más allá de las ventajas evidentes de costo, ofrece algunas características muy notables. En comparación con las otras versiones de Unix para PC, la velocidad y confiabilidad de GNU/Linux son muy superiores. También está en ventaja 57 sobre la disponibilidad de aplicaciones, ya que no hay mucha difusión de estos otros Unixes (como Solaris, XENIX o SCO) entre los usuarios de PC por sus altos costos. Comparado con sistemas operativos como Microsoft Windows, GNU/Linux también sale ganando. Los bajos requisitos de hardware permiten hacer un sistema potente y útil de aquel 486 que algunos guardan en un armario. Esta misma característica permite aprovechar al máximo las capacidades de las computadoras más modernas. Es poco práctico tener una PC con 16 Mb de RAM y ponerle un sistema operativo que ocupa 13 (que es lo que reporta sobre Windows 95 el System Information de Symantec). No solo es superior respecto al sistema de multitarea y de administración de memoria, sino también en la capacidades de networking (conectividad a redes) y de multiusuario (aun comparando con sistemas multiusuario como NT). La única desventaja de GNU/Linux frente a estos sistemas, es la menor disponibilidad de software, pero este problema disminuye con cada nuevo programa que se escribe para el proyecto GNU, y con algunas empresas que están desarrollando software comercial para GNU/Linux. 58 CAPÍTULO III MARCO METODOLÓGICO En la actualidad, la utilización de metodologías para el desarrollo de aplicaciones no se pueden descartadas, debido a la necesidad de control de variables que conlleva el mismo desarrollo, y para la ordenada elaboración de las aplicaciones, por lo tanto, seguir metodologías y estándares nos llevan a estar en competitividad en todo momento. Es de suma importancia conocer el modo como se interrelacionan metodologías con estándares y herramientas siguiendo un único propósito, el cual consiste en la elaboración de aplicaciones de manera eficiente, ordenada y con el menor número de defectos. Las siglas RUP en ingles significa Rational Unified Process (Proceso Unificado Racional) es un producto del proceso de ingeniería de software que proporciona un enfoque disciplinado para asignar tareas y responsabilidades dentro de una organización del desarrollo. Su meta es asegurar la producción del software de alta calidad que resuelve las necesidades de los usuarios dentro de un presupuesto y tiempo 59 establecidos. La metodología RUP nos proporciona disciplinas en las cuales se encuentran artefactos con lo cual se podrá contar con guías para poder documentar e implementar de una manera fácil y eficiente, todas las guías para un buen desarrollo, todo esto dentro de las respectivas fases con las cuales cuenta. Según Jacobson, I., Booch, G., Rumbaugh J. (1998) El nombre Proceso Unificado se usa para describir el proceso genérico que incluye aquellos elementos que son comunes a la mayoría de los refinamientos existentes. También permite evitar problemas legales ya que Proceso Unificado Racional o RUP son marcas registradas por IBM (desde su compra de Rational Software Corporation en 2003). Según Grady Booch (2000) un reflejo de lo que hemos visto en el trabajo con literalmente decenas de miles de proyectos en los últimos 20 años, la codificación de lo que funciona en las organizaciones exitosas y lo que está notablemente ausente en los fallidos. La Figura Nº 20 ilustra la historia de RUP. El antecedente más importante se ubica en 1967 con la Metodología Ericsson (Ericsson Approach) elaborada por Ivar Jacobson, una aproximación de desarrollo basada en componentes, que introdujo el concepto de Caso de Uso. Entre los años de 1987 a 1995 Jacobson fundó la compañía Objectory AB y lanza el proceso de desarrollo Objectory (abreviación de Object Factory). 60 Figura Nº 20: Historia de RUP Fuente: http://2.bp.blogspot.com/-CiLFgoBq_GM/TdxjrUWtAaI/AAAAAAAAACk/ksc4zvEk6Y/s1600/FIGURA+1.jpg Posteriormente en 1995 Rational Software Corporation adquiere Objectory AB y entre1995 y 1997 se desarrolla Rational Objectory Process (ROP) a partir de Objectory 3.8 y del Enfoque Rational (Rational Approach) adoptando UML como lenguaje de modelado. Desde ese entonces y a la cabeza de Grady Booch, Ivar Jacobson y James Rumbaugh, Rational Software desarrolló e incorporó diversos elementos para expandir RUP, destacándose especialmente el flujo de trabajo conocido como modelado del negocio. En junio del 1998 se lanza Rational Unified Process. DIMENSIONES DEL RUP El RUP tiene dos dimensiones: 61 a) El eje horizontal representa tiempo y demuestra los aspectos del ciclo de vida del proceso. b) El eje vertical representa las disciplinas, que agrupan actividades definidas lógicamente por la naturaleza. La primera dimensión representa el aspecto dinámico del proceso y se expresa en términos de fases, de iteraciones, y la finalización de las fases. La segunda dimensión representa el aspecto estático del proceso: cómo se describe en términos de componentes de proceso, las disciplinas, las actividades, los flujos de trabajo, los artefactos, y los roles. En la figura Nº 21 se puede observar como varía el énfasis de cada disciplina en un cierto plazo en el tiempo, y durante cada una de las fases. Por ejemplo, en iteraciones tempranas, pasamos más tiempo en requerimientos, y en las últimas iteraciones pasamos más tiempo en poner en práctica la realización del proyecto en sí. 62 Figura Nº 21. Disciplinas, fases, iteraciones del RUP Fuente: http://www.monografias.com/trabajos82/aplicacion-tecnologiaj2ee/image011.png Se puede hacer mención de las tres características esenciales que definen al RUP: Características esenciales Los autores de RUP destacan que el proceso de software propuesto por RUP tiene tres características esenciales: está dirigido por los Casos de Uso, está centrado en la arquitectura, y es iterativo e incremental. Proceso dirigido por Casos de Uso 63 Según Kruchten, P. (2000), los Casos de Uso son una técnica de captura de requisitos que fuerza a pensar en términos de importancia para el usuario y no sólo en términos de funciones que sería bueno contemplar. Se define un Caso de Uso como un fragmento de funcionalidad del sistema que proporciona al usuario un valor añadido. Los Casos de Uso representan los requisitos funcionales del sistema. En RUP los Casos de Uso no son sólo una herramienta para especificarlos requisitos del sistema. También guían su diseño, implementación y prueba. Los Casos de Uso constituyen un elemento integrador y una guía del trabajo como se muestra en la Figura Nº 22. Figura Nº 22: Los Casos de Uso integran el trabajo Fuente: http://4.bp.blogspot.com/DhDJJXg9Y_s/TdxkLmOd5CI/AAAAAAAAACo/39SGhuPI1Cg/s1600/FIGURA+2.jpg Los Casos de Uso no sólo inician el proceso de desarrollo sino que proporcionan un hilo conductor, permitiendo establecer trazabilidad entre los 64 artefactos que son generados en las diferentes actividades del proceso de desarrollo. Como se muestra en la Figura Nº 23, basándose en los Casos de Uso se crean los modelos de análisis y diseño, luego la implementación que los lleva a cabo, y se verifica que efectivamente el producto implemente adecuadamente cada Caso de Uso. Todos los modelos deben estar sincronizados con el modelo de Casos de Uso. Figura Nº 23: Trazabilidad a partir de los Casos de Uso Fuente: http://www.magis.com.co/images/Paquete-Exito_clip_image004.jpg Proceso centrado en la arquitectura La arquitectura de un sistema es la organización o estructura de sus partes más relevantes, lo que permite tener una visión común entre todos los involucrados (desarrolladores y usuarios) y una perspectiva clara del sistema completo, necesaria para controlar el desarrollo. La arquitectura involucra los aspectos estáticos y dinámicos más significativos del sistema, está relacionada con la toma de decisiones que indican cómo tiene que ser 65 construido el sistema y ayuda a determinar en qué orden. Además la definición de la arquitectura debe tomar en consideración elementos de calidad del sistema, rendimiento, reutilización y capacidad de evolución por lo que debe ser flexible durante todo el proceso de desarrollo. La arquitectura se ve influenciada por la plataforma software, sistema operativo, gestor de bases de datos, protocolos, consideraciones de desarrollo como sistemas heredados. Muchas de estas restricciones constituyen requisitos no funcionales del sistema. En el caso de RUP además de utilizar los Casos de Uso para guiar el proceso se presta especial atención al establecimiento temprano de una buena arquitectura que no se vea fuertemente impactada ante cambios posteriores durante la construcción y el mantenimiento. Cada producto tiene tanto una función como una forma. La función corresponde a la funcionalidad reflejada en los Casos de Uso y la forma la proporciona la arquitectura. Existe una interacción entre los Casos de Uso y la arquitectura, los Casos de Uso deben encajar en la arquitectura cuando se llevan a cabo y la arquitectura debe permitir el desarrollo de todos los Casos de Uso requeridos, actualmente y en el futuro. Esto provoca que tanto arquitectura como Casos de Uso deban evolucionar en paralelo durante todo el proceso de desarrollo de software. En la Figura Nº 24 se ilustra la evolución de la arquitectura durante las fases de RUP. Se tiene una arquitectura más robusta en las fases finales del proyecto. En las fases iníciales lo que se hace es ir consolidando la arquitectura por medio de baselines y se va modificando dependiendo delas necesidades del proyecto. 66 Figura Nº 24: Evolución de la arquitectura del sistema Fuente: http://www.scielo.cl/fbpe/img/formuniv/v6n2/art02-f3.jpg Es conveniente ver el sistema desde diferentes perspectivas para comprender mejor el diseño por lo que la arquitectura se representa mediante varias vistas que se centran en aspectos concretos del sistema, abstrayéndose de los demás. Para RUP, todas las vistas juntas forman el llamado modelo 4+1 de la arquitectura según Kruchten, P. (1986), el cual recibe este nombre porque lo forman las vistas lógica, de implementación, de proceso y de despliegue, más la de Casos de Uso que es la que da cohesión a todas. 67 Figura Nº 25: Los modelos se completan, la arquitectura no cambia drásticamente Fuente: http://nomada.blogs.com/.a/6a00d8341c564953ef017d3d99ec7d970c-pi Al final de la fase de elaboración se obtiene una baseline de la arquitectura donde fueron seleccionados una serie de Casos de Uso arquitectónicamente relevantes (aquellos que ayudan a mitigar los riesgos más importantes, aquellos que son los más importantes para el usuario y aquellos que cubran las funcionalidades significativas) Como se observa en la Figura Nº 25, durante la construcción los diversos modelos van desarrollándose hasta completarse (según se muestra con las formas rellenas en la esquina superior derecha). La descripción de la arquitectura sin embargo, no debería cambiar significativamente (abajo a la derecha) debido a que la mayor parte de la arquitectura se decidió durante la elaboración. Se incorporan pocos cambios a la arquitectura (indicados con mayor densidad de puntos en la figura inferior derecha). 68 Proceso iterativo e incremental Jacobson, I., Booch, G., Rumbaugh J. (2000), el equilibrio correcto entre los Casos de Uso y la arquitectura es algo muy parecido al equilibrio de la forma y la función en el desarrollo del producto, lo cual se consigue con el tiempo. Para esto, la estrategia que se propone en RUP es tener un proceso iterativo e incremental en donde el trabajo se divide en partes más pequeñas o mini proyectos. Permitiendo que el equilibrio entre Casos de Uso y arquitectura se vaya logrando durante cada mini proyecto, así durante todo el proceso de desarrollo. Cada mini proyecto se puede ver como una iteración (un recorrido más o menos completo a lo largo de todos los flujos de trabajo fundamentales) del cual se obtiene un incremento que produce un crecimiento en el producto. Una iteración puede realizarse por medio de una cascada como se muestra en la Figura Nº 26. Se pasa por los flujos fundamentales (Requisitos, Análisis, Diseño, Implementación y Pruebas), también existe una planificación de la iteración, un análisis de la iteración y algunas actividades específicas dela iteración. Al finalizar se realiza una integración de los resultados con lo obtenido de las iteraciones anteriores. 69 Figura Nº 26: Una iteración RUP Fuente: http://cocolito.comoj.com/fase.png El proceso iterativo e incremental consta de una secuencia de iteraciones. Cada iteración aborda una parte de la funcionalidad total, pasando por todos los flujos de trabajo relevantes y refinando la arquitectura. Cada iteración se analiza cuando termina. Se puede determinar si han aparecido nuevos requisitos o han cambiado los existentes, afectando alas iteraciones siguientes. Durante la planificación de los detalles de la siguiente iteración, el equipo también examina cómo afectarán los riesgos que aún quedan al trabajo en curso. Toda la retroalimentación de la iteración pasada permite reajustar los objetivos para las siguientes iteraciones. Se continúa con esta dinámica hasta que se haya finalizado por completo con la versión actual del producto. RUP divide el proceso en cuatro fases, dentro de las cuales se realizan varias iteraciones en número variable según el proyecto y en las que se hace 70 un mayor o menor hincapié en los distintas actividades. En la Figura Nº 27 se muestra cómo varía el esfuerzo asociado a las disciplinas según la fase en la que se encuentre el proyecto RUP. Figura Nº 27: Ciclo de vida Fuente: http://3.bp.blogspot.com/_HU3B-2ZsUc/TPVxMke0MDI/AAAAAAAAAAM/PSHqGkC41lY/s400/Ciclo+de+vida.jpg Las primeras iteraciones (en las fases de Inicio y Elaboración) se enfocan hacia la comprensión del problema y la tecnología, la delimitación del ámbito del proyecto, la eliminación de los riesgos críticos, y al establecimiento de una baseline (línea de base)de la arquitectura. Durante la fase de inicio las iteraciones hacen ponen mayor énfasis en actividades modelado del negocio y de requisitos. En la fase de elaboración, 71 las iteraciones se orientan al desarrollo de la baseline de la arquitectura, abarcan más los flujos de trabajo de requerimientos, modelo de negocios (refinamiento), análisis, diseño y una parte de implementación orientado a la baseline de la arquitectura. En la fase deconstrucción, se lleva a cabo la construcción del producto por medio de una serie de iteraciones. Para cada iteración se selecciona algunos Casos de Uso, se refina su análisis y diseño y se procede a su implementación y pruebas. Se realiza una pequeña cascada para cada ciclo. Se realizan tantas iteraciones hasta que se termine la implementación de la nueva versión del producto. En la fase de transición se pretende garantizar que se tiene un producto preparado para su entrega a la comunidad de usuarios. Como se puede observar en cada fase participan todas las disciplinas, pero que dependiendo de la fase el esfuerzo dedicado a una disciplina varía. 72 Figura Nº 28. Fases del RUP Fuente: http://upload.wikimedia.org/wikipedia/commons/4/4d/Rup_espanol.gif FASES El ciclo de vida del software del RUP se descompone en cuatro fases secuenciales (figura Nº 28). En cada extremo de una fase se realiza una evaluación (actividad: Revisión del ciclo de vida de la finalización de fase) para determinar si los objetivos de la fase se han cumplido. Una evaluación satisfactoria permite que el proyecto se mueva a la próxima fase. Planeando las fases 73 El ciclo de vida consiste en una serie de ciclos, cada uno de los cuales produce una nueva versión del producto, cada ciclo está compuesto por fases y cada una de estas fases está compuesta por un número de iteraciones, estas fases son: Concepción, Inicio o Estudio de oportunidad Define el ámbito y objetivos del proyecto Se define la funcionalidad y capacidades del producto. Elaboración Tanto la funcionalidad como el dominio del problema se estudian en profundidad Se define una arquitectura básica Se planifica el proyecto considerando recursos disponibles. Construcción El producto se desarrolla a través de iteraciones donde cada iteración involucra tareas de análisis, diseño e implementación Las fases de estudio y análisis sólo dieron una arquitectura básica que es aquí refinada de manera incremental conforme se construye (se permiten cambios en la estructura) Gran parte del trabajo es programación y pruebas Se documenta tanto el sistema construido como el manejo del mismo Estafase proporciona un producto construido junto con la documentación. Transición Se libera el producto y se entrega al usuario para un uso real Se incluyen tareas de marketing, empaquetado atractivo, instalación, configuración, mantenimiento, etc. 74 entrenamiento, soporte, Los manuales de usuario se completan y refinan con la información anterior Estas tareas se realizan también en iteraciones Todas las fases no son idénticas en términos de tiempo y esfuerzo. Aunque esto varía considerablemente dependiendo del proyecto, un ciclo de desarrollo inicial típico para un proyecto de tamaño mediano debe anticipar la distribución siguiente el esfuerzo y horario: Tabla Nº 2. Esfuerzo-horario contra fases del RUP Lo cual se puede representar gráficamente como se muestra en la figura Nº 29: 75 Figura Nº 29. Recursos utilizados en las fases del RUP en el tiempo. Fuente: http://procesosdesoftware.wikispaces.com/file/view/imgrup2.jpg/141480239/imgrup2.jp g El modelo cascada según Winston Royce (1970), es un secuencial modelo del desarrollo del software (un proceso para la creación del software) en que el desarrollo se considera como fluyendo constantemente hacia abajo (como a cascada) con las fases de análisis de requisitos, diseño, puesta en práctica, prueba (validación), integración, y mantenimiento. Las fases de concepción y elaboración serían considerablemente más pequeñas. Algunas herramientas que pueden automatizar una cierta porción del esfuerzo dela fase de construcción pueden atenuar esto, haciendo que la fase deconstrucción sea mucho más pequeña que las fases de concepción y elaboración juntas. Este es precisamente el objetivo del trabajo. Cada paso con las cuatro fases produce una generación del software. A menos que el producto "muera", se desarrollará nuevamente repitiendo la misma secuencia 76 las fases de concepción, elaboración, construcción y transición, pero con diversos énfasis cada fase. Estos ciclos subsecuentes se llaman los ciclos de la evolución. Mientras que el producto pasa durante varios ciclos, se producen las nuevas generaciones. En la figura Nº 30 se muestre este ciclo evolutivo. Figura Nº 30. Ciclo evolutivo en la elaboración de software basado en el RUP Fuente: http://inf162scontroldepensiones.files.wordpress.com/2011/09/rup4.jpg Los ciclos evolutivos pueden ser iniciados por las mejoras sugeridas por el usuario, cambios en el contexto del usuario, cambios en la tecnología subyacente, reacción a la competición, etcétera. Los ciclos evolutivos tienen típicamente fases de concepción y elaboración mucho más cortas, puesto que la definición y la arquitectura básicas del producto son determinadas por los ciclos de desarrollo anteriores. Las excepciones a esta regla son los ciclos evolutivos en los cuales ocurre o surge un producto significativo o una redefinición arquitectónica. Esfuerzo respecto de los flujos de trabajo 77 En la figura Nº 31 se muestran ciertos porcentajes, de forma vertical se muestra el esfuerzo que se tiene que realizar por cada una delas disciplinas o flujos de trabajo, y los dos porcentajes que se muestran de forma horizontal son para todo el proyecto. Explicando más puntualmente la figura Nº 31 se puede observar que para la obtención de requerimientos o requisitos en la fase de concepción se empiezan a obtener, en la fase de elaboración tiene su auge y va declinando en la fase de construcción, realizar todo esto requiere aproximadamente un 15% de esfuerzo, y así sucesivamente con las demás disciplinas. En esta sección y la siguiente, los porcentajes pueden variar de un proyecto a otro. Figura Nº 31. Esfuerzo respecto de los flujos de trabajo Fuente: http://sistemaacademicogrupo5.files.wordpress.com/2012/06/71.jpg?w=610 78 Esfuerzo respecto de las fases En la figura Nº 32 se muestran dos filas de porcentajes, el primero que es el esfuerzo realizado por cada fase en forma general e incluyendo las iteraciones dentro de cada fase; y en la segunda fila, la duración que tiene aproximadamente en porcentajes del tiempo total del proyecto para cada una de las fases incluyendo todas las iteraciones que conlleven realizar cada fase. Explicando más puntualmente una pequeña parte de la figura Nº 32 se puede observar que para la fase de construcción se tiene que dedicar más esfuerzo y mayor duración, siempre y cuando dependiendo de qué disciplina estemos ejecutando, por ejemplo en la disciplina de implementación se tiene mucho auge en la fase deconstrucción. Figura Nº 32. Esfuerzo respecto de las fases Fuente: http://sistemaacademicogrupo5.files.wordpress.com/2012/06/71.jpg?w=610 79 DISCIPLINAS Las disciplinas conllevan los flujos de trabajo, los cuales son una secuencia de pasos para la culminación de cada disciplina, estas disciplinas se dividen en dos grupos: las primarias y las de apoyo. Las primarias son las necesarias para la realización de un proyecto de software, aunque para proyectos no muy grandes se pueden omitir algunas; entre ellas se tienen: Modelado del Negocio, Requerimientos, Análisis y Diseño, Implementación, Pruebas, Despliegue. Las de apoyo son las que como su nombre lo indica sirven de apoyo a las primarias y especifican otras características en la realización de un proyecto de software; entre estas se tienen: Entorno, Gestión del Proyecto, Gestión de Configuración y Cambios. A continuación se describe rápidamente cada una de estas disciplinas. Modelado del negocio Esta disciplina tiene como objetivos comprender la estructura y la dinámica de la organización, comprender problemas actuales e identificar posibles mejoras, comprender los procesos de negocio. Utiliza el Modelo de Casos de Uso del Negocio para describir los procesos del negocio y los clientes, el Modelo de Objetos del Negocio para describir cada Casos de Uso del Negocio con los Trabajadores, además utilizan los Diagramas de Actividad y de Clases. 80 Requerimientos Esta disciplina tiene como objetivos establecer lo que el sistema debe hacer (Especificar Requisitos), definir los límites del sistema, y una interfaz de usuario, realizar una estimación del costo y tiempo de desarrollo. Utiliza el Modelo de Casos de Uso para modelar el Sistema que comprenden los Casos de Uso, Actores y Relaciones, además utiliza los diagramas de Estados de cada Casos de Uso y las especificaciones suplementarias. Análisis y diseño Esta disciplina define la arquitectura del sistema y tiene como objetivos trasladar requisitos en especificaciones de implementación, al decir análisis se refiere a transformar Casos de Uso en clases, y al decir diseño se refiere a refinar el análisis para poder implementar los diagramas de clases de análisis de cada Casos de Uso, los diagramas de colaboración de cada Casos de Uso, el de clases de diseño de cada Caso de Uso, el de secuencia de diseño de Casos de Uso, el de estados de las clases, el modelo de despliegue de la arquitectura. Implementación Esta disciplina tiene como objetivos implementar las clases de diseño como componentes (ej. fichero fuente), asignar los componentes a los nodos, probar los componentes individualmente, integrar los componentes en un sistema ejecutable (enfoque incremental). Utiliza el Modelo de Implementación, conjuntamente los Diagramas de Componentes para comprender cómo se organizan los Componentes y dependen unos de otros. 81 Pruebas Esta disciplina tiene como objetivos verificar la integración de los componentes (prueba de integración), verificar que todos los requisitos han sido implementados (pruebas del sistema), asegurar que los defectos detectados han sido resueltos antes de la distribución Despliegue Esta disciplina tiene como objetivos asegurar que el producto está preparado para el cliente, proceder a su entrega y recepción por el cliente. En esta disciplina serializan las actividades de probar el software en su entorno final (Prueba Beta), empaquetarlo, distribuirlo e instalarlo, así como la tarea de enseñar al usuario. Gestión y configuración de cambios Es esencial para controlar el número de artefactos producidos por la cantidad de personal que trabajan en un proyecto conjuntamente. Los controles sobre los cambios son de mucha ayuda ya que evitan confusiones costosas como la compostura de algo que ya se había arreglado etc., y aseguran que los resultados de los artefactos no entren en conflicto con algunos de los siguientes tipos de problemas: a) Actualización simultánea: Es la actualización de algo elaborado con anterioridad, sin saber que alguien más lo está actualizando. 82 b) Notificación limitada: Al realizar alguna modificación, no se deja información sobre lo que se hizo, por lo tanto no se sabe quién, como, y cuando se hizo. c) Versiones múltiples: No saber con exactitud, cual es la última versión, y al final no se tiene un orden sobre que modificaciones se han realizado a las diversas versiones. Gestión del proyecto La gestión de proyectos u objetivo es equilibrar los objetivos competitivos, administrar el riesgo, y superar restricciones para entregar un producto que satisface las necesidades e ambos clientes con éxito (los que pagan el dinero) y los usuarios. Con la Gestión del Proyecto se logra una mejoría en el manejo de una entrega exitoso de software. En resumen su propósito consiste en proveer pautas para: a) Administrar proyectos de software intensivos. b) Planear, dirigir personal, ejecutar acciones y supervisar proyectos. c) Administrar el riesgo. Sin embargo, esta disciplina no intenta cubrir todos los aspectos de dirección del proyecto. Por ejemplo, no cubre problemas como: a) Administración de personal: contratando, entrenando, enseñando. b) Administración del presupuesto: definiendo, asignando. c) Administración de los contratos con proveedores y clientes. 83 Entorno Esta disciplina se enfoca sobre las actividades necesarias para configurar el proceso que engloba el desarrollo de un proyecto y describe las actividades requeridas para el desarrollo de las pautas que apoyan un proyecto. Su propósito es proveer a la organización que desarrollará el software, un ambiente en el cual basarse, por medio de procesos y herramientas que apoyen el desarrollo el software. ORGANIZACIÓN Y ELEMENTOS EN RUP Ya conociendo varias partes del RUP nos concentraremos ahora en los elementos que lo componen, entre estos se tienen: Flujos de Trabajo, Detalle de los Flujos de Trabajo, Actores, Actividades y Artefactos. En la figura Nº 33 se muestran más claramente cómo se representan gráficamente cada uno de estos elementos y la interrelación entre ellos. Se puede observar que el Flujo de Trabajo de Requerimientos conlleva varios pasos, cada uno de estos pasos tiene asociado uno o varios actores, los cuales a su vez son los encargados de la ejecución de varias actividades, las cuales a la vez están definidas en artefactos o guías para su realización. 84 Figura Nº 33. Elementos que conforman el RUP Fuente: http://1.bp.blogspot.com/-rCC4hHbPo2U/TTif5HrhbI/AAAAAAAACQ4/Cwao1CIQ2HA/s1600/dib11.JPG Actores o roles: Son los personajes encargados de la realización de las actividades definidas dentro de los flujos de trabajo de cada una de las disciplinas del RUP, estos actores se dividen en varias categorías: Analistas, Desarrolladores, Probadores, Encargados, Otros actores. A continuación se presenta una lista de actores de acorde a las categorías mencionadas con anterioridad: Analistas: a) Analista del Proceso del Negocio. b) Diseñador del Negocio. c) Revisor del Modelo del Negocio. d) Revisor de Requerimientos. 85 e) Analista del Sistema. f) Especificador de Casos de Uso. g) Diseñador de Interfaz del Usuario. Desarrolladores a) Arquitecto. b) Revisor de la Arquitectura. c) Diseñador de Cápsulas. d) Revisor del Código y Revisor del Diseño. e) Diseñador de la Base de Datos. f) Diseñador. g) Implementador y un Integrador. Probadores Profesionales a) Diseñador de Pruebas. b) Probador. Encargados a) Encargado de Control del Cambio. b) Encargado de la Configuración. c) Encargado del Despliegue. d) Ingeniero de Procesos. e) Encargado de Proyecto. f) Revisor de Proyecto. Otros a) Cualquier trabajador. b) Artista Gráfico. 86 c) Stakeholder (Parte interesada). d) Administrador del Sistema. e) Escritor técnico. f) Especialista de Herramientas. Artefactos: Los artefactos son el resultado parcial o final que es producido y usado por los actores durante el proyecto. Son las entradas y salidas de las actividades, realizadas por los actores, los cuales utilizan y van produciendo estos artefactos para tener guías. Un artefacto puede ser un documento, un modelo o un elemento de modelo. Conjuntos de artefactos Se tiene un conjunto de artefactos definidos en cada una de las disciplinas y utilizadas dentro de ellas por lo actores para la realización de las mismas, a continuación se definen cada una de estas categorías o grupos de artefactos dentro de las disciplinas del RUP: a) Modelado del negocio Los artefactos del modelado del negocio capturan y presentan el contexto del negocio del sistema. Los artefactos del modelado del negocio sirven como entrada y como referencia para los requisitos del sistema. b) Requerimientos Los artefactos de requerimientos del sistema capturan y presentan la información usada en definir las capacidades requeridas del sistema. c) Análisis y diseño del sistema 87 Los artefactos para el análisis y del diseño capturan y presenta la información relacionada con la solución a los problemas se presentaron en los requisitos fijados. d) Implementación Los artefactos para la implementación capturan y presentan la realización de la solución presentada en el análisis y diseño del sistema. e) Pruebas Los artefactos desarrollados como productos de las actividades de prueba y de la evaluación son agrupadas por el actor responsable, con el cual se lleva un conjunto de documentos de información sobre las pruebas realizadas y las metodologías de pruebas aplicadas. f) Despliegue Los artefactos del despliegue capturan y presentan la información relacionada con la transitividad del sistema, presentada en la implementación en el ambiente de la producción. g) Administración del proyecto El conjunto de artefactos de la administración del proyecto capturan los artefactos asociados con el proyecto, el planeamiento y a la ejecución del proceso. h) Administración de cambios y configuración Los artefactos de la configuración y administración del cambio capturan y presentan la información relacionada con la disciplina de configuración y administración del cambio. 88 i) Entorno o ambiente El conjunto de artefactos del ambiente presentan los artefactos que se utilizan como dirección a través del desarrollo del sistema para asegurar la consistencia de todos los artefactos producidos. En la siguiente tabla y en la figura Nº 34 se hace un breve resumen de los artefactos y su función en las diferentes disciplinas. TABLA Nº 3: ARTEFACTOS EN LAS FASES DE RUP Fase Descripción Artefacto Inicio Durante esta fase de inicio, las iteraciones se centran con mayor énfasis en las actividades Especificación de de modelamiento de la empresa y en sus Requisitos requerimientos. Durante esta fase de elaboración, las Elaboración iteraciones se centran al desarrollo de la base Diagrama de Casos de de diseño, encierran más los flujos de trabajo Uso de requerimientos, modelo de la organización, análisis, diseño y una parte de implementación orientada a la base de la construcción Durante esta fase de construcción, se lleva a cabo la construcción del producto por medio Construcción de una serie de iteraciones las cuales se Diagrama de Clases seleccionan algunos Casos de Uso, se Diagrama de Secuencia redefine su análisis y diseño y se procede a su Modelo Entidad Relación implantación y pruebas. En esta fase se realiza una pequeña cascada para cada ciclo, se realizan tantas iteraciones hasta que se termine la nueva implementación del producto. 89 Diagrama de Implementación Pasar de los resultados de la fase de Diseño a Componentes implementar el sistema en términos de Ejecutables Documentos componentes tales como ficheros fuente, Ficheros con código ejecutables, scripts, etc. fuente de una o varias clases Figura Nº 34. Artefactos en las disciplinas de la RUP Fuente: http://inf162scontroldepensiones.files.wordpress.com/2011/09/rup111.jpg?w=714 90 Grado de finalización de artefactos: Consiste en cuanto hemos finalizado del artefacto propuesto, con esto nos referimos por ejemplo, si definimos que vamos a utilizar un artefacto, este nos dice los lineamientos que necesita para ser completado, por lo tanto con grado de finalización nos referimos a cuántos de esos lineamientos del artefacto hemos completado o llenado, esto en cada una de las disciplinas, de acorde a la fase en que se encuentre, para entender de mejor manera lo antes dicho se muestra la figura Nº 35, en la cual se puede observar que en la fase de concepción, en la disciplina de implementación del sistema los artefactos tienen una poca finalización y van aumentando progresivamente encada fase hasta llegar a su culminación en la fase de transición, en la disciplina de ingeniería del negocio los artefactos tienen una media finalización y sucede lo mismo que con los artefactos de la disciplina anterior los cuales finalizan también en la fase de transición. Figura Nº 35. Grado de finalización de artefactos Fuente: http://inf162scontroldepensiones.files.wordpress.com/2011/09/rup111.jpg?w=715 91 Con esto se puede mostrar el aumento progresivo de los artefactos en cada disciplina en la fase dada, teniendo una idea un poco más amplia sobre el desenvolvimiento del proyecto hablando en términos de sus artefactos. Podemos afirmar que la metodología RUP cuenta con un enfoque disciplinado en la asignación de tareas y responsabilidades dentro de una organización del desarrollo, con la cual se puede mantener una fácil administración de este proceso. Para obtener un máximo control de variables que conlleva un desarrollo de aplicaciones y poder mantener una ordenada implementación de éstas, es importante seguir metodologías y estándares que nos lleven a estar en competitividad en todo momento. Al implementar un Desarrollo Rápido de Aplicaciones de un Sistema particular, es importante la utilización de Patrones, los cuales ya tienen una funcionalidad general y han sido predefinidos, y así contar con una base consistente y previamente elaborada para la implementación del Software. En la siguiente tabla se detallará con mayor precisión las disciplinas de la metodología RUP y las diferentes actividades que conllevarán a obtener el artefacto deseado. 92 93 Tabla Nº 4 Desarrollo de la RUP C: comienzo de la construcción del Artefacto R: refinamiento del artefacto (ampliación, corrección) Componentes del Up Disciplina Modelado del Negocio Fases del RUP Actividades Artefacto Comprender los problemas actuales e Modelo del identificar las posibles mejoras mediante dominio la utilización de casos de Inicio Elaboración uso, diagramas de actividad y de clases C Describir los objetivos, funcionalidades y Modelos de restricciones en forma concisa, además Casos de describir requisitos no funcionales. Uso Definir los términos del dominio del Visión problema Análisis del C R C R C R de y Negocio Requerimientos Especificaci ón Compleme 94 Construcción Transición ntaria Glosario Diseño C Realizar los diagramas descriptivos del Modelo de diseño lógico, diagramas de clases del Diseño software, diagramas de Documenta ción la componentes correlación del C R interacción, diagramas de paquetes. Describir R entre software y C de los Arquitectur los a requerimientos, además de comprender los esquemas de las bases de datos Modelo de Datos 95 C R Modelo de la Implementación Construir los códigos fuente, los ejecutables y las bases de datos, que C Implementa R ción R conforman la aplicación. Gestión Proyecto del Proponer y seleccionar las herramientas Plan de de desarrollo, actividades de formación desarrollo C R R C R y recursos adicionales. Pruebas Describir las partes del sistema que se Modelo de probarán y cómo se probarán, además Pruebas de comparar el resultado obtenido contra el esperado. Descripción de los pasos de la metodología de desarrollo y de los Entorno artefactos que son más adecuados para la aplicación, metodología es decir para el adaptar la proyecto a Marco de Desarrollo desarrollar. 96 C R R Análisis y diseño de la Metodología RUP El RUP propone la utilización de los modelos para la implementación completa de todas sus fases respectivamente con sus disciplinas: · Modelo de Casos de Uso del Negocio: Describe la realización de los Casos de Uso, es realizado en la disciplina de Modelado del Negocio. · Modelo de Objetos del Negocio: Se utiliza para identificar roles dentro dela organización, es realizado en la disciplina de Modelado del Negocio. · Modelo de Casos de Uso: Muestra las interrelaciones entre el sistema y su ambiente, además sirve como un contrato entre el cliente y los diseñadores. Es considerado esencial al iniciar las actividades de análisis, diseño y prueba; este modelo es realizado en la disciplina de Requerimientos. · Modelo de Análisis: Contiene los resultados del análisis del Caso de Uso, y contienen instancias del artefacto de Análisis de Clases; es realizado en la disciplina de Análisis y Diseño. · Modelo de Diseño: Es un modelo de objetos que describe la realización del Caso de Uso, y sirve como una abstracción del modelo de implementación y su código fuente, es utilizado como entrada en las actividades de implementación y prueba; este modelo es realizado en la disciplina de Análisis y Diseño. · Modelo de Despliegue: Muestra la configuración de los nodos del proceso en tiempo de ejecución, muestra los lazos de comunicación entre estos nodos, así como las de los objetos y componentes que en él se encuentran; es realizado en la disciplina de Análisis y Diseño. 97 · Modelo de Datos: Es un subconjunto del modelo de implementación que describe la representación lógica y física de datos persistentes en el sistema. También incluye cualquier conducta definida en la base de datos como disparadores, restricciones, etc. Es elaborado en la disciplina de Análisis y Diseño. · Modelo de Implementación: Es una colección de componentes, y de subsistemas de aplicación que contienen estos componentes, entre estos están los entregables, ejecutables, archivos de código fuente. Es realizado en la disciplina de Implementación. · Modelo de Pruebas: Es utilizado para la elaboración de las pruebas, y se realiza en la disciplina de Pruebas. Estos modelos representan los diagramas que propone el UML para el desarrollo de modelado de un proyecto de software, con los cuales se puede representar los propuesto por UML mediante la metodología RUP utilizando las herramientas que esta provee para la implementación fácil, clara y estructurada de los diagramas utilizados. Descripción de estereotipos Para poder entender la interrelación que tiene UML con RUP se tiene que saber que el inicio de todo está con los casos de uso, para poder tener una base sobre lo cual se quiere trabajar, los casos de uso son la base para esta técnica; luego se procede a la obtención de los diagramas expuestos anteriormente, dependiendo de cuáles son los necesarios de implementar, luego se procede a la identificación de los estereotipos, ya que cada uno de estos representan las funciones que se van a definir dentro de los diagramas, estos diagramas nos ayudan a entender la lógica del caso de uso expuesto. 98 Las clases, al igual que los demás elementos notacionales del UML, pueden estar clasificadas de acuerdo a varios criterios, como por ejemplo su objetivo dentro de un programa. Esta clasificación adicional se puede expresar mediante la utilización de estereotipos. Los estereotipos más comunes utilizados para clasificar las clases son: Entidad (entity), Frontera (boundary), Control (control). Se proponen varias pautas a seguir a la hora de encontrar las clases de nuestro sistema durante la fase de análisis. Dichas pautas se centran en la búsqueda de los estereotipos entidad, control y frontera: · Una clase entidad modela la información de larga vida y su comportamiento asociado. Este tipo de clase suele reflejar entidades del mundo real o elementos necesarios para realizar tareas internas al sistema. También se denominan clase dominio, ya que suelen tratar con abstracciones de entidades del mundo real. · Una clase frontera maneja comunicaciones entre el entorno del sistema y el sistema, suelen proporcionar la interfaz del sistema con un usuario o con otro sistema, en general, por tanto, modelan las interfaces del sistema. Cuando se trata de clases que definen la interfaz con otro sistema se refinarán durante la fase de diseño, para tener en cuenta los protocolos de comunicación elegidos. · Una clase control modela el comportamiento secuenciado específico de uno o varios casos de uso. Se trata de clases que coordinan los eventos necesarios para llevar a cabo el comportamiento que se especifica en el caso de uso, representan su dinámica. Enlace del RUP con el UML 99 Conociendo los estereotipos utilizados para la representación de las clases (Entidad, Control y Frontera), ahora podemos explicar la interrelación que existe entre el UML y RUP describiendo los diagramas que describe UML y como se convierten en diagramas del RUP que utilizan estos estereotipos. El UML proporciona los diagramas de Caso de Uso, al mismo tiempo que el RUP, la única diferencia es la forma de dibujar los estereotipos, ya que en el RUP son una elipse con una diagonal al lado derecho (pero esto es para casos de uso de negocio, los de sistema no tienen la diagonal), y en UML solamente una elipse, pero en el RUP significa lo mismo a lo que se refiere en UML. En la figura Nº 36 se muestra lo descrito anteriormente, aunque no nos importa en este caso el motivo por el cual se hicieron los diagramas, o la utilización que se les dio, ya que únicamente nos interesa conocer la forma de dibujar ambos diagramas para conocer sus diferencias: a) b) Figura Nº 36. Comparación entre diagramas de casos de uso (a) RUP (b) UML Fuente: http://www.monografias.com/trabajos-pdf5/diagramas-casos-uso/image002.jpg Los diagramas de Clases tienen la misma lógica para lo cual fueron creados en ambos lenguajes, solamente con las diferencias en la forma de dibujar los cuadros que indican las clases, en el RUP se dibujan los cuadros con una pestaña inferior derecha doblada, y en UML solamente rectángulos con ángulos rectos; otra 100 característica que se puede observar es que a la hora de ejemplificar las relaciones uno a uno, uno a muchos etc., se realizan de diferente manera. Pero en ambos lenguajes se puede observar que los diagramas de clases son lo más cercano a la elaboración de un modelo Entidad Relación para la puesta en práctica de la finalización del proyecto de software. Los diagramas de objetos, difieren únicamente en la forma como se dibujan los objetos o instancias de las clases, ya que en el RUP se dibujan círculos con una diagonal en la parte inferior derecha, y en UML como rectángulos con las esquinas redondeadas, también en RUP no se colocan flechas indicativas, y en UML sí. En las siguientes figuras se presentan las diferencias planteadas anteriormente, es importante mencionar que la lógica década figura no nos importa en este momento, solamente deseamos representarla forma en que se dibujan los objetos, esto ya que cada una de las figuras Nº 37(a) y 37(b) se refieren a distintos ejemplos. a) b) Figura Nº 37. Comparación entre diagramas de objetos (a) RUP (b) UML Fuente: http://www.monografias.com/trabajos-pdf5/diagramas-casos-uso/image003.jpg Los siguientes dos diagramas (figura Nº 38(a) y (b)) presentan la forma como se elabora un diagrama de estados en RUP y UML, se puede observar que de igual manera se elaboran ambos, únicamente que en el diagrama de UML se muestran 101 unos rectángulos con la esquina superior derecha doblada, que indican notas sobre este estado. a) b) Figura Nº 38. Comparación entre diagramas de estados (a) RUP (b) UML Fuente: http://www.monografias.com/trabajos-pdf5/diagramas-casos-uso/image004.jpg En los diagramas de actividades se utilizan todos los bloques utilizados en la elaboración de diagramas de flujo, por lo tanto en ambos lenguajes se utilizan los mismos, a continuación podemos ver la figura Nº 39 que muestra ejemplos de ambos lenguajes, aunque el enfoque de cada diagrama presentado es distinto, solamente se tomaron de ejemplos para ejemplificar los bloques utilizados. 102 a) b) Figura Nº 39. Comparación entre diagramas de actividades (a) RUP (b) UML Fuente: http://www.monografias.com/trabajos-pdf5/diagramas-casos-uso/image005.jpg En los diagramas de secuencia se pueden encontrar diferencias leves, como se puede mostrar en la figura Nº 40 los diagramas de secuencia de UML no llevan los símbolos que identifican los estereotipos interface (círculo con una raya horizontal del lado izquierdo y junto a esta otra vertical), control (círculo con una flecha sobre su borde apuntando al lado izquierdo) y entidad (círculo con una raya horizontal en la parte inferior del mismo), representados por círculos con características independientes Figura Nº 40. Diagrama de secuencia Fuente: http://www.humbertocervantes.net/homepage/itzamna/DOCUMENTACION/DiagSeqDis_Inicio Aplicacion.gif 103 Los diagramas de colaboración se representan similares, con la única diferencia de los bloques que representan las clases, ya que en el RUP se representan por medio de los círculos con sus características individuales de acorde a la función que desempeñan (interfaz, control, entidad), y en UML solamente como rectángulos. En ambos se colocan las actividades que conllevan realizar para llegar a una clase determinada, esto se coloca directamente en la flecha dibujada en la línea que va hacia la clase. Esto se puede observar en la figura Nº 41. a)b) Figura Nº 41. Comparación entre diagramas de colaboración (a) RUP (b) UML Fuente: http://inf162scontroldepensiones.files.wordpress.com/2011/09/rup271.jpg?w=607&h=325 Dentro de los diagramas de implementación se encuentran los de componentes (figura Nº 42), los cuales se representan de manera similar en ambos lenguajes, como se muestra en la figura siguiente. 104 Figura Nº 42. Diagrama de componentes Fuente: http://www.oocities.org/es/monsalvelaura/fase2/images/Diagramacomponentes.JPG La diferencia básica en los diagramas de despliegue (figura Nº 43) es que en UML se dibujan dentro de las cajas los componentes utilizados, en cambio en el RUP se diagraman de forma separada como se muestran en las figuras siguientes. a) 105 b) Figura Nº 43. Comparación entre diagramas de despliegue (a) RUP (b) UML Fuente: http://inf162scontroldepensiones.files.wordpress.com/2011/09/rup271.jpg?w=607&h=389 Se puede observar en todos los diagramas presentados anteriormente que la similitud entre ambos lenguajes es demasiado grande, y es de esperar esto, ya que RUP utiliza los del UML y por lo tanto recopila todo lo que este lenguaje necesita para la implementación, y agrega mejoras, siendo una herramienta de modelado muy eficiente, ya que proporciona todas las herramientas necesarias para tal función, por lo tanto la funcionalidad completa de UML esta descrita e implementada por el RUP, solamente mejorando las características como el cambio de ciertos diagramas de una manera sutil, para diferenciar más claramente que es lo que se está haciendo y no perder el enfoque de lo que se desea. 106 CAPITULO IV ORGANIZACIÓN Y ANALISIS DE LOS RESULTADOS A continuación serán descritas las disciplinas de la Metodología RUP que se aplicaron en el desarrollo de la Aplicación, así como los artefactos obtenidos en cada una de las mismas. Modelado del Negocio Como se mencionó anteriormente la Unidad de Sección Académica del Centro Local Lara de la Universidad Nacional Abierta, es el organismo destinado para estudiar las cuestiones relacionadas con las funciones de docencia, investigación y extensión que ejerce en dicha universidad. Actualmente cuenta con un manejo en cuanto a la Recepción y Emisión de Documentos de forma Manual, lo que conlleva a la pérdida de tiempo y a su defecto a la pérdida de información, ya que en un momento dado puede ser posible que sea extraviado algún documento de suma importancia. Los objetos del dominio representan eventos o hechos que suceden en el ámbito donde se desenvuelve el sistema. Específicamente en la Unidad Académica suceden los siguientes eventos respecto a la recepción y emisión de Documentos: 107 - Cuando a la Unidad de Sección Académica llega un documento desde alguna entidad, ya sean centros locales, unidades de apoyo, Nivel Central o algún ente externo la secretaria, es la encargada de recibirlo y firmar una copia la cual será entregada a la persona que lo entrega. - Luego ella se encarga de registrar el documento, llenando un formulario en el cual se especificará el tipo de documento que es (circular, memorandos, resoluciones o comunicado), la entidad de donde se emite o hacia dónde va dirigido, la fecha de emisión así como también la fecha de recepción del documento en la Unidad, el asunto sobre que trata dicho documento y además del número del documento. - Después de haber realizado la recolección de los datos más importantes, se dirige hacia el archivo donde será ubicado el documento y lo almacena en la carpeta correspondiente a la entidad ordenándolo por fecha. - Al momento de ser solicitado un documento por el jefe de la Unidad, la secretaria se dirige al archivo físico en donde se encuentra almacenado, ubica la carpeta de la entidad y lo extrae, sólo con la finalidad de satisfacer las necesidades inmediatas en cuanto un documento solicitado. Como pudo apreciarse, la secretaria de la Unidad realiza todos estos sucesos de forma manual siendo ella la encargada directa de la recepción y emisión, almacenamiento y organización de los documentos en el archivo físico en la misma, además lo cual hace que ella sea la única persona capaz de saber la ubicación exacta de cada uno de los documentos en los archivadores existentes, esto hace que el Jefe de la Unidad cree una dependencia directa con la secretaria, al momento de solicitar un documento en específico. Es por ello que es necesario 108 la implantación de un sistema que facilite la organización y búsqueda de los documentos que son tanto emitidos como recibidos en la Unidad Académica. En conversación con el Jefe de la Unidad, se planteó la construcción de una aplicación Web (denominada RED) que preste al usuario el servicio correcto en cuanto al registro de los documentos (emitidos y recibidos) que son manejados en dicha unidad y a su vez, contar con un buscador de documentos que permitan la recuperación inmediata de los mismos mediante descriptores específicos, esto conducirá a que sea un sistema innovador y de fácil manejo para los usuarios que lo vayan a utilizar. Requerimientos El propósito fundamental de los requerimientos, es guiar el correcto desarrollo del sistema. Esto se consigue mediante una descripción de los requisitos del sistema para llegar a un acuerdo con el cliente de lo que debe y no debe hacer el sistema. La Unidad de Sección Académica del Centro Local Lara necesita un sistema que abarque las siguientes prestaciones: 1. Permita al usuario el registro de los documentos que son tanto emitidos como recibidos en la Unidad de Sección Académica del Centro Local Lara de manera fácil y segura. 2. Ayude a la organización de los Documentos; con esta organización evitamos la pérdida de tiempo al recuperar la información al momento de que sea solicitada por el usuario. 3. Facilite al usuario la búsqueda de los Documentos que se registrados en el sistema, 4. Generar los reportes solicitados por los usuarios del sistema. 109 Cabe destacar que junto con los usuarios que manejarán el sistema se definieron los siguientes requerimientos: Registro de: - Archivos: contiene los diferentes archivadores físicos que se encuentran en la Unidad de Sección Académica. - Estados: contienen los distintos estados que conforman el Estado Venezolano y donde se encuentran los Centros Locales y Unidades de Apoyo de la Universidad Nacional Abierta. - Tipo de Entidades: se refiere a la estructura que posee la Universidad Nacional Abierta, es decir, centros locales, unidades de apoyo, unidades o secciones pertenecientes a un centro local, los departamentos del Nivel Central, así como también los entes que son externos a la Universidad entre los que se pueden nombrar, gobernaciones, alcaldías, etc. - Entidades: contiene las dependencias en que se encuentra organizada la Universidad. - Tipo de Documento: se refiere al documento que es recibido o emitido, es decir, si son memorandos, circulares, comunicados, etc. - Documentos (Recibidos y/o Emitidos) se refiere a todos los documentos que pueden ser almacenados en la base de datos. Búsqueda, modificación y eliminación de documentos mediante descriptores, es decir, mediante una palabra clave, rango de fecha, tipo de documento, entidad que lo emite, entidad que lo recibe, tipo de entidad, estado y status de la entidad. Búsqueda, modificación y eliminación de: 110 - Estados. - Entidades. - Tipos de documentos. - Tipos de Entidades. - Archivos. Generar los diferentes reportes que sean solicitados por los usuarios en un momento determinado. Dichos reportes pueden ser: Tipo de Documentos Entidades Archivadores Listado de Documentos Tipo de Entidades Estados Además del motor de búsqueda que poseerá el sistema también se encuentra la posibilidad de saber que documentos de los solicitados poseen seguimiento, es decir, si tienen respuesta del ente al que fue emitido o del que fue recibido. Registro y Actualización de cuentas de Usuario, así como de sus Perfiles y Cargos. 111 Especificaciones Complementarias Además de los requerimientos listados anteriormente, el sistema debe contemplar ciertas especificaciones complementarias, como son: Software de fácil ejecución y uso, mediante la utilización de un menú desplegable que facilita su navegabilidad y salidas del mismo, permitiendo al usuario conocer en que parte de la aplicación se encuentra. Además de la validación de campos numéricos y presentación de calendarios para la selección de las fechas. Calidad del entorno visual, es decir con pantallas atractivas para el usuario, que contarán con la utilización de títulos, menús, ventanas, botones, etc. La seguridad del sistema será controlada por contraseña y nombre de usuario que le serán suministradas a los usuarios con debida autorización del administrador del sistema. El sistema estará documentado por mensajes de error y ayudas incorporadas. Actores del sistema propuesto En RED se identificaron los siguientes actores: 112 Tabla Nº 5 Actores del sistema Actores Descripción Representa a la persona que utilizará el sistema como una herramienta de apoyo para llevar el control de documentos existentes en el departamento, además de poder en cualquier momento generar un reporte y presentaciones basados en datos almacenados. Secretaria de la Unidad Académica Es el responsable por la integridad y resguardo de la información almacenada, tiene el máximo privilegio de uso del sistema y a través de él se pueden crear, modificar y eliminar los usuarios. Administrador del Sistema Casos de Uso Revisando los requisitos, previamente definidos se extrajeron los siguientes casos de uso Tabla Nº 6 Descripción de los Casos de Uso Casos de Uso Caso de uso Incluir Estado Descripción Consiste en realizar la inserción de un Estado perteneciente al Territorio Venezolano. Modifica y actualiza el registro de un estado seleccionado. Desincorpora un estado elegido. Consiste en buscar en un catálogo de estados un estado en particular Consiste en realizar la inserción de un Tipo de Documento. Caso de uso Modificar Estado Caso de uso Eliminar Estado Caso de Uso Buscar Estado Caso de uso Incluir Tipo Documento Caso de uso Modificar Tipo Documento Caso de uso Eliminar Tipo Documento Modifica y actualiza el registro de un tipo de documento. Desincorpora un tipo de documento. 113 Caso de Uso Buscar Tipo documento Consiste en buscar en un catálogo de tipos de documentos un tipo de documento en particular Caso de uso Incluir Entidad Consiste en realizar la inserción de una Entidad. Caso de uso Modificar Entidad Modifica y actualiza el registro de una entidad seleccionada. Caso de uso Eliminar Entidad Desincorpora una entidad elegida. Caso de Uso Buscar Entidad Consiste en buscar en un catálogo de entidades una entidad en particular Caso de uso Incluir Tipo Entidad Consiste en realizar la inserción de un Tipo de Entidad. Modifica y actualiza el registro de un tipo de entidad. Desincorpora un tipo de entidad. Caso de uso Modificar Tipo Entidad Caso de uso Eliminar Tipo Entidad Caso de Uso Buscar Tipo Entidad Consiste en buscar en un catálogo de tipos de entidades un tipo de entidad en particular Caso de uso Incluir Archivo Consiste en realizar la inserción del Archivo. Caso de uso Modificar Archivo Modifica y actualiza el registro de un archivo seleccionado. Desincorpora el archivo elegido. Caso de uso Eliminar Archivo Caso de Uso Buscar Archivo Consiste en buscar en un catálogo de archivadores un archivo en particular Caso de uso Incluir Documento Consiste en realizar la inserción de un Documento. Modifica y actualiza el registro de un documento seleccionado. Desincorpora un documento elegido. Caso de uso Modificar Documento Caso de uso Eliminar Documento Caso de Uso Buscar Documento Consiste en buscar en un catálogo de documentos un documento en particular 114 Caso de uso Incluir Seguimiento Caso de uso Modificar Seguimiento Caso de uso Eliminar Seguimiento Caso de Uso Buscar Seguimiento Caso de uso Generar Reporte Tipo de Entidades Caso de uso Generar Reporte Tipo de Documentos Caso de uso Generar Reporte de Estados Caso de uso Generar Reporte de Entidades Caso de uso Generar Reporte de Documentos Caso de uso Generar Reporte de Archivadores Caso de uso Ingresar Sistema Caso de uso Modificar Sistema Caso de uso Eliminar Sistema Caso de Uso Buscar Sistema Caso de uso Incluir Perfil Usuario Caso de uso Eliminar Perfil Usuario Caso de uso Modificar Perfil Usuario Caso de Uso Buscar Perfil Usuario Caso de uso Incluir Cargo Usuario Consiste en realizar la inserción de un Seguimiento. Modifica y actualiza el registro de un seguimiento seleccionado. Desincorpora un seguimiento elegido. Consiste en buscar en un catálogo de seguimientos un seguimiento en particular Genera un reporte del tipo de entidades almacenadas Genera un reporte de los Tipos de documentos almacenados. Genera un reporte de los Estados almacenados. Genera un reporte de las Entidades almacenadas. Genera un reporte de los Documentos (emitidos y/o recibidos) en la Unidad Académica del Centro Local Lara. Pueden ser por un rango de tiempo, por el tipo de documento, por el status del documento, por la entidad que emite el documento, por la entidad que recibe el documento, una palabra clave, por el tipo de entidad, por un estado y por el status de la entidad. Genera un reporte de los Archivos existentes en la Unidad Académica del Centro Local Lara. Consiste en incluir al sistema las diferentes operaciones (menús, opciones y botones) que pueden realizar un usuario. Modifica y actualiza el registro de las operaciones que realizará el sistema. Desincorpora del sistema una operación elegida. Consiste en buscar en un catálogo de sistemas un sistema en particular Consiste en incluir un perfil de usuario. Elimina y desincorpora un perfil de un usuario Modifica y actualiza un perfil de un usuario. Consiste en buscar en un catálogo de perfiles de usuarios un perfil de usuario en particular Consiste en incluir el cargo de un usuario. 115 Caso de uso Eliminar Usuario Elimina y desincorpora el cargo de un usuario. Modifica y actualiza en el sistema un cargo de un usuario. Consiste en buscar en un catálogo de cargos de usuarios un cargo de usuario en particular Consiste en incluir un usuario con su debida contraseña, la cual le permitirá navegar por las diferentes opciones que ofrece el sistema. Elimina y desincorpora un usuario. Caso de uso Modificar Usuario Modifica y actualiza un usuario elegido. Caso de Uso Buscar Usuario Consiste en buscar en un catálogo de usuarios un usuarios en particular Caso de uso Eliminar Cargo Usuario Caso de uso Modificar Cargo Usuario Caso de Uso Buscar Cargo Usuario Caso de uso Incluir Usuario Diagramas de Casos de Uso Los diagramas de casos de usos son utilizados para representar la funcionalidad del sistema, enfocándose en el comportamiento del sistema desde un punto de vista externo a éste. Para RED fueron definidos los diagramas para los siguientes Casos de Uso: Caso de Uso Incluir Estado RED Incluir Estado Secretaria de la Unidad Figura Nº 44 Diagrama del Caso de Uso Incluir Estado 116 Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Incluir Estado Inclusión del nombre de un Estado. Secretaria de la Unidad. (Iniciador) Entrar al caso de uso Incluir Estado. El sistema proporciona el Código del Estado. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario selecciona el Menú Definiciones y selecciona la opción “Estado” 2. La aplicación abre la ventana ESTADOS 3. El usuario pulsa el botón Nuevo. Flujo Principal 4. El sistema genera automáticamente el código del estado que se va a incluir y solicita al usuario el Nombre del Estado. 5. El usuario ingresa los datos solicitados y pulsa el botón incluir. 6. El sistema almacena el nuevo estado. Caso de Uso Modificar Estado RED Modificar Estado Secretaria de la Unidad Figura Nº 45 Diagrama del Caso de Uso Modificar Estado 117 Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Modificar Estado Modificación del nombre de un Estado. Secretaria de la Unidad. (Iniciador) Entrar al caso de uso Modificar Estado. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario pulsa el botón Buscar en la pantalla “Estados”. Flujo Principal 2. El sistema despliega un catálogo con los estados almacenados 3. El usuario selecciona del catálogo el Estado a Modificar. 4. La aplicación muestra en pantalla el Nombre del Estado a modificar. 5. El usuario modifica el nombre del estado y pulsa botón modificar. 6. El sistema actualiza el registro. Caso de Uso Eliminar Estado RED Eliminar Estado Secretaria de la Unidad Figura Nº 46 Diagrama del Caso de Uso Eliminar Estado 118 Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Eliminar Estado Eliminación de un Estado que se encuentra almacenado en el sistema. Secretaria de la Unidad. (Iniciador) Entrar al caso de uso Eliminar Estado. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario pulsa el botón Buscar en la pantalla “Estados”. Flujo Principal 2. El sistema despliega un catálogo con los estados almacenados 3. El usuario selecciona del catálogo el Estado a Eliminar. 4. La aplicación muestra en pantalla los datos del Estado a eliminar. 5. El usuario visualiza los datos mostrados y pulsa el botón eliminar. 6. El sistema elimina el registro. Caso de Uso Buscar Estado RED Buscar Estado Secretaria de la Unidad Figura Nº 47 Diagrama del Caso de Uso Buscar Estado 119 Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Flujo Principal Buscar Estado Recupera de la Base de Dato un Estado. Secretaria de la Unidad. (Iniciador) Entrar al caso de uso Buscar Estado. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario pulsa el botón Buscar en la pantalla “Estados. 2. El sistema despliega un catálogo con los estados almacenados. 3. El usuario escoge el Estado que desea visualizar 4. El sistema muestra en pantalla los datos del Estado seleccionado. 5. El usuario pulsa el botón salir. 6. RED cierra la pantalla “Estados”. Caso de Uso Incluir Tipo Documento RED Incluir Tipo Documento Secretaria de la Unidad Figura Nº 48 Diagrama del Caso de Uso Incluir Tipo Documento 120 Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Incluir Tipo Documento Inclusión del nombre de un Tipo de Documento. Secretaria de la Unidad. (Iniciador) Entrar al caso de uso Incluir Tipo Documento. El sistema proporciona el Código del Tipo de documento. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario selecciona el Menú Definiciones y selecciona la opción “Tipo de Documento” 2. La aplicación abre la ventana TIPO DOCUMENTO 3. El usuario pulsa el botón Nuevo. Flujo Principal 4. El sistema genera automáticamente el código del Tipo de documento que se va a incluir y solicita al usuario el Nombre del Tipo de Documento. 5. El usuario ingresa los datos solicitados y pulsa el botón incluir. 6. El sistema almacena el nuevo tipo de documento. Caso de Uso Modificar Tipo Documento RED Modificar Tipo Documento Secretaria de la Unidad Figura Nº 49 Diagrama del Caso de Uso Modificar Tipo Documento 121 Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Modificar Tipo Documento Modificación del nombre de un Tipo de Documento. Secretaria de la Unidad. (Iniciador) Entrar al caso de uso Modificar Tipo de Documento. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario pulsa el botón Buscar en la pantalla “Tipo Documento”. Flujo Principal 2. El sistema despliega un catálogo con los tipos de documentos almacenados 3. El usuario selecciona del catálogo el tipo de documento a Modificar. 4. La aplicación muestra en pantalla el Nombre del Tipo de Documento a modificar. 5. El usuario modifica el nombre del tipo de documento y pulsa botón modificar. 6. El sistema actualiza el registro. Caso de Uso Eliminar Tipo Documento RED Eliminar Tipo Documento Secretaria de la Unidad Figura Nº 50 Diagrama del Caso de Uso Eliminar Tipo Documento 122 Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Eliminar Tipo Documento Eliminación de un Tipo de documento que se encuentra almacenado en el sistema. Secretaria de la Unidad. (Iniciador) Entrar al caso de uso Eliminar Estado. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario pulsa el botón Buscar en la pantalla “Tipo Documento”. Flujo Principal 2. El sistema despliega un catálogo con los tipos de documentos almacenados 3. El usuario selecciona del catálogo el tipo de documento a Eliminar. 4. La aplicación muestra en pantalla los datos del tipo de documento a eliminar. 5. El usuario visualiza los datos mostrados y pulsa el botón eliminar. 6. El sistema elimina el registro. Caso de Uso Buscar Tipo Documento RED Buscar Tipo Documento Secretaria de la Unidad Figura Nº 51 Diagrama del Caso de Uso Buscar Tipo Documento 123 Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Buscar Tipo Documento Recupera de la Base de Dato un Tipo de documento. Secretaria de la Unidad. (Iniciador) Entrar al caso de uso Buscar Tipo de Documento. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario pulsa el botón Buscar en la pantalla “Tipo Documento. Flujo Principal 2. El sistema despliega un catálogo con los tipos de documentos almacenados. 3. El usuario escoge el Tipo de documento que desea visualizar 4. El sistema muestra en pantalla los datos del tipo de documento seleccionado. Caso de Uso Incluir Entidad RED Incluir Entidad Secretaria de la Unidad Figura Nº 52 Diagrama del Caso de Uso Incluir Entidad 124 Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Incluir Entidad Inclusión del nombre, descripción, otra identificación, descripción, tipo de entidad, estado y el status de una Entidad. Secretaria de la Unidad. (Iniciador) Entrar al caso de uso Incluir Entidad. El sistema proporciona el Código de la Entidad. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario selecciona el Menú Definiciones y selecciona la opción “Entidades” 2. La aplicación abre la ventana ENTIDADES 3. El usuario pulsa el botón Nuevo. Flujo Principal 4. El sistema genera automáticamente el código de la entidad que se va a incluir y solicita al usuario el Nombre, Descripción, Tipo de Entidad, Estado y el Status de una Entidad 5. El usuario ingresa los datos solicitados y pulsa el botón incluir. 6. El sistema almacena la nueva entidad. Caso de Uso Modificar Entidad RED Modificar Entidad Secretaria de la Unidad Figura Nº 53 Diagrama del Caso de Uso Modificar Entidad 125 Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Flujo Principal Modificar Entidad Modificación del nombre, Descripción, Tipo de Entidad, Estado y el Status de una Entidad. Secretaria de la Unidad. (Iniciador) Entrar al caso de uso Modificar Entidad. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario pulsa el botón Buscar en la pantalla “Entidades”. 2. El sistema despliega un catálogo con las entidades almacenadas 3. El usuario selecciona del catálogo la entidad a Modificar. 4. La aplicación muestra en pantalla el Nombre, Descripción, Tipo de Entidad, Estado y el Status de una Entidad a modificar. 5. El usuario modifica el nombre Descripción, Tipo de Entidad, Estado y el Status de una Entidad y pulsa botón modificar. 6. El sistema actualiza el registro. Caso de Uso Eliminar Entidad RED Eliminar Entidad Secretaria de la Unidad Figura Nº 54 Diagrama del Caso de Uso Eliminar Entidad 126 Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Flujo Principal Eliminar Entidad Eliminación de una Entidad que se encuentra almacenado en el sistema. Secretaria de la Unidad. (Iniciador) Entrar al caso de uso Eliminar Entidad. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario pulsa el botón Buscar en la pantalla “Entidades”. 2. El sistema despliega un catálogo con las entidades almacenadas 3. El usuario selecciona del catálogo la entidad a Eliminar. 4. La aplicación muestra en pantalla los datos de la entidad a eliminar. 5. El usuario visualiza los datos mostrados y pulsa el botón eliminar. 6. El sistema elimina el registro. Caso de Uso Buscar Entidad RED Buscar Entidad Secretaria de la Unidad Figura Nº 55 Diagrama del Caso de Uso Buscar Entidad 127 Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Flujo Principal Buscar Entidad Recupera de la Base de Dato una Entidad. Secretaria de la Unidad. (Iniciador) Entrar al caso de uso Buscar Entidad. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario pulsa el botón Buscar en la pantalla “Entidades”. 2. El sistema despliega un catálogo con las entidades almacenadas. 3. El usuario escoge la Entidad que desea visualizar 4. El sistema muestra en pantalla los datos de la Entidad seleccionada. Caso de Uso Incluir Tipo Entidad RED Incluir Tipo Entidad Secretaria de la Unidad Figura Nº 56 Diagrama del Caso de Uso Tipo Entidad Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Flujo Principal Incluir Tipo Entidad Inclusión del nombre de un tipo de entidad. Secretaria de la Unidad. (Iniciador) Entrar al caso de uso Incluir Tipo Entidad. El sistema proporciona el Código del Tipo de Entidad. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario selecciona el Menú Definiciones y selecciona la opción “Tipo Entidades” 2. La aplicación abre la ventana TIPO DE ENTIDADES 128 3. El usuario pulsa el botón Nuevo. 4. El sistema genera automáticamente el código del tipo de entidad que se va a incluir y solicita al usuario el Nombre de un Tipo de Entidad 5. El usuario ingresa los datos solicitados y pulsa el botón incluir. 6. El sistema almacena el nuevo tipo de entidad. Caso de Uso Modificar Tipo Entidad RED Modificar Tipo Entidad Secretaria de la Unidad Figura Nº 57 Diagrama del Caso de Uso Modificar Tipo Entidad Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Flujo Principal Modificar Tipo Entidad Modificación del nombre de un tipo de Entidad. Secretaria de la Unidad. (Iniciador) Entrar al caso de uso Modificar Tipo Entidad. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario pulsa el botón Buscar en la pantalla “Tipo Entidades”. 2. El sistema despliega un catálogo con los Tipos de entidades almacenadas 3. El usuario selecciona del catálogo el tipo de entidad a Modificar. 4. La aplicación muestra en pantalla el Nombre del tipo de Entidad a modificar. 5. El usuario modifica el nombre de un tipo de Entidad y pulsa botón modificar. 6. El sistema actualiza el registro. 129 Caso de Uso Eliminar Tipo Entidad RED Eliminar Tipo Entidad Secretaria de la Unidad Figura Nº 58 Diagrama del Caso de Uso Tipo Entidad Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Flujo Principal Eliminar Tipo Entidad Eliminación de un Tipo de Entidad que se encuentra almacenado en el sistema. Secretaria de la Unidad. (Iniciador) Entrar al caso de uso Eliminar Tipo Entidad. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario pulsa el botón Buscar en la pantalla “Tipo Entidades”. 2. El sistema despliega un catálogo con los tipos de entidades almacenadas 3. El usuario selecciona del catálogo el tipo de entidad a Eliminar. 4. La aplicación muestra en pantalla los datos del tipo de entidad a eliminar. 5. El usuario visualiza los datos mostrados y pulsa el botón eliminar. 6. El sistema elimina el registro. 130 Caso de Uso Buscar Tipo Entidad RED Buscar Tipo Entidad Secretaria de la Unidad Figura Nº 59 Diagrama del Caso de Uso Buscar Tipo Entidad Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Flujo Principal Buscar Tipo Entidad Recupera de la Base de Dato un Tipo de Entidad. Secretaria de la Unidad. (Iniciador) Entrar al caso de uso Buscar Tipo Entidad. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario pulsa el botón Buscar en la pantalla “Tipo Entidades”. 2. El sistema despliega un catálogo con los Tipos de entidades almacenadas. 3. El usuario escoge el Tipo de Entidad que desea visualizar 4. El sistema muestra en pantalla los datos del tipo de Entidad seleccionado. 131 Caso de Uso Incluir Archivo RED Incluir Archivo Secretaria de la Unidad Figura Nº 60 Diagrama del Caso de Uso Incluir Archivo Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Flujo Principal Incluir Archivo Inclusión del Nombre, Descripción, Ubicación, Tipo de Archivo y Persona Responsable de un Archivo. Secretaria de la Unidad. (Iniciador) Entrar al caso de uso Incluir Archivo. El sistema proporciona el Código del Archivo. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario selecciona el Menú Definiciones y selecciona la opción “Archivo” 2. La aplicación abre la ventana ARCHIVADORES 3. El usuario pulsa el botón Nuevo. 4. El sistema genera automáticamente el código del archivo que se va a incluir y solicita al usuario el Nombre, Descripción, Ubicación, Tipo de Archivo y Persona Responsable de un Archivo 5. El usuario ingresa los datos solicitados y pulsa el botón incluir. 6. El sistema almacena el nuevo archivo. 132 Caso de Uso Modificar Archivo RED Modificar Archivo Secretaria de la Unidad Figura Nº 61 Diagrama del Caso de Uso Modificar Archivo Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Modificar Archivo Modificación del nombre, Descripción, Ubicación, Tipo de Archivo y Persona Responsable de un Archivo. Secretaria de la Unidad. (Iniciador) Entrar al caso de uso Modificar Archivo. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario pulsa el botón Buscar en la pantalla “Archivador”. Flujo Principal 2. El sistema despliega un catálogo con los archivos almacenados 3. El usuario selecciona del catálogo el archivo a Modificar. 4. La aplicación muestra en pantalla el Nombre, Descripción, Ubicación, Tipo de Archivo y Persona Responsable de un Archivo a modificar. 5. El usuario modifica el nombre, Descripción, Ubicación, Tipo de Archivo y Persona Responsable de un Archivo y pulsa botón modificar. 6. El sistema actualiza el registro. 133 Caso de Uso Eliminar Archivo RED Eliminar Archivo Secretaria de la Unidad Figura Nº 62 Diagrama del Caso de Uso Eliminar Archivo Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Flujo Principal Eliminar Archivo Eliminación de un Archivo que se encuentra almacenado en el sistema. Secretaria de la Unidad. (Iniciador) Entrar al caso de uso Eliminar Archivo. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario pulsa el botón Buscar en la pantalla “Archivador”. 2. El sistema despliega un catálogo con los archivos almacenados 3. El usuario selecciona del catálogo el archivo a Eliminar. 4. La aplicación muestra en pantalla los datos del archivo a eliminar. 5. El usuario visualiza los datos mostrados y pulsa el botón eliminar. 6. El sistema elimina el registro. 134 Caso de Uso Buscar Archivo RED Buscar Archivo Secretaria de la Unidad Figura Nº 63 Diagrama del Caso de Uso Buscar Archivo Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Flujo Principal Buscar Archivo Recupera de la Base de Dato un Archivo. Secretaria de la Unidad. (Iniciador) Entrar al caso de uso Buscar Archivo. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario pulsa el botón Buscar en la pantalla “Archivador”. 2. El sistema despliega un catálogo con los archivos almacenados. 3. El usuario escoge el archivo que desea visualizar 4. El sistema muestra en pantalla los datos del archivo seleccionado. 135 Caso de Uso Incluir Documento RED Incluir Documento Secretaria de la Unidad Figura Nº 64 Diagrama del Caso de Uso Incluir Documento Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Incluir Documento Inclusión del Tipo de Documento, Fecha de Emisión, Fecha de Recepción, Descripción, Resumen, Asunto, Archivo, Ubicación, Entidad que lo Emite, Entidad que lo Recibe, Persona que lo emite, Status, Número del documento y Seguimiento de un Documento. Secretaria de la Unidad. (Iniciador) Entrar al caso de uso Incluir Documento. El sistema proporciona el Código del Documento. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario selecciona el Menú Procesos y selecciona la opción “Documentos” 2. La aplicación abre la ventana DOCUMENTOS Flujo Principal 3. El usuario pulsa el botón Nuevo. 4. El sistema genera automáticamente el código del documento que se va a incluir y solicita al usuario el Tipo de Documento, Fecha de Emisión, Fecha de Recepción, Descripción, Resumen, Asunto, Archivo, Ubicación, Entidad que lo Emite, Entidad que lo Recibe, Persona que lo emite, Status, Número del documento y Seguimiento de un Documento 5. El usuario ingresa los datos solicitados y pulsa el botón incluir. 6. El sistema almacena el nuevo documento. 136 Caso de Uso Modificar Documento RED Modificar Documento Secretaria de la Unidad Figura Nº 65 Diagrama del Caso de Uso Modificar Documento Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Modificar Documento Modificación del Tipo de Documento, Fecha de Emisión, Fecha de Recepción, Descripción, Resumen, Asunto, Archivo, Ubicación, Entidad que lo Emite, Entidad que lo Recibe, Persona que lo emite, Status, Número del documento y Seguimiento de un Documento Secretaria de la Unidad. (Iniciador) Entrar al caso de uso Modificar Documento. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario pulsa el botón Buscar en la pantalla “Documentos”. Flujo Principal 2. El sistema despliega un catálogo con los documentos almacenados 3. El usuario selecciona del catálogo el documento a Modificar. 4. La aplicación muestra en pantalla el Tipo de Documento, Fecha de Emisión, Fecha de Recepción, Descripción, Resumen, Asunto, Archivo, Ubicación, Entidad que lo Emite, Entidad que lo Recibe, Persona que lo emite, Status, Número del documento y Seguimiento de un Documento a modificar. 137 5. El usuario modifica el Tipo de Documento, Fecha de Emisión, Fecha de Recepción, Descripción, Resumen, Asunto, Archivo, Ubicación, Entidad que lo Emite, Entidad que lo Recibe, Persona que lo emite, Status, Número del documento y Seguimiento de un Documento y pulsa botón modificar. 6. El sistema actualiza el registro. Caso de Uso Eliminar Documento RED Eliminar Documento Secretaria de la Unidad Figura Nº 66 Diagrama del Caso de Uso Eliminar Documento Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Flujo Principal Eliminar Documento Eliminación de un Documento que se encuentra almacenado en el sistema. Secretaria de la Unidad. (Iniciador) Entrar al caso de uso Eliminar Documento. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario pulsa el botón Buscar en la pantalla “Documentos”. 2. El sistema despliega un catálogo con los documentos almacenados 138 3. El usuario selecciona del catálogo el documento a Eliminar. 4. La aplicación muestra en pantalla los datos del documento a eliminar. 5. El usuario visualiza los datos mostrados y pulsa el botón eliminar. 6. El sistema elimina el registro. Caso de Uso Buscar Documento RED Buscar Documento Secretaria de la Unidad Figura Nº 67 Diagrama del Caso de Uso Buscar Documento Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Flujo Principal Buscar Documento Recupera de la Base de Dato un Documento. Secretaria de la Unidad. (Iniciador) Entrar al caso de uso Buscar Documento. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario pulsa el botón Buscar en la pantalla “Documentos”. 2. El sistema despliega un catálogo con los documentos almacenados. 3. El usuario escoge el documento que desea visualizar 4. El sistema muestra en pantalla los datos del Documento seleccionado. 139 Caso de Uso Incluir Seguimiento RED Incluir Seguimiento Secretaria de la Unidad Figura Nº 68 Diagrama del Caso de Uso Incluir Seguimiento Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Incluir Seguimiento Inclusión de la Fecha de Seguimiento, Documento y Descripción del Documento al que le va a realizar un Seguimiento. Secretaria de la Unidad. (Iniciador) Entrar al caso de uso Incluir Seguimiento. El sistema proporciona el Código del Seguimiento. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario selecciona el Menú Procesos y selecciona la opción “Seguimientos de Documentos” 2. La aplicación abre la ventana SEGUIMIENTO Flujo Principal 3. El usuario pulsa el botón Nuevo. 4. El sistema genera automáticamente el código del seguimiento que se va a incluir y solicita al usuario de la Fecha de Seguimiento, Documento y Descripción del Documento al que le va a realizar un Seguimiento 5. El usuario ingresa los datos solicitados y pulsa el botón incluir. 6. El sistema almacena el nuevo seguimiento. 140 Caso de Uso Modificar Seguimiento RED Modificar Seguimiento Secretaria de la Unidad Figura Nº 69 Diagrama del Caso de Uso Modificar Seguimiento Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Flujo Principal Modificar Seguimiento Modificación de la Fecha de Seguimiento, Documento y Descripción del Documento al que le va a realizar un Seguimiento Secretaria de la Unidad. (Iniciador) Entrar al caso de uso Modificar Seguimiento. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario pulsa el botón Buscar en la pantalla “Seguimiento”. 2. El sistema despliega un catálogo con los seguimientos almacenados 3. El usuario selecciona del catálogo el seguimiento a Modificar. 4. La aplicación muestra en pantalla de la Fecha de Seguimiento, Documento y Descripción del Documento al que le va a realizar un Seguimiento a modificar. 5. El usuario modifica la Fecha de Seguimiento, Documento y Descripción del Documento al que le va a realizar un Seguimiento y pulsa botón modificar. 6. El sistema actualiza el registro. 141 Caso de Uso Eliminar Seguimiento RED Eliminar Seguimiento Secretaria de la Unidad Figura Nº 70 Diagrama del Caso de Uso Eliminar Seguimiento Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Eliminar Seguimiento Eliminación de un Seguimiento que se encuentra almacenado en el sistema. Secretaria de la Unidad. (Iniciador) Entrar al caso de uso Eliminar Seguimiento. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario pulsa el botón Buscar en la pantalla “Seguimiento”. Flujo Principal 2. El sistema despliega un catálogo con los seguimientos almacenados 3. El usuario selecciona del catálogo el seguimiento a Eliminar. 4. La aplicación muestra en pantalla los datos del seguimiento a eliminar. 5. El usuario visualiza los datos mostrados y pulsa el botón eliminar. 6. El sistema elimina el registro. 142 Caso de Uso Buscar Seguimiento RED Buscar Seguimiento Secretaria de la Unidad Figura Nº 71 Diagrama del Caso de Uso Buscar Seguimiento Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Flujo Principal Buscar Seguimiento Recupera de la Base de Dato un Seguimiento. Secretaria de la Unidad. (Iniciador) Entrar al caso de uso Buscar Seguimiento. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario pulsa el botón Buscar en la pantalla “Seguimientos”. 2. El sistema despliega un catálogo con los seguimientos almacenados. 3. El usuario escoge el seguimiento que desea visualizar 4. El sistema muestra en pantalla los datos del Seguimiento seleccionado. 143 Caso de Uso Generar Reporte Tipo de Documentos RED Generar Reporte Tipo de Documentos Secretaria de la Unidad Figura Nº 72 Diagrama del Caso de Uso Reporte Tipo de Documento Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Flujo Principal Generar reporte de Tipos de Documentos Genera y visualiza un archivo con extensión .PDF que lista los tipos de documentos que están almacenados en el sistema. Secretaria de la Unidad Académica (Iniciador). Entrar al caso de uso Generar Reporte Tipos de Documentos El sistema lleva a cabo la opción solicitada por el usuario del Sistema sobre el reporte indicado. 1. La aplicación muestra la ventana de “Reporte de Tipos de Documento” 2. El usuario presiona el botón Ver 3. El sistema genera un archivo PDF que contiene todos los tipos de documentos que están almacenados y lo muestra en una ventana. 144 Caso de Uso Generar Reporte Tipo de Entidades RED Generar Reporte Tipo de Entidades Secretaria de la Unidad Figura Nº 73 Diagrama del Caso de Uso Reporte Tipo de Entidades Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Flujo Principal Generar Reporte de Tipo de Entidades Genera y visualiza un archivo con extensión .PDF que lista los tipos de entidades que están almacenados en el sistema. Secretaria de la Unidad Académica (Iniciador). Entrar al caso de uso Generar Reporte Tipos de Entidades El sistema lleva a cabo la opción solicitada por el usuario del Sistema sobre el reporte indicado. 1. La aplicación muestra la ventana de “Reporte de Tipos de Entidades” 2. El usuario presiona el botón Ver 3. El sistema genera un archivo PDF que contiene todos los tipos de entidades que están almacenados y lo muestra en una ventana. 145 Caso de Uso Generar Reporte Estados RED Generar Reporte Estados Secretaria de la Unidad Figura Nº 74 Diagrama del Caso de Uso Reporte Estados Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Flujo Principal Generar Reporte Estados Genera y visualiza un archivo con extensión .PDF que lista los estados que están almacenados en el sistema. Secretaria de la Unidad Académica (Iniciador). Entrar al caso de uso Generar Reporte Estados El sistema lleva a cabo la opción solicitada por el usuario del Sistema sobre el reporte indicado. 1. La aplicación muestra la ventana de “Reporte de Estados” 2. El usuario presiona el botón Ver 3. El sistema genera un archivo PDF que contiene todos los Estados que están almacenados y lo muestra en una ventana. 146 Caso de Uso Generar Reporte Entidades RED Generar Reporte Entidades Secretaria de la Unidad Figura Nº 75 Diagrama del Caso de Uso Reporte Entidades Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Flujo Principal Generar Reporte Entidades Genera y visualiza un archivo con extensión .PDF que lista las entidades que están almacenadas en el sistema. Secretaria de la Unidad Académica (Iniciador). Entrar al caso de uso Generar Reporte Entidades El sistema lleva a cabo la opción solicitada por el usuario del Sistema sobre el reporte indicado. 1. La aplicación muestra la ventana de “Reporte de Entidades” 2. El usuario presiona el botón Ver 3. El sistema genera un archivo PDF que contiene todas las entidades que están almacenadas y lo muestra en una ventana. 147 Caso de Uso Generar Reporte de Documentos RED Generar Reporte de Documentos Secretaria de la Unidad Figura Nº 76 Diagrama del Caso de Uso Reporte de Documentos Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Flujo Principal Generar Reporte de Documentos Produce reportes por pantalla y con extensión .PDF de los documentos, dependiendo de la opción elegida por el usuario, ellos pueden ser por Período de Tiempo (Desde – Hasta), Tipo de documento, Emisión y/o Recepción, Entidad que Recibe y Emite, Palabra clave, Tipo de Entidad, Estado o por el Status de la Entidad. Secretaria de la Unidad Académica (Iniciador). Entrar al caso de uso Reporte de Documentos El sistema lleva a cabo la opción solicitada por el usuario del Sistema sobre el reporte indicado. 1. La aplicación muestra una ventana donde se visualizan diferentes filtros por los que el usuario puede seleccionar la información que desea que aparezca en el reporte 2. El usuario selecciona los filtros según su necesidad y presiona el botón Ver. 3. El sistema muestra en una ventana el archivo PDF del reporte solicitado. 148 Caso de Uso Generar Reporte Archivadores RED Generar Reporte Archivadores Secretaria de la Unidad Figura Nº 77 Diagrama del Caso de Uso Reporte Archivadores Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Flujo Principal Generar Reporte Archivadores Genera y visualiza un archivo con extensión .PDF que lista los archivos que están almacenados en el sistema. Secretaria de la Unidad Académica (Iniciador). Entrar al caso de uso Generar Reporte Archivadores El sistema lleva a cabo la opción solicitada por el usuario del Sistema sobre el reporte indicado. 1. La aplicación muestra la ventana de “Reporte de Archivos” 2. El usuario presiona el botón Ver 3. El sistema genera un archivo PDF que contiene todos los archivos que están almacenados y lo muestra en una ventana. 149 Caso de Uso Incluir Sistema RED Incluir Sistema Secretaria de la Unidad Figura Nº 78 Diagrama del Caso de Uso Incluir Sistema Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Incluir Sistema Inclusión de la Descripción, Carpeta y Página que contendrá el sistema además de los menús, opciones y botones que lo conforman. Administrador del sistema (Iniciador) Entrar al caso de uso Incluir Sistema. El sistema proporciona el Código del Sistema. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario selecciona el Menú Definiciones y selecciona la opción “Sistemas” 2. La aplicación abre la ventana SISTEMAS Flujo Principal 3. El usuario pulsa el botón Nuevo. 4. El sistema genera automáticamente el código del sistemas que se va a incluir y solicita al usuario de la Descripción, Carpeta y Página que contendrá el sistema y de los menús, opciones y botones que lo conforman 5. El usuario ingresa los datos solicitados y pulsa el botón incluir. 6. El sistema almacena el nuevo sistema. 150 Caso de Uso Modificar Sistema RED Modificar Sistema Secretaria de la Unidad Figura Nº 79 Diagrama del Caso de Uso Modificar Sistema Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Flujo Principal Modificar Sistema Modificación de la Descripción, Carpeta y Página que contendrá el sistema además de los menús, opciones y botones que lo conforman Administrador del sistema. (Iniciador) Entrar al caso de uso Modificar Sistema. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario pulsa el botón Buscar en la pantalla “Sistemas”. 2. El sistema despliega un catálogo con los sistemas almacenados 3. El usuario selecciona del catálogo el sistema a Modificar. 4. La aplicación muestra en pantalla de la Descripción, Carpeta y Página que contendrá el sistema además de los menús, opciones y botones a modificar. 5. El usuario modifica de la Descripción, Carpeta y Página que contendrá el sistema además de los menús, opciones y botones y pulsa botón modificar. 6. El sistema actualiza el registro. 151 Caso de Uso Eliminar Sistema RED Eliminar Sistema Secretaria de la Unidad Figura Nº 80 Diagrama del Caso de Uso Eliminar Sistema Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Eliminar Sistema Eliminación de un Sistema (menús, opción o botón). Administrador del sistema (Iniciador). Entrar al caso de uso Eliminar Sistema. El sistema lleva a cabo la opción solicitada por el usuario. 1. El usuario pulsa el botón Buscar en la pantalla “Sistemas”. Flujo Principal 2. El sistema despliega un catálogo con los sistemas (menús, opción o botón) almacenados 3. El usuario selecciona del catálogo el sistema (menús, opción o botón) a Eliminar. 4. La aplicación muestra en pantalla los datos del sistema (menús, opción o botón) a eliminar. 5. El usuario visualiza los datos mostrados y pulsa el botón eliminar. 6. El sistema elimina el registro. 152 Caso de Uso Buscar Sistema RED Buscar Sistema Secretaria de la Unidad Figura Nº 81 Diagrama del Caso de Uso Buscar Sistema Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Flujo Principal Buscar Sistema Recupera de la Base de Dato un Sistema. Administrador del Sistema (Iniciador). Entrar al caso de uso Buscar Sistema. El sistema lleva a cabo la opción solicitada por el administrador. 1. El usuario pulsa el botón Buscar en la pantalla “Sistemas”. 2. El sistema despliega un catálogo con los sistemas (menús, opciones y botones) almacenados. 3. El usuario escoge el sistema que desea visualizar 4. El sistema muestra en pantalla los datos del sistema seleccionado. 153 Caso de Uso Incluir Perfil Usuario RED Incluir Perfil Usuario Secretaria de la Unidad Figura Nº 82 Diagrama del Caso de Uso Incluir Perfil Usuario Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Incluir Perfil Usuario Inclusión de la Descripción y del sistema que va a manejar un usuario. Administrador del sistema (Iniciador). Entrar al caso de uso Incluir Perfil Usuario. El sistema proporciona el Código del Perfil del Usuario. El sistema lleva a cabo la opción solicitada por el administrador 1. El usuario selecciona el Menú Definiciones y selecciona la opción “Perfiles de Usuarios” 2. La aplicación abre la ventana PERFILES DE USUARIOS Flujo Principal 3. El usuario pulsa el botón Nuevo. 4. El sistema genera automáticamente el código del perfil de usuario y solicita al usuario de la Descripción y del sistema que va a manejar 5. El usuario ingresa los datos solicitados y pulsa el botón incluir. 6. El sistema almacena el nuevo perfil de usuario. 154 Caso de Uso Modificar Perfil Usuario RED Modificar Perfil Usuario Secretaria de la Unidad Figura Nº 83 Diagrama del Caso de Uso Modificar Perfil Usuario Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Modificar Perfil Usuario Modificación de la Descripción y el sistema que manejara un usuario. Administrador del Sistema (Iniciador). Entrar al caso de uso Modificar Perfil Usuario. El sistema lleva a cabo la opción solicitada por el administrador. 1. El usuario pulsa el botón Buscar en la pantalla “Perfiles de Usuarios”. Flujo Principal 2. El sistema despliega un catálogo con los perfiles de usuarios almacenados 3. El usuario selecciona del catálogo el perfil de usuario a Modificar. 4. La aplicación muestra en pantalla de la Descripción y el sistema a modificar. 5. El usuario modifica de la Descripción y el sistema y pulsa botón modificar. 6. El sistema actualiza el registro. 155 Caso de Uso Eliminar Perfil Usuario RED Eliminar Perfil Usuario Secretaria de la Unidad Figura Nº 84 Diagrama del Caso de Uso Eliminar Perfil Usuario Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Eliminar Perfil Usuario Eliminación de un Perfil Usuario. Administrador del sistema (Iniciador). Entrar al caso de uso Eliminar Perfil Usuario. El sistema lleva a cabo la opción solicitada por el administrador. 1. El usuario pulsa el botón Buscar en la pantalla “Perfiles de Usuarios”. Flujo Principal 2. El sistema despliega un catálogo con los perfiles de usuarios almacenados 3. El usuario selecciona del catálogo el perfil de usuario a Eliminar. 4. La aplicación muestra en pantalla los datos del perfil de usuario a eliminar. 5. El usuario visualiza los datos mostrados y pulsa el botón eliminar. 6. El sistema elimina el registro. 156 Caso de Uso Buscar Perfil Usuario RED Buscar Perfil Usuario Secretaria de la Unidad Figura Nº 85 Diagrama del Caso de Uso Buscar Perfil Usuario Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Flujo Principal Buscar Perfil Usuario Recupera de la Base de Dato un Perfil de Usuario. Administrador del Sistema (Iniciador). Entrar al caso de uso Buscar Perfil Usuario. El sistema lleva a cabo la opción solicitada por el administrador. 1. El usuario pulsa el botón Buscar en la pantalla “Perfiles de Usuarios”. 2. El sistema despliega un catálogo con los perfiles de usuarios almacenados. 3. El usuario escoge el perfil de usuario que desea visualizar 4. El sistema muestra en pantalla los datos del perfil de usuario seleccionado. 157 Caso de Uso Incluir Cargo Usuario RED Incluir Cargo Usuario Secretaria de la Unidad Figura Nº 86 Diagrama del Caso de Uso Incluir Cargo Usuario Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Incluir Cargo Usuario Inclusión de la Descripción del Cargo del Usuario. Administrador del sistema (Iniciador). Entrar al caso de uso Incluir Cargo Usuario. El sistema proporciona el Código del Cargo del Usuario. El sistema lleva a cabo la opción solicitada por el administrador 1. El usuario selecciona el Menú Definiciones y selecciona la opción “Cargos de Usuarios” 2. La aplicación abre la ventana CARGOS DE USUARIOS Flujo Principal 3. El usuario pulsa el botón Nuevo. 4. El sistema genera automáticamente el código del cargo de usuario y solicita al usuario la Descripción del cargo de usuario 5. El usuario ingresa los datos solicitados y pulsa el botón incluir. 6. El sistema almacena el nuevo cargo de usuario. 158 Caso de Uso Modificar Cargo Usuario RED Modificar Cargo Usuario Secretaria de la Unidad Figura Nº 87 Diagrama del Caso de Uso Modificar Cargo Usuario Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Modificar Cargo Usuario Modificación de la Descripción del Cargo del Usuario. Administrador del Sistema (Iniciador). Entrar al caso de uso Modificar Cargo Usuario. El sistema lleva a cabo la opción solicitada por el administrador. 1. El usuario pulsa el botón Buscar en la pantalla “Cargos de Usuarios”. Flujo Principal 2. El sistema despliega un catálogo con los cargos de usuarios almacenados 3. El usuario selecciona del catálogo el cargo de usuario a Modificar. 4. La aplicación muestra en pantalla de la Descripción del cargo a modificar. 5. El usuario modifica de la Descripción del cargo y pulsa botón modificar. 6. El sistema actualiza el registro. 159 Caso de Uso Eliminar Cargo Usuario RED Eliminar Cargo Usuario Secretaria de la Unidad Figura Nº 88 Diagrama del Caso de Uso Eliminar Cargo Usuario Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Eliminar Cargo Usuario Eliminación de un Cargo de Usuario. Administrador del sistema (Iniciador). Entrar al caso de uso Eliminar Cargo Usuario. El sistema lleva a cabo la opción solicitada por el administrador. 1. El usuario pulsa el botón Buscar en la pantalla “Cargos de Usuarios”. Flujo Principal 2. El sistema despliega un catálogo con los cargos de usuarios almacenados 3. El usuario selecciona del catálogo el cargo de usuario a Eliminar. 4. La aplicación muestra en pantalla los datos del cargo de usuario a eliminar. 5. El usuario visualiza los datos mostrados y pulsa el botón eliminar. 6. El sistema elimina el registro. 160 Caso de Uso Buscar Cargo Usuario RED Buscar Cargo Usuario Secretaria de la Unidad Figura Nº 89 Diagrama del Caso de Uso Buscar Cargo Usuario Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Flujo Principal Buscar Cargo Usuario Recupera de la Base de Dato un Cargo de Usuario. Administrador del Sistema (Iniciador). Entrar al caso de uso Buscar Cargo Usuario. El sistema lleva a cabo la opción solicitada por el administrador. 1. El usuario pulsa el botón Buscar en la pantalla “Cargos de Usuarios”. 2. El sistema despliega un catálogo con los cargos de usuarios almacenados. 3. El usuario escoge el cargo de usuario que desea visualizar 4. El sistema muestra en pantalla los datos del cargo de usuario seleccionado. 161 Caso de Uso Incluir Usuario RED Incluir Usuario Secretaria de la Unidad Figura Nº 90 Diagrama del Caso de Uso Incluir Usuario Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Flujo Principal Incluir Usuario Inclusión del Usuario, Nombre, Apellido, Cargo, contraseña y Confirmación de Contraseña. Administrador del sistema (Iniciador). Entrar al caso de uso Incluir Usuario. El sistema proporciona el Código del Usuario. El sistema lleva a cabo la opción solicitada por el administrador 1. El usuario selecciona el Menú Definiciones y selecciona la opción “Usuarios” 2. La aplicación abre la ventana USUARIOS 3. El usuario pulsa el botón Nuevo. 4. El sistema genera automáticamente el código del usuario y solicita Usuario, Nombre, Apellido, Cargo, contraseña y Confirmación de Contraseña que se va incluir 5. El usuario ingresa los datos solicitados y pulsa el botón incluir. 6. El sistema almacena el nuevo usuario. 162 Caso de Uso Modificar Usuario RED Modificar Usuario Secretaria de la Unidad Figura Nº 91 Diagrama del Caso de Uso Modificar Usuario Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Modificar Usuario Modificación del Usuario, Nombre, Apellido, Cargo, Contraseña y confirmación de un Usuario. Administrador del Sistema (Iniciador). Entrar al caso de uso Modificar Usuario. El sistema lleva a cabo la opción solicitada por el administrador. 1. El usuario pulsa el botón Buscar en la pantalla “Usuarios”. Flujo Principal 2. El sistema despliega un catálogo con los usuarios almacenados 3. El usuario selecciona del catálogo el usuario a Modificar. 4. La aplicación muestra en pantalla el Usuario, Nombre, Apellido, Cargo, Contraseña y confirmación de un Usuario a modificar. 5. El usuario modifica el Usuario, Nombre, Apellido, Cargo, Contraseña y confirmación de un Usuario y pulsa botón modificar. 6. El sistema actualiza el registro. 163 Caso de Uso Eliminar Usuario RED Eliminar Usuario Secretaria de la Unidad Figura Nº 92 Diagrama del Caso de Uso Eliminar Usuario Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Eliminar Usuario Eliminación de un Usuario. Administrador del sistema (Iniciador). Entrar al caso de uso Eliminar Usuario. El sistema lleva a cabo la opción solicitada por el administrador. 1. El usuario pulsa el botón Buscar en la pantalla “Usuarios”. Flujo Principal 2. El sistema despliega un catálogo con los usuarios almacenados 3. El usuario selecciona del catálogo el usuario a Eliminar. 4. La aplicación muestra en pantalla los datos del usuario a eliminar. 5. El usuario visualiza los datos mostrados y pulsa el botón eliminar. 6. El sistema elimina el registro. 164 Caso de Uso Buscar Usuario RED Buscar Usuario Secretaria de la Unidad Figura Nº 93 Diagrama del Caso de Uso Buscar Usuario Caso de Uso Descripción Actores Pre Condiciones Post Condiciones Flujo Principal Buscar Usuario Recupera de la Base de Dato un Usuario. Administrador del Sistema (Iniciador). Entrar al caso de uso Buscar Usuario. El sistema lleva a cabo la opción solicitada por el administrador. 1. El usuario pulsa el botón Buscar en la pantalla “Usuarios”. 2. El sistema despliega un catálogo con los usuarios almacenados. 3. El administrador escoge el usuario que desea visualizar 4. El sistema muestra en pantalla los datos del usuario seleccionado. 165 Figura Nº 94 Modelo General del Diagrama de Casos de Uso de RED RED Incluir Estado Modificar Estado Eliminar Estado Buscar Estado Incluir Tipo Documento Modificar Tipo Documento Eliminar Tipo Documento Buscar Tipo Documento Incluir Entidad Modificar Entidad Eliminar Entidad Buscar Entidad Incluir Tipo Entidad Modificar Tipo Entidad Secretaria de la Unidad Eliminar Tipo Entidad Buscar Tipo Entidad Incluir Archivo Modificar Archivo Eliminar Archivo Buscar Archivo Incluir Documento Modificar Documento 166 Continuación del Modelo General del Diagrama de Casos de Uso de RED RED Eliminar Documento Buscar Documento Incluir Seguimiento Modificar Seguimiento Eliminar Seguimiento Buscar Seguimiento Generar reporte Tipo Documento Generar reporte Tipo Entidades Generar reporte Estados Generar reporte Entidades Generar reporte Listado de Documentos Secretaria de la Unidad Generar reporte Archivo Ingresar Sistema Modificar Sistema Eliminar Sistema Buscar Sistema Incluir Perfil Usuario Modificar Perfil Usuario Administrador del sistema Eliminar Perfil Usuario Buscar Perfil Usuario Incluir Cargo Usuario Modificar Cargo Usuario Eliminar Cargo Usuario Buscar Cargo Usuario 167 Continuación del Modelo General del Diagrama de Casos de Uso de RED RED Incluir Usuario Modificar Usuario Administrador del sistema Eliminar Usuario Buscar Usuario Diseño Modelo de Datos El modelo de datos está representado por el diagrama de clases orientado a visualizar el todo como un conjunto de elementos que se relacionan entre sí. RED fue dividido en dos módulos (Seguridad y Control de Documentos). El módulo Seguridad será manejado directamente por el administrador del sistema, mientras que el de Control de documentos es el que utilizará el usuario. A continuación definiremos el diagrama de clases para ambos módulos de RED: 168 Diagrama de Clases con sus Atributos que forman a RED (Módulo Control de Documentos) Clase Estado Clase Entidad Usa CódigoEntidades CódigoEstado NombreEntidades NombredelEstado OtraIdentificación Descripción Clase Tipo Entidad CódigoTipodeEntidad Usa CódigoTipodeEntidad CódigoEstado NombreTipodeEntidad StatusdelaEntidad Usa Clase Archivo CódigoArchivo Clase Documento Usa CódigodelDocumento NombreArchivo NombreTipodeDocumento DescripciónArchivo FechadeEmisióndelDocumento UbicaciónArchivo FechadeRecepcióndelDocumento TipodeArchivo DescripcióndelDocumento PersonaResponsable ResumendelDocumento AsuntodelDocumento Clase Tipo Documento Usa CódigoArchivo UbicacióndelDocumentoenelArchivo CódigoTipodeDocumento CodigoEntidadqueRecibeelDocumento NombreTipodeDocumento CodigoEntidadqueEmiteelDocumento PersonaqueemiteelDocumento Clase Seguimiento CódigodelSeguimiento FechadelSeguimiento StatusdelDocumento Usa NúmerodelDocumento SeguimientodelDocumento CódigodelDocumento DescripcióndelSeguimiento Figura Nº 95 Diagrama de Clases (Módulo Control de Documentos) 169 Diagrama de Clases con sus Atributos que forman a RED (Módulo Seguridad) Clase Perfil de Usuario CódigodelPerfildeUsuario Clase Usuario DescripcióndelPerfildeUsuario Usa Usuario NombredelUsuario Clase Cargo de Usuario Usa ApellidodelUsuario CódigodelCargodeUsuario CódigodelCargodelUsuario DescripcióndelCargodeUsuario ContraseñadelUsuario ConfirmacióndelaContraseñadelUsuario CódigodelSistema Clase Sistema Usa CódigodelSistema DescripcióndelSistema CódigodelPerfildelUsuario CarpetadondesealmacenaráelSistema PáginadeIniciodelSistema Usa Clase Característica Sistema CódigodelSistema DescripciónOpciones NivelOpción PáginaOpción TipoOpción CódigoOpción NúmeroFila Figura Nº 96 Diagrama de Clases (Módulo Seguridad) 170 Diagrama de Clases del Módulo Control de Documentos usando estereotipos Usa Clase Estados Usa Clase Entidades Clase Tipo de Entidades Usa Clase Tipo de Documento Usa Usa Clase Archivo Usa Clase Documentos Clase Seguimiento Figura Nº 97 Diagrama de Clases usando estereotipos (Módulo Control de Documentos) Diagrama de Clases del Módulo Seguridad usando estereotipos Usa Usa Clase Característica Sistema Clase Sistemas Usa Clase Usuarios Clase Perfiles de Usuarios Usa Clase Cargos de Usuarios Figura Nº 98 Diagrama de Clases (Módulo Seguridad) 171 Diagrama de Estado de RED El estado de un sistema de información computarizado es un conjunto particular de valores de los atributos de ese sistema. A menudo el estado del sistema se representa mediante una pantalla específica. Cada evento provoca que el sistema se mueva de estado a estado. Los siguientes diagramas representan los estados de RED: 172 Salir seleccionado Ciclo del sistema Recepción y Emisión de Documentos (Módulo Control de Documentos) Incluir, Modificar, Eliminación y Búsqueda de Estados Definiciones Incluir, Modificar, Eliminación y Búsqueda de Tipo de Documento Definiciones Incluir, Modificar, Eliminación y Búsqueda de Tipo de Entidades Definiciones Incluir, Modificar, Eliminación y Búsqueda de Entidades Definiciones Incluir, Modificar, Eliminación y Búsqueda de Documentos Incluir, Modificar, Eliminación y Búsqueda de Archivos Definiciones Procesos Incluir, Modificar, Eliminación y Búsqueda de Seguimientos Generar un reporte solicitado Reportes Procesos Tipo de Documentos ESTADOS TIPO DOCUMENTO TIPO ENTIDADES ENTIDADES ARCHIVO DOCUMENTOS SEGUIMIENTOS Tipo de Entidades Estados Listado de documentos Archivos Figura Nº 99 Diagrama de Estados (Módulo Control de Documentos) 173 Salir seleccionado Ciclo del Sistema Recepción y Emisión de Documentos (Módulo Seguridad) Incluir, Modificar, Eliminación y Búsqueda de Sistemas. Incluir, Modificar, Eliminación y Búsqueda de Perfiles de Usuario Incluir, Modificar, Eliminación y Búsqueda de Cargos de Usuario Incluir, Modificar, Eliminación y Búsqueda de Usuarios Definiciones Definiciones Definiciones Definiciones Sistemas Perfiles de Usuario Cargos de Usuarios Usuarios Figura Nº 100 Diagrama de Estados (Módulo Seguridad) 174 Para efectos de esta Práctica Profesional los Diagramas de Secuencia se delimitaron en desarrollar los Casos de Uso Incluir documentos, Modificar Documentos, Eliminar Seguimiento, Eliminar Documentos, Seguimiento, Buscar Documentos, Incluir Modificar Seguimiento, Buscar Seguimiento y Reporte Documento, debido a que son los más funcionales y en donde se encuentra la esencia de esta aplicación Web, además porque la Metodología Utilizada (RUP) es incremental e Iterativa. A continuación se listan los elementos contenidos en los Diagramas de secuencia de RED (clases, interfaces y algoritmos), para representarlos se utilizarán los siguientes estereotipos: Interfaz Algoritmo Interfaces: - Interfaz Documentos. - Interfaz Seguimientos. - Interfaz Reportes. Clases: - Clase Documento - Clase Seguimiento Algoritmos: - Incluir Documento. - Modificar Documento. - Eliminar Documento. - Buscar Documento. - Incluir Seguimiento. Clase - Modificar Seguimiento. - Eliminar Seguimiento. - Buscar Seguimiento. - Generar Reporte Documentos. Diagrama de Secuencia El diagrama de secuencia es uno de los diagramas más efectivos para modelar interacción entre objetos. En este caso para RED muestra la interacción de un conjunto de objetos en la aplicación a través del tiempo. Caso de Uso Incluir Documento Interfaz Documentos Incluir Documento Clase Documento USUARIO 1. Seleccionar el Menú PROCESOS 2. Escoger la opción DOCUMENTOS 3. Pulsar el botón NUEVO 6. Transferir los datos 4. Incluir datos del nuevo documento 8. Crea nuevo documento 5. Pulsar el botón INCLUIR 9. Enviar reconocimiento 10. Enviar reconocimiento 11. Muestra Reconocimiento Figura Nº 101 Diagrama de Secuencia del Caso de Uso Incluir Documento Caso de Uso Modificar Documento Interfaz Documentos Modificar Documento Clase Documento USUARIO 1. Seleccionar el Menú PROCESOS 2. Escoger la opción DOCUMENTOS 3. Pulsar el botón Buscar 4. Recuperar datos de todos los documentos 6. Mostrar catálogo con todos los documentos 5. Regresar datos de todos los documentos 8. Transferir el código del documento seleccionado 7. Seleccionar documento un código 11. Mostrar documento información de 9. Buscar el seleccionado del 12. Editar datos del documento y pulsa el botón Modificar 10. Transferir datos documento seleccionado 13. Transferir documento datos del del 10. Regresar seleccionado documento documento 14. Solicita actualización 15. Enviar reconocimiento 16. Mostrar reconocimiento 15. Enviar reconocimiento Figura Nº 102 Diagrama de Secuencia del Caso de Uso Modificar Documento Caso de Uso Eliminar Documento Clase Interfaz Documentos Eliminar Documento Documento USUARIO 1. Seleccionar el Menú PROCESOS 2. Escoger la opción DOCUMENTOS 3. Pulsar el botón Buscar 4. Recuperar datos de todos los documentos 6. Mostrar catálogo con todos los documentos 5. Regresar datos de todos los documentos 8. Transferir el código del documento seleccionado 7. Seleccionar documento un código 11. Mostrar documento información de 9. Buscar el seleccionado del 12. Visualizar datos del documento y pulsa el botón Eliminar 10. Transferir datos documento seleccionado del 13. Transferir orden eliminar documento del 10. Regresar seleccionado documento documento 14. Eliminar documento 15. Enviar reconocimiento 16. Mostrar reconocimiento 15. Enviar reconocimiento Figura Nº 103 Diagrama de Secuencia del Caso de Uso Eliminar Documento Caso de Uso Buscar Documento Clase Interfaz Documentos Buscar Documento Documento USUARIO 1. Seleccionar el Menú PROCESOS 2. Escoger la opción DOCUMENTOS 3. Pulsar el botón Buscar 4. Recuperar datos de todos los documentos 6. Mostrar catálogo con todos los documentos 5. Regresar datos de todos los documentos 8. Transferir el código del documento seleccionado 7. Seleccionar documento un código 11. Mostrar documento información de 9. Buscar el seleccionado del 10. Transferir datos documento seleccionado del 10. Regresar seleccionado documento documento Figura Nº 104 Diagrama de Secuencia del Caso de Uso Buscar Documento Caso de Uso Incluir Seguimiento Clase Interfaz Seguimiento Incluir Seguimiento Seguimiento USUARIO 1. Seleccionar el Menú PROCESOS 2. Escoger la opción SEGUIMIENTO DE DOCUMENTOS 3. Pulsar el botón NUEVO 6. Transferir los datos 4. Incluir datos del nuevo documento 8. Crea nuevo seguimiento 5. Pulsar el botón INCLUIR 9. Enviar reconocimiento 10. Enviar reconocimiento 11. Muestra Reconocimiento Figura Nº 105 Diagrama de Secuencia del Caso de Uso Incluir Seguimiento Caso de Uso Modificar Seguimiento Clase Interfaz Seguimiento Modificar Seguimiento Seguimiento USUARIO 1. Seleccionar el Menú PROCESOS 2. Escoger la opción Seguimiento de Documentos 3. Pulsar el botón Buscar 4. Recuperar datos de todos los seguimientos 6. Mostrar catálogo con todos los seguimientos 5. Regresar datos de todos los seguimientos 8. Transferir el código del seguimiento seleccionado 7. Seleccionar seguimiento un código 11. Mostrar seguimiento información de 9. Buscar el seguimiento seleccionado del 12. Editar datos del seguimiento y pulsa el botón Modificar 10. Transferir datos del seguimiento seleccionado 13. Transferir seguimiento datos del 10. Regresar seleccionado seguimiento 14. Solicita actualización 15. Enviar reconocimiento 16. Mostrar reconocimiento 15. Enviar reconocimiento Figura Nº 106 Diagrama de Secuencia del Caso de Uso Modificar Seguimiento Caso de Uso Eliminar Seguimiento Clase Interfaz Seguimiento Eliminar Seguimiento Seguimiento USUARIO 1. Seleccionar el Menú PROCESOS 2. Escoger la opción Seguimientos de Documentos 3. Pulsar el botón Buscar 4. Recuperar datos de todos los seguimientos 6. Mostrar catálogo con todos los seguimientos 5. Regresar datos de todos los seguimientos 8. Transferir el código del seguimiento seleccionado 7. Seleccionar seguimiento un código 11. Mostrar seguimiento información de 9. Buscar el seguimiento seleccionado del 12. Visualizar datos del seguimiento y pulsa el botón Eliminar 10. Transferir datos del seguimiento seleccionado 13. Transferir orden eliminar seguimiento del 10. Regresar seleccionado seguimiento 14. Eliminar seguimiento 15. Enviar reconocimiento 16. Mostrar reconocimiento 15. Enviar reconocimiento Figura Nº 107 Diagrama de Secuencia del Caso de Uso Eliminar Seguimiento Caso de Uso Buscar Seguimiento Clase Interfaz Seguimiento Buscar Seguimiento Seguimiento USUARIO 1. Seleccionar el Menú PROCESOS 2. Escoger la opción SEGUIMIENTOS DE DOCUMENTOS 3. Pulsar el botón Buscar 4. Recuperar datos de todos los seguimientos 6. Mostrar catálogo con todos los seguimientos 5. Regresar datos de todos los seguimientos 8. Transferir el código del seguimiento seleccionado 7. Seleccionar seguimiento un código 11. Mostrar seguimiento información de 9. Buscar el seguimiento seleccionado del 10. Transferir datos del seguimiento seleccionado 10. Regresar seleccionado seguimiento Figura Nº 108 Diagrama de Secuencia del Caso de Uso Buscar Seguimiento Caso de Uso Reporte Documento Clase Interfaz Reporte Documentos Reporte Documento Documentos USUARIO 1. Selecciona el Menú REPORTES 2. Escoge la opción DOCUMENTOS 4. Transfiere los datos 5. Regresa información 6. se despliega una pantalla con los filtros por los cuales se puede solicitar un reporte de documento 7. Selecciona uno o varios filtros 8. Transfiere los datos 9. Se busca el documento en la base de Datos 11. Se abre una pantalla con el reporte solicitado en un archivo PDF 10. Regresa información Figura Nº 109 Diagrama de Secuencia del Caso de Uso Reporte de Documentos Asignación de Operaciones a las Clases (Control de Documentos) Clase Estado Clase Entidad CódigoEstado, 10 caracteres NombredelEstado, 20 caracteres .IncluirunEstado () CódigoEntidades, 10 caracteres NombreEntidades, 40 caracteres Usa EliminarunEstado () OtraIdentificación, 25 caracteres ModificarunEstado () Descripción, texto BuscarunEstado () CódigoTipodeEntidad, 10 caracteres CódigoEstado, 10 caracteres Clase Tipo Entidad StatusdelaEntidad, 30 caracteres CódigoTipodeEntidad, 10 caracteres IncluirunaEntidad () NombreTipodeEntidad, 20 caracteres IncluirunTipodeEntidad () Usa EliminarunaEntidad () ModificarunaEntidad () EliminarunTipodeEntidad () BuscarunaEntidad () ModificarunTipodeEntidad () BuscarunTipodeEntidad () Clase Archivo CódigoArchivo, 10 caracteres Usa NombreArchivo, 20 caracteres DescripciónArchivo, texto UbicaciónArchivo, texto TipodeArchivo, 25 caracteres Clase Documento Usa CódigodelDocumento, 10 caracteres PersonaResponsable, 30 caracteres NombreTipodeDocumento, 10 caracteres IncluirunArchivo () FechadeEmisióndelDocumento, Calendario EliminarunArchivo() FechadeRecepcióndelDocumento, Calendario ModificarunArchivo() DescripcióndelDocumento, Texto BuscarunArchivo () ResumendelDocumento, Texto AsuntodelDocumento, Texto Clase Tipo Documento CódigoTipodeDocumento, 10 caracteres Usa NombreTipodeDocumento, 20 caracteres CódigoArchivo, 10 caracteres UbicacióndelDocumentoenelArchivo, Texto IncluirunTipodeDocumento () CodigoEntidadqueRecibeelDocumento, 10 caracteres EliminarunTipodeDocumento () CodigoEntidadqueEmiteelDocumento, 10 caracteres ModificarunTipodeDocumento () PersonaqueemiteelDocumento, 20 caracteres BuscarunTipodeDocumento () StatusdelDocumento, 10 caracteres Clase Seguimiento NúmerodelDocumento, 10 caracteres CódigodelSeguimiento, 10 caracteres SeguimientodelDocumento, 5 caracteres FechadelSeguimiento, Calendario CódigodelDocumento, 10 caracteres DescripcióndelSeguimiento, texto Usa IncluirunDocumento () EliminarunDocumento() IncluirunSeguimiento () ModificarunDocumento () EliminarunSeguimiento () BuscarunDocumento () ModificarunSeguimiento () BuscarunSeguimiento () Asignación de Operaciones a las Clases (Módulo Seguridad) Clase Usuario Usuario, 10 caracteres NombredelUsuario, 20 caracteres ApellidodelUsuario, 20 caracteres CódigodelCargodelUsuario, 3 caracteres ContraseñadelUsuario, 100 caracteres ConfirmacióndelaContraseñadelUsuario, 100 caracteres CódigodelSistema, 4 caracteres CódigodelPerfildelUsuario, 4 caracteres IncluirunUsuario () EliminarunUsuario () ModificarunUsuario () BuscarunUsuario () Usa Usa Clase Cargo de Usuario Clase Perfil de Usuario CódigodelCargodeUsuario, 4 caracteres CódigodelPerfildeUsuario, 4 caracteres DescripcióndelCargodeUsuario, 30 caracteres DescripcióndelPerfildeUsuario, 45 caracteres IncluirunCargodeUsuario () IncluirunPerfildeUsuario () EliminarunCargodeUsuario () EliminarunPerfildeUsuario () ModificarunCargodeUsuario () ModificarunPerfildeUsuario () BuscarunCargodeUsuario () BuscarunPerfildeUsusario () Usa Clase Sistema CódigodelSistema, 4 caracteres Clase Característica Sistema DescripcióndelSistema, 50 caracteres CódigodelSistema, 4 caracteres CarpetaddelModulo, 50 caracteres DescripciónOpciones, 45 caracteres PáginadeIniciodelSistema, 50 caracteres NivelOpción, 10 caracteres PáginaOpción, 100 caracteres IncluirunSistema () TipoOpción, 1 carácter EliminarunSistema () CódigoOpción, Entero ModificarunSistema () BuscarunSistema () NúmeroFila, Entero Operacionesquepermitiraalsistemasufuncionalidad (menus, botones, opciones) Usa Diagrama de Despliegue El siguiente diagrama describe las configuraciones de la red mediante nodos. El nodo administrador estará compuesto por el sistema RED con su respectiva configuración de administrador y será utilizado por el actor administrador del sistema, mientras el nodo Cliente contendrá el sistema configurado para el uso de clientes y será manipulado por los demás actores del sistema. RED Figura Nº110 Diagrama de Despliegue de RED Diagrama de Base de Datos El modelo de datos que utiliza RED es el modelo relacional. Las tablas o relaciones necesarias para llevar a cabo los casos de uso son: redmarchivador, redmentidades, redmestados, redmtipo_documento, redmtipo_entidades, redpdocumentos, redpseguimientos, segtcsistemas, segtcusuarios, seftcperfilesdeusuarios y segtcargousuarios las cuales se describen en la tabla Nº 7. Tabla Nº 7 Descripción de las tablas de la Base de Datos Tablas Entidad Campo Cod_archi Key X Desc. Código Archivo Nom_archi Varchar(20) Nombre Archivo Desc_archi Text Descripción Archivo Des_ubi_archi Text Ubicación Archivo Tipo_archi Varchar(25) Tipo Archivo (activo,Pasivo) Perso_respon Varchar(30) Persona Responsable Valor Varchar(10) Desc. Código Tipo Entidad Varchar(20) Nombre Tipo Entidad Valor Varchar(10) Desc. Código Tipo Documento Varchar(20) Nombre Tipo Documento Redmarchivador Campo cod_ti_entidad Key X redmtipo_entidades nom_ti_entidad Campo cod_ti_doc Key X redmtipo_document o Descripción Valor Varchar(10) nom_ti_doc Campo cod_esta Key X Valor Varchar(10) Desc. Código Estado Varchar(20) Nombre Estado Redmestados nom_esta Campo cod_segui Key X fec_segui Valor Varchar(10) Desc. Código Seguimiento Date Fecha del Seguimiento Varchar(10) Código del Documento text Descripción Seguimiento Valor Desc. Redpseguimientos cod_docu 0 desc_segui Campo Key Esta tabla almacena los archivadores que utilizará el sistema. Posee una clave principal. Esta tabla almacena los tipos de entidades que utilizará el sistema. Posee una clave principal. Esta tabla almacena los tipos de documentos que utilizará el sistema. Posee una clave principal. Esta tabla almacena los estados que utilizará el sistema. Posee una clave principal. Esta tabla almacena los seguimientos de los documentos que utilizará el sistema. Posee una clave principal y una foránea (0). Esta tabla almacenará las entidades que co_entidad X nom_entidad Redmentidades Varchar(10) Codigo Entidad Varchar(40) Nombre Entidad Cod_esta 0 Varchar(10) Código Estado Cod_ti_entidad 0 Varchar(10) Codigo Tipo Entidad Descri_entidad Text Descripción Entidad Stat_entidad Varchar(30) Status de la Entidad Id_entidad Varchar(25) Cédula Campo Cod_docu Key X Valor Varchar(10) Desc. Código Documento Cod_ti_doc 0 Varchar(10) Código Tipo documento Fec_ori_docu Date FechaEmisio n documento Fec_rec_doc Date FechaRecep. Documento Descri_docu Text Descripción Documento Resu_docu Text Resumen Documento Asun_docu Text Asunto Documento Redpdocumentos Segtcsistemas Cod_archi 0 Varchar(10) Código Archivo Ubi_archi 0 Text Ubicación Documento Co_entidad_emit e 0 Varchar(10) Código Entidad Emite Nom_pers_emi Varchar(20) Persona que Emite Stat_ti_docu Varchar(10) Status tipo Documento Num_docu Varchar(10) Número Documento Stat_segui 0 Varchar(5) Seguimiento Si/No Co_entidad_recib e 0 Varchar(10) Código Entidad Recib Campo Codsis key X Valor Varchar(4) Desc. Código Sistema utilizará el sistema. Posee una clave principal y dos claves foráneas (0). Esta tabla almacenará los documentos (recibidos y/o emitidos) que utilizará el sistema. Posee una clave principal y cinco claves foráneas (0). Esta tabla almacenará los sistemas (menús, opciones, botones) que utilizará el sistema. Segtcusuarios Segtcperfilesusuari os Segtcargousuarios Nomsis Varchar(50) Nombre Sistema Pagini Varchar(50) Página Inicio Nomcar Varchar(50) Nombre Cargo Campo Logusu Valor Varchar(10) Desc. Usuario Pasusu Varchar(100) Clave Nomusu Varchar(25) Nombre Usuario Apeusu Varchar(25) Apellido Usuario Codcar Varchar(3) Codigo Cargo Nomfot Varchar(50) Nmbre Foto Tipfot Varchar(20) Tipo Foto Tamfot integer Tamaño Foto datfot longblog Foto Campo codper key X Valor Varchar(4) Desc. Código Perfil nomper Varchar(45) Nombre Perfil codsis Varchar(10) Código Sistema Campo codcar key X key X Nomcar Valor Varchar(3) Desc. Código Cargo Varchar(30) Nombre Cargo Posee una clave principal Esta tabla almacenará los usuarios que pueden manejar el sistema. Posee una clave principal Esta tabla almacenará los perfiles de usuario. Posee una clave principal Esta tabla almacenará los cargos de usuario. Posee una clave principal En el modelo Entidad Relación que se presentará a continuación solo se presentará el Módulo Control de Documentos, debido a que es el que directamente manejará el Usuario. Modelo Entidad Relación de RED Podemos determinar que al finalizar la disciplina de diseño, hemos refinado suficientemente el modelo de caso de uso, el diagrama de clase y las relaciones entre estos para representar la mayor parte de los requisitos del sistema. Durante la siguiente disciplina entraremos en otro ciclo para mejorar algunos detalles que se hacen visibles solo al momento de la implementación. Gestión del Proyecto Escogencia del lenguaje de programación Durante la ejecución de la Disciplina de Gestión del Proyecto se escogió como lenguaje de programación PHP (Hipertext Pre-processor) debido a que es un lenguaje de programación pensado para utilizarse en desarrollos Web, por lo que es ideal para brindar mayor dinamismo a una página Web y acceso a base de datos. Como interfaz para la programación del lenguaje PHP se escogió el Software Adobe Dreamweaver CS5 versión 11.0 (ver Fig. 110) Figura Nº 111 Lenguaje de Programación utilizado para el desarrollo de la aplicación Escogencia del Gestor de Base de Datos Para la elaboración de la base de dato utilizada en RED se empleó el gestor de base de datos MySQL ya que es un sistema de base de dato relacional, multihilo y multiusuario para lo cual se utilizó la herramienta gráfica del software MySQL Administrator versión 1.2.12, debido a que es fácil de utilizar, compacta, ágil, funcional y muy rápida para manejar las base de datos de MySQL como se observa en la figura Nº 112. Figura Nº 112 Interfaz del entorno MySQL Administrator Actividades de formación Como actividades de formación para el desarrollo de aplicación podemos mencionar las charlas dictadas por el tutor académico, lo que llevaron a la mejor comprensión del lenguaje de programación utilizado y al mejor desempeño en el manejo del Gestor de Base de Datos. Recursos Adicionales Cabe destacar que fue de suma importancia la exportación de librerías, las cuales son útiles en cuanto a al montaje de las interfaces y de fácil ejecución. Implementación El objetivo principal de este flujo de trabajo en RED es extender el resultado al finalizar la iteración con la integración y pruebas del sistema, es la versión operativa inicial representada por el 100% de los casos de uso, el desarrollo de componentes y codificación del software, su relación con la base de datos, integración de módulos y la explicación acerca de la funcionalidades del sistema. Desarrollo de componentes y codificación de Software En esta parte de desarrollo de componentes y codificación de software, extraeremos una parte del sistema, el componente que engloba Documentos formados por reda_documentos.php, redn_documento.php, redjdocumentos.js, redr_documentos.php, cls_documentos.php, conaseguridadacceso.php, conaseguridad.php y conasuperior.php. Anexo Nº 1) Relación de los componentes con la Base de Datos (Ver Los componentes se relacionan con las siguientes tablas por medio de las siguientes llamadas: require_once("clases/clstipo_documento.php"); mediante este parámetro se relaciona con tabla tipo_documento require_once("clases/clsarchivador.php"); mediante este parámetro se relaciona con la tabla archivo require_once("clsentidades.php"); se relaciona con la tabla entidades require_once("clases/clstipo_entidades.php"); se relaciona con la tabla tipo entidades. insert nto redpdocumentos(COD_DOCU,COD_TI_DOC,FEC_ORI_DOCU,FEC_REC_ DOCU,DESCRI_DOCU,RESU_DOCU,ASUN_DOCU,COD_ARCHI,UBI_DO CU,CO_ENTIDAD_EMITE,CO_ENTIDAD_RECIBE,NOM_PERS_EMI,STAT_ TI_DOCU,NUM_DOCU,STAT_SEGUI)values('$this->COD_DOCU','$this>COD_TI_DOC',$this->FEC_ORI_DOCU,$this->FEC_REC_DOCU,'$this>DESCRI_DOCU','$this->RESU_DOCU','$this->ASUN_DOCU','$this>COD_ARCHI','$this->UBI_DOCU','$this->CO_ENTIDAD_EMITE','$this>CO_ENTIDAD_RECIBE','$this->NOM_PERS_EMI','$this>STAT_TI_DOCU','$this->NUM_DOCU','$this->STAT_SEGUI')"; se relaciona con la tabla documentos Integración de los módulos La integración de los módulos será realizada mediante las siguientes llamadas: require_once("conaseguridad.php"); require_once("conaseguridadacceso.php"); require_once("conasuperior.php"); <script language="javascript" src="jsi/redjdocumentos.js"></script> require_once("clases/cls_documentos.php"); Funcionalidades del Sistema Para describir las funcionalidades del sistema a continuación se presentan las diferentes interfaces de RED con una breve explicación de las mismas: Interfaz de Usuario La interfaz de usuario es la forma en que los usuarios pueden comunicarse con un computador y comprende todos los puntos de contacto entre el usuario y el equipo, es la parte de una aplicación que el usuario ve y con la cual interactúa, ello incluye las ventanas con sus elementos: barra de desplazamiento, cajas de texto, combos, botones, menús, entre otros. Interfaz de Acceso al Sistema RED Esta interfaz es la primera que consigue el usuario al intentar ingresar al sistema a través de la cual debe registrarse para obtener acceso, es importante mencionar que los usuarios deben ser registrados mediante una cuenta administradora. En la figura Nº 113 se muestra el prototipo de la pantalla de acceso que le ofrecerá al usuario los campos necesarios para introducir sus datos de identificación requeridos para poder acceder al sistema, en donde: Usuario: es el nombre con el cual se identifica al usuario en el Sistema Contraseña: es la clave de seguridad perteneciente a cada usuario. Figura Nº 113 Interfaz de Inicio de Sesión al Sistema RED Una vez que el usuario ha introducido los datos de inicio de sesión correctamente el sistema activa la interfaz principal del sistema, donde encontrará el menú principal del sistema, el cual le permitirá acceder a cada uno de los módulos que componen la aplicación (Módulo Seguridad y módulo control de Documentos), dependiendo del perfil de usuario que posea. (Ver Fig. 6.1.) Interfaz General del Sistema RED Esta interfaz es la que le permitirá al usuario realizar las diversas opciones permitidas dependiendo de su privilegio una vez que obtenga el acceso al sistema, La figura Nº 114 muestra la pantalla general a través de la cual se enlazarán todas las interfaces disponibles Figura Nº 114 Interfaz de Principal del Sistema RED Menú para el Módulo Seguridad Es el menú principal del sistema para el usuario Perfil Administrador, le permite al usuario ver las diferentes acciones que puede realizar. Está compuesto por una serie de botones con el nombre de cada módulo y haciendo click sobre ellos mostrará las diferentes opciones que tienen cada uno. (Ver Fig. 114) Figura Nº 115 Interfaz del Menú del Módulo Seguridad A continuación serán mostradas las interfaces de RED para las opciones Sistemas, Cargos de Usuario, Perfil de Usuario y Usuarios, las cuales son manejadas directamente por el Administrador del Sistema. Figura Nº 116 Interfaz para Sistemas (Selección de menús, opciones y botones) Figura Nº 117 Interfaz de Perfiles de Usuarios Figura Nº 118 Interfaz de Cargos de Usuarios Figura Nº 119 Interfaz de Usuarios Figura Nº 120 Interfaz de Salida del Sistema Menú para el Módulo Control de Documentos Es el módulo que podrá manejar cualquier usuario debidamente autorizado. A continuación serán presentadas las interfaces de RED para los menús Definiciones, Procesos y Reportes con sus debidas opciones y botones: Figura Nº 121 Interfaz para el Usuario del Menú Definiciones Figura Nº 122 Interfaz para el Usuario del Menú Procesos Figura Nº 123 Interfaz para el Usuario del Menú Reportes Luego de haber definido los diferentes menús que puede manejar el usuario en el sistema, mostraremos las interfaces de cada una de las opciones que aparecen en pantalla. Figura Nº 124 Interfaz para la Inserción, Eliminación, Modificación y Búsqueda de Estados Figura Nº 125 Interfaz de Búsqueda de un Estado Figura Nº 126 Interfaz de Inserción, Modificación, Eliminación y Búsqueda de un Tipo de Documento Figura Nº 127 Interfaz de Búsqueda de un Tipo de Documento Figura Nº 128 Interfaz de Inclusión, Eliminación, Modificación y Búsqueda de Entidades Figura Nº 129 Interfaz de Búsqueda de una Entidad Figura Nº 130 Interfaz de Inclusión, Eliminación, Modificación y Búsqueda para Tipo de Entidades Figura Nº 131 Interfaz de Búsqueda para Tipo de Entidades Figura Nº 132 Interfaz de Inserción, Eliminación, Modificación y Búsqueda de Archivo Figura Nº 133 Interfaz de Búsqueda de Archivos Figura Nº 134 Interfaz de Inserción, Eliminación, Modificación y Búsqueda de Documentos Figura Nº 135 Interfaz para Búsqueda de Documentos Figura Nº 136 Interfaz de Inserción, Eliminación, Modificación y Búsqueda de un Seguimiento Figura Nº 137 Interfaz de Búsqueda para el Seguimiento de Documentos Figura Nº 138 Interfaz para el Reporte Tipo de Entidades Figura Nº 139 Archivo PDF de Tipo de Entidades Figura Nº 140 Interfaz de Reporte de Tipos de Documentos Figura Nº 141 Archivo PDF de Tipos de Documentos Figura Nº 142 Interfaz de Reporte de Estados Figura Nº 143 Archivo PDF de Estados Figura Nº 144 Interfaz de Reporte de Entidades Figura Nº 145 Archivo PDF de Entidades Figura Nº 146 Interfaz de Reporte de Archivos Figura Nº 147 Archivo PDF de Archivos Figura Nº 148 Interfaz de Reporte de Documentos por medio de Descriptores CAPITULO V CONCLUSIONES Y RECOMENDACIONES A través de la presente investigación se logró el cumplimiento de los objetivos, llegando a las siguientes conclusiones: 1. Con la realización de este trabajo se logró establecer un modelo del negocio para la Unidad Académica del Centro Local Lara, con el fin de describir sus funciones, lográndose determinar los requerimientos sistémicos para solucionar el problema planteado sobre el registro y control de documentos enviados y recibidos de dicha unidad. 2. A someter este trabajo a las primeras pruebas por los usuarios principales del mismo, se pudo observar que lo requerido del sistema actual se vio reflejado en las funciones del sistema implantado. 3. En cuanto al modelado del sistema se puede concluir que existen vacíos en cuanto al uso explícito del modelado orientado a objeto, máxime cuando en nuestra carrera no vemos materias que nos den un aprendizaje apropiado de este tipo de modelado. 4. En cuanto a la implantación del sistema se logró realizar en las oficinas de computación del Centro Local Lara de la Universidad Nacional Abierta, observándose dos situaciones bien importantes: a. El Centro Local no posee equipos servidores adecuados para hacer una correcta implantación, sin embargo, gracias a la disposición de los profesores del área de sistemas y computación, lograron adecuar un equipo que fungiera como servidor. b. Para implantar este sistema requiere de unas condiciones básicas en cuanto a software que deben ser consideradas. Para la implantación inicial en el Centro Local Lara, no hubo problemas, para otros centros locales que requieran este sistema se debe hacer un manual de implantación, adjuntándoles los softwares necesarios para tal fin. 5. Al poner en marcha este sistema se logró facilitar el registro y control de documentos que se emiten y reciben en la unidad académica, teniendo como resultado principal, la ubicación efectiva de los mismos. Direccionándolos de acuerdo a motores de búsquedas que referencian los documentos en ubicaciones físicas determinadas. 6. El Sistema facilita la gestión administrativa del jefe de la unidad académica, ya que le permite conseguir documentos asociados a temas específicos, filtrándolos con el motor de búsqueda usando palabras claves y/o rangos de fechas. Por otra parte, recomendaciones: esta investigación se obtuvo las siguientes 1. Definir previamente la plataforma tecnológica donde se implantará el sistema, (Servidor e Intranet). 2. Pensar en un futuro, bajo el desarrollo de otro proyecto académico, la integración de este sistema en una base de datos única a nivel nacional. 3. Preparar un plan de adecuaciones y mejoras de este sistema con el uso de pasantes y/o personal adscrito a la unidad de computación. 4. Proponer estudiantes posibles graduandos, para que realicen proyectos como este, y dejen a nuestra alma mater, productos que mejoren sus procesos administrativos. 5. El sistema podrá ser usado en todos los centros locales de la Universidad Nacional Abierta, si así lo solicitasen. BIBLIOGRAFÍA 1. Álvarez G., (1997). “Web Seguro”. www.iec.csic.es/criptonomicon/web.html. 2. Bendahan M., (1997). “Proceso de Desarrollo de Software”. http://www.monografias.com/trabajos5/desof/desof.shtml. 3. Booch, G., (1996). “Análisis y Diseño Orientado a Objetos”, 2da edición. Ed. Addison-Wesley / Díaz de Santos, México. 4. Castillo P., (2004). “Páginas Web Estáticas vs. Páginas Web Dinámicas”. http://www.articulo.org/idx/15/2039/Negocios-en- Internet/article/Paginas-Web-Estaticas-vs-Paginas-Web-Dinamicas.html 5. CETTICO (Centro de Transferencia Tecnológica en Informática y Comunicaciones), (1997). "Enciclopedia de Informática y Comunicación Teleinformática", 1era edición, Editorial CULTURAL S.A., España. 6. Elmansri R. y Navathe S., (1994). "Fundamentos de Bases de Datos". Editorial Adison -Wesley Iberoamericana, España. 7. Enciclopedia Wikipedia,(2008). http://es.wikipedia.org/wiki/Desarrollo_de_software. 8. Galantón A. y Arocha O., (1999). “Modernización de los Sistemas Automatizados de Admisión, Inscripción de Estudiantes de Nuevo Ingreso y Validación de la Programación Académica del Núcleo de Anzoátegui de la Universidad de Oriente”, Trabajo de Grado de Ingeniería en Computación, Universidad de Oriente, Venezuela. 9. Guevara J., (1998). “Desarrollo e Implantación de los Servicios Académicos del Departamento de Computación y Sistemas, usando Tecnología WWW”, Trabajo de Grado de Ingeniería en Computación, Universidad de Oriente, Venezuela. 10. Jacobson I, Booch G, Rumbaugh J., (1999). “El Proceso Unificado de Desarrollo de Software”, Ed. Addison Wesley, México. 11. James R, Ivar J, Grody B., (2002). “El Lenguaje Unificado de Modelado. Manual de Referencia”, 1era edición, Editorial Prentice Hall, México. 12. Jesús T. y Kronos., (1997). “Sistemas de bases de datos y SGBD”. http://tramullas.com/documatica/2.html. 13. Kon M.,(1997). “El Software Libre”. http://www.monografias.com/trabajos12/elsoflib/elsoflib.shtml. 14. Larman C., (1999). "UML y patrones. Introducción al Análisis y Diseño Orientado a Objetos", 1era edición, Editorial Prentice Hall, España. 15. Marcias C y Orozco S. (sd), “Uso de UML en aplicaciones Web: páginas y relaciones”. http://www.milestone.com.mx/articulos/uso_de_uml_en_aplicaciones_w eb.htm 16. Marténez M., (2005). “Páginas Web Dinámicas”. http://www.mati.unam.mx/index.php?option=com_content&task=view&id =100&Itemid=50. 17. Molero A., (2001). “Diseño de la Intranet de la Escuela de Medicina de la Universidad de Oriente Núcleo de Anzoátegui”. Trabajo de Grado de Escuela de Medicina, Universidad de Oriente, Venezuela. 18. Montes B. y Navarro A, (2002). “Estudio de la Aplicación de UML en el Modelado de Sistemas Organizacionales Inteligentes”. Trabajo de Grado Ingeniería de Sistemas, Universidad de Oriente, Venezuela. 19. Orallo E., (2007). “El lenguaje Unificado de Modelado (UML)”. http://www.disca.upv.es/enheror/pdf/ActaUML.PDF 20. Puglieser I., (1995). “Sistema de Gestión de Datos para el Departamento de Compras del Núcleo Anzoátegui de la Universidad de Oriente”, Trabajo de Grado de Ingeniería en Computación, Universidad de Oriente, Venezuela. 21. Reyes A., (2005). “Conceptos y principios orientado a objetos”. http://www.elguille.info/colabora/NET2005/Percynet_Conceptosyprincipi osorientadoaobjetos.htm. 22. Tanenbaum A., (1997)."Redes de Computadoras". 3era edición, Editorial Prentice Hall, México. 23. Valle J., (2005). "Definición Modelo Cliente Servidor" .http://www.monografias.com/trabajos24/arquitectura-clienteservidor/arquitectura-cliente-servidor.shtml. ANEXOS ANEXO Nº 1: CODIGO FUENTE DE LA OPCION DOCUMENTOS Reda_documentos.php <? require_once("conaseguridad.php"); $acc_codopc="24"; require_once("conaseguridadacceso.php"); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Documentos</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link href="css/tablas.css" rel="stylesheet" type="text/css"> <link href="css/ventanas.css" rel="stylesheet" type="text/css"> <link href="css/general.css" rel="stylesheet" type="text/css"> <link href="css/datepickercontrol.css" rel="stylesheet" type="text/css"> </head> <body leftmargin="0" topmargin="0"> <form method="post" name="form1"> <script language="JavaScript" src="js/menu.js"></script> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="center"> <table width="778" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <? require_once("conasuperior.php"); ?> </td> </tr> <tr> <td>&nbsp; </td> </tr> <tr> <td> <table width="708" border="0" class="formato-blanco" align="center"> <tr class="titulo-pagina"> cellpadding="0" cellspacing="0" <td width="719" height="22" class="titulo-pagina">DOCUMENTOS</td> </tr> </table> </td> </tr> <tr> <td>&nbsp; </td> </tr> <tr> <td> <table width="650" height="138" border="0" align="center" cellpadding="0" cellspacing="0" class="formato-blanco"> <tr> <td><p>&nbsp;</p> <table width="600" border="0" cellpadding="0" class="formato-blanco" align="center"> <tr class="titulo-nuevo"> <td height="22" colspan="3">Datos de los Documentos </td> </tr> <tr> cellspacing="0" <td width="136" height="22">&nbsp;</td> <td width="398" height="20"><div align="left"></div></td> <td width="64" height="20">&nbsp; </td> </tr> <tr> <td width="136" height="22"><div align="right">C&oacute;digo&nbsp;</div></td> <td width="398" height="20"><div align="left"> <input name="txtCOD_DOCU" type="text" id="txtCOD_DOCU" onBlur="buscarperderfocoCOD_DOCU()" onKeyDown="buscarenterCOD_DOCU(event)" maxlength="10"> <a href="javascript: catalogo();"><img src="imagenes/botbuscar.gif" width="80" height="20" border="0"></a><a href="javascript: nuevo();"><img src="imagenes/botnuevo.gif" width="80" border="0"></a></div></td> <td width="64" height="20">&nbsp; </td> </tr> <tr> <td height="22"><div align="right">Tipo de Documento</div></td> <td height="20"> <select name="cmbCOD_TI_DOC" id="cmbCOD_TI_DOC"> <option value="-">Seleccione Uno</option> height="20" <? require_once("clases/clstipo_documento.php"); $objtc=new clstipo_documento(); $objtc->llenarcomboCOD_TI_DOC(); ?> </select> </td> <td height="20">&nbsp;</td> </tr> <tr> <td width="136" height="22"><div align="right">Fecha de Emisi&oacute;n&nbsp;</div></td> <td width="398" height="20"><div align="left"> <input name="txtFEC_ORI_DOCU" type="text" id="txtFEC_ORI_DOCU" datepicker="true"></div></td> <td height="20">&nbsp;</td> </tr> <tr> <td height="22"><div align="right">Fecha de Recepcion&nbsp;</div></td> <td width="398" height="20"><div align="left"> <input name="txtFEC_REC_DOCU" type="text" id="txtFEC_REC_DOCU" datepicker="true"> </div></td> <td height="20">&nbsp;</td> </tr> <tr> <td height="22"><div align="right">Descripcion del Documento</div></td> <td height="20"><textarea name="txtDESCRI_DOCU" cols="40" rows="4" id="txtDESCRI_DOCU" onChange="frmamayusculas(this)"></textarea></td> <td height="20">&nbsp;</td> </tr> <tr> <td height="22"><div align="right">Resumen del Documento</div></td> <td height="20"><textarea name="txtRESU_DOCU" cols="40" rows="4" id="txtRESU_DOCU" onChange="frmamayusculas(this)"></textarea></td> <td height="20">&nbsp;</td> </tr> <tr> <td height="22"><div align="right">Asunto del Documento</div></td> <td height="20"><input id="txtASUN_DOCU" name="txtASUN_DOCU" size="60" onChange="frmamayusculas(this)"></td> type="text" maxlength="60" <td height="20">&nbsp;</td> </tr> <tr> <td height="22"><div align="right">Archivo</div></td> <td height="20"> <select name="cmbCOD_ARCHI" id="cmbCOD_ARCHI"> <option value="-">Seleccione Uno</option> <? require_once("clases/clsarchivador.php"); $objtc=new clsarchivador(); $objtc->llenarcomboARCHI(); ?> </select> </td> <td height="20">&nbsp;</td> </tr> <tr> <td height="22"><div align="right">Ubicaci&oacute;n del Documento</div></td> <td height="20"><textarea name="txtUBI_DOCU" cols="40" rows="3" id="txtUBI_DOCU" onChange="frmamayusculas(this)"></textarea></td> <td height="20">&nbsp;</td> </tr> <tr> <td height="22"><div align="right"> Entidad que Recibe</div></td> <td height="20"><input name="txtCO_ENTIDAD_RECIBE" id="txtCO_ENTIDAD_RECIBE" type="text" onChange="frmamayusculas(this)" size="12"> <input type="button" name="button2" id="button2" value="..." onClick="catalogoCO_ENTIDAD_RECIBE()"></td> <td height="20">&nbsp;</td> </tr> <tr> <td height="22"><div align="right"> Entidad que Emite</div></td> <td height="20"><input name="txtCO_ENTIDAD_EMITE" type="text" id="txtCO_ENTIDAD_EMITE" onChange="frmamayusculas(this)" size="12"> <input type="button" name="button" id="button" value="..." onClick="catalogoCO_ENTIDAD_EMITE()"></td> <td height="20">&nbsp;</td> </tr> <tr> <td height="22"><div align="right">Persona que lo Emite</div></td> <td height="20"><input name="txtNOM_PERS_EMI" id="txtNOM_PERS_EMI" size="40" type="text" maxlength="40" onChange="frmamayusculas(this)"></td> <td height="20">&nbsp;</td> </tr> <tr> <td height="22"><div align="right">Status del Documento</div></td> <td height="20"><div align="left"> <select name="cmbSTAT_TI_DOCU" id="cmbSTAT_TI_DOCU"> <option value="-">Seleccionar uno</option> <option value="EMISION">EMISION</option> <option value="RECEPCION">RECEPCION</option> </select></div></td> <td height="20">&nbsp;</td> </tr> <tr> <td height="22"><div align="right">Numero del Documento</div></td> <td height="20"><input id="txtNUM_DOCU" name="txtNUM_DOCU" size="20" onChange="frmamayusculas(this)"></td> <td height="20">&nbsp;</td> </tr> type="integer" maxlength="40" <tr> <td height="22"><div align="right">Segumiento</div></td> <td height="20"><div align="left"> <select name="cmbSTAT_SEGUI" id="cmbSTAT_SEGUI"> <option value="NO">NO</option> <option value="SI">SI</option> </select></div></td> <td height="20">&nbsp;</td> </tr> </table> <p>&nbsp; </p> <br> <? require_once("seghbotonesimec.php"); acc_verbotonesimec($acc_codsis,$_SESSION["logusu"],"49","50","51" ); ?> <p align="center">&nbsp; </p> <p>&nbsp; </p> <p>&nbsp;</p></td> </tr> </table> </td> </tr> <tr> <td>&nbsp; </td> </tr> </table> </td> </tr> </table> <input type="hidden" name="txtoperacion" id="txtoperacion"> <input type="hidden" name="txtfila" id="txtfila"> <input type="hidden" name="txtCOD_DOCUC" id="txtCOD_DOCUC"> </form> </body> <script language="javascript"> function buscarperderfocoCOD_DOCU() { f=document.form1; if (f.txtCOD_DOCU.value!="") { f f.txtCOD_DOCU.value=completarcerosizquierda(f.txtCOD_DOCU.value,10); f.txtoperacion.value="buscar"; ejecutar(); } } function buscarenterCOD_DOCU(e) { f=document.form1; if (e.keyCode==13) { f.cmbCOD_TI_DOC.focus(); f.txtFEC_ORI_DOCU.focus(); f.txtFEC_REC_DOCU.focus(); f.txtDESCRI_DOCU.focus(); f.txtRESU_DOCU.focus(); f.txtASUN_DOCU.focus(); f.cmbCOD_ARCHI.focus(); f.txtDES_UBI_ARCHI.focus(); f.txtCO_ENTIDAD_EMITE.focus(); f.txtCO_ENTIDAD_RECIBE.focus(); f.txtNOM_PERS_EMI.focus(); f.cmbSTAT_TI_DOCU.focus(); f.txtNUM_DOCU.focus(); f.cmbSTAT_SEGUI.focus(); } } function incluir() { f=document.form1; if (camposvalidos()) { f.txtoperacion.value="incluir"; ejecutar(); } } function modificar() { f=document.form1; if (camposvalidos()) { f.txtoperacion.value="modificar"; ejecutar(); } } function eliminar() { f=document.form1; if (confirm("¿Está seguro de eliminar este registro?")) { f.txtoperacion.value="eliminar"; ejecutar(); } } function camposvalidos() { valido=false; f=document.form1; if (f.txtCOD_DOCU.value=="") { alert("El código del Archivo no puede estar en blanco"); f.txtCOD_DOCU.focus(); } else if (f.cmbCOD_TI_DOC.value=="") { alert("El Tipo de Documento no puede estar en blanco"); f.cmbCOD_TI_DOC.focus(); } else if (f.txtFEC_ORI_DOCU.value=="") { alert("La Fecha de Transcripcion no puede estar en blanco"); f.txtFEC_ORI_DOCU.focus(); } else if (f.txtFEC_REC_DOCU.value=="") { alert("La Fecha de Recepcion no puede estar en blanco"); f.txtFEC_REC_DOCU.focus(); } else if (f.txtDESCRI_DOCU.value=="") { alert("La Descripcion del Documento no puede estar en blanco"); f.txtDESCRI_DOCU.focus(); } else if (f.txtASUN_DOCU.value=="") { alert("El Asunto del Documento no puede estar en blanco"); f.txtASUN_DOCU.focus(); } else if (f.cmbCOD_ARCHI.value=="") { alert("El Codigo de Archivo no puede estar en blanco"); f.cmbCOD_ARCHI.focus(); } else if (f.txtUBI_DOCU.value=="") { alert("La Ubicación del Achivo no puede estar en blanco"); f.txtUBI_DOCU.focus(); } else if (f.txtCO_ENTIDAD_EMITE.value=="") { alert("La Entidad del Documento no puede estar en blanco"); f.txtCO_ENTIDAD_EMITE.focus(); } else if (f.txtCO_ENTIDAD_RECIBE.value=="") { alert("La Entidad del Documento no puede estar en blanco"); f.txtCO_ENTIDAD_RECIBE.focus(); } else if (f.txtNOM_PERS_EMI.value=="") { alert("La Persona que lo emite no puede estar en blanco"); f.txtNOM_PERS_EMI.focus(); } else if (f.cmbSTAT_TI_DOCU.value=="-") { alert("Debe seleccionar el tipo de documento"); f.cmbSTAT_TI_DOCU.focus(); } else if (f.txtNUM_DOCU.value=="") { alert("El Numero del Documento no puede estar en blanco"); f.txtNUM_DOCU.focus(); } else if (f.cmbSTAT_SEGUI.value=="") { alert("El Status del Seguimiento del Documento no puede estar en blanco"); f.cmbSTAT_SEGUI.focus(); } else { valido=true; } return valido; } function catalogo() { pagina="catalogo.php?txtarchivo=clscatdocumentos"; window.open(pagina,"catalogo","menubar=no,toolbar=no,scrollbars=ye s,width=670,height=400,left=50,top=50,resizable=yes,location=no"); } function cerrarcatalogoCOD_DOCU() { window.setTimeout("buscarperderfocoCOD_DOCU()",500); } function catalogoCO_ENTIDAD_EMITE() { pagina="catalogo.php?txtarchivo=clscatentidadesemite"; window.open(pagina,"catalogo","menubar=no,toolbar=no,scrollbars=ye s,width=670,height=400,left=50,top=50,resizable=yes,location=no"); } function cerrarcatalogoCO_ENTIDAD_EMITE() { window.setTimeout("buscarperderfocoCO_ENTIDAD_EMITE()",500); } function buscarperderfocoCO_ENTIDAD_EMITE() { } function catalogoCO_ENTIDAD_RECIBE() { pagina="catalogo.php?txtarchivo=clscatentidadesrecibe"; window.open(pagina,"catalogo","menubar=no,toolbar=no,scrollbars=ye s,width=670,height=400,left=50,top=50,resizable=yes,location=no"); } function cerrarcatalogoCO_ENTIDAD_RECIBE() { window.setTimeout("buscarperderfocoCO_ENTIDAD_RECIBE()",500); } function buscarperderfocoCO_ENTIDAD_RECIBE() { } function nuevo() { f=document.form1; limpiar(); f.txtCOD_DOCU.value="0"; f.txtCOD_DOCU.focus(); f.cmbCOD_TI_DOC.focus(); f.txtFEC_ORI_DOCU.focus(); f.txtFEC_REC_DOCU.focus(); f.txtDESCRI_DOCU.focus(); f.txtRESU_DOCU.focus(); f.txtASUN_DOCU.focus(); f.txtCOD_ARCHI.focus(); f.cmbUBI_DOCU.focus(); f.txtCO_ENTIDAD_EMITE.focus(); f.txtCO_ENTIDAD_RECIBE.focus(); f.txtNOM_PERS_EMI.focus(); f.cmbSTAT_TI_DOCU.focus(); f.txtNUM_DOCU.focus(); f.cmbSTAT_SEGUI.focus(); } </script> <script language="JavaScript" src="js/validacionestecla.js"></script> <script language="JavaScript" src="js/validaciones.js"></script> <script language="JavaScript" src="js/funciones.js"></script> <script language="javascript" src="js/comun.js"></script> <script language="javascript" src="js/botones.js"></script> <script language="javascript" src="jsi/redjdocumentos.js"></script> <script language="javascript" src="js/ajax.js"></script> <script language="javascript" src="js/md5.js"></script> <script language="javascript" src="js/datepickercontrol.js"></script> </html> Redn_documentos.php <? session_start(); require_once("clases/cls_documentos.php"); require_once("clases/clssucesos.php"); $obj=new cls_documentos(); $objsucesos=new clssucesos(); function recibir() { global $obj; $obj->COD_DOCU=utf8_decode($_POST["txtCOD_DOCU"]); $obj->COD_TI_DOC=utf8_decode($_POST["cmbCOD_TI_DOC"]); $obj>FEC_ORI_DOCU=utf8_decode($_POST["txtFEC_ORI_DOCU"]); $obj>FEC_REC_DOCU=utf8_decode($_POST["txtFEC_REC_DOCU"]); $obj->DESCRI_DOCU=utf8_decode($_POST["txtDESCRI_DOCU"]); $obj->RESU_DOCU=utf8_decode($_POST["txtRESU_DOCU"]); $obj->ASUN_DOCU=utf8_decode($_POST["txtASUN_DOCU"]); $obj->COD_ARCHI=utf8_decode($_POST["cmbCOD_ARCHI"]); $obj->UBI_DOCU=utf8_decode($_POST["txtUBI_DOCU"]); $obj>CO_ENTIDAD_EMITE=utf8_decode($_POST["txtCO_ENTIDAD_EMITE"]); $obj>CO_ENTIDAD_RECIBE=utf8_decode($_POST["txtCO_ENTIDAD_RECIBE" ]); $obj>NOM_PERS_EMI=utf8_decode($_POST["txtNOM_PERS_EMI"]); $obj>STAT_TI_DOCU=utf8_decode($_POST["cmbSTAT_TI_DOCU"]); $obj->NUM_DOCU=utf8_decode($_POST["txtNUM_DOCU"]); $obj->STAT_SEGUI=utf8_decode($_POST["cmbSTAT_SEGUI"]); } $operacion=""; $operacion=utf8_decode($_POST["txtoperacion"]); $respuestaxml="@@@incorrecto@@@"; if ($operacion=="buscar") { $encontrado="no"; $obj->COD_DOCU=utf8_decode($_POST["txtCOD_DOCU"]); $enc=$obj->buscar(); if ($enc) { $encontrado="si"; } $respuestaxml=$obj->toxml($operacion,$encontrado); } if ($operacion=="buscar COD_DOC_SEGUI") { $encontrado="no"; $obj->COD_DOCU=utf8_decode($_POST["txtCOD_DOC_SEGUI"]); $enc=$obj->buscar(); if ($enc) { $encontrado="si"; } $respuestaxml=$obj->toxml($operacion,$encontrado); } if ($operacion=="incluir") { $exitoso="no"; recibir(); $n=$obj->incluir(); if ($n>0) { $exitoso="si"; $objsucesos->registrar($_SESSION["logusu"],"Registro capitulo ".$obj->COD_DOCU); } else if ($n<0) { $exitoso="error"; } $respuestaxml = '<?xml version="1.0" standalone="yes"?><capitulos><exitoso>'.$exitoso.'</exitoso><operacion>'.$ operacion.'</operacion><COD_DOCU>'.$obj>COD_DOCU.'</COD_DOCU></capitulos>'; } if ($operacion=="modificar") { $exitoso="no"; recibir(); $n=$obj->modificar(); if ($n>0) { $exitoso="si"; $objsucesos->registrar($_SESSION["logusu"],"Actualizo capitulo ".$obj->COD_DOCU); } else if ($n<0) { $exitoso="error"; } $respuestaxml = '<?xml version="1.0" standalone="yes"?><capitulos><exitoso>'.$exitoso.'</exitoso><operacion>'.$ operacion.'</operacion><COD_DOCU>'.$obj>COD_DOCU.'</COD_DOCU></capitulos>'; } if ($operacion=="eliminar") { $obj->COD_DOCU=utf8_decode($_POST["txtCOD_DOCU"]); $exitoso="no"; $n=$obj->eliminar(); if ($n>0) { $exitoso="si"; $objsucesos->registrar($_SESSION["logusu"],"Elimino capitulo ".$obj->COD_DOCU); } else if ($n<0) { $exitoso="error"; } $respuestaxml = '<?xml version="1.0" standalone="yes"?><capitulos><exitoso>'.$exitoso.'</exitoso><operacion>'.$ operacion.'</operacion><COD_DOCU>'.$obj>COD_DOCU.'</COD_DOCU></capitulos>'; } header("Content-Type: text/xml;charset=UTF-8"); print utf8_encode($respuestaxml); ?> Cls_documentos.php <? require_once("clsbd.php"); require_once("clscamposvacios.php"); require_once("clscombo.php"); require_once("clsfecha.php"); require_once("clsentidades.php"); require_once("clstipo_documento.php"); class cls_documentos { var $objbd; var $COD_DOCU=""; var $COD_TI_DOC=""; var $FEC_ORI_DOCU=""; var $FEC_REC_DOCU=""; var $DESCRI_DOCU=""; var $RESU_DOCU=""; var $ASUN_DOCU=""; var $COD_ARCHI=""; var $UBI_DOCU=""; var $CO_ENTIDAD_EMITE=""; var $CO_ENTIDAD_RECIBE=""; var $NOM_PERS_EMI=""; var $STAT_TI_DOCU=""; var $NUM_DOCU=""; var $STAT_SEGUI=""; var $objCO_ENTIDAD_EMITE; var $objCOD_TI_DOC; function cls_documentos() { $this->objbd=new clsbd(); $this->objCO_ENTIDAD_EMITE=new clsentidades(); $this->objCOD_TI_DOC=new clstipo_documento(); } function buscar() { $enc=false; $objbd=$this->objbd; $sql="select redpdocumentos.*,date_format(FEC_ORI_DOCU,'%d/%m/%Y') as FECHA_ORI_DOCU,date_format(FEC_REC_DOCU,'%d/%m/%Y') as FECHA_REC_DOCU from redpdocumentos where (COD_DOCU='$this>COD_DOCU')"; $tb=$objbd->select($sql); if ($row=$objbd->next($tb)) { $enc=true; $this->COD_DOCU=$row["COD_DOCU"]; $this->COD_TI_DOC=$row["COD_TI_DOC"]; $this->objCOD_TI_DOC->COD_TI_DOC=$this->COD_TI_DOC; $this->objCOD_TI_DOC->buscar(); $this->FEC_ORI_DOCU=$row["FECHA_ORI_DOCU"]; $this->FEC_REC_DOCU=$row["FECHA_REC_DOCU"]; $this->DESCRI_DOCU=$row["DESCRI_DOCU"]; $this->RESU_DOCU=$row["RESU_DOCU"]; $this->ASUN_DOCU=$row["ASUN_DOCU"]; $this->COD_ARCHI=$row["COD_ARCHI"]; $this->UBI_DOCU=$row["UBI_DOCU"]; $this->CO_ENTIDAD_EMITE=$row["CO_ENTIDAD_EMITE"]; $this->objCO_ENTIDAD_EMITE->CO_ENTIDAD=$this>CO_ENTIDAD_EMITE; $this->objCO_ENTIDAD_EMITE->buscar(); $this>CO_ENTIDAD_RECIBE=$row["CO_ENTIDAD_RECIBE"]; $this->NOM_PERS_EMI=$row["NOM_PERS_EMI"]; $this->STAT_TI_DOCU=$row["STAT_TI_DOCU"]; $this->NUM_DOCU=$row["NUM_DOCU"]; $this->STAT_SEGUI=$row["STAT_SEGUI"]; } return $enc; } function incluir() { $objbd=$this->objbd; $objfecha=new clsfecha(); $this->FEC_ORI_DOCU=$objfecha->getfechaparagestor($this>FEC_ORI_DOCU); $this->FEC_REC_DOCU=$objfecha->getfechaparagestor($this>FEC_REC_DOCU); $this->COD_DOCU=$objbd>generarcodigo("redpdocumentos","COD_DOCU",10); $sql="insert into redpdocumentos(COD_DOCU,COD_TI_DOC,FEC_ORI_DOCU,FEC_REC_ DOCU,DESCRI_DOCU,RESU_DOCU,ASUN_DOCU,COD_ARCHI,UBI_DO CU,CO_ENTIDAD_EMITE,CO_ENTIDAD_RECIBE,NOM_PERS_EMI,STAT_ TI_DOCU,NUM_DOCU,STAT_SEGUI) values('$this->COD_DOCU','$this- >COD_TI_DOC',$this->FEC_ORI_DOCU,$this->FEC_REC_DOCU,'$this>DESCRI_DOCU','$this->RESU_DOCU','$this->ASUN_DOCU','$this>COD_ARCHI','$this->UBI_DOCU','$this->CO_ENTIDAD_EMITE','$this- >CO_ENTIDAD_RECIBE','$this->NOM_PERS_EMI','$this>STAT_TI_DOCU','$this->NUM_DOCU','$this->STAT_SEGUI')"; //print $sql; $n=$objbd->execute($sql); return $n; } function modificar() { $objbd=$this->objbd; $objfecha=new clsfecha(); $this->FEC_ORI_DOCU=$objfecha->getfechaparagestor($this>FEC_ORI_DOCU); $this->FEC_REC_DOCU=$objfecha->getfechaparagestor($this>FEC_REC_DOCU); $sql="update redpdocumentos set COD_DOCU='$this- >COD_DOCU',COD_TI_DOC='$this>COD_TI_DOC',FEC_ORI_DOCU=$this>FEC_ORI_DOCU,FEC_REC_DOCU=$this>FEC_REC_DOCU,DESCRI_DOCU='$this>DESCRI_DOCU',RESU_DOCU='$this>RESU_DOCU',ASUN_DOCU='$this->ASUN_DOCU',COD_ARCHI='$this>COD_ARCHI',UBI_DOCU='$this>UBI_DOCU',CO_ENTIDAD_EMITE='$this>CO_ENTIDAD_EMITE',CO_ENTIDAD_RECIBE='$this>CO_ENTIDAD_RECIBE',NOM_PERS_EMI='$this- >NOM_PERS_EMI',STAT_TI_DOCU='$this>STAT_TI_DOCU',NUM_DOCU='$this->NUM_DOCU',STAT_SEGUI='$this>STAT_SEGUI' WHERE (COD_DOCU='$this->COD_DOCU')"; $n=$objbd->execute($sql); return $n; } function eliminar() { $n=0; $objbd=$this->objbd; $sql="delete from redpdocumentos WHERE (COD_DOCU='$this>COD_DOCU')"; $n=$objbd->execute($sql); return $n; } function toxml($operacion,$encontrado) { $objcamposvacios=new clscamposvacios(); $respuestaxml = "<?xml version=\"1.0\" standalone=\"yes\"?><documentos><encontrado>$encontrado</encontrado> <operacion>$operacion</operacion><COD_DOCU>$this>COD_DOCU</COD_DOCU><COD_TI_DOC>$this>COD_TI_DOC</COD_TI_DOC><NOM_TI_DOC>".$this->objCOD_TI_DOC- >NOM_TI_DOC."</NOM_TI_DOC><FEC_ORI_DOCU>$this>FEC_ORI_DOCU</FEC_ORI_DOCU><FEC_REC_DOCU>$this>FEC_REC_DOCU</FEC_REC_DOCU><DESCRI_DOCU>$this>DESCRI_DOCU</DESCRI_DOCU><RESU_DOCU>$this>RESU_DOCU</RESU_DOCU><ASUN_DOCU>$this>ASUN_DOCU</ASUN_DOCU><COD_ARCHI>$this>COD_ARCHI</COD_ARCHI><UBI_DOCU>$this>UBI_DOCU</UBI_DOCU><CO_ENTIDAD_EMITE>$this>CO_ENTIDAD_EMITE</CO_ENTIDAD_EMITE><NOM_ENTIDAD_EMITE> ".$this->objCO_ENTIDAD_EMITE>NOM_ENTIDAD."</NOM_ENTIDAD_EMITE><CO_ENTIDAD_RECIBE>$thi s>CO_ENTIDAD_RECIBE</CO_ENTIDAD_RECIBE><NOM_PERS_EMI>$thi s->NOM_PERS_EMI</NOM_PERS_EMI><STAT_TI_DOCU>$this>STAT_TI_DOCU</STAT_TI_DOCU><NUM_DOCU>$this>NUM_DOCU</NUM_DOCU><STAT_SEGUI>$this>STAT_SEGUI</STAT_SEGUI></documentos>"; $respuestaxml=$objcamposvacios->evitarvacios($respuestaxml); return $respuestaxml; } function toxmldet($operacion,$encontrado,$fila) { $objcamposvacios=new clscamposvacios(); $respuestaxml = "<?xml version=\"1.0\" standalone=\"yes\"?><documentos><encontrado>$encontrado</encontrado> <operacion>$operacion</operacion><COD_DOCUC>$this- >COD_DOCU</COD_DOCUC><COD_TI_DOCC>$this>COD_TI_DOC</COD_TI_DOCC><FEC_ORI_DOCUC>$this>FEC_ORI_DOCU</FEC_ORI_DOCUC><FEC_REC_DOCUC>$this>FEC_REC_DOCU</FEC_REC_DOCUC><DESCRI_DOCUC>$this>DESCRI_DOCU</DESCRI_DOCUC><RESU_DOCUC>$this>RESU_DOCU</RESU_DOCUC><ASUN_DOCUC>$this>ASUN_DOCU</ASUN_DOCUC><COD_ARCHIC>$this>COD_ARCHI</COD_ARCHIC><UBI_DOCUC>$this>UBI_DOCU</UBI_DOCUC><CO_ENTIDAD_EMITEC>$this>CO_ENTIDAD_EMITE</CO_ENTIDAD_EMITEC><CO_ENTIDAD_RECIBE C>$this>CO_ENTIDAD_RECIBE</CO_ENTIDAD_RECIBEC><NOM_PERS_EMIC> $this->NOM_PERS_EMI</NOM_PERS_EMIC><STAT_TI_DOCUC>$this>STAT_TI_DOCU</STAT_TI_DOCUC><NUM_DOCUC>$this>NUM_DOCU</NUM_DOCUC><STAT_SEGUIC>$this>STAT_SEGUI</STAT_SEGUIC><fila>$fila</fila></documentos>"; $respuestaxml=$objcamposvacios->evitarvacios($respuestaxml); return $respuestaxml; } function llenarcomboSEGUI() { $objcombo=new clscombo(); $sql="select COD_DOCU,NUM_DOCU from redpdocumentos order by NUM_DOCU"; $objcombo->llenarcombosql($sql,"COD_DOCU","NUM_DOCU",""); } } ?> Redjdocumentos.js var objfrm=new Array(); objfrm[0]="txtoperacion"; objfrm[1]="txtCOD_DOCU"; objfrm[2]="cmbCOD_TI_DOC"; objfrm[3]="txtFEC_ORI_DOCU"; objfrm[4]="txtFEC_REC_DOCU"; objfrm[5]="txtDESCRI_DOCU"; objfrm[6]="txtRESU_DOCU"; objfrm[7]="txtASUN_DOCU"; objfrm[8]="cmbCOD_ARCHI"; objfrm[9]="txtUBI_DOCU"; objfrm[10]="txtCO_ENTIDAD_EMITE"; objfrm[11]="txtNOM_PERS_EMI"; objfrm[12]="cmbSTAT_TI_DOCU"; objfrm[13]="txtNUM_DOCU"; objfrm[14]="cmbSTAT_SEGUI"; objfrm[15]="txtCO_ENTIDAD_RECIBE"; var buscarxml=new Array(); buscarxml[0]="operacion"; buscarxml[1]="COD_DOCU"; buscarxml[2]="COD_TI_DOC"; buscarxml[3]="FEC_ORI_DOCU"; buscarxml[4]="FEC_REC_DOCU"; buscarxml[5]="DESCRI_DOCU"; buscarxml[6]="RESU_DOCU"; buscarxml[7]="ASUN_DOCU"; buscarxml[8]="COD_ARCHI"; buscarxml[9]="UBI_DOCU"; buscarxml[10]="CO_ENTIDAD_EMITE"; buscarxml[11]="NOM_PERS_EMI"; buscarxml[12]="STAT_TI_DOCU"; buscarxml[13]="NUM_DOCU"; buscarxml[14]="STAT_SEGUI"; buscarxml[15]="CO_ENTIDAD_RECIBE"; var ncampos=16; function ejecutar() { iralservidor("redn_documentos.php",objfrm,ncampos); } function respuestaServidor() { f=document.form1; if (http_request.readyState == 4) { if (http_request.status == 200) { //alert(http_request.responseText); //f.txterror.value=http_request.responseText; if (http_request.responseText.indexOf('@@@incorrecto@@@') == -1) { var xmlDocument = http_request.responseXML; var operacion = xmlDocument.getElementsByTagName('operacion').item(0).firstChild.data; if (operacion=="buscar") { aux=f.txtCOD_DOCU.value; limpiar(); f.txtCOD_DOCU.value=aux; var encontrado = xmlDocument.getElementsByTagName('encontrado').item(0).firstChild.data; if (encontrado=="si") { f=document.form1; for (i=0;i<ncampos;i++) { var data xmlDocument.getElementsByTagName(buscarxml[i]).item(0).firstChild.data; f.elements[objfrm[i]].value=limpiarvacios(data); = } botonesModificar(); } else { botonesIncluir(); f.elements["txtCOD_DOCU"].value="0"; } } else if (operacion=="incluir") { var exitoso = xmlDocument.getElementsByTagName('exitoso').item(0).firstChild.data; var COD_DOCU = xmlDocument.getElementsByTagName('COD_DOCU').item(0).firstChild.data; alert("Registro Incluido "+COD_DOCU); limpiar(); f.txtCOD_DOCU.focus(); } else if (operacion=="modificar") { var exitoso = xmlDocument.getElementsByTagName('exitoso').item(0).firstChild.data; mensajemodificar(exitoso); limpiar(); f.txtCOD_DOCU.focus(); } else if (operacion=="eliminar") { var exitoso xmlDocument.getElementsByTagName('exitoso').item(0).firstChild.data; mensajeeliminar(exitoso); limpiar(); f.txtCOD_DOCU.focus(); } isWorking = false; = } } else { alert('Hay un problema con la solicitud de datos'); } } } function limpiar() { limpiarbotones(); f=document.form1; f.txtCOD_DOCU.value=""; f.cmbCOD_TI_DOC.selectedIndex=0; f.txtFEC_ORI_DOCU.value=""; f.txtFEC_REC_DOCU.value=""; f.txtDESCRI_DOCU.value=""; f.txtRESU_DOCU.value=""; f.txtASUN_DOCU.value=""; f.cmbCOD_ARCHI.selectedIndex=0; f.txtUBI_DOCU.value=""; f.txtCO_ENTIDAD_EMITE.value=""; f.txtCO_ENTIDAD_RECIBE.value=""; f.txtNOM_PERS_EMI.value=""; f.cmbSTAT_TI_DOCU.selectedIndex=0; f.txtNUM_DOCU.value=""; f.cmbSTAT_SEGUI.selectedIndex=0; } Redr_documentos.php <? require_once("conaseguridad.php"); $acc_codopc="46"; require_once("conaseguridadacceso.php"); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Documentos</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link href="css/tablas.css" rel="stylesheet" type="text/css"> <link href="css/ventanas.css" rel="stylesheet" type="text/css"> <link href="css/general.css" rel="stylesheet" type="text/css"> <link href="css/datepickercontrol.css" rel="stylesheet" type="text/css"> </head> <body leftmargin="0" topmargin="0"> <p>&nbsp;</p> <form method="post" name="form1"> <script language="JavaScript" src="js/menu.js"></script> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="center"> <table width="778" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <? require_once("conasuperior.php"); ?> </td> </tr> <tr> <td>&nbsp; </td> </tr> <tr> <td> <table width="708" border="0" cellpadding="0" cellspacing="0" class="formato-blanco" align="center"> <tr class="titulo-pagina"> <td width="719" height="22" class="titulo-pagina">DOCUMENTOS</td> </tr> </table> </td> </tr> <tr> <td>&nbsp; </td> </tr> <tr> <td> <table width="650" height="138" border="0" align="center" cellpadding="0" cellspacing="0" class="formato-blanco"> <tr> <td bgcolor="#CCCCCC"><p>&nbsp;</p> <table width="600" border="0" cellpadding="0" cellspacing="0" class="formato-blanco" align="center"> <tr class="titulo-nuevo"> <td height="22" colspan="3">Listado de Documentos Por:</td> </tr> <tr> <td height="22">&nbsp;</td> <td height="20">&nbsp;</td> <td height="20">&nbsp;</td> </tr> <tr> <td height="22">&nbsp;</td> <td height="20"><div align="right">Emisi&ograve;n Desde:</div></td> <td height="20"><input name="txtFEC_ORI_DOCU_DESDE" type="text" id="txtFEC_ORI_DOCU_DESDE" datepicker="true"></td> </tr> <tr> <td width="12" height="22">&nbsp;</td> <td width="191" height="20"><div align="right">Emisi&ograve;n Hasta:</div></td> <td width="395" height="20"><input name="txtFEC_ORI_DOCU_HASTA" type="text" id="txtFEC_ORI_DOCU_HASTA" datepicker="true"></td> </tr> <tr> <td height="22" colspan="3">&nbsp;</td> </tr> <tr> <td height="22">&nbsp;</td> <td height="20"><div align="right">Tipo de Documento</div></td> <td height="20"><select name="cmbCOD_TI_DOC" id="cmbCOD_TI_DOC"> <option value="-">---</option> <? require_once("clases/clstipo_documento.php"); $objtc=new clstipo_documento(); $objtc->llenarcomboCOD_TI_DOC(); ?> </select></td> </tr> <tr> <td height="22">&nbsp;</td> <td height="20">&nbsp;</td> <td height="20">&nbsp;</td> </tr> <tr> <td height="22">&nbsp;</td> <td height="20"><div align="right">Status del Documento</div></td> <td height="20"><select name="cmbSTAT_TI_DOCU" id="cmbSTAT_TI_DOCU"> <option value="-"> --- </option> <option value="EMISION">EMISION</option> <option value="RECEPCION">RECEPCION</option> </select></td> </tr> <tr> <td height="22" colspan="3">&nbsp;</td> </tr> <tr> <td height="22">&nbsp;</td> <td height="20"><div align="right">Entidad que Emite el Documento</div></td> <td height="20"><input name="txtCO_ENTIDAD_EMITE" type="text" id="txtCO_ENTIDAD_EMITE" onChange="frmamayusculas(this)" size="12"> <input type="button" name="button2" id="button2" value="..." onClick="catalogoCO_ENTIDAD_EMITE()"></td> </tr> <tr> <td height="22">&nbsp;</td> <td height="20">&nbsp;</td> <td height="20">&nbsp;</td> </tr> <tr> <td height="22">&nbsp;</td> <td height="20"><div align="right">Entidad que Recibe el Documento</div></td> <td height="20"><input name="txtCO_ENTIDAD_RECIBE" id="txtCO_ENTIDAD_RECIBE" size="12"> type="text" onChange="frmamayusculas(this)" <input type="button" name="button2" id="button2" value="..." onClick="catalogoCO_ENTIDAD_RECIBE()"></td> </tr> <tr> <td height="22" colspan="3">&nbsp;</td> </tr> <tr> <td height="22">&nbsp;</td> <td height="20"><div align="right">Palabra Clave</div></td> <td height="20"><a href="javascript: reporte();"> <input name="txtpalabra" maxlength="30"> </a></td> </tr> <tr> <td height="22">&nbsp;</td> <td height="20">&nbsp;</td> <td height="20">&nbsp;</td> </tr> <tr> <td height="22">&nbsp;</td> type="text" id="txtpalabra" size="30" <td height="20"><div align="right">Tipo de Entidad que Emite</div></td> <td height="20"><select name="cmbCOD_TI_ENTIDAD_EMITE" id="cmbCOD_TI_ENTIDAD_EMITE"> <option value="-">---</option> <? require_once("clases/clstipo_entidades.php"); $objCOD_TI_ENTI=new clstipo_entidades(); $objCOD_TI_ENTI->llenarcomboCOD_TI_ENTIDAD(); ?> </select></td> </tr> <tr> <td height="22">&nbsp;</td> <td height="20"><div align="right">Tipo de Entidad que Recibe</div></td> <td height="20"><select name="cmbCOD_TI_ENTIDAD_RECIBE" id="cmbCOD_TI_ENTIDAD_RECIBE"> <option value="-">---</option> <? require_once("clases/clstipo_entidades.php"); $objCOD_TI_ENTI=new clstipo_entidades(); $objCOD_TI_ENTI->llenarcomboCOD_TI_ENTIDAD(); ?> </select></td> </tr> <tr> <td height="22" colspan="3">&nbsp;</td> </tr> <tr> <td height="22">&nbsp;</td> <td height="20">&nbsp;</td> <td height="20">&nbsp;</td> </tr> <tr> <td height="22">&nbsp;</td> <td height="20"><div align="right">Status de la Entidad que Emite</div></td> <td height="20"><select name="cmbSTAT_ENTIDAD_EMITE" id="cmbSTAT_ENTIDAD_EMITE"> <option value="-">---</option> <option value="INTERNO UNA">INTERNO UNA</option> <option value="OFICINA INTERNA">OFICINA INTERNA</option> <option value="EXTERNO UNA">EXTERNO UNA</option> <option value="PROFESOR UNA">PROFESOR UNA</option> <option value="ESTUDIANTE UNA">ESTUDIANTE UNA</option> </select> <a href="javascript: reporte();"></a></td> </tr> <tr> <td height="22">&nbsp;</td> <td height="20"><div align="right">Status de la Entidad que Recibe</div></td> <td height="20"><select name="cmbSTAT_ENTIDAD_RECIBE" id="cmbSTAT_ENTIDAD_RECIBE"> <option value="-">---</option> <option value="INTERNO UNA">INTERNO UNA</option> <option value="OFICINA INTERNA">OFICINA INTERNA</option> <option value="EXTERNO UNA">EXTERNO UNA</option> <option value="PROFESOR UNA">PROFESOR UNA</option> <option value="ESTUDIANTE UNA">ESTUDIANTE UNA</option> </select> <a href="javascript: reporte();"></a></td> </tr> <tr> <td height="22" colspan="3"><p>&nbsp;</p> <p align="center"> <input name="button6" type="button" class="titulo-ventana" id="button7" value="Ver" onClick="reporte()"> </p></td> </tr> </table><p>&nbsp; </p><br> <p align="center">&nbsp; </p> <p>&nbsp; </p> <p>&nbsp;</p></td> </tr> </table> </td> </tr> <tr> <td>&nbsp; </td> </tr> </table> </td> </tr> </table> <input type="hidden" name="txtoperacion" id="txtoperacion"> <input type="hidden" name="txtfila" id="txtfila"> <input type="hidden" name="txtCOD_DOCUC" id="txtCOD_DOCUC"> </form> </body> <script language="javascript"> function reporte() { f=document.form1; var p=""; p=p+"?txtFEC_ORI_DOCU_DESDE="+encodeURIComponent(f.txtFE C_ORI_DOCU_DESDE.value); p=p+"&txtFEC_ORI_DOCU_HASTA="+encodeURIComponent(f.txtFE C_ORI_DOCU_HASTA.value); p=p+"&cmbCOD_TI_DOC="+encodeURIComponent(f.cmbCOD_TI_D OC.value); p=p+"&cmbSTAT_TI_DOCU="+encodeURIComponent(f.cmbSTAT_TI _DOCU.value); p=p+"&cmbSTAT_ENTIDAD_EMITE="+encodeURIComponent(f.cmbS TAT_ENTIDAD_EMITE.value); p=p+"&cmbSTAT_ENTIDAD_RECIBE="+encodeURIComponent(f.cmb STAT_ENTIDAD_RECIBE.value); p=p+"&txtCO_ENTIDAD_RECIBE="+encodeURIComponent(f.txtCO_E NTIDAD_RECIBE.value); p=p+"&txtCO_ENTIDAD_EMITE="+encodeURIComponent(f.txtCO_EN TIDAD_EMITE.value); p=p+"&cmbCOD_TI_ENTIDAD_EMITE="+encodeURIComponent(f.cm bCOD_TI_ENTIDAD_EMITE.value); p=p+"&cmbCOD_TI_ENTIDAD_RECIBE="+encodeURIComponent(f.c mbCOD_TI_ENTIDAD_RECIBE.value); p=p+"&txtpalabra="+encodeURIComponent(f.txtpalabra.value); //p=p+encodeURIComponent(p); pagina="redrpdfdocumentos.php"+p; window.open(pagina,"repdocumentos","menubar=no,toolbar=no,scroll bars=yes,left=50,top=50,width=700,height=500,resizable=yes,location=no"); } function catalogoCO_ENTIDAD_EMITE() { pagina="catalogo.php?txtarchivo=clscatentidadesemite"; window.open(pagina,"catalogo","menubar=no,toolbar=no,scrollbars=ye s,width=670,height=400,left=50,top=50,resizable=yes,location=no"); } function cerrarcatalogoCO_ENTIDAD_EMITE() { window.setTimeout("buscarperderfocoCO_ENTIDAD_EMITE()",500); } function buscarperderfocoCO_ENTIDAD_EMITE() { } function catalogoCO_ENTIDAD_RECIBE() { pagina="catalogo.php?txtarchivo=clscatentidadesrecibe"; window.open(pagina,"catalogo","menubar=no,toolbar=no,scrollbars=ye s,width=670,height=400,left=50,top=50,resizable=yes,location=no"); } function cerrarcatalogoCO_ENTIDAD_RECIBE() { window.setTimeout("buscarperderfocoCO_ENTIDAD_RECIBE()",500); } </script> <script language="JavaScript" src="js/validacionestecla.js"></script> <script language="JavaScript" src="js/validaciones.js"></script> <script language="JavaScript" src="js/funciones.js"></script> <script language="javascript" src="js/comun.js"></script> <script language="javascript" src="js/botones.js"></script> <script language="javascript" src="jsi/redjdocumentos.js"></script> <script language="javascript" src="js/ajax.js"></script> <script language="javascript" src="js/md5.js"></script> <script language="javascript" src="js/datepickercontrol.js"></script> </html> Conasuperior.php <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td background="imagenes/banner.jpg" height="180" valign="bottom"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="94%" valign="bottom"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="535" align="left"> <div style="position:relative"> <script language="JavaScript"><!-var menu1 = new MENU("top"); menu1.floatMenu = false; menu1.mainArrows = false; menu1.mainBGColor = "#003366"; menu1.mainBorderWidth = 1; menu1.mainItemWidth = 165; menu1.mainItemFontSize = 12; menu1.mainItem3D = 0; menu1.mainItemColor = "#003366"; menu1.mainItemFontColor = "white"; menu1.mainItemHilight = "#006699"; menu1.subBGColor = "#006699"; menu1.subItemWidth = 165; menu1.subItemColor = "#003366"; menu1.subItemHilight = "#EE7C15"; menu1.subItemFontColor = "#FFFFFF"; menu1.subItemFontHilight = "#FFFFFF"; menu1.mainItemPadding = 3; menu1.subItemPadding = 3; menu1.mainItemSpacer = 0; menu1.mainItemFontHilight = "#FFFFFF"; menu1.subBorderWidth = 1; menu1.mainBorderWidth = 1; menu1.mainTop = -12; menu1.mainLeft = 0; <? require_once("clases/clsaccesousuarios.php"); $objsupacc=new clsaccesousuarios(); $menu=$objsupacc>getOpcionesSistemas($acc_codsis,$_SESSION["logusu"]); $nm=count($menu); for ($i=0;$i<$nm;$i++) { $desopc=$menu[$i][0]; $pagopc=$menu[$i][1]; $nivopc=$menu[$i][2]; $tipopc=$menu[$i][3]; if ($tipopc=="M") { ?> menu1.entry(<? print $nivopc+1; ?>, 14, "<? print $desopc; ?>"); <? } else { ?> menu1.entry(<? print $nivopc+1; ?>, 14, "<? print $desopc; ?>","<? print $pagopc; ?>","",""); <? } } ?> menu1.create(); //--></script> </div> </td> <td width="491" align="left">&nbsp; </td> </tr> </table> </td> <td width="6%"> <? require_once("clases/clsusuarios.php"); require_once("clases/clsutilidades.php"); $objutil=new clsutilidades(); $nusu=$objutil->codigoaleatorio(); $objusufot=new clsusuarios(); $objusufot->logusu=$_SESSION["logusu"]; $objusufot->buscar(); //$rutafotousu="imagenes/usuariosinfoto.jpg"; if ($objusufot->nomfot!="") { $rutafotousu="segaobtenerfotousuario.php?id=".$objusufot>logusu."&tipo=normal&na=$nusu"; } ?> <img src="<? print $rutafotousu;?>" width="70" height="100"> </td> </tr> </table> </td> </tr> </table> Conaseguridadacceso.php <? require_once("clases/clsaccesousuarios.php"); $usuok=false; $acc_codsis="0002"; if ($acc_codopc!="") { $usuok=tieneacceso($acc_codopc); } else { $usuok=tieneaccesosistema(); } if (!$usuok) { header("Location: $paginaerroracceso"); } function tieneacceso($codopc) { global $acc_codsis; $codsis=$acc_codsis; $objacc=new clsaccesousuarios(); $logusu=$_SESSION["logusu"]; $tieneacceso=$objacc->getPermitirAcceso($logusu,$codsis,$codopc); return $tieneacceso; } function tieneaccesosistema() { global $acc_codsis; $codsis=$acc_codsis; $objacc=new clsaccesousuarios(); $logusu=$_SESSION["logusu"]; $tieneacceso=$objacc->getPermitirAccesoSistema($logusu,$codsis); return $tieneacceso; } ?> Conaseguridad.php <? session_start(); $usuok=false; if (isset($_SESSION["logusu"])) { if ($_SESSION["logusu"]!="") { $usuok=true; } } $paginaerroracceso="conaerroracceso.php"; if (!$usuok) { header("Location: $paginaerroracceso"); } ?>