UNIVERSIDAD DON BOSCO FACULTAD DE INGENIERIA ESCUELA DE COMPUTACION DISEÑO Y DESARROLLO DE UN SISTEMA WEB APLICADO AL DEPARTAMENTO DE PROYECCION SOCIAL DE LA UNIVERSIDAD DON BOSCO Segunda defensa de Proyecto de Graduación para optar al grado de Ingeniero en Ciencias de la Computación ASESOR: ING. GILBERTO ANTONIO LARA SOSA PRESENTADO POR: RICARDO ALBERTO GOMEZ VANEGAS JUAN CARLOS HERRERA DELGADO LUIS ENRIQUE LANDAVERDE LARA CIUDADELA DON BOSCO SEPTIEMBRE DE 2004 i INDICE CAPITULO I GENERALIDADES 1 1. INTRODUCCION 2 1.2. OBJETIVOS 4 1.2.1. OBJETIVO GENERAL 4 1.2.2. OBJETIVOS ESPECÍFICOS 4 1.3. ANTECEDENTES 6 1.4. DEFINICIÓN DEL TEMA 7 1.5. JUSTIFICACIÓN DEL TEMA 9 1.6. ALCANCES Y LIMITACIONES 11 1.6.1. ALCANCES 11 1.6.2. LIMITACIONES 12 CAPITULO II 13 MARCO TEORICO Y CONCEPTUAL 13 2. MARCO TEORICO 14 2.1. TECNOLOGÍAS DE CÓDIGO ABIERTO 14 2.2. PLATAFORMA WEB 16 2.3. TOPOLOGÍAS DE RED 17 2.3.1. TOPOLOGÍA DE DUCTO (BUS) 17 2.3.2. TOPOLOGÍA DE ESTRELLA (STAR) 18 2.3.3. TOPOLOGÍA DE ANILLO (RING) 19 2.3.4. TOPOLOGÍA DE MALLA (MESH) 20 2.4. BASES DE DATOS 21 2.4.1. ESTRUCTURA GENERAL DE BASE DE DATOS 21 2.4.2. EL MODELO RELACIONAL 23 2.5. DIAGRAMAS DE FLUJO DE DATOS 26 ii 2.6. LENGUAJE DE GESTIÓN DE BASE DE DATOS SQL 31 2.6.1. BREVE HISTORIA DE SQL 31 2.6.2. QUÉ ES SQL 32 2.7. LENGUAJES DE CÓDIGO ABIERTO (GNU – GPL) 34 2.7.1. CÓDIGO ABIERTO (OPEN SOURCE EN INGLÉS) 34 2.7.2. GNU 34 2.7.3. ¿QUÉ ES LA LICENCIA GPL? 36 2.8. SERVIDOR APACHE 37 2.8.1. ¿QUÉ ES APACHE? 37 2.8.2. ¿DÓNDE OBTENERLO? 37 2.8.3. ARQUITECTURA DEL SERVIDOR APACHE 37 2.9. PHP 39 2.9.1. ¿QUÉ ES PHP? 39 2.10. JAVASCRIPT 41 2.11. HTML 42 2.12. DHTML 42 2.13. CSS 46 CAPITULO III 47 METODOLOGIA DE LA INVESTIGACION 47 3. METODOLOGÍA DE LA INVESTIGACIÓN 48 3.1. CICLO DE VIDA DE DESARROLLO DE SISTEMAS 48 3.1.1. IDENTIFICACIÓN DEL PROBLEMA, OPORTUNIDADES Y OBJETIVOS 49 3.1.2. DETERMINACIÓN DE LOS REQUERIMIENTOS DE INFORMACIÓN 50 3.1.3. ANALISIS Y DISEÑO DEL SISTEMA RECOMENDADO 51 iii 3.1.4. DESARROLLO Y DOCUMENTACION DEL SOFTWARE 51 3.1.5. PRUEBA Y MANTENIMIENTO DEL SISTEMA 52 3.1.6. IMPLANTACIÓN Y EVALUACIÓN DEL SISTEMA 52 3.2. ¿QUE ES EL UML? 54 3.2.1. CASOS DE USO 55 3.2.2. DIAGRAMAS DE ACTIVIDAD 56 CAPITULO IV 58 DETERMINACION DE REQUERIMIENTOS 58 4. SITUACION ACTUAL 59 4.1. CASOS DE USO DE LA SITUACION ACTUAL 60 4.1.1. PROGRAMA SERVICIO SOCIAL ESTUDIANTIL 60 4.1.2. PROGRAMA BOLSA DE TRABAJO 73 4.1.3. PROGRAMA BECAS 86 4.1.4. PROGRAMA CUOTA DIFERENCIADA 98 4.2. DIAGRAMA DE FLUJOS DE DATOS DE LA SITUACION ACTUAL 110 4.2.1. PROGRAMA DE SERVICIO SOCIAL 110 4.2.2. PROGRAMA DE BOLSA DE TRABAJO 114 4.2.3. PROGRAMA DE BECAS 118 4.2.4. PROGRAMA DE CUOTA DIFERENCIADA 121 CAPITULO V 125 DISEÑO DEL SISTEMA 125 5. SITUACION PROPUESTA 126 5.1. CASOS DE USO DE LA SITUACIÓN PROPUESTA 127 5.1.1. CASOS DE USO DEL MODULO BASE DEL SISTEMA 127 iv 5.1.2. CASOS DE USO DEL MODULO DE SERVICIO SOCIAL ESTUDIANTIL 131 5.1.3. CASOS DE USO DEL MODULO DE BOLSA DE TRABAJO 138 5.1.4. CASOS DE USO DEL MODULO DE BECAS 147 5.1.5. CASOS DE USO DEL MODULO DE CUOTA DIFERENCIADA 153 5.2. FACTIBILIDAD DEL SISTEMA 160 5.2.1. FACTIBILIDAD ECONOMICA: 160 5.2.2. FACTIBILIDAD TECNICA: 161 5.2.3. FACTIBILIDAD OPERACIONAL: 161 5.3. ARBOL DE OPCIONES DEL SISTEMA 162 5.3.1. DESCRIPCION DE LAS OPCIONES DE PRIMER NIVEL 164 CAPITULO VI 166 DIAGRAMA ENTIDAD-RELACION 166 6. DIAGRAMA ENTIDAD -RELACIÓN 167 CAPITULO VII 172 CONCLUSIONES Y RECOMENDACIONES 172 7. CONCLUSIONES Y RECOMENDACIONES 173 7.1. CONCLUSIONES 173 7.2. RECOMENDACIONES 174 CAPITULO VIII 175 DICCIONARIO DE DATOS 175 8. DICCIONARIO DE DATOS: 176 BIBLIOGRAFIA 218 GLOSARIO 220 ANEXOS 228 v ANEXO I : CRONOGRAMA DE ACTIVIDADES 229 ANEXO II: ORGANIGRAMA DEL CENTRO DE PROYECCIÓN SOCIAL 230 ANEXO III : FICHA DE PERFIL PARA BOLSA DE TRABAJO 231 ANEXO IV: CONTROL DE CANDIDATOS PARA INSERCION LABORAL 232 ANEXO V: FICHA DE INSCRIPCION PARA SERVICIO SOCIAL 233 ANEXO VI: FORMATOS DE LOS REPORTES QUE DEBEN PRESENTAR LOS ESTUDIANTES AL FINALIZAR EL PROYECTO DE S. S. 235 ANEXO VII: SOLICITUD DE BECAS 240 ANEXO VIII: FORMAS DE CUOTA DIFERENCIADA 250 ANEXO IX: ARQUITECTURA DEL SISTEMA INFORMATICO 258 ANEXO X: COMPONENTES DE LA APLICACION 259 ANEXO XI: DATOS DE MYSQL SERVER 260 ANEXO XII: DATOS DE PHP 262 ANEXO XIII: EQUIPO DEL DEPARTAMENTO DE PROYECCION SOCIAL 264 1 CAPITULO I GENERALIDADES 2 1. INTRODUCCION En las últimas décadas el mundo ha experimentado un cambio revolucionario en el procesamiento de la información. La mayoría de empresas con grandes y pocos volúmenes de transacciones han optado por usar sistemas informáticos para resolver casi todas sus necesidades de procesamiento de datos. Estos sistemas van desde los más básicos como Sistemas de Transacciones hasta los Sistemas Expertos que brindan apoyo a la toma de decisiones. La Universidad Don Bosco como entidad educativa no queda exenta de la necesidad de contar con sistemas informáticos cuya finalidad sea la agilización de los diferentes procesos. Como consecuencia en la actualidad ya se cuenta con varios sistemas informáticos que brindan soporte para las necesidades transaccionales. El Departamento de Proyección Social de la Universidad Don Bosco actualmente cuenta con un sistema SPSS (Statistical Package for the Social Sciences) que es un software estadístico para las ciencias sociales, cuya finalidad es proporcionar datos estadísticos relacionados con las actividades del Departamento en sus diferentes programas. Las demás actividades se registran manualmente. Es por esto que se podría proponer un sistema informático que ayude a controlar otras actividades que no son consideradas por el sistema informático actual. El diario vivir de la Universidad Don Bosco está lleno de actividades y de protagonistas de tales actividades. Por ejemplo la realización de las horas sociales por parte de un alumno, que implica su acercamiento al Departamento de Proyección Social y todas las demás actividades que puede desarrollar hasta la consecución de las horas sociales, o el seguimiento de un alumno que ha ingresado su currículo a la Bolsa de Trabajo. 3 Para el Departamento de Proyección Social se han desarrollado aplicaciones de software en trabajos de graduación anteriores, pero no se ha logrado implementarlas debido al alto costo que representan las licencias de las tecnologías que estos sistemas usan. Las Tecnologías de Internet de Código Abierto representan una alternativa de bajo costo para el desarrollo de sistemas basados en Web, los cuales son accedidos a través de un navegador de Internet, componente que todos los sistemas operativos actuales tienen, de tal manera que el sistema propuesto en este trabajo de graduación es factible de ser implementado en el momento que se desee por la Universidad Don Bosco. En el presente documento se han plasmado los procesos relacionados a los programa de Servicio Social Estudiantil, Bolsa de Trabajo, Becas y Cuota Diferenciada del Departamento de Proyección Social de la Universidad Don Bosco, así también se ha elaborado una base de datos y un diccionario de datos para dar soporte al sistema informático Web propuesto. 4 1.2. OBJETIVOS 1.2.1. OBJETIVO GENERAL Diseñar y desarrollar un Sistema Informático Web para la administración y consulta de actividades con el fin de hacer más eficientes la consecución de las mismas, para obtener información útil a la toma de decisiones; aplicado a los Programas de Servicio Social Estudiantil, Bolsa de Trabajo, Becas y Cuota Diferenciada del Departamento de Proyección Social de la Universidad Don Bosco. 1.2.2. OBJETIVOS ESPECÍFICOS a) Establecer los requerimientos básicos del sistema informático para los módulos base y específicos, los cuales son Programa de Servicio Social Estudiantil, Programa de Bolsa de Trabajo, Programa de Becas y Programa de Cuota Diferenciada. b) Crear una Base de Datos eficiente para el almacenamiento de datos necesarios para el buen funcionamiento del sistema informático. c) Desarrollar un sistema informático base capaz de controlar los datos para el manejo de los perfiles de usuario, y otras características fundamentales para el buen funcionamiento del sistema, así también desarrollar los módulos específicos. d) Integrar el sistema informático base y las partes desarrolladas de los módulos de Servicio Social Estudiantil, Bolsa de Trabajo, Becas y Cuota Diferenciada para que sea de fácil uso por parte de las personas del Departamento de Proyección Social, los alumnos y otras personas involucradas en las actividades. 5 e) Optimizar los procesos implícitos en las actividades del Departamento de Proyección Social. f) Optimizar los recursos con lo que actualmente cuenta el Departamento de Proyección Social. 6 1.3. ANTECEDENTES En la actualidad el Departamento de Proyección social maneja la mayoría de procesos de forma manual. Si bien es cierto que la utilización de herramientas tales como SPSS (programa estadístico) y otros como EXCEL son de gran ayuda para la obtención de datos y de información, ésta no está centralizada y no puede ser obtenida de manera inmediata o en el momento que se requiera, tomando en cuenta que solo se cuenta con dos licencias del software SPSS. La manera de registrar las actividades que se realizan en cada uno de los diferentes programas con los que cuenta el Departamento es a través de formularios impresos de manera tal que dichos formularios son anexados al expediente de los estudiantes, lo que genera una gran cantidad de papelería física y tomando en cuenta el crecimiento que año con año se da en la población estudiantil de la Universidad Don Bosco, gestionar toda la información de los programas se hace una tarea difícil. En el Departamento de Proyección Social, existe un sistema diseñado y desarrollado por alumnos de la Universidad Don Bosco que lleva por nombre “Diseño y Construcción de un Sistema Mecanizado para el Manejo de Información del Departamento de Proyección Social de la Universidad Don Bosco en las Áreas de Becas, Bolsa de Trabajo, Servicio Social y Cuota Diferenciada.”, este proyecto nunca fue implementado por sus altos costos y por políticas internas de la Universidad. En la bibliografía (ver bibliografía) de este documento se encuentra más información sobre dicho trabajo. Actualmente el Departamento de Proyección Social cuenta con la estructura y el equipo necesario para albergar un sistema informático como el que en este documento se expone, como se puede ver en el anexo XIII 7 1.4. DEFINICIÓN DEL TEMA El proyecto propuesto presenta por nombre: “DISEÑO Y DESARROLLO DE UN SISTEMA WEB APLICADO AL DEPARTAMENTO DE PROYECCION SOCIAL DE LA UNIVERSIDAD DON BOSCO”. Debido a que el sistema informático está orientado a las actividades, se puede obtener información inherente a la misma, de tal manera que esta información ofrezca parámetros de toma de decisión mediante el control y seguimiento. Este modelo de sistema informático busca controlar el flujo que lleva una actividad a través de la asignación de las mismas actividades y adicional a eso informar a todas las personas que se ven involucradas en dicha actividad. La asignación de actividades se aplica al Departamento de Proyección Social de la Universidad Don Bosco en los Programas de Servicio Social Estudiantil, Bolsa de Trabajo, Becas y Cuota Diferenciada, tomando en cuenta la previa definición de sus procesos manuales de asignación y seguimiento de las mismas. No obstante, el funcionamiento y puesta en marcha de este sistema puede ser adoptado por cualquier empresa o institución que cumpla con las expectativas de este sistema de información ya que las organizaciones basan su funcionamiento a través de actividades. La consulta de estados de una actividad, es de gran importancia tanto para el que controla y decide como el que necesita saber los estados y el avance de la misma, es por eso que el desarrollo del sistema informático constituirá las bases necesarias para asignar, controlar y consultar una actividad. Las tecnologías de Internet de código abierto brindan bajos costos tanto de implementación como financieros, por lo cual la utilización de estas tecnologías de Internet de código abierto en la creación del sistema informático constituye 8 una base real y económica de automatizar los procesos y brindar información actualizada en el momento que se necesite. Este proyecto se desarrollara utilizando tecnologías de Internet de código abierto, y los lenguajes de programación para estas tecnologías tales como PHP, HTML, JavaScript y una base de datos de distribución libre como lo es MySql. También tomando en cuenta el uso de la arquitectura cliente-servidor como se detallan en el marco teórico. 9 1.5. JUSTIFICACIÓN DEL TEMA A medida que la población estudiantil de la Universidad Don Bosco crece año con año, la cantidad de información que el Departamento de Proyección Social tiene que manejar es más voluminosa y la cantidad de actividades que se tiene que realizar aumenta. La cantidad de papelería aumenta también, y el tiempo que se tiene para atender a cada alumno es cada vez más limitado sobre todo cuando se está iniciando un nuevo semestre o ciclo académico. Con un sistema manual es muy difícil lograr la manipulación eficiente de la información, lograr tiempos de respuestas cortos, facilidad de consulta, análisis y toma de decisiones, rendimiento, rapidez y facilidad de administración de las actividades. Una encuesta realizada a mediados de febrero del 2004 en Internet en la siguiente dirección Web: http://encuesta.ccarcach.com.sv/index.php?sid=3, cuyo objetivo era medir el grado de conocimiento que poseen los alumnos con respecto a los programas que ofrece el Departamento de Proyección Social, contestada por 71 alumnos de la Universidad Don Bosco, 91.67% de la facultad de Ingeniería, 5.56% de la facultad de Ciencias y Humanidades y el 2.78% de la facultad de Ciencias Económicas, de los cuales 16.67% cursan tercer año, 16.67% cuarto año, 19.44% quinto año, 44.44% son egresados y el resto son de primero y segundo año, refleja que el 52.78% de los alumnos encuestados tienen desconocimiento de los programas que ofrece el Departamento. Un porcentaje entre 77.78% y 94.44% no tienen conocimiento claro de qué tienen que hacer para involucrarse en los programas del Departamento. Además de esto, el 72.22% del total de ellos quisieran estar informados sobre el seguimiento de sus actividades relacionadas con el Departamento de Proyección Social a través de correo electrónico y por medio de un sistema Web el 16.67%, el resto por medios convencionales. 10 El Departamento de Proyección Social necesita entonces un sistema informático con características Web para poder hacer más eficiente sus actividades y brindar a la población estudiantil acceso a cierta información a través de Internet, evitando de esta manera la saturación que se da actualmente en el Departamento, sobre todo en momentos de inicio de ciclos lectivos, haciendo más adecuado para la población estudiantil informarse y tener seguimiento de cualquiera de los programas que el Departamento brinda. Estos datos fueron tomados de una aplicación WEB llamada SURVEY la cual es de naturaleza GPL y que se encuentra en la URL descrita anteriormente. 11 1.6. ALCANCES Y LIMITACIONES 1.6.1. ALCANCES a) Se desarrollarán las metodologías de programación, librerías, plantillas y otras técnicas de programación que permitan el rápido desarrollo de las partes que consta el Sistema. b) Se completaran los módulos de servicio social estudiantil y bolsa de trabajo y se desarrollarán los módulos de becas y cuota diferenciada. c) Se desarrollará un módulo de seguridad a nivel de programación, para que personas no autorizadas no puedan tener acceso al sistema informático y a la información como también al mal manejo de esta. d) Se integrarán las partes pública y administrativa del Sistema para que las modificaciones que se hagan en el Departamento de Proyección Social al Sistema, se vean reflejados en la parte pública que consultará los estudiantes y otros interesados en el Sistema. e) Se desarrollarán los manuales de programación y de usuarios para el sistema en la parte administrativa y la parte publica de cara a los estudiantes. 12 1.6.2. LIMITACIONES a) El sistema no estará en la capacidad de tomar decisiones. b) Las consultas, reportes y gráficos que se generarán estarán restringidos acorde al módulo y a las necesidades que se requieran, previamente establecidas al desarrollo del sistema. c) El sistema informático propuesto una vez desarrollado no será implementado debido a que esta etapa depende de las políticas administrativas de la Universidad Don Bosco. d) El sistema no se acoplará a empresas, instituciones u otras universidades que no cumplan con los parámetros que se establecerán. e) El Sistema esta basado en el análisis de los procesos del departamento de proyección social de la Universidad Don Bosco, por lo cual el uso de este sistema es exclusivo de la Universidad. 13 CAPITULO II MARCO TEORICO Y CONCEPTUAL 14 2. MARCO TEORICO 2.1. Tecnologías de Código Abierto Cada vez son más las empresas que apuestan por software Open Source (Código Abierto), y cada vez son más las que repiten la experiencia después de los buenos resultados que obtienen. Software Open Source es el software que permite ver abiertamente su código fuente y disponer de él, de manera que se puedan hacer modificaciones, revisiones o adaptaciones. Las ventajas del Open Source para una empresa son numerosas: � Bajo costo: las aplicaciones Open Source tienen un costo muy bajo o incluso nulo en muchos casos, lo cual repercute directamente en el costo de su proyecto : permite ahorrar una gran cantidad de dinero en licencias comerciales de Gestores de Base de Datos, Servidores Web, Servidores de Correo, Servidores de Aplicaciones, etc. � A modo de ejemplo, destacar que Amazon.com cambió en el año 2000 todo su servicio a Linux, ahorrando así 17 millones de dólares (similar cantidad en euros). � Mayor seguridad: de forma contraria a como piensa mucha gente, el hecho que el código de un programa no se pueda ver no indica que sea más seguro. Al contrario, si aparece un fallo de seguridad en ese código, al tratarse de algo cerrado, únicamente puede ser arreglado por la empresa o persona que lo haya desarrollado. Por lo tanto, permanecerá inseguro hasta el momento que los responsables de ese programa solucionen el problema. Sin embargo el código Open Source puede ser visto por todo el mundo y cualquier persona puede verificar y encontrar problemas de seguridad en el código. Como ejemplo, podemos ver el famoso fallo de ‘Ping of Death’ en 1997, el cual afectaba prácticamente a la totalidad de los sistemas operativos presentes en el momento. Mientras que Linux solucionó el problema en 15 unas cuantas horas, los sistemas operativos comerciales tardaron meses en solucionarlo. � Menor riesgo para su empresa: al poseer el código fuente, su empresa no liga la inversión hecha en el software a la empresa que lo realizó. Se han visto muchos casos de programas de código cerrado, que las empresas que los desarrollaron han abandonado, o han quebrado, quedando el cliente adquiriente del software sin posibilidades de mantener o actualizar sus sistemas. Esto no ocurre con el Open Source, ya que teniendo el código fuente, cualquier otra empresa podrá realizar las adaptaciones que a usted le sean necesarias. Fuente: http://www.inetsys.es/open.html 16 2.2. Plataforma WEB Normalmente en los sistemas basados en WEB se usa la arquitectura cliente-servidor. Este tipo de organización se basa en que entre todos las Computadoras que están en la red, unos ofrecen servicios (los llamados servidores) y otros usan esos servicios (los denominados clientes). Como ejemplo, cuando están visualizando estas páginas, están accediendo a un servicio (pidiendo una página WEB concreta) que les ofrece nuestro servidor de páginas WEB (sirviéndole la página solicitada). Por lo tanto, su Computadora es un cliente y el que hospeda estas páginas es un Servidor. Una red puede tener un servidor que distribuya datos a múltiples clientes a la vez. Un cliente también podría tener múltiples servidores enviando datos simultáneamente. En el entorno de computación actual, Una Computadora Windows, Macintosh, UNIX o una computadora grande, puede ser un cliente. Cualquiera de estas plataformas puede actuar como servidor e incluso puede actuar como cliente y servidor simultáneamente. Esta doble función es posible debido a las capacidades multitarea de los modernos sistemas operativos. 17 2.3. Topologías de RED La topología de una red es el arreglo físico en el cual los dispositivos de red (Ej. computadoras, impresoras, servidores, hubs, switches, puentes, etc.) se interconectan entre sí sobre un medio de comunicación. Existen varias topologías de red básicas (ducto, estrella, anillo y malla), pero también existen redes híbridas que combinan una o más topologías en una misma red. 2.3.1. Topología de ducto (bus) Una topología de ducto o bus está caracterizada por una dorsal principal con dispositivos de red interconectados a lo largo de la dorsal. Las redes de ductos son consideradas como topologías pasivas. Las computadoras “escuchan” al ducto. Cuando éstas están listas para transmitir, ellas se aseguran que no haya nadie más transmitiendo en el ducto, y entonces ellas envían sus paquetes de información. Las redes de ducto basadas en contención (ya que cada computadora debe contender por un tiempo de transmisión) típicamente emplean la arquitectura de red ETHERNET. Las redes de bus comúnmente utilizan cable coaxial como medio de comunicación, las computadoras conectaban al ducto mediante un conector BNC en forma de T. En el extremo de la red se ponía un terminador (si se utilizaba un cable de 50 ohm, se ponía un terminador de 50 ohms también). Las redes de ducto son fáciles de instalar y de extender. Son muy susceptibles a quebraduras de cable, conectores y cortos en el cable que son muy difíciles de encontrar. Un problema físico en la red, tal como un conector T, puede tumbar toda la red. 18 2.3.2. Topología de estrella (star) En una topología de estrella, las computadoras en la red se conectan a un dispositivo central conocido como concentrador (hub en inglés) o a un conmutador de paquetes (swicth en inglés). Cada computadora se conecta con su propio cable (típicamente par trenzado) a un puerto del hub o switch. Este tipo de red sigue siendo pasiva, utilizando un método basado en contención, las computadoras escuchan el cable y contienden por un tiempo de transmisión. Debido a que la topología estrella utiliza un cable de conexión para cada computadora, es muy fácil de expandir, sólo dependerá del número de puertos disponibles en el hub o switch (aunque se pueden conectar hubs o switches en cadena para así incrementar el número de puertos). La desventaja de esta topología es la centralización de la comunicación, ya que si el hub falla, toda la red se cae. 19 2.3.3. Topología de anillo (ring) Una topología de anillo conecta los dispositivos de red uno tras otro sobre el cable en un círculo físico. La topología de anillo mueve información sobre el cable en una dirección y es considerada como una topología activa. Las computadoras en la red retransmiten los paquetes que reciben y los envían a la siguiente computadora en la red. El acceso al medio de la red es otorgado a una computadora en particular en la red por un “token”. El token circula alrededor del anillo y cuando una computadora desea enviar datos, espera al token y se posesiona de él. La computadora entonces envía los datos sobre el cable. La computadora destino envía un mensaje (a la computadora que envió los datos) de que fueron recibidos correctamente. La computadora que transmitió los datos, crea un nuevo token y lo envía a la siguiente computadora, empezando el ritual de paso de token o estafeta (token passing) nuevamente. La desventaja principal de esta topología es que si una maquina esta fuera de línea el anillo se rompe. 20 2.3.4. Topología de malla (mesh) La topología de malla (mesh) utiliza conexiones redundantes entre los dispositivos de la red así como una estrategia de tolerancia a fallas. Cada dispositivo en la red está conectado a todos los demás (todos conectados con todos). Este tipo de tecnología requiere mucho cable (cuando se utiliza el cable como medio, pero puede ser inalámbrico también). Pero debido a la redundancia, la red puede seguir operando si una conexión se rompe. Las redes de malla, obviamente, son más difíciles y caras para instalar que las otras topologías de red debido al gran número de conexiones requeridas. Fuente: http://www.eveliux.com/telecom/topologias.html 21 2.4. Bases de Datos 2.4.1. Estructura General de Base de Datos El concepto básico en el almacenamiento de datos es el registro. El registro agrupa la información asociada a un elemento de un conjunto, y está compuesto por campos. Así por ejemplo, un registro correspondiente a un libro no es más que un elemento de un conjunto: biblioteca, elenco bibliográfico, etc. A su vez, ese registro contiene toda la información asociada al libro, clasificada en campos: título, autor, fecha de edición, etc. Los sistemas de base de datos se diseñan para manejar grandes cantidades de información, la manipulación de los datos involucra tanto la definición de estructuras para el almacenamiento de la información como la provisión de mecanismos para la manipulación de la información, además un sistema de base de datos debe de tener implementados mecanismos de seguridad que garanticen la integridad de la información, a pesar de caídas del sistema o intentos de accesos no autorizados. Un objetivo principal de un sistema de base de datos es proporcionar a los usuarios finales una visión abstracta de los datos, esto se logra escondiendo ciertos detalles de como se almacenan y mantienen los datos. Empezaremos con las definiciones que involucran a las bases de datos. � Dato: Conjunto de caracteres con algún significado, pueden ser numéricos, alfabéticos, o alfanuméricos. � Información: Es un conjunto ordenado de datos los cuales son manejados según la necesidad del usuario, para que un conjunto de datos pueda ser 22 procesado eficientemente y pueda dar lugar a información, primero se debe guardar lógicamente en archivos. � Campo: Es la unidad más pequeña a la cual uno puede referirse en un programa. Desde el punto de vista del programador representa una característica de un individuo u objeto. � Registro: Colección de campos de iguales o de diferentes tipos. � Archivo: Colección de registros almacenados siguiendo una estructura homogénea. � Base de datos: Es una colección de archivos interrelacionados, son creados con un DBMS. El contenido de una base de datos engloba a la información concerniente (almacenadas en archivos) de una organización, de tal manera que los datos estén disponibles para los usuarios, una finalidad de la base de datos es eliminar la redundancia o al menos minimizarla. Los tres componentes principales de un sistema de base de datos son el hardware, el software DBMS y los datos a manejar, así como el personal encargado del manejo del sistema. � Sistema Manejador de Base de Datos. (DBMS) Un DBMS es una colección de numerosas rutinas de software interrelacionadas, cada una de las cuales es responsable de una tarea específica. El objetivo primordial de un sistema manejador base de datos es proporcionar un contorno que sea a la vez conveniente y eficiente para ser utilizado al extraer, almacenar y manipular información de la base de datos. Todas las peticiones de acceso a la base, se manejan centralizadamente por 23 medio del DBMS, por lo que este paquete funciona como interfase entre los usuarios y la base de datos. � Esquema de base de datos: Es la estructura por la que esta formada la base de datos, se especifica por medio de un conjunto de definiciones que se expresa mediante un lenguaje especial llamado lenguaje de definición de datos. (DDL) � Administrador de base de datos (DBA): Es la persona o equipo de personas profesionales responsables del control y manejo del sistema de base de datos, generalmente tiene(n) experiencia en DBMS, diseño de bases de datos, Sistemas operativos, comunicación de datos, hardware y programación. Fuente: http://www.mariaafan.tripod.com/concepto.html 2.4.2. El modelo relacional Las bases de datos relacionales son el tipo de bases de datos actualmente más difundido. Los motivos de este éxito son fundamentalmente dos: 1. Ofrecen sistemas simples y eficaces para representar y manipular los datos 2. Se basan en un modelo, el relacional, con sólidas bases teóricas El modelo relacional fue propuesto originariamente por E.F. Codd en un ya famoso artículo de 1970. Gracias a su coherencia y facilidad de uso, el modelo se ha convertido en el más usado para la producción de DBMS. 24 La estructura fundamental del modelo relacional es precisamente esa, “relación”, es decir una tabla bidimensional constituida por líneas (tuple) y columnas (atributos). Las relaciones representan las entidades que se consideran interesantes en la base de datos. Cada instancia de la entidad encontrará sitio en una tupla de la relación, mientras que los atributos de la relación representarán las propiedades de la entidad Los objetivos principales de un sistema de base de datos es disminuir los siguientes aspectos: � Redundancia e inconsistencia de datos. Puesto que los archivos que mantienen almacenada la información son creados por diferentes tipos de programas de aplicación existe la posibilidad de que si no se controla detalladamente el almacenamiento, se pueda originar un duplicado de información, es decir que la misma información sea más de una vez en un dispositivo de almacenamiento. Esto aumenta los costos de almacenamiento y acceso a los datos, además de que puede originar la inconsistencia de los datos – es decir diversas copias de un mismo dato no concuerdan entre si -, por ejemplo: que se actualiza la dirección de un cliente en un archivo y que en otros archivos permanezca la anterior. � Dificultad para tener acceso a los datos. Un sistema de base de datos debe contemplar un entorno de datos que le facilite al usuario el manejo de los mismos. Supóngase un banco, y que uno de los gerentes necesita averiguar los nombres de todos los clientes que viven dentro del código postal 78733 de la ciudad. El gerente pide al departamento de procesamiento de datos que genere la lista correspondiente. Puesto que esta situación no fue prevista en el diseño del sistema, no existe ninguna aplicación de consulta que permita este tipo de solicitud, esto ocasiona una deficiencia del sistema. 25 � Aislamiento de los datos. Puesto que los datos están repartidos en varios archivos, y estos no pueden tener diferentes formatos, es difícil escribir nuevos programas de aplicación para obtener los datos apropiados. � Anomalías del acceso concurrente. Para mejorar el funcionamiento global del sistema y obtener un tiempo de respuesta más rápido, muchos sistemas permiten que múltiples usuarios actualicen los datos simultáneamente. En un entorno así la interacción de actualizaciones concurrentes puede dar por resultado datos inconsistentes. Para prevenir esta posibilidad debe mantenerse alguna forma de supervisión en el sistema. � Problemas de seguridad. La información de toda empresa es importante, aunque unos datos lo son más que otros, por tal motivo se debe considerar el control de acceso a los mismos, no todos los usuarios pueden visualizar alguna información, por tal motivo para que un sistema de base de datos sea confiable debe mantener un grado de seguridad que garantice la autentificación y protección de los datos. En un banco por ejemplo, el personal de nóminas sólo necesita ver la parte de la base de datos que tiene información acerca de los distintos empleados del banco y no a otro tipo de información. � Problemas de integridad. Los valores de datos almacenados en la base de datos deben satisfacer cierto tipo de restricciones de consistencia. Estas restricciones se hacen cumplir en el sistema añadiendo códigos apropiados en los diversos programas de aplicación. 26 2.5. Diagramas de flujo de datos El diagrama de flujo de datos (DFD), es una herramienta que permite visualizar un sistema como una red de procesos funcionales, conectados entre sí por “conductos” y “tanques de almacenamiento” de datos. Siendo éste, una de las herramientas más comúnmente usadas, sobre todo por sistemas operacionales en los cuales las funciones del sistema son de gran importancia y son más complejos que los datos que éste maneja. Es importante tener en mente: los DFD no sólo se pueden utilizar para modelar sistemas de sistemas de proceso de información, sino también como manera de modelar organizaciones enteras, es decir, como una herramienta para la planeación estratégica y de negocios. Los componentes de un diagrama típico de flujo de datos: � Proceso. � Flujo. � Almacén. � Terminador. Proceso. El primer componente del DFD se conoce como proceso. Los sinónimos comunes son burbuja, función, transformación. El proceso muestra una parte del sistema que transforma entradas en salidas. El proceso se representa gráficamente como un círculo, como se muestra en figura (a). Algunos analistas prefieren usar un óvalo o un rectángulo con esquinas redondeadas, como se muestra en la figura (b). Y otros prefieren usar un rectángulo, como se muestra en la figura (c). Las diferencias entre estas tres formas son puramente cosméticas, aunque obviamente es importante usar la misma forma de manera consistente para representar todas las funciones de un sistema. 27 (a) (b) (c) Ejemplos de procesos. Nótese que el proceso se nombra o describe con una sola palabra, frase u oración sencilla. Un buen nombre para un proceso generalmente consiste en una frase verbo-objeto tal como validar entradas o calcular impuesto. En algunos casos, el proceso contendrá el nombre de una persona o un grupo (por ejemplo, un departamento o una división de una organización), o de una computadora o un aparato mecánico. Flujo. Un flujo se representa gráficamente por medio de una flecha que entra o sale de un proceso; un ejemplo se muestra en la figura 1. El flujo se usa para describir el movimiento de bloques o paquetes de información de una parte del sistema a otra. Figura 1: Ejemplo de un flujo. En la mayoría de los sistemas que modele como analista, los flujos realmente representan datos, es decir, bits, caracteres, mensajes, números de punto flotante y los diversos tipos de información con los que las computadoras pueden tratar. 28 Nótese que el flujo de la figura 1 tiene nombre. El nombre representa el significado del paquete que se mueve a lo largo del flujo. Un corolario de esto es que el flujo sólo lleva un tipo de paquete, como lo indica su nombre. Los flujos muestran también la dirección: una cabeza de flecha en cualquier extremo (o posiblemente ambos) del flujo indica si los datos (o el material) se está moviendo hacia adentro o hacia fuera de un proceso (o ambas cosas). El flujo que se muestra en la figura 1 (a) por ejemplo, indica claramente que el número se está mandando hacia el proceso denominado Validar números telefónicos. Y el flujo denominado honorarios de entrega de choferes de la figura 1 (b) claramente indica que es una salida generada por el proceso Generar honorarios de entrega de chóferes. Los datos que se mueven a lo largo de dicho flujo viajarán ya sea a otro proceso (como entrada) o a un almacén o a un terminador. El flujo de dos cabezas que se muestra en la figura 1 (c) es un diálogo, es decir, un empacado conveniente de dos paquetes de datos (una pregunta y una respuesta) el mismo flujo. En el caso de un diálogo, los paquetes de cada extremo de la flecha deben nombrarse, como se ilustra en la figura 1 (c). Figura 1 (a) Flujo de entrada. Figura 1 (b) Flujo de salida. 29 Figura 1 (c): Flujo de diálogo. Almacén. El almacén se utiliza para modelar una colección de paquetes de datos en reposo. Se denota por dos líneas paralelas, como lo muestra la figura 2. De modo característico el nombre que se utiliza para identificar al almacén es el plural del que se utiliza para los paquetes que entran y salen del almacén por medio de flujos. Figura 2: Representación gráfica de un almacén. Para el analista con conocimiento de proceso de datos es tentador referirse a los almacenes como archivos o base de datos; pero un almacén también pudiera consistir en datos almacenados en tarjetas perforadas, microfilm, microfichas, discos ópticos, etc. Y un almacén también puede ser un conjunto de fichas de papel en una caja de cartón, nombres y domicilios en un directorio, diversos archivos en un archivero, o varias formas no computarizadas. Aparte de la forma física que toma el almacén, también existe la cuestión de su propósito: ¿Existe el sistema por causa de un requerimiento fundamental del usuario o por algún aspecto conveniente de la realización del sistema? En el primer caso, la base de datos existe como un área de almacenamiento diferida 30 en el tiempo, necesaria entre dos procesos que ocurren en momentos diferentes. Los almacenes se conectan por flujos a los procesos. Así, el contexto en el que se muestra en un DFD es uno de los siguientes (o ambos): � Un flujo desde un almacén. � Un flujo hacía un almacén. Terminador. El terminador gráficamente se representa como un rectángulo, como se muestra en la figura 3. Los terminadores representan entidades externas con las cuales el sistema se comunica. Comúnmente, puede ser una persona, o un grupo, por ejemplo, una organización externa o una agencia gubernamental, o un grupo o departamento que esté dentro de la misma compañía u organización, pero fuera del control del sistema que se está modelando. En algunos casos, un terminador puede ser otro sistema, como algún otro sistema computacional con el cual se comunica éste. Figura 3: Representación gráfica de un terminador. Existen tres cosas importantes que debemos recordar acerca de los terminadores: � Son externos al sistema que se está modelando. � Es evidente que ni el analista ni el diseñador del sistema están en posibilidades de cambiar los contenidos de un terminador o la manera en que trabaja. 31 � Las relaciones que existan entre los terminadores no se muestran en el modelo de DFD. Fuente: http://www.monografias.com/trabajos11/basda/basda.shtml 2.6. Lenguaje de gestión de Base de Datos SQL 2.6.1. Breve historia de SQL La historia de SQL empieza en 1974 con la definición, por parte de Donald Chamberlin y de otras personas que trabajaban en los laboratorios de investigación de IBM, de un lenguaje para la especificación de las características de las bases de datos que adoptaban el modelo relacional. Este lenguaje se llamaba SEQUEL (Structured English Query Language) y se implementó en un prototipo llamado SEQUEL-XRM entre 1974 y 1975. Las experimentaciones con ese prototipo condujeron, entre 1976 y 1977, a una revisión del lenguaje (SEQUEL/2), que a partir de ese momento cambió de nombre por motivos legales, convirtiéndose en SQL. El prototipo (System R), basado en este lenguaje, se adoptó y utilizó internamente en IBM y lo adoptaron algunos de sus clientes elegidos. Gracias al éxito de este sistema, que no estaba todavía comercializado, también otras compañías empezaron a desarrollar sus productos relacionales basados en SQL. A partir de 1981, IBM comenzó a entregar sus productos relacionales y en 1983 empezó a vender DB2. En el curso de los años ochenta, numerosas compañías (por ejemplo Oracle y Sybase, sólo por citar algunos) comercializaron productos basados en SQL, que se convierte en el estándar industrial de hecho por lo que respecta a las bases de datos relacionales. En 1986, el ANSI adoptó SQL (sustancialmente adoptó el dialecto SQL de IBM) como estándar para los lenguajes relacionales y en 1987 se transformó en estándar ISO. Esta versión del estándar va con el nombre de SQL/86. En los 32 años siguientes, éste ha sufrido diversas revisiones que han conducido primero a la versión SQL/89 y, posteriormente, a la actual SQL/92. El hecho de tener un estándar definido por un lenguaje para bases de datos relacionales abre potencialmente el camino a la intercomunicabilidad entre todos los productos que se basan en él. Desde el punto de vista práctico, por desgracia las cosas fueron de otro modo. Efectivamente, en general cada productor adopta e implementa en la propia base de datos sólo el corazón del lenguaje SQL (el así llamado Entry level o al máximo el Intermediate level), extendiéndolo de manera individual según la propia visión que cada cual tenga del mundo de las bases de datos. Actualmente, está en marcha un proceso de revisión del lenguaje por parte de los comités ANSI e ISO, que debería terminar en la definición de lo que en este momento se conoce como SQL3. Las características principales de esta nueva encarnación de SQL deberían ser su transformación en un lenguaje stand-alone (mientras ahora se usa como lenguaje hospedado en otros lenguajes) y la introducción de nuevos tipos de datos más complejos que permitan, por ejemplo, el tratamiento de datos multimediales. Hasta la década de los 80, las personas que preparaban las consultas e informes de una base de datos debían ser programadores. Al aparecer las bases de datos con lenguajes de consulta sencillos y estandarizados, semejantes al lenguaje natural, el proceso de consulta puede hacerlo cualquier usuario mediante un lenguaje escrito asequible. 2.6.2. Qué es SQL El Structured Query Language que no es más que un lenguaje estándar de comunicación con bases de datos. Hablamos por tanto de un lenguaje normalizado que nos permite trabajar con cualquier tipo de lenguaje (PHP,ASP, 33 etc) en combinación con cualquier tipo de base de datos (MS Access, SQL Server, MySQL…). El hecho de que sea estándar no quiere decir que sea idéntico para cada base de datos. En efecto, determinadas bases de datos implementan funciones específicas que no tienen necesariamente que funcionar en otras. Aparte de esta universalidad, el SQL posee otras dos características muy apreciadas. Por una parte, presenta una potencia y versatilidad notables que contrasta, por otra, con su accesibilidad de aprendizaje El SQL trabaja con estructura cliente/servidor sobre una red de ordenadores. El ordenador cliente es el que inicia la consulta; el ordenador servidor es que atiende esa consulta. El cliente utiliza toda su capacidad de proceso para trabajar; se limita a solicitar datos al ordenador servidor, sin depender para nada más del exterior. Estas peticiones y las respuestas son transferencias de textos que cada ordenador cliente se encarga de sacar por pantalla, presentar en informes tabulados, imprimir, guardar, etc., dejando el servidor libre. El SQL permite: � Definir una base de datos mediante tablas � Almacenar información en tablas. � Seleccionar la información que sea necesaria de la base de datos. � Realizar cambios en la información y estructura de los datos. � Combinar y calcular datos para conseguir la información necesaria. SQL es el lenguaje de comunicación entre el programa cliente y programa servidor; MySQL es un programa servidor, en el que está la base de datos propiamente dicha. El usuario accede con alguno de los programas cliente disponible para consultar MySQL. Fuente: http://mx.geocities.com/sqlconceptos/historia.html 34 2.7. Lenguajes de Código Abierto (GNU – GPL) 2.7.1. Código abierto (open source en inglés) Es el término por el que se conoce al software distribuido y desarrollado en una determinada forma. Este término empezó a utilizarse en 1998 por algunos usuarios de la comunidad del software libre, tratando de usarlo como reemplazo al ambiguo nombre original del software libre (free software). En inglés, “free software” puede significar diferentes cosas. Por un lado, permite pensar en “software por el que no hay que pagar”, y se adapta al término de forma igualmente válida que el significado que se pretende (software que posee ciertas libertades). En la actualidad Open Source es utilizado para definir un movimiento nuevo de software, diferente al movimiento del Software Libre, aunque no completamente incompatible con este, de modo que es posible (como de hecho ocurre) que ambos movimientos trabajen juntos en el desarrollo práctico de proyectos. El significado obvio del término “código abierto” es “se puede mirar el código fuente”, lo cual es un criterio más débil y flexible que el del software libre; un programa de código abierto puede ser software libre, pero también puede serlo un programa semi-libre o incluso uno completamente propietario. El software de código abierto (OSS por sus siglas en inglés) es software para el que su código fuente está disponible públicamente, aunque los términos de licenciamiento específicos varían respecto a lo que se puede hacer con ese código fuente. 2.7.2. GNU El proyecto GNU fue iniciado por el hacker estadounidense Richard Stallman con el objetivo de crear un sistema operativo completo totalmente libre: el 35 sistema GNU . Se anunció públicamente el proyecto el 27 de septiembre, de 1983, en el grupo de noticias net.unix-wizards. Al anuncio original, siguieron otros ensayos escritos por Richard Stallman como el “Manifiesto GNU“, que establecieron sus motivaciones para realizar el proyecto GNU, entre los que destacamos “retornar al espíritu de cooperación que prevaleció en los tiempos iniciales de la comunidad de usuarios de computadoras”. GNU es un acrónimo recursivo que significa “GNU No es Unix”. Stallman sugiere que se pronuncie Ñu (se puede observar que el logo es un ñu) para evitar confusión con “new” (nuevo). UNIX es un sistema operativo propietario muy popular, porque está basado en una arquitectura que ha demostrado ser técnicamente estable. El sistema GNU fue diseñado para ser totalmente compatible con UNIX. El hecho de ser compatible con la arquitectura de UNIX implica que GNU esté compuesto de pequeñas piezas individuales de software, muchos de los cuales ya estaban disponibles, como el sistema de edición de textos TeX y el sistema gráfico X Window, que pudieron ser adaptados y reutilizados; otros en cambio tuvieron que ser reescritos. Para asegurar que el software GNU permaneciera libre para que todos los usuarios pudieran “ejecutarlo, copiarlo, modificarlo y distribuirlo”, el proyecto debía ser liberado bajo una licencia diseñada para garantizar esos derechos al tiempo que evitase restricciones posteriores de los mismos. La idea se conoce en inglés como copyleft (en clara oposición a copyright, derecho de copia), y está contenida en la Licencia General Pública de GNU (GPL). 36 2.7.3. ¿Qué es la licencia GPL? Los programas de Computadora suelen distribuirse con licencias propietarias o cerradas. Estas licencias son intransferibles y no exclusivas, es decir, no eres propietario del programa, sólo tienes derecho a usarlo en una computadora o tantas como permita expresamente la licencia y no puedes modificar el programa ni distribuirlo. La licencia GPL o General Public License, desarrollada por la FSF o Free Software Foundation, es completamente diferente. Puedes instalar y usar un programa GPL en una computadora o en tantas como te apetezca, sin limitación. También puedes modificar el programa para adaptarlo a lo que tú quieras que haga. Además, podrás distribuir el programa GPL tal cual o después de haberlo modificado. Puedes hacer esto, regalando el programa o vendiéndolo, tu única obligación, es facilitar siempre con el programa binario el código fuente, es decir, el programa de forma que pueda ser leído por un programador. Los programas propietarios o cerrados, solo se distribuyen en binario, listos para ejecutarse en la Computadora. Los programas GPL no tienen garantía, igual que casi todos los programas propietarios, no obstante, ofrecen más derechos a sus usuarios y su sistema abierto hace que los defectos sean detectados y depurados a gran velocidad con la ayuda de cientos de programadores a través de Internet. Por otro lado, nada impide a una empresa garantizar el Software Libre junto a otros servicios que oferte. 37 2.8. Servidor Apache 2.8.1. ¿Qué es apache? Apache es un servidor Web, que permite el alojamiento de páginas Web en una máquina específica. Esta herramienta tiene varias funciones tales como: permitir a los usuarios tener sus propias páginas Web, restricción a determinados sitios Web, conexiones seguras a través de SSL, configuración de módulos de programación. 2.8.2. ¿Dónde obtenerlo? El software lo puedes obtener del sitio oficial http://www.apache.org, la UNAM cuenta ya con un sitio espejo de este sitio en apache.unam.mx. Requerimientos: Para instalar apache se requiere: • Aproximadamente 12 MB durante la instalación, y 3MB para alojamiento. • Compilador ANSI-C, es recomendable GCC se obtiene de http://www.gnu.org/ Para IRIX, se puede obtener gcc de http://freeware.sgi.com/ y seguir las instrucciones de instalación en IRIX. 2.8.3. Arquitectura del servidor Apache El servidor Apache es un software que esta estructurado en módulos. La configuración de cada módulo se hace mediante la configuración de las directivas que están contenidas dentro del módulo. Los módulos del Apache se pueden clasificar en tres categorías: 38 � Módulos Base: Módulo con las funciones básicas del Apache � Módulos Multiproceso: son los responsables de la unión con los puertos de la máquina, aceptando las peticiones y enviando a los hijos a atender estas peticiones � Módulos Adicionales: Cualquier otro módulo que le añada una funcionalidad al servidor. Las funcionalidades más elementales se encuentran en el módulo base, siendo necesario un módulo multiproceso para manejar las peticiones. Se han diseñado varios módulos multiproceso para cada uno de los sistemas operativos sobre los que se ejecuta el Apache, optimizando el rendimiento y rapidez del código. El resto de funcionalidades del servidor se consiguen por medio de módulos adicionales que se pueden cargar. Para añadir un conjunto de utilidades al servidor, simplemente hay que añadirle un módulo, de forma que no es necesario volver a instalar el software. 39 2.9. PHP 2.9.1. ¿Qué es PHP? PHP es el acrónimo de Hypertext Preprocesor. Es un lenguaje de programación del lado del servidor gratuito e independiente de plataforma, rápido, con una gran librería de funciones y mucha documentación. Un lenguaje del lado del servidor es aquel que se ejecuta en el servidor Web, justo antes de que se envíe la página a través de Internet al cliente. Las páginas que se ejecutan en el servidor pueden realizar accesos a bases de datos, conexiones en red, y otras tareas para crear la página final que verá el cliente. El cliente solamente recibe una página con el código HTML resultante de la ejecución de la PHP. Como la página resultante contiene únicamente código HTML, es compatible con todos los navegadores. Esquema del funcionamiento de las páginas PHP. Una vez que ya conocemos el concepto de lenguaje de programación de scripts del lado del servidor podemos hablar de PHP. PHP se escribe dentro del código HTML, lo que lo hace realmente fácil de utilizar, pero con algunas ventajas como su gratuidad, independencia de plataforma, rapidez y seguridad. 40 Es independiente de plataforma, puesto que existe un módulo de PHP para casi cualquier servidor Web. Esto hace que cualquier sistema pueda ser compatible con el lenguaje y significa una ventaja importante, ya que permite portar el sitio desarrollado en PHP de un sistema a otro sin prácticamente ningún trabajo. Por último señalábamos la seguridad, en este punto también es importante el hecho de que en muchas ocasiones PHP se encuentra instalado sobre servidores Unix o Linux, que son de sobra conocidos como más veloces y seguros que el sistema operativo Windows NT o 2000. Además, PHP permite configurar el servidor de modo que se permita o rechacen diferentes usos, lo que puede hacer al lenguaje más o menos seguro dependiendo de las necesidades de cada cual. Fue creado originalmente en 1994 por Rasmus Lerdorf, pero como PHP está desarrollado en política de código abierto, a lo largo de su historia ha tenido muchas contribuciones de otros desarrolladores. Actualmente PHP se encuentra en su versión 4, que utiliza el motor Zend, desarrollado con mayor meditación para cubrir las necesidades de las aplicaciones Web actuales. Este lenguaje de programación está preparado para realizar muchos tipos de aplicaciones Web gracias a la extensa librería de funciones con la que está dotado. La librería de funciones cubre desde cálculos matemáticos complejos hasta tratamiento de conexiones de red, por poner dos ejemplos. Algunas de las más importantes capacidades de PHP son: compatibilidad con las bases de datos más comunes, como MySQL, Msql, Oracle, Informix, y ODBC tal como MSSQL Server, MS Access, etc. por ejemplo. Incluye funciones para el envío de correo electrónico, upload de archivos, crear dinámicamente en el servidor imágenes en formato GIF, incluso animadas y una lista interminable de utilidades adicionales. 41 2.10. Javascript Javascript es un lenguaje de programación utilizado para crear pequeños programitas encargados de realizar acciones dentro del ámbito de una página Web. Se trata de un lenguaje de programación del lado del cliente, porque es el navegador el que soporta la carga de procesamiento. Gracias a su compatibilidad con la mayoría de los navegadores modernos, es el lenguaje de programación del lado del cliente más utilizado. Con Javascript podemos crear efectos especiales en las páginas y definir interactividades con el usuario. El navegador del cliente es el encargado de interpretar las instrucciones Javascript y ejecutarlas para realizar estos efectos e interactividades, de modo que el mayor recurso, y tal vez el único, con que cuenta este lenguaje es el propio navegador. Javascript es el siguiente paso, después del HTML, que puede dar un programador de la Web que decida mejorar sus páginas y la potencia de sus proyectos. Es un lenguaje de programación bastante sencillo y pensado para hacer las cosas con rapidez. Entre las acciones típicas que se pueden realizar en Javascript tenemos dos vertientes. Por un lado los efectos especiales sobre páginas Web, para crear contenidos dinámicos y elementos de la página que tengan movimiento, cambien de color o cualquier otro dinamismo. Por el otro, javascript nos permite ejecutar instrucciones como respuesta a las acciones del usuario, con lo que podemos crear páginas interactivas con programas como calculadoras, agendas, o tablas de cálculo. Javascript es un lenguaje con muchas posibilidades, permite la programación de pequeños scripts, pero también de programas más grandes, orientados a objetos, con funciones, estructuras de datos complejas, etc. Además, Javascript pone a disposición del programador todos los elementos 42 que forman la página Web, para que éste pueda acceder a ellos y modificarlos dinámicamente. Con Javascript el programador, que se convierte en el verdadero dueño y controlador de cada cosa que ocurre en la página cuando la está visualizando el cliente. 2.11. HTML HTML es el lenguaje con el que se definen las páginas Web. Básicamente se trata de un conjunto de etiquetas que sirven para definir la forma en la que presentar el texto y otros elementos de la página. El HTML se creó en un principio con objetivos divulgativos. No se pensó que la Web llegara a ser un área de ocio con carácter multimedia, de modo que, el HTML se creó sin dar respuesta a todos los posibles usos que se le iba a dar y a todos los colectivos de gente que lo utilizarían en un futuro. Sin embargo, pese a esta deficiente planificación, si que se han ido incorporando modificaciones con el tiempo, estos son los estándares del HTML. Numerosos estándares se han presentado ya. El HTML 4.01 es el último estándar a febrero de 2001. El HTML es un lenguaje de programación muy fácil de aprender, lo que permite que cualquier persona, aunque no haya programado en la vida pueda enfrentarse a la tarea de crear una Web. HTML es fácil y pronto podremos dominar el lenguaje. Más adelante se conseguirán los resultados profesionales gracias a nuestras capacidades para el diseño y nuestra vena artista. 2.12. DHTML A medida que vamos avanzando en la programación de páginas Web nos vamos fijando nuevos objetivos para crear cada día Web más excitantes. Siguiendo este camino, llega un momento que el lenguaje HTML se nos queda corto y tenemos que servirnos de alguna tecnología superior, que nos permita realizar esos desarrollos más complejos y dinámicos. 43 Imaginémonos por un momento que tuviéramos entre manos un gran proyecto, un proyecto que supusiese la creación masiva de páginas, como puede ser un periódico, donde cada día hay que cambiar los contenidos por completo, o una enciclopedia online, con miles de páginas y referencias, por poner dos ejemplos. Si utilizásemos únicamente HTML necesitaríamos un regimiento de estructuras Web para poder llevar a cabo el trabajo de crear tantas y tantas páginas y su actualización. Así mismo, si quisiésemos desarrollar una aplicación en la Web donde el usuario tuviese que interaccionar con la página, o una aplicación que ofreciese algún servicio, como un buscador o un gestor de correo a través de la Web, también nos veríamos muy limitados con el HTML. Además, también estamos muy limitados con el HTML a la hora de crear efectos en las páginas, animaciones que llamen un poco la atención del usuario y que permitan hacer que las páginas Web sean más divertidas. DHTML es lo que hace posible crear unas páginas Web que salven todas las limitaciones del HTML como las comentadas con anterioridad. Como vemos, el DHTML es muy amplio y engloba muchas técnicas que se pueden realizar con multitud de lenguajes de programación y programas distintos Vamos a hacer una clasificación de DHTML para limitar un poco sus radios de acción y para que el concepto se acorte en áreas de la programación Web que podemos ya conocer. � DHTML de cliente Por un lado tenemos el DHTML que se desarrolla en el ámbito de una página Web, cuando la página se está viendo en la pantalla de los usuarios, es decir, en los navegadores. En estos casos, para realizar cualquier tipo de efecto o interactividad en la página tenemos como recurso al navegador, por eso se llama de cliente. 44 La programación en el cliente sirve para muchas cosas, ejemplos de ello son efectos diversos en las páginas, sonidos, videos, menús interactivos, control y respuesta a las acciones de un usuario en la página, control sobre los formularios, etc. Para hacer muchas de estas cosas podemos utilizar diversos lenguajes de programación como Javascript y VBScript, o incluso podemos meter aquí programas como Flash. No obstante está más cercano a la idea del DHTML el programar scripts dentro de la página con los lenguajes del lado del cliente. Javascript para todos los navegadores y VBScript para Internet Explorer. Estos lenguajes trabajan, como se ha dicho, integrados con el navegador y dependen del modelo y de la versión de éste. Estos lenguajes no permiten el desarrollo de cualquier proyecto en Internet, ya que al ser ejecutados en el navegador del cliente, no tienen acceso a todos los recursos del sistema del usuario, para evitar agujeros de seguridad, ni a los recursos del servidor donde están alojadas las páginas. Esta limitación, añadida a la ya comentada de su dependencia del navegador, los hace insuficientes para desarrollos avanzados, siendo más bien un complemento de programación que el núcleo de verdaderas aplicaciones en el Web. � DHTML de servidor Por otro lado, existen una serie de lenguajes que se basan en el servidor para ejecutar sus scripts, al igual que la programación del cliente se basa en el navegador. Cuando una página es solicitada por parte de un cliente, el servidor ejecuta los scripts y genera una página resultado, que envía al cliente. La página resultado contiene únicamente código HTML, por lo que puede ser interpretada por cualquier navegador sin lugar a errores, independientemente de su versión. Esta independencia del navegador ya es una ventaja significativa con respecto a la programación en el cliente, pero lo es aun más que contamos con todos los recursos del servidor donde están alojadas las páginas. Estos 45 recursos, como podrían ser gestores de bases de datos, servidores de correo o el propio sistema de archivos del servidor, son los que nos van ha permitir construir todo tipo de aplicaciones. Como ventajas adicionales se puede destacar que el código de las páginas con los scripts nunca llega al cliente, recordamos que al navegador sólo le llega HTML, y esto implica que nuestros visitantes nunca van a poder acceder al corazón de las aplicaciones que hayamos desarrollado, es decir, a los scripts del lado del servidor. Lenguajes del lado del servidor son ASP, desarrollado por Microsoft, PHP de código libre, JSP para programar en Java, o alguna otra interfaz como CGI, que se desarrolla en lenguajes como C o Perl. Esquema del funcionamiento de las páginas con scripts del servidor 46 2.13. CSS CSS, es una tecnología que nos permite crear páginas Web de una manera más exacta. Gracias a las CSS somos mucho más dueños de los resultados finales de la página, pudiendo hacer muchas cosas que no se podía hacer utilizando solamente HTML, como incluir márgenes, tipos de letra, fondos, colores. CSS son las siglas de Cascading Style Sheets, en español Hojas de estilo en Cascada 47 CAPITULO III METODOLOGIA DE LA INVESTIGACION 48 3. METODOLOGÍA DE LA INVESTIGACIÓN El proyecto se desarrollará siguiendo la metodología del ciclo de vida de desarrollo de sistemas. Se usará el Lenguaje de Modelado Unificado (Unified Modeling Language) para la diagramación de la situación actual y propuesta del sistema, específicamente los casos de USO y algunos de los diagramas que constituyen UML para facilitar su comprensión y desarrollo. 3.1. CICLO DE VIDA DE DESARROLLO DE SISTEMAS El desarrollo de sistemas es un proceso que se aplica tanto a nuevos sistemas como a sistemas en uso que se requieren mejoras. El Ciclo de Vida para Desarrollo de Sistemas esta compuesto por siete actividades, en las que están involucrados los analistas, diseñadores, programadores y usuarios para echar en marcha un Sistema de información. Estas actividades se interrelacionan en el desarrollo de implantación del sistema y pueden llegar a encontrarse ciertas fases de una actividad con otra. Dichas actividades que conforman el Método del Ciclo de Vida para el desarrollo de Sistemas son: 1. Identificación del problema, oportunidades y objetivos. 2. Determinación de Requerimientos de información. 3. Análisis de las necesidades del sistema. 4. Diseño del sistema recomendado. 5. Desarrollo y documentación del software. 6. Pruebas y mantenimiento el sistema. 7. Implantación y evaluación del sistema. 49 3.1.1. IDENTIFICACIÓN DEL PROBLEMA, OPORTUNIDADES Y OBJETIVOS Esta etapa es crítica para el éxito del proyecto, debido a que nadie quiere desperdiciar el tiempo subsiguiente resolviendo el problema equivocado. Esta fase requiere observar todo lo que sucede en el Departamento de Proyección Social (Procesos). Las oportunidades son situaciones que se consideran pueden ser mejoradas por medio del uso de un sistema mecanizado. La identificación de objetivos es también importante, se debe descubrir lo que esta tratando de hacer el Departamento de Proyección Social, para Luego poder identificar si algún aspecto de la aplicación de sistemas puede ayudar al logro de los objetivos, mediante el ataque a problemas específicos u oportunidades. Las personas involucradas en esta FASE son los responsables de cada área dentro del departamento de Proyección Social (usuarios) y los analistas. Las actividades de esta fase son: a) Entrevistas con los responsables de cada área b) Sumarización de conocimientos obtenidos. c) Documentación de los resultados. 50 3.1.2. DETERMINACIÓN DE LOS REQUERIMIENTOS DE INFORMACIÓN El fin de esta fase es comprender qué información necesitan los usuarios en cada área del departamento de Proyección Social para realizar su trabajo, que se requiere de una interacción directa con los usuarios. Se necesitan saber los detalles de las funciones actuales del sistema: ¿Quién? (las personas involucradas) ¿Qué? (la actividad del departamento de Proyección Social), ¿Dónde? (el ambiente donde se lleva a cabo el trabajo), ¿Cuándo? (en que momento) y ¿Cómo? (de que manera se desarrollan los procedimientos actuales del departamento de Proyección Social). Al termino de esta fase se debe comprender por que las funciones del departamento de Proyección Social y tener información completa sobre las personas, objetivos, datos y procedimientos involucrados. Las personas involucradas en esta fase son las responsables de cada área del departamento de Proyección Social (usuarios) y los analistas. A partir de los diagramas de flujo de datos se desarrollará un diccionario de datos, que lista todos los conceptos de datos usados en el sistema, así como sus especificaciones, si son alfanuméricos y que tanto espacio ocupan cuando se imprimen. En esta etapa se prepara una propuesta de sistema que sumariza lo que ha sido encontrado, se proporciona un análisis de costo beneficio de las alternativas y se hacen recomendaciones sobre lo que debe se hecho (en caso de haberlo). 51 3.1.3. ANALISIS Y DISEÑO DEL SISTEMA RECOMENDADO En esta fase se usa toda la información recolectada anteriormente para realizar el diseño lógico del sistema, se diseñan procedimientos precisos para la captura de datos, a fin de que los datos que van a entrar al sistema sean correctos, además se proporciona entrada efectiva para el sistema mediante el uso de técnicas para el buen diseño de formas y pantallas. Parte del diseño lógico del sistema es diseñar la interfaz de usuario, la interfaz conecta al usuario con el sistema y es, por lo tanto, extremadamente importante. Ejemplo de interfaces de usuario incluyen, un teclado para introducir preguntas y respuestas, menús en pantalla para elegir comandos del usuario y un ratón para seleccionar opciones. Esta fase también se trabaja con los usuarios para diseñar las salidas (ya sea en pantallas o impresas), que satisfagan sus necesidades de información. Por ultimo se deben diseñar procedimientos de control y respaldo para proteger el sistema y los datos. 3.1.4. DESARROLLO Y DOCUMENTACION DEL SOFTWARE Algunas de las técnicas estructuradas para el diseño y documentación de software incluyen diagramas estructurados, diagramas de flujo, pseudos-código. El analista de sistemas usa uno o más dispositivos para comunicar lo que se necesita ser programado. Durante esta fase también se trabaja con los usuarios para desarrollar documentación efectiva para el software, incluyendo manuales de 52 procedimientos, La documentación le dice al usuario la manera de usar el software y también que hacer si suceden problemas con el software. 3.1.5. PRUEBA Y MANTENIMIENTO DEL SISTEMA Antes de que pueda ser usado, el sistema debe ser aprobado. Es mucho menos costoso encontrar problemas antes de que el sistema sea entregado a los usuarios. Se ejecutan una serie de pruebas para que se destaquen los problemas con datos de ejemplo y eventualmente con datos reales. En esta fase comienza lo que es el mantenimiento del sistema y su documentación y es efectuado rutinariamente a lo largo de la vida del sistema. 3.1.6. IMPLANTACIÓN Y EVALUACIÓN DEL SISTEMA En esta fase se ayuda al usuario a implementar el sistema, en este caso particular (Sistema para el Departamento de Proyección Social) la implantación se llevará a cabo en una PC para realmente hacer constar que el sistema funciona, que cubre y satisface todas las necesidades requeridas para cada área o Departamento de Proyección Social. En esta parte también se incluye la capacitación de los usuarios para que manejen y se ambienten con el sistema. La evaluación forma parte de esta fase final, principalmente para fases de discusión. De hecho la evaluación se realiza en cada fase. Es de recalcar que esta fase solo contempla el presentar el sistema para la evaluación por departamento de Proyección Social, no la implementación en producción del sistema, pues ello depende de la adquisición de hardware y software por parte de la Universidad Don Bosco. 53 � Se usará el ciclo de vida de desarrollo de sistemas. � Se acompañará la fase de determinación de requerimientos con el Lenguaje de Modelado Unificado para facilitar el trabajo en equipo, � Se usara el enfoque iterativo e incremental para fortalecer en cada iteración la totalidad del sistema. 54 3.2. ¿QUE ES EL UML? Por sus siglas en Inglés Unified Modeling Language = > Lenguaje de Modelado Unificado El Lenguaje Unificado de Modelado (UML) es, tal como su nombre lo indica, un lenguaje de modelado y no un método o un proceso. El UML está compuesto por una notación muy específica y por las reglas semánticas relacionadas para la construcción de sistemas de software. El UML en sí mismo no prescribe ni aconseja cómo usar esta notación en el proceso de desarrollo o como parte de una metodología de diseño orientada a objetos. Con el UML los requerimientos del sistema se pueden modelar usando tres tipos de vistas de los objetos que constituyen la totalidad del sistema. Vista de Casos de Uso Vista Lógica Vista de Componentes Para representar las actividades que se llevan a cabo actualmente en el Departamento de Proyección Social se usaran los diagramas de Casos de Uso y los Diagramas de Actividad para la Vista de Casos de Uso. 55 3.2.1. CASOS DE USO Un Caso de Uso es una representación de una unidad discreta de trabajo realizada por un usuario (u otro sistema) usando el sistema en operación. Se ejecuta en su totalidad o no se ejecuta nada, devolviendo algo de valor al usuario. La Notación de Caso de Uso Los diagramas de están generalmente compuestos por uno o más actores vinculados con uno o más casos de uso, como en el diagrama siguiente: 56 Estado de Accion 3.2.2. DIAGRAMAS DE ACTIVIDAD Los Diagramas de Actividad muestran las actividades y responsabilidades de los elementos. Los Diagramas de Actividad tienen los siguientes tipos de elementos: Un Estado de Acción Representado por un rectángulo con sus esquinas redondeadas, representando procesamiento. Un flujo de control de transición Representada por una línea sólida desde el estado de acción origen hacia el estado de acción destino, esto representa que una vez el estado de acción origen completa su procesamiento, el estado de acción destino comienza su procesamiento. Un estado de acción inicial Representado como un pequeño circulo relleno, el flujo de control de transición originado por el estado inicial especifica el primer estado de acción. Un estado de acción final Representado como un círculo rodeando a un pequeño círculo sólido y relleno, el flujo de control de transición hacia el estado final especifica el estado final de acción. Estado Final Estado Inicial Control de Transición 57 Un flujo de objeto. Representado como una línea de flecha discontinua entre un estado de acción y un objeto. Un flujo de objeto de entrada, el cual apunta hacia un estado de acción, representa que el estado de acción introduce datos al objeto. Un flujo de objeto de salida, que apunta hacia un objeto, representa que el estado de acción saca datos del objeto. Una línea de frontera (de responsabilidades) Representada por una región visual separada de sus líneas de frontera vecinas por líneas verticales sólidas en ambos lados y etiquetada en la parte superior con el elemento responsable de los estados de acción dentro de la línea de frontera, esto representa responsabilidad. Línea de Frontera Flujo de Objeto 58 CAPITULO IV DETERMINACION DE REQUERIMIENTOS 59 4. SITUACION ACTUAL En las siguientes secciones se presenta, usando diversos diagramas, tanto de UML, como los Diagramas de Flujos de Datos, la situación actual de los programas de Servicio Social Estudiantil, Bolsa de Trabajo, Becas y Cuota Diferenciada del Departamento de Proyección Social. Se ha hecho énfasis en definir bien estos procesos y para ello se ha trabajado conjuntamente con las personas responsables de los programas en el Departamento de Proyección Social. La buena definición de estos programas permitirá la definición de las partes de estos procesos que el sistema informático propuesto pueda resolver. Es de observar que estos procesos pueden ser enriquecidos en cualquier momento para beneficio de los usuarios del sistema A continuación se muestra la situación actual de tales programas: 60 4.1. CASOS DE USO DE LA SITUACION ACTUAL 4.1.1. PROGRAMA SERVICIO SOCIAL ESTUDIANTIL Definición Servicio Social Estudiantil de Educación Superior son todas las actividades organizadas que realizan los estudiantes para contribuir a resolver problemas y satisfacer necesidades concretas de los sectores y comunidades más necesitadas del País y en las que el (la) estudiante aplica los conocimientos teóricos prácticos adquiridos en su proceso de formación profesional. FUNDAMENTACION LEGAL El Servicio Social Estudiantil se fundamenta en el Art. 61 de la Constitución Política de El Salvador, que establece la obligatoriedad de las instituciones universitarias de prestar un servicio social, sin perseguir fines de lucro. Tiene como objetivo consolidar la formación profesional de los estudiantes, en el marco de una toma de conciencia de la Calidad de vida de las comunidades. El proceso por el cual el departamento de proyección social establece el servicio social estudiantil, contiene las siguientes actividades: 1. Inscripción. 2. Ejecución. 3. Supervisión y Control. 4. Finalización. 5. Acreditación. Estas actividades son descritas detalladamente con los casos de USO y sus respectivos diagramas, que se describe a continuación. 61 CASOS DE USO, DIAGRAMAS DE CASOS DE USOS (DESCOMPUESTOS EN OTROS CASOS DE USO) Y DIAGRAMAS DE ACTIVIDADES. PROGRAMA DE SERVICIO SOCIAL ESTUDIANTIL CU-101 Inscripción en Servicio Social Estudiantil Descripción El Departamento de Proyección Social permite a los estudiantes que ya han cursado 3er. ciclo de estudios universitarios, realizar su servicio social en grupos no mayores de 4 personas. Secuencia Normal 1. El Estudiante para decidir qué proyecto de Servicio Social inscribirá podrá: a. Proponer su propio proyecto. b. Seleccionar conjuntamente con el Responsable de Servicio Social, un proyecto, en base a las solicitudes presentadas al Departamento de Proyección Social por parte de las diferentes instituciones. 2. El Estudiante deberá llenar la ficha de inscripción en el Departamento de Proyección Social (Ver Anexo V) para dar apertura a su expediente de servicio social por el Responsable de Servicio Social. Excepciones 62 Caso de uso de la inscripción en el servicio social Diagrama de actividad de la inscripción en el servicio social 63 CU-102 Ejecución del Servicio Social Estudiantil Descripción El Departamento de Proyección Social permite a los estudiantes que ya han inscrito un proyecto de Servicio Social Estudiantil, la ejecución del mismo. Secuencia Normal 1. El Responsable de Servicio Social extiende una carta de presentación al Estudiante, si se requiere por parte de la Institución. 2. El Estudiante presenta la carta de presentación a la Institución. 3. La Institución da información al alumno acerca del Proyecto Solicitado. 4. El Estudiante hace un diagnostico del Proyecto. 5. El Estudiante Elabora su plan de trabajo. 6. El Estudiante Presenta Plan de Trabajo a Responsable de Servicio Social, a más tardar dos semanas después de haber inscrito. 7. El estudiante puede comenzar a ejecutar el proyecto. 8. El Responsable de Servicio Social y la Institución aprueban el plan de trabajo. En caso de no aprobarse, regresar al punto 5. 9. El Estudiante ejecuta el proyecto una vez se ha aprobado el Plan de Trabajo. Excepciones Si la carta de presentación no se requiere se procede al paso 3. 64 Caso de Uso de la Ejecución del Servicio Social Estudiantil 65 Diagrama de Actividades de La Ejecución del Servicio Social Estudiantil 66 CU-103 Supervisión y Control del Servicio Social Estudiantil Descripción Se refiere al seguimiento y control que debe realizar el supervisor asignado por la institución o comunidad beneficiada, un profesional de la UDB vinculado con el proceso de formación del estudiante y el Responsable del Programa de Servicio Social asignado por la UDB para: evaluar la aplicación de sus conocimientos en el campo; retroalimentar el currículo institucional tomando en cuenta las observaciones dadas por los estudiantes y los supervisores; brindar asesoría técnica necesaria y corregir oportunamente las fallas y garantizar el logro de los objetivos propuestos durante la ejecución del plan de trabajo. Secuencia Normal 1. El Supervisor de Campo realiza visitas a la institución. 2. El Supervisor de Campo solicita reportes al Estudiante y al Supervisor por la Institución. 3. El Supervisor por la Institución y el Estudiante preparan los informes solicitados y los entregan. 4. El Estudiante puede terminar la ejecución del proyecto de Servicio Social si ya ha cumplido todos los puntos de su plan de trabajo. Excepciones 67 Caso de uso de la Supervisión y Control del Servicio Social Estudiantil 68 Diagrama de Actividades de la Supervisión y Control del Servicio Social Estudiantil 69 CU-104 Finalización del Servicio Social Estudiantil Descripción Consiste en que el Estudiante elabore los reportes finales para la evaluación por parte de la institución y presentarlos al Departamento de Proyección Social Secuencia Normal 1. El Estudiante elabora el Informe de Auto- evaluación y Reporte Evaluativo (Ver Anexo VI). Esto es llamado Reporte Final de Servicio Social. 2. El Estudiante entrega el Informe de Auto- evaluación y el Reporte Evaluativo al Supervisor del proyecto de Servicio Social por parte de la Institución. 3. El Supervisor por la Institución evalúa y avala los informes entregados. 4. El Estudiante entrega el Reporte Final de Servicio Social al Responsable del Servicio Social Estudiantil. Excepciones 70 Caso de uso de la finalización del Servicio Social Estudiantil Diagrama de Actividades de la Finalización del Servicio Social Estudiantil 71 CU-105 Acreditación del Servicio Social Estudiantil Descripción Consiste en acreditar por medio de una constancia, las 300 o 500 horas sociales realizadas por el estudiante. El Estudiante presenta esta carta a Administración Académica para que se le extienda la carta de egreso. Secuencia Normal 1. El Departamento de Proyección Social elabora la constancia para acreditar al estudiante su Servicio Social de 300 horas para Estudios Tecnológicos y profesorado; y 500 horas para Licenciaturas e Ingenierías. 2. El Coordinador del Servicio Social entrega la constancia al estudiante. Excepciones 1. Cuando el Estudiante no ha completado la cantidad de horas necesarias para poder acreditarse, se procede a acumularle horas de servicio social en su expediente de Servicio Social. 72 Caso de uso de la acreditación del Servicio Social Estudiantil Diagrama de Actividad de la Acreditación del Servicio Social Estudiantil 73 4.1.2. PROGRAMA BOLSA DE TRABAJO Definición Constituye una estrategia de inserción laboral que la Universidad Don Bosco pone a disposición de estudiantes, egresados o graduados de diferentes áreas a fin de favorecer el encuentro entre empleados y aspirantes a integrarse a la vida productiva del país. Su objetivo es establecer una relación Universidad Don Bosco/Empresas que genere los espacios para colocación de los estudiantes egresados y graduados, y para retroalimentar la currícula. El proceso que establece el programa de Bolsa de Trabajo, contiene las siguientes actividades: 1. Coordinar el programa de Bolsa de Trabajo. 2. Control de Ofertas de Trabajo. 3. Ingreso al programa de Bolsa de Trabajo. 4. Supervisión de alumnos colocados por el programa de Bolsa de Trabajo. Estas actividades son descritas detalladamente con los casos de USO y sus respectivos diagramas, a continuación. 74 CASOS DE USO, DIAGRAMAS DE CASOS DE USOS (DESCOMPUESTOS EN OTROS CASOS DE USO) Y DIAGRAMAS DE ACTIVIDADES DEL PROGRAMA DE BOLSA DE TRABAJO CU-201 Coordinar programa de Bolsa de Trabajo Descripción Consiste en promover y coordinar el programa de Bolsa de Trabajo en los profesionales que se han graduado de la Universidad Don Bosco. Secuencia Normal 1. Administración Académica Convoca Graduados. 2. El Responsable de Bolsa de Trabajo solicita. nómina de graduados a Administración Académica. 3. El Responsable de Bolsa de Trabajo se reúne con graduados. 4. El Responsable de Bolsa de Trabajo proporciona información sobre el programa de Bolsa de Trabajo a los Graduandos. 5. El Responsable de Bolsa de Trabajo administra cuestionarios a los graduandos. Excepciones 75 Caso de Uso de la Coordinación del Programa de Bolsa de Trabajo 76 Diagrama de Actividades de la Coordinación del Programa de Bolsa de Trabajo. 77 CU-202 Control de ofertas de trabajo Descripción Consiste en mantener contacto permanente con las empresas para poder recibir sus solicitudes de profesionales, registrar datos de las mismas y proponer candidatos que cumplan expectativas. Secuencia Normal 1. El Responsable de Bolsa de Trabajo Contacta empresas. 2. Las Empresas contactan al Departamento de Proyección Social para solicitar candidatos. 3. El Responsable de Bolsa de Trabajo registra los datos de las empresas. 4. El Responsable de Bolsa de Trabajo registra los datos de las ofertas de trabajo. 5. El Responsable de Bolsa de Trabajo elabora el perfil de los puestos de trabajo (Ver Anexo III). 6. El Responsable de Bolsa de Trabajo propone candidatos a las empresas. 7. El Responsable de Bolsa de Trabajo llena el formulario de control de los candidatos referidos a las empresas (Ver Anexo IV). Excepciones 78 Caso de uso del Control de Ofertas de Trabajo 79 Diagrama de Actividades del Control de Ofertas de trabajo 80 CU-203 Ingresar al programa de bolsa de trabajo Descripción Consiste en solicitar los servicios del Programa de la Bolsa de Trabajo por parte de estudiantes egresados o graduados. Secuencia Normal 1. El Responsable de Bolsa de Trabajo orienta al interesado en elaborar la Hoja de Vida. 2. El Interesado Elabora la Hoja de Vida. 3. El Interesado presenta la Hoja de Vida al Responsable. 4. El Responsable de Bolsa de Trabajo Informa al Interesado acerca de las ofertas de trabajo disponibles. 5. El Responsable contrasta la Hoja de Vida del interesado con las solicitudes disponibles. 6. Si la Hoja de Vida coincide con alguna solicitud, se propone al candidato. 7. Si el Interesado fuera llamado por la empresa, es deber del Responsable de Bolsa de Trabajo dar información al interesado acerca de la Empresa y el cargo solicitado. 8. Si el Interesado es contratado, se pasa a la etapa de supervisión. Excepciones 81 Caso de uso del Ingreso al Programa de Bolsa de Trabajo 82 Diagrama de Actividades del ingreso al Programa de Bolsa de Trabajo 83 CU-204 Supervisar colocados por la Bolsa de Trabajo Descripción Conocer la calidad de los profesionales que la UDB está formando y su impacto en el desarrollo social y económico del país. Secuencia Normal 1. El Responsable de Bolsa de Trabajo proporciona lista de Insertados laboralmente al Supervisor de Campo. 2. El Supervisor de Campo prepara programación semanal de visitas. 3. El Supervisor realiza las visitas de verificación de desempeño en las empresas. 4. El Supervisor elabora estadísticas de seguimiento y presenta informes periódicos a la Directora del Departamento. Excepciones 84 Caso de Uso de la Supervisión de colocados por la Bolsa de Trabajo 85 Diagrama de Actividades de la Supervisión de colocados por la Bolsa de Trabajo 86 4.1.3. PROGRAMA BECAS Definición Los programas de becas posibilitan el acceso a los estudios universitarios en todas las carreras a jóvenes de escasos recursos económicos, que poseen capacidad intelectual y potencial de aprovechamiento máximo, así mismo evita el retiro de estudiantes que por motivos económicos no pueden continuar sus estudios. El proceso que establece el programa de Becas, contiene las siguientes actividades: 1. Coordinar el programa de Becas. 2. Control de Ofertas de Trabajo. 3. Ingreso al programa de Bolsa de Trabajo. 4. Supervisión de alumnos colocados por el programa de Bolsa de Trabajo. Estas actividades son descritas detalladamente con los casos de USO y sus respectivos diagramas, a continuación. 87 CASOS DE USO, DIAGRAMAS DE CASOS DE USOS (DESCOMPUESTOS EN OTROS CASOS DE USO) Y DIAGRAMAS DE ACTIVIDADES DEL PROGRAMA DE BECAS CU-301 Coordinación del Programa de Becas Descripción Consiste en coordinar eficientemente los programas de becas para estudiantes de la Universidad Don Bosco. Secuencia Normal 1. El Departamento de Proyección Social debe coordinar el programa de Becas Puerta Nueva 2000 (con fondos propios de la UDB). 2. El Departamento debe promocionar los programas de becas en las carreras. 3. El Responsable de Becas debe llevar las estadísticas de los becarios de la UDB. 4. El Responsable debe elaborar informes sobre los becarios para la calificación del Ministerio de Educación. 5. El Responsable debe presentar informes periódicos de la administración de los diferentes programas de becas a la directora del Departamento. Excepciones 88 Caso de Uso de la Coordinación del Programa de Becas 89 Diagrama de Actividades de la Coordinación del Programa de Becas 90 CU-302 Selección de Candidatos Descripción Consiste en el proceso a seguir para seleccionar a un estudiante interesado en recibir una beca para cursar estudios en la Universidad Don Bosco. Secuencia Normal 1. El Estudiante debe presentarse al Departamento de Proyección Social a retirar el formulario para solicitar la beca (Ver Anexo VII). Si es de nuevo ingreso presentar sus notas de bachillerato, si es estudiante de la UDB presentar las notas del ciclo anterior. 2. El Estudiante debe llenar el formulario y anexarle todos los documentos de respaldo requeridos y entregarlo al Responsable de Becas en el Departamento de Proyección Social para su respectiva revisión. 3. El Responsable de Becas evalúa cada solicitud a fin de determinar si el candidato cumple con los requerimientos exigidos. 4. El Responsable entrevista a los estudiantes. 5. El Responsable analiza y evalúa las solicitudes a fin de determinar si los candidatos cumplen con los requisitos exigidos. 6. Para verificar si los candidatos cumplen con los requisitos el Responsable de Becas coordina con el Supervisor de Campo la visita domiciliaria a cada uno de los aspirantes llenando un formato ya establecido. 7. El Responsable recibe los reportes de las visitas por parte del Supervisor de Campo y anexa al expediente. 91 8. Con los reportes de visita domiciliaria, el Responsable entrega a la Directora del Departamento de Proyección Social las solicitudes que cumplan con todos los requisitos para su revisión final. 9. La Directora con el Responsable de Becas presentan las solicitudes con la documentación de respaldo al Comité de becas. 10. El Comité de Becas analiza las solicitudes y otorga las becas en porcentajes según la situación económica de cada solicitante, es decir, adjudica, rechaza, posterga o renueva las becas solicitadas. 11. El Responsable de Becas notifica a cada estudiante si ha sido favorecido o no con la beca, mediante una carta personal firmada por el Presidente del Comité de Becas. 12. El Estudiante favorecido con la beca debe presentarse personalmente al Departamento de Proyección Social para enterarse de los compromisos que adquiere. 13. El Responsable de Becas deberá presentar el listado de los estudiantes becados con el porcentaje de beca asignado y el programa vinculado a la Directora del Departamento, quién lo remite a la Dirección General de la Administración. 14. El Estudiante deberá retirar su carta y presentarla en Colecturía para que se le efectué el respectivo descuento según el porcentaje de beca asignado. Excepciones 92 Caso de Uso de la Selección de Candidatos para el Programa de Becas 93 Diagrama de Actividades de la Selección de Candidatos para el Programa de Becas 94 CU-303 Asignación y Seguimiento Descripción Consiste en las actividades que se deben desarrollar para asignar o reasignar becas a los estudiantes. Secuencia Normal 1. El Responsable de Becas entrega las solicitudes y la documentación de respaldo a la Directora del Departamento para que lo presente en la reunión de Comité de Becas para su estudio. 2. El Responsable de Becas prepara información sobre las nuevas solicitudes de becas a los estudiantes que reúnen lo requisitos. 3. El Departamento debe asistir a las reuniones del Comité de Becas para presentar las solicitudes de los candidatos pre-seleccionados. 4. El Departamento prepara los reportes de notas y de vinculación de los estudiantes becados durante el ciclo. 5. El Responsable presenta la información a la Directora del Departamento para que lo presente al Comité de Becas para el estudio de reasignación de becas a los estudiantes. 6. El Departamento elabora la propuesta de las cartas de resolución y las presenta para revisión y firmas al Presidente de Comité de Becas (Secretario General). 7. El Departamento recibe las cartas de resolución para cada estudiante firmada por el Presidente del Comité de Becas. 8. El Responsable entrega las cartas de resolución de becas a los estudiantes de nuevo y antiguo ingreso. 95 9. Entregar listado de estudiantes becados a las Administración Financiera de la Universidad Don Bosco y a Secretaria General. 10. El Responsable lleva el control y registro de cumplimiento de compromisos de estudiantes becarios durante el ciclo. 11. Al final del ciclo el Responsable debe solicitar las notas de los becarios a Administración Académica para chequear a los estudiantes que puedan continuar con la beca el próximo ciclo. 12. El Responsable debe elaborar el informe de cada becario de cumplimiento de compromisos. 13. El Responsable presenta el informe de cumplimiento de compromisos a la Directora de Departamento. Excepciones 96 Caso de Uso de la Asignación y Seguimiento del Programa de Becas 97 Diagrama de Actividades de la Asignación y Seguimiento del Programa de Becas 98 4.1.4. PROGRAMA CUOTA DIFERENCIADA Definición Consiste en asignar a cada estudiante de la Universidad Don Bosco una cuota de escolaridad acorde a su capacidad económica. 99 CASOS DE USO, DIAGRAMAS DE CASOS DE USOS (DESCOMPUESTOS EN OTROS CASOS DE USO) Y DIAGRAMAS DE ACTIVIDADES DEL PROGRAMA DE CUOTA DIFERENCIADA CU-401 Coordinar Programa Descripción Consiste en llevar un seguimiento del Programa de Cuota Diferenciada por medio de informes estadísticos. Secuencia Normal 1. El Responsable de Cuota Diferenciada solicita datos de inscripción a Directora General Administrativa. 2. El Responsable Elabora informes y estadísticas. 3. El Responsable de Cuota presenta informes y estadísticas a Directora. Excepciones 100 Caso de Uso de la coordinación del Programa de Cuota Diferenciada Diagrama de Actividades de la Coordinación del Programa de Cuota Diferenciada 101 CU-402 Recepción de Formularios Descripción Consiste en recibir un formulario (Ver Anexo VIII), llenado por los aspirantes a ingresar a la Universidad, con el conjunto de lineamientos específicos que permiten analizar las condiciones socio-económicas, con el propósito de asignarles las cuotas mensuales que les corresponderá pagar como estudiantes regulares de este centro de estudios. Secuencia Normal 1. El Responsable de Cuota Diferenciada debe entregar a los estudiantes de nuevo ingreso y casos de reingreso el formulario de estudio socio- económico. 2. El Responsable debe orientar al Estudiante cómo llenar el formulario y de la importancia de que la información proporcionada sea confiable (indicar los documentos que deben anexar a la solicitud) 3. El Estudiante debe responder y documentar el formulario antes mencionado. 4. El Estudiante debe entregar el formulario debidamente respondido y acompañado de los documentos solicitados tales como recibos de agua, luz, etc. 5. El Responsable y el Estudiante deben revisar conjuntamente si el formulario está debidamente completado. 102 Caso de Uso de la Recepción de Formularios de Cuota Diferenciada 103 Diagrama de Actividades de la Recepción de Formularios de Cuota Diferenciada 104 CU-403 Asignación de Cuota Descripción Consiste en asignar una cuota justa a cada uno de los estudiantes en base al estudio socio-económico. Secuencia Normal 1. El Responsable de Cuota Diferenciada debe analizar la información contenida en el formulario, comprobando los documentos de respaldo presentados. 2. El Supervisor de Campo realiza las visitas domiciliarias a todos los estudiantes inscritos, si hay incongruencias, se modifica la cuota. 3. El Responsable debe asignar la cuota a los estudiantes de acuerdo a su condición socio- económica. 4. El Responsable debe comunicar al Estudiante la asignación de su cuota. 5. El Responsable debe elaborar informes y estadísticas del estudio socio-económico y asignación de cuota realizados por ciclo y presentarlos a la Directora del Depto. y al Consejo Académico. 6. El Departamento debe solicitar a la Dirección General Administrativa Financiera y Admón. Académica los datos referentes a inscripción de estudiantes. 105 Caso de Uso de la Asignación de Cuota Diferenciada Diagrama de Actividades de la Asignación de Cuota Diferenciada 106 CU-404 Apelación de Cuota Diferenciada Descripción Constituye un recurso establecido por la institución para aquellos casos en que los estudiantes consideren que no se les ha aplicado con justicia la cuota y por lo tanto no están en la capacidad de pagarla. Secuencia Normal 1. El Estudiante se presenta ante el Responsable de Cuota Diferenciada y solicita la apelación. 2. El Estudiante se entrevista con el Responsable de Cuota Diferenciada, a quién expone su situación. 3. El Responsable de Cuota