DESARROLLO DEL MODULO WEB DE UN SISTEMA DE INFORMACIÓN ACADÉMICO FAVIO ANDRÉS REYES CAMARGO UNIVERSIDAD INDUSTRIAL DE SANTANDER FACULTAD DE INGENIERÍAS FISICO-MECÁNICAS ESCUELA DE INGENIERÍA DE SISTEMAS E INFORMÁTICA BUCARAMANGA 2004 DESARROLLO DEL MODULO WEB DE UN SISTEMA DE INFORMACIÓN ACADÉMICO FAVIO ANDRÉS REYES CAMARGO Proyecto de Grado presentado como requisito para optar al título de Ingeniero de Sistemas Modalidad PRÁCTICA EMPRESARIAL Tutor FABIO ALFONSO REYES CORDERO Ingeniero de Sistemas UNIVERSIDAD INDUSTRIAL DE SANTANDER FACULTAD DE INGENIERÍAS FISICO-MECÁNICAS ESCUELA DE INGENIERÍA DE SISTEMAS E INFORMÁTICA BUCARAMANGA 2004 A Dios por ser mi única esperanza y por el cuál todas las cosas son posibles. A mis padres por su amor, aguante, entrega, paciencia, guía. A mis hermanos, mis mejores compañeros. Los amo AGRADECIMIENTOS Elsa Liliana Gama Ingeniera de Sistemas, Universidad Industrial de Santander. Coordinadora del Proyecto SISACAD WEB. De ISIS Ltda. Néstor Leonel Ariza Ingeniero de Sistemas, Universidad Industrial de Santander. Equipo de Trabajo ISIS Ltda. Sheila Paola Uhía Kanmerer Ingeniero de Sistemas, Universidad Industrial de Santander. Equipo de Trabajo ISIS Ltda. A la empresa ISIS LTDA. por la oportunidad brindada para la realización de este trabajo. TABLA DE CONTENIDO INTRODUCCION 1. ASPECTOS GENERALES 3 1.1. DEFINICIÓN DEL PROBLEMA 3 1.1.1. PRESENTACIÓN DE LA EMPRESA 3 1.1.2. IDENTIFICACIÓN DEL PROBLEMA 5 1.2. OBJETIVOS 7 1.2.1. OBJETIVO GENERAL 7 1.2.2. OBJETIVOS ESPECÍFICOS 7 1.3. JUSTIFICACIÓN 8 1.3.1. ENTIDADES INTERESADAS EN EL PROYECTO 9 1.4. IMPACTO Y VIABILIDAD 2. MARCO TEÓRICO 10 12 2.1. PLATAFORMA SOFTWARE 12 2.1.1. SISTEMAS OPERATIVOS 12 2.1.2. HERRAMIENTAS DE DESARROLLO 19 2.1.3. SERVIDOR WEB 20 2.1.4. HERRAMIENTAS DE SEGURIDAD 22 2.2. INTERNET 24 2.2.1. GENERALIDADES DE INTERNET 24 2.2.2. SISTEMAS DE INFORMACIÓN EN INTERNET 25 2.2.3. APLICACIONES WEB 27 2.3. ARQUITECTURA DE LA INFORMACIÓN 28 2.3.1. MODELO CLIENTE / SERVIDOR 28 2.4. MODELO DEL PROCESO DEL SOFTWARE 31 2.4.1. MODELO EN CASCADA 31 2.4.2. MODELO INCREMENTAL 32 2.5. BASES DE DATOS 34 2.5.1. COMPONENTES PRINCIPALES 34 2.5.2. VENTAJAS EN EL USO DE BASES DE DATOS 35 2.5.3. EL SISTEMA ORGANIZADOR DE BASE DE DATOS (DBMS) 35 2.5.4. EL ADMINISTRADOR DE LA BASE DE DATOS (DBA) 36 2.5.5. TIPOS DE MODELOS DE DATOS 36 2.5.6. BASES DE DATOS DISTRIBUIDAS 38 2.5.7. TENDENCIAS FUTURAS 39 2.5.8. ALGUNAS BASES DE DATOS 39 2.6. PROGRAMACIÓN WEB 40 2.6.1. JAVASCRIPT 40 2.6.2. JAVA SERVER PAGES (JSP) 41 3. METODOLOGÍA PARA EL DESARROLLO DEL PROYECTO 44 3.1. FASES EN LA ELABORACION DEL PROYECTO 44 3.1.1. FASE I. LECTURA Y ANÁLISIS DE INFORMACIÓN 44 3.1.2. FASE II - ANÁLISIS Y DISEÑO 45 3.1.3. FASE III.- IMPLEMENTACIÓN Y PRUEBAS 45 3.1.4. FASE IV.- DOCUMENTACIÓN 46 3.2. ASEGURAMIENTO DE CALIDAD 46 CONOCIMIENTO DEL SISTEMA 48 4.1. ANÁLISIS DEL SISTEMA ACTUAL 48 4.1.1. OBJETIVOS ESPECÍFICOS 48 4.1.2. ESTRUCTURA DEL SISTEMA 49 4.2. ALCANCE DEL SISTEMA 50 4.2.1. MÓDULO PLANES DE ESTUDIO 51 4. 4.2.2. MÓDULO DE ADMISIONES 53 4.2.3. MÓDULO ESTUDIANTES 59 4.2.4. MÓDULO DOCENTES 70 4.2.5. MÓDULO ADMINISTRADOR 75 4.3. ACTUALIZACION AL SISTEMA SISACAD 80 4.3.1. TABLAS DE SOPORTE 80 4.3.2. BAJAR DATOS 81 4.3.3. SUBIR DATOS 86 5. PRUEBAS Y ESTADO FINAL DEL SISTEMA 88 5.1. PRUEBAS AL SISTEMA 88 6. CONCLUSIONES 91 7. RECOMENDACIONES 92 8. BIBLIOGRAFÍA 93 ANEXOS 94 LISTA DE FIGURAS Pág. Figura 1. Diagrama del modelo de comunicación. 6 Figura 2. Esquema de interacción de documentos Web. 28 Figura 3. Modelo en cascada. 31 Figura 4. Modelo Incremental. 33 Figura 5. Menú principal SISACAD. 50 Figura 6. Planes de Estudio. 51 Figura 7. Requisitos. 52 Figura 8. Asignatura sin requisito. 53 Figura 9. Proceso de Inscripción. 54 Figura 10. Inscripción fuera de fecha límite. 55 Figura 11. Condiciones de uso. 55 Figura 12. Ingreso aspirantes. 56 Figura 13. Formulario de inscripción. 57 Figura 14. Selección entrevista. 57 Figura 15. Fin de la inscripción. 58 Figura 16. Resultado del proceso de inscripción. 59 Figura 17. Condiciones de uso estudiantes. 59 Figura 18. Ingreso estudiantes. 60 Figura 19. Cambio de contraseña obligatorio. 60 Figura 20. Opciones Estudiantes. 62 Figura 21. Notas Históricas. 63 Figura 22. No hay notas registradas. 63 Figura 23. Notas del Semestre Actual. 64 Figura 24. Ver Notas. 64 Figura 25. Generación Formato Prematrícula. 65 Figura 26. Detalle de la Asignatura. 66 Figura 27. Cruces de horarios. 67 Figura 28. Prematrícula Lista. 67 Figura 29. Ayuda. 68 Figura 30. Olvidó su contraseña. 69 Figura 31. Recordar Contraseña. 69 Figura 32. Ingreso Docentes. 70 Figura 33. Opciones Docentes. 70 Figura 34. Registro de Parciales ya realizado. 71 Figura 35. Asignaturas disponibles para registro de parciales. 72 Figura 36. Registro de Notas Parciales. 72 Figura 37. Confirmación registro de notas parciales. 73 Figura 38. Ingreso Administrador. 75 Figura 39. Opciones Administrador. 75 Figura 40. Listado de Entrevistas. 76 Figura 41. Consulta de notas de un estudiante. 76 Figura 42. Consulta del Administrador del Histórico de Notas de un 77 Estudiante Figura 43. Consulta de notas registradas. 78 Figura 44. Lista de Parciales Registrados. 78 Figura 45. Consulta de Prematricula por parte del Administrador. 79 Figura 46. Bajar Datos SISACAD. 82 LISTA DE ANEXOS Pág. Anexo A. Descripción de las tablas de la base de datos UDI en 94 SISACAD. Anexo B. Descripción de los scripts en SISACAD de las tablas 98 temporales - DATABASE UDI Anexo C. Descripción de los scripts en Servidor Web 100 RESUMEN EN ESPAÑOL TITULO: DESARROLLO DEL MODULO WEB DE UN SISTEMA DE INFORMACIÓN ACADÉMICO ∗ AUTOR: REYES CAMARGO Favio Andrés**. PALABRAS CLAVES: Modulo Web, Sistema de Información Académico, Admisiones, Prematrícula, Notas, Universidad. DESCRIPCIÓN: El proyecto SISACAD WEB llevado a cabo por la empresa ISIS LTDA, permite llevar a Internet algunos de los procesos que realiza el SISTEMA DE INFORMACIÓN PARA ADMINISTRACIÓN ACADÉMICA SISACAD dirigido a instituciones de educación superior. El Desarrollo del modulo Web permite a los aspirantes a ingresar a una universidad, consultar los diferentes planes que ésta ofrece y en el caso de optar por alguno de éstos, realizar su proceso de inscripción en línea y ubicar una fecha y hora para el examen de admisión respectivo según la institución. También permite a los estudiantes realizar el proceso de prematrícula, consultando horarios de las asignaturas y el docente a cargo de dichas asignaturas, así, después de seleccionar las asignaturas a matricular, el sistema está en capacidad de indicarle cuál es su valor de matrícula. Además les permite consultas de sus notas del semestre en curso y en cualquier momento, consultar las notas que han obtenido durante todo el transcurso en la Universidad. ∗ ** Trabajo de Grado – Práctica Empresarial Facultad de Ciencias Físico – Mecánicas Escuela de Ingeniería de Sistemas. Director: Fabio Reyes Cordero Los docentes podrán ingresar al sistema a registrar las notas de las asignaturas a su cargo en los respectivos cortes establecidos por la Universidad, además podrán, una vez registradas las notas, en cualquier momento consultar las listas de clase con las respectivas notas. Finalmente presenta a un usuario administrador las opciones mencionadas anteriormente para los diferentes usuarios, permitiendo además, consultar las horas de las entrevistas de una facultad especifica en un rango de fechas, un listado de los docentes que han o no registrado las notas en determinado corte para tener un control sobre ellos. Este proyecto contribuye a minimizar costos y tiempos en la Universidad y asimismo brinda comodidad a la comunidad universitaria y su entorno. RESUMEN EN INGLES TITLE: DESIGN OF A WEB BASED MODULE FOR AN ACADEMIC INFORMATION SYSTEM.* AUTHOR: REYES CAMARGO Favio Andrés**. KEY WORDS: Web Module, Academic Information System, Admissions, PreEnrollment, University, Grades. DESCRIPTION: The SISACAD WEB project, which has been completed for the company ISIS LTDA. allows several of the processes necessary for the INFORMATION SYSTEM FOR THE ACADEMIC ADMINISTRATION SISACAD to be brought to the internet and directed to a number of institutions of higher education. The design of this web module allows user to find a university, consult several different plans that they offer, and if they opt to choose a particular plan, they can complete the application process online and set a date and time to take the respective institution’s entrance exam. Students are also allowed to pre-enroll, look up course schedules and the professors teaching their courses. After selecting their study schedule the system is able to calculate what the value of their tuition will be. During the semester the system allows students to look up their grade to date as well as their current transcript of previous studies at that particular University. * ** Graduation Work – Enterprise Practice Physics and Mechanics Sciences Faculty Systems Engineer School Director: Fabio Reyes Cordero The professors can enter into the system and record the grades of their students for each class that they are teaching. Once they have recorded the grades they can go back and review the class grades at any time. Finally the system presents to an administrative user all of the previously mentioned options for the different types of users. It also allows them to look up; faculty meeting times over a specific period of time, a list of the professors that have or have not recorded their course grades for the purpose of keeping better track of them. This project helps to minimize the time and costs of the University at the same time bringing more convenient record keeping methods to the Academic community. INTRODUCCIÓN En la actualidad las organizaciones se han visto afectadas por las denominadas Sociedades de la Información, en las cuales el tratamiento y procesamiento de datos ha ido adquiriendo mayor importancia debido al valor agregado que éste representa para las organizaciones como aditivo en su proceso competitivo y desempeño económico, estableciendo sistemas eficientes y eficaces en el manejo de información. La manera en que las tecnologías de la información han ido evolucionando, y como éstas manipulan los datos para que se acoplen de forma óptima con las expectativas de los clientes, ya sea durante el procesamiento, almacenamiento o transmisión, se constituye en un punto clave dentro de la estructura organizativa. El crecimiento explosivo en el desarrollo de aplicaciones WEB y la manera en que éstas han sido subutilizadas, presenta el INTERNET como una aplicación sujeta a diversos riesgos y vulnerable tanto en su estructura como en su utilización. Las instituciones de educación superior poseen una forma establecida en sus procesos de inscripción, matricula, soporte académico y comercialización. Concientes de que deben lograr y mantener la calidad organizativa para satisfacer las necesidades de sus clientes y de la comunidad académica mejorando su desempeño, coordinación y productividad, se esmeran por conseguir un sistema de información con un alto grado de seguridad informática que supere las falencias que se presentan en algunas aplicaciones WEB. 1 El desarrollo del proyecto ha sido ejecutado en gran parte por la necesidad que las instituciones de educación superior presentan, como búsqueda en la mejora de sus servicios y el tratamiento de costos, tiempos y espacios dentro de la organización y en cumplimiento de la visión de la empresa ISIS LTDA., de ofrecer mayor valor agregado a sus clientes, innovando las soluciones software de acuerdo con el avance tecnológico. Dentro de este contexto, se realiza la práctica empresarial realizada como trabajo de grado. En éste documento se pretende hacer una presentación general del proyecto de investigación de la empresa y de la misma organización e historia de la empresa y puntualizar los procesos en los cuales se está trabajando como trabajo de grado, ya que no se puede pretender que en ese tiempo una sola persona pueda desarrollar todas las actividades presentadas en el cronograma, para lo cual existe un equipo de trabajo, que generará varias soluciones de software dependiendo de la plataforma de desarrollo, comunicación y operatividad de cada cliente de la empresa. 2 1. ASPECTOS GENERALES 1.1. DEFINICIÓN DEL PROBLEMA 1.1.1. Presentación de la Empresa El Instituto Santandereano de Sistematización ISIS LTDA. es una empresa creada en Octubre de 1982 con el objeto de prestar servicios de Consultoría y Asesoría en el área de Sistemas de Información, Desarrollo de Software, Procesamiento de datos, y capacitación en el área de Informática. MISION Ofrecer servicios de alta calidad en el área de informática, innovando continuamente de acuerdo con el avance tecnológico para lograr la eficiencia y oportunidad de la información en todos los procesos involucrados en el negocio de nuestros clientes. VISION Llegar a nuevas ciudades con los productos de software existentes en sus nuevas versiones y lograr crear la conciencia en los empresarios de la ciudad de las ventajas de contratar servicios outsourcing en el área de informática. PRODUCTOS ¾ SISACAD. Sistema de Información para administración académica Ofrece solución al manejo de la Contabilidad Académica en las instituciones de educación superior. La primera versión se desarrolló e instaló en el año 1997. ¾ ISIS/2000 ISIS LTDA. realizó alianza con ORACLE, para ofrecer toda su experiencia en la arquitectura cliente/servidor y está trabajando en desarrollos en esta plataforma desde el año de 1997. 3 La solución ISIS/2000, ofrece el manejo integrado de la información de todas las áreas de la empresa así: Comercial; Tesorería; Contabilidad; Comercio Exterior; Nómina y Administración de Recursos Humanos; Planeación y Control de Producción, Mantenimiento de equipos. Está diseñado en forma totalmente parametrizada, de tal manera que permite un fácil ajuste para su aplicación a cualquier sector económico (educación, comercio, manufactura, etc.). En el ambiente de bases de datos soportado por la tecnología de IBM AS/400, desarrollado en lenguaje COBOL/400 están disponibles: ¾ SICADE, Sistema Integrado de Información para el Control de Inventarios y Mercadeo en Cadena de Almacenes Detallistas Cuenta con módulos que integran las funciones de compras, inventarios, mercadeo, cuentas por pagar y herramientas de ayuda para la toma de decisiones en estas áreas. Esta solución se encuentra implementada en ambiente de computación IBM AS/400. ¾ SITRANS, Sistema de Información para empresas de transporte terrestre. Ofrece solución al manejo del transporte de pasajeros y al transporte de carga. Cuenta con los módulos de venta de tiquetes con reserva, programación de rutas, control de asignación de automotores, recepción de encomiendas y giros, programación de despachos de carga, facturación de servicios de carga y consultas e informes por cada módulo. Se encuentra desarrollado en ambiente AS/400. ¾ SIAM, Sistema de Información para la Administración Municipal, ofrece la solución al manejo e integración de la información de las alcaldías. Cuenta con los módulos de Facturación de Impuestos Predial, de Industria y Comercio y del Servicio de Acueducto; integra el control financiero en los módulos de Tesorería, Presupuesto y Contabilidad y cuenta con el Sistema de Recursos Humanos y Liquidación de Nómina. 4 Adicionalmente, ISIS ofrece los servicios de Consultoría para la implantación de Sistemas de Información, adquisición de equipos, cambios de tecnología, planeación estratégica de sistemas, procesos de reingeniería en Informática y servicios en la modalidad outsourcing para la administración de centros de cómputo, departamentos de informática y Sistemas de Información. IDENTIDAD RAZON SOCIAL: INSTITUTO SANTANDEREANO DE SISTEMATIZACION LIMITADA. SIGLA: ISIS LTDA. NIT: 890.209.161-6 GERENTE GENERAL Y REPRESENTANTE LEGAL: Ing. Martha Isabel Camargo de Reyes. C.C. 37’834.223 de Bucaramanga COORDINADOR DEL PROYECTO Ing. Elsa Liliana Gamma. Dirección: Carrera 27 No. 20-43 Piso 3 Email: [email protected] Bucaramanga – Colombia 1.1.2. Identificación del Problema El Sistema de Información Académica SISACAD, desarrollado desde 1995 por la empresa ISIS Ltda., bajo una plataforma UNIX y ambiente de Base de Datos INFORMIX, contempla dentro de su estructura una solución que ofrece el registro y control de toda la Información académica de una Institución de Educación Superior, cubriendo las necesidades de información para las áreas de pregrado y postgrado. SISACAD ha ido enriqueciéndose con algunas mejoras que han sido resultado de las pruebas y las observaciones realizadas en la puesta en marcha en diferentes Instituciones. Una de esas mejoras que se ha venido haciendo a SISACAD es el diseño y la implementación de las interfases Web con el fin de reducir costos y 5 tiempos en algunos procesos manejados por SISACAD, generando así la posibilidad de que un usuario, ya sea propio o ajeno a la Institución, pueda realizar dichos procesos vía Web. La interacción de la información a través de la WEB representa disminución de tiempo y costos, a saber: eliminación de largas colas de estudiantes en los procesos de admisión y matrículas, tiempo de la persona encargada de la atención a determinado proceso, ahorro de papel ya que ahora se obtiene la información en pantalla y si el usuario la quiere o la necesita impresa este papel no será suministrado por la Institución, costos en el traslado de un usuario desde su casa o lugar de trabajo a la Institución para realizar consultas de información ó cualquier actividad incluida dentro de la funcionalidad de la WEB, entre otros. La situación actual es que la Base de Datos de SISACAD se encuentra en un servidor INFORMIX en una versión que no permite desarrollo Web, por lo cual se ha optado por contar con un segundo Servidor (Servidor Web) que contenga la información que se va publicar. El Sistema Operativo de éste Servidor es Linux y el ambiente de Base de Datos es Postgres. Figura 1. Diagrama del modelo de comunicación SISACAD SERVIDOR WEB WEB Interfases Interfases entre Web El Servidor Web es el puente para comunicar a SISACAD con la Web, por tal razón deben existir procesos que permitan: 6 - El paso de información de un Servidor (INFORMIX) a otro Servidor (Postgres) o viceversa ya que el proceso final lo hace SISACAD, - Mostrar información a los usuarios y que a la vez estos puedan ingresar información a través de la Web (desarrollo Web). - Adicionalmente se debe garantizar la seguridad de los datos para lo cual se debe escoger el ambiente de datos e implementar los respectivos controles de seguridad. Dentro de la práctica empresarial, también se debe realizar la instalación de todos los programas y configuración adecuada que permita la comunicación óptima, la administración y la seguridad de acceso a los dos servidores. 1.2. OBJETIVOS 1.2.1. Objetivo General Desarrollar el módulo WEB para el sistema académico SISACAD, permitiendo así la interacción de aspirantes, estudiantes, profesores, directivos y personal administrativo, con la base de datos académica de una institución de educación superior, a través de dicho módulo. 1.2.2. Objetivos Específicos - Diseñar un entorno amigable, funcional, llamativo y seguro, que facilite y ayude a mejorar la imagen de la Institución de Educación Superior ante la comunidad. - Diseñar e implementar las interfaces necesarias que permitan el manejo de los datos entre el Servidor de SISACAD y el Servidor de la WEB. - Utilizar herramientas seguras de bajo costo que faciliten la inversión en el producto final de parte de las instituciones de Educación Superior. 7 - Implementar los cambios necesarios al modelo de datos de SISACAD, de tal forma que soporte la interacción con el módulo WEB desarrollado. - Implementar procedimientos y consultas dirigidas a aspirantes, estudiantes, docentes y personal directivo y administrativo los cuales estarán en capacidad de: - • Realizar el proceso de inscripción en línea. • Realizar prematricula, consulta de horarios y consulta de notas. • Registrar notas. • Brindar información académica requerida por las directivas. Elaborar un manual de usuario que contemple los cambios que se requieren en el sistema actual SISACAD para lograr interactuar con la aplicación WEB a desarrollarse. - Elaborar el manual del usuario del módulo WEB a desarrollarse. 1.3. JUSTIFICACIÓN El desarrollo del modulo WEB del sistema SISACAD se hace imperativo para colocar dicha solución en el nivel de competitividad exigido por el avance tecnológico. No se puede ignorar los grandes beneficios que proporcionan las telecomunicaciones y el uso de INTERNET en nuestro medio, lo cual ha llevado a que cada vez mas organizaciones busquen un alto desarrollo y utilización de los sistemas de información en línea para incrementar su cobertura y mejorar los servicios ofrecidos a la comunidad en general. Adicionalmente los beneficios para las Instituciones de Educación Superior que evitarán las grandes colas y el desgaste en la atención de usuarios (aspirantes, 8 estudiantes, docentes, personal administrativo) para obtener información de interés especifico. Hay que tener en cuenta que éste proceso implica transformaciones de pensamiento, presenta inconvenientes dados por la resistencia al cambio por parte de personas que temen a la innovación por ser de generaciones diferentes o por creer que dichas innovaciones implican un desplazamiento laboral para ellos. Además, actualmente no toda la población presenta el mismo grado de incorporación a Internet lo cual implica que puede variar el grado de complejidad de aprendizaje para los diferentes usuarios. En cada una de las etapas del proyecto se establecen los adecuados controles en cuanto a la seguridad informática, dando así un alto grado de confiabilidad. 1.3.1. Entidades Interesadas en el Proyecto Las entidades interesadas en el proyecto son: El INSTITUTO SANTENDEREANO DE SISTEMATIZACIÓN ISIS LTDA., que como empresa desarrolladora de software se orienta hacia la utilización de las últimas tecnologías de la información como medio para la construcción de software a la medida de las necesidades de determinado usuario. Por fuera de la empresa, existe un interés bastante grande de parte de la CORPORACION UNIVERSITARIA DE INVESTIGACIÓN Y DESARROLLO UDI, la cual, actuando como centro de educación superior, muestra el deseo de participar en la evolución y uso de soluciones informáticas que ayuden en el proceso de modernización institucional incentivando así el uso y la investigación en tecnologías de punta que a corto, mediano o largo plazo redunden en beneficios para si misma y para la comunidad. 9 La Universidad Santo Tomás quien también cuenta en sus sedes con el Sistema SISACAD y en donde fácilmente se puede implantar el modelo desarrollado en este proyecto. En general, todas las instituciones de educación superior que deseen integrar la tecnología y las facilidades brindadas por la Web a sus procesos de información académica y administrativa. 1.4. IMPACTO Y VIABILIDAD El proyecto representa para cualquier institución de Educación Superior un aseguramiento en la calidad de Servicio, estableciendo una mayor cobertura en la divulgación de sus planes, en la facilitación de sus procesos académicos como prematricula, matrículas, consulta e ingreso de notas, proceso de inscripción, entre otros, estableciendo un acceso a la información tanto a aspirantes como a estudiantes, docentes y personal administrativo y directivo. Involucra también una reducción de costos y tiempos en el desarrollo de procesos que exigen una disponibilidad de recurso humano y materiales, que representa optimización de recursos, por lo cual el módulo WEB reducirá tanto en tramitología de documentos como en la incomodidad del desplazamiento de estudiantes y aspirantes, aun de los docentes para registrar notas, debido a que todos estos procesos se llevarán acabo de manera interactiva, siempre estableciendo un alto grado de confiabilidad tanto para los usuarios como para la institución. Para la empresa desarrolladora se constituye en solución factible que garantiza la satisfacción de las expectativas de un segmento muy importante de sus clientes y el cumplimiento de la misión que viene cumpliendo desde hace más de veinte años. Es importante también señalar que este proceso es viable debido al compromiso e interés de la empresa de suministrar la información que sea pertinente para el desarrollo de la práctica, así como del espacio y los recursos que sean necesarios. 10 De igual forma el respaldo de las directivas garantiza que la labor que se va a desarrollar contribuirá realmente a la solución de la problemática planteada. 11 2. MARCO TEÓRICO 2.1. PLATAFORMA SOFTWARE 2.1.1. Sistemas Operativos ¾ SISTEMA OPERATIVO UNIX Es un sistema operativo multitarea, multiusuario, planificación mixta y casi todas las implementaciones son de memoria virtual. Historia El S.O. Unix se gestó a finales de los años sesenta en los laboratorios Bell AT&T sobre un ordenador PDP-7. La razón de su origen se debe a que Ken Thompson, insatisfecho con el sistema operativo que utilizaba en su trabajo, decidió escribir su propio S.O. Inicialmente fue escrito en lenguaje ensamblador, pero más adelante se reescribió parte del sistema operativo en un nuevo lenguaje de programación denominado B (precursor del actual lenguaje C). Al mismo tiempo, otro programador de la misma compañía, Dennis Ritchie, padre del lenguaje C, entró en contacto con Unix y, junto con Ken Thompson, tradujo el Unix a este lenguaje. Dada la imposibilidad de comercialización por parte de AT&T, se decidió distribuirlo con fines altruistas a Universidades, a cambio de un pago simbólico. Esta decisión tuvo dos consecuencias: - Rápida extensión y uso en el mundo científico. - Diversidad de versiones ya que no había quién dirigiera su desarrollo y evolución. 12 Para eliminar este último inconveniente, en 1984 AT&T lanza el estándar Unix System V. Estructura General Se puede dividir en varios componentes perfectamente diferenciados: - Núcleo o Kernel: Comprende un 5-10% del código total. - Caparazón o Shell: Actúa como intérprete de comandos. - Programas de utilidad. Kernel: Es el núcleo del S.O. UNIX. Tiene diversas tareas asignadas: - Planificar, coordinar y gestionar la ejecución de los procesos. Para ello, hace uso de las prioridades asignadas a cada proceso y utiliza algoritmos específicos para repartir el tiempo entre los diversos procesos que compiten por él. - Dar servicios del sistema, como entrada/salida y gestión de ficheros. - Manejar las operaciones dependientes de hardware, es decir, realiza las funciones de más bajo nivel de manera que se oculten al usuario. Un kernel típico puede constar de unas 20.000 líneas de código de las cuales un 7080% está escrito en C y el resto depende de máquina. Para un PC ocupa unos 500 Kb y para máquinas grandes puede llegar a 2 Mb. Shell: Desde el punto de vista del usuario, actúa como un intérprete de comandos. Es un programa que siempre está en ejecución. El Shell lee las órdenes suministradas, las decodifica y lo comunica al núcleo para realizar la acción especificada. Prácticamente, todas las órdenes son programas ejecutables que el shell busca en el sistema de ficheros, siguiendo el orden especificado en la variable global PATH. Existen varios tipos de shells, función, principalmente, de la versión de UNIX utilizada: 13 - Bourne shell (System V, Xenix) - C shell (Berkeley) - Korn shell (Ambos) El shell puede constar, en total, de unas 200.000 líneas de código en C. No existe, a nivel de usuario, el concepto de volumen, ni de dispositivo físico. Es decir, el usuario no sabe en qué disco están los ficheros que está utilizando. Un fichero (o archivo) es un conjunto de información al que se le da un nombre (nombre del fichero). Existen tres tipos de ficheros en UNIX: - Ordinarios: Son cadenas de bytes terminadas con <ctrl>D (este código significa fin de fichero). Pueden ser texto, objetos, ejecutables, bibliotecas de módulos, etc. - Directorios: Contienen nombres de ficheros y su dirección física. Puede pensarse en ellos como carpetas que contienen ficheros y directorios. Un directorio dentro de otro directorio se denomina subdirectorio. - Especiales: Asociados a dispositivos entrada/salida. Contienen referencias a los drivers (programas que manejan directamente los dispositivos y que forman parte del núcleo). Pueden ser de tipo “bloque” (apuntan a dispositivos tipo disco) y “carácter” (apuntan a dispositivos como terminales, impresoras, etc). Por convenio, residen en el directorio /dev. Al elegir los nombres de los ficheros, es conveniente limitarse a utilizar sólo los caracteres que correspondan a letras, números, el carácter subrayado (_) y el carácter punto (.). Los ficheros cuyo nombre comience por punto permanecen ocultos. En UNIX existe una jerarquía de directorios que para un sistema estándar sería: / Raíz 14 /dev Fichero especiales de dispositivos /lib Bibliotecas del sistema /bin Órdenes más empleadas /etc Datos y órdenes restringidas al superusuario /tmp Ficheros temporales (se borra periódicamente) /usr Órdenes, bibliotecas y programas adicionales /usr/lib /usr/bin /usr/man /usr/... /users Directorios de usuarios (puede aparecer también como /home) Los ficheros se especifican por: {camino jerárquico}/nombre{.ext} donde las llaves ({}) pueden ser o no necesarias. Los ficheros pueden constar de una extensión que es lo que aparece tras el punto (.). Un ejemplo sería: /usr/local/apache/conf/httpd.conf Con se estaría diciendo que se quiere hacer referencia al fichero ordinario denominado httpd.conf que se encuentra en el directorio conf que a su vez se encuentra en el directorio apache que a su vez se encuentra en el directorio local que a su vez se encuentra en el directorio usr que a su vez depende del directorio raíz. Dada la estructura jerárquica tipo árbol, al final, todo “cuelga” del directorio raíz. El directorio raíz es el único que no tiene nombre. Cada usuario tiene un directorio HOME que es el directorio asignado a ese usuario para que almacene sus ficheros. El camino de este directorio está contenido en la variable HOME. 15 Los ficheros pueden tener cualquier longitud hasta 256 caracteres. Como se ha dicho anteriormente, la extensión es opcional. En caso de que exista, por convenio significa: - .f Programa fuente escrito en lenguaje FORTRAN - .p Programa fuente escrito en lenguaje PASCAL - .c Programa fuente escrito en lenguaje C - .o Fichero objeto - .a Biblioteca de módulos - .h Fichero de “cabecera” ¾ SISTEMA OPERATIVO LINUX Linux es un sistema operativo diseñado por cientos de programadores de todo el planeta, aunque el principal responsable del proyecto es Linus Tovalds. Su objetivo inicial es propulsar el software de libre distribución junto con su código fuente para que pueda ser modificado por cualquier persona, dando rienda suelta a la creatividad. El hecho de que el sistema operativo incluya su propio código fuente expande enormemente las posibilidades de este sistema. Este método también es aplicado en numerosas ocasiones a los programas que corren en el sistema, lo que hace que se puedan encontrar muchísimos programas útiles totalmente gratuitos y con su código fuente. Las funciones principales de este sistema operativo son: - Sistema multitarea: En Linux es posible ejecutar varios programas a la vez sin necesidad de tener que parar la ejecución de cada aplicación. - Sistema multiusuario: Varios usuarios pueden acceder a las aplicaciones y recursos del sistema Linux al mismo tiempo, y por supuesto, cada uno de ellos puede ejecutar varios programas a la vez (multitarea). 16 - Shells programables: Un shell conecta las ordenes de un usuario con el Kernel de Linux (el núcleo del sistema), y al ser programables se puede modificar para adaptarlo a las necesidades del mismo. Por ejemplo, es muy útil para realizar procesos en segundo plano. - Independencia de dispositivos: Linux admite cualquier tipo de dispositivo (módems, impresoras) gracias a que cada una vez instalado uno nuevo, se añade al Kernel el enlace o controlador necesario con el dispositivo, haciendo que el Kernel y el enlace se fusionen. Linux posee una gran adaptabilidad y no se encuentra limitado como otros sistemas operativos. - Comunicaciones: Linux es el sistema más flexible para poder conectarse a cualquier ordenador del mundo. Internet se creó y desarrollo dentro del mundo de Unix, y por lo tanto Linux tiene las mayores capacidades para navegar, ya que Unix y Linux son sistemas prácticamente idénticos. Linux no sacrifica en ningún momento la creatividad, tal y como lo hacen algunas compañías informáticas. Linux es una ventana abierta por la que es posible huir hacia un mundo donde la verdadera informática puede ser disfrutada sin limites ni monopolios. Linux es distribuido mediante una serie de distribuciones como RedHat, Slackware, Debían, entre otras, las cuales se diferencian por su método de instalación y por los paquetes (software) que viene incluido. Características de LINUX - Multitarea: varios programas (procesos) ejecutándose al mismo tiempo. - Multiusuario: varios usuarios en la misma máquina al mismo tiempo (y sin licencias para todos). - Multiplataforma: corre en muchas CPUs distintas, no sólo Intel. - Funciona en modo protegido 386. - Tiene protección de la memoria entre procesos, de manera que uno de ellos no pueda colgar el sistema. 17 - Carga de ejecutables por demanda: Linux sólo lee de disco aquellas partes de un programa que están siendo usadas actualmente. - Política de copia en escritura para la compartición de páginas entre ejecutables: esto significa que varios procesos pueden usar la misma zona de memoria para ejecutarse. Cuando alguno intenta escribir en esa memoria, la página (4Kb de memoria) se copia a otro lugar. Esta política de copia en escritura tiene dos beneficios: aumenta la velocidad y reduce el uso de memoria. - Memoria virtual usando paginación (sin intercambio de procesos completos) a disco: una partición o un archivo en el sistema de archivos, o ambos, con la posibilidad de añadir más áreas de intercambio sobre la marcha (se sigue denominando intercambio, es en realidad un intercambio de páginas). Un total de 16 zonas de intercambio de 128Mb de tamaño máximo pueden ser usadas en un momento dado con un límite teórico de 2Gb para intercambio. - La memoria se gestiona como un recurso unificado para los programas de usuario y para el caché de disco, de tal forma que toda la memoria libre puede ser usada para caché y éste puede a su vez ser reducido cuando se ejecuten grandes programas. - Librerías compartidas de carga dinámica (DLL's) y librerías estáticas. - Se realizan volcados de estado (core dumps) para posibilitar los análisis postmortem, permitiendo el uso de depuradores sobre los programas no sólo en ejecución sino también tras abortar éstos por cualquier motivo. - Casi totalmente compatible con POSIX, System V y BSD a nivel fuente. - Mediante un módulo de emulación de iBCS2, casi completamente compatible con SCO, SVR3 y SVR4 a nivel binario. - Todo el código fuente está disponible, incluyendo el núcleo completo y todos los drivers, las herramientas de desarrollo y todos los programas de usuario; además todo ello se puede distribuir libremente. - Control de tareas POSIX. - Pseudo-terminales (pty's). - Emulación de 387 en el núcleo, de tal forma que los programas no tengan que hacer su propia emulación matemática. Cualquier máquina que ejecute Linux parecerá dotada de coprocesador matemático. - Soporte para muchos teclados nacionales o adaptados. 18 - Consolas virtuales múltiples: varias sesiones de login a través de la consola entre las que se puede cambiar con las combinaciones adecuadas de teclas (totalmente independiente del hardware de video). Se crean dinámicamente y se pueden tener hasta 64. - Soporte para varios sistemas de archivo comunes, incluyendo minix-1, Xenix y todos los sistemas de archivo típicos de System V, y tiene un avanzado sistema de archivos propio con una capacidad de hasta 4 Tb y nombres de archivos de hasta 255 caracteres de longitud. - Acceso transparente a particiones MS-DOS (o a particiones OS/2 FAT) mediante un sistema de archivos especial: no se necesita ningún comando especial para usar la partición MS-DOS, parece un sistema de archivos normal de Unix. - Un sistema de archivos especial llamado UMSDOS que permite que Linux sea instalado en un sistema de archivos DOS. - soporte en sólo lectura de HPFS-2 del OS/2 2.1. - Sistema de archivos de CD-ROM que lee todos los formatos estándar de CDROM. - TCP/IP, incluyendo ftp, telnet, NFS, etc. - Appletalk disponible en el actual núcleo de desarrollo. - Software cliente y servidor Netware disponible en los núcleos de desarrollo. 2.1.2. Herramientas de Desarrollo ¾ J2SE JAVA 2 SDK, Standard Edilion (J2SE) es un entorno de desarrollo para crear aplicaciones, applets y componentes utilizando el lenguaje de programación Java Incluye herramientas útiles para desarrollar y probar programas escritos en el lenguaje de programación Java y que se ejecutan en la plataforma Java. Estas herramientas están diseñadas para que se utilicen desde la línea de comandos. Excepto en el caso del visualizador de applets, estas herramientas no proporcionan una interfaz gráfica de usuario. 19 La documentación incluida de la plataforma Java 2 contiene especificaciones API, descripciones de funciones, guías de desarrollador, páginas de referencia de utilidades y herramientas de SDK, demostraciones y enlaces con información relacionada. Java 2 Platform, Standard Edition es la tecnología básica para muchos estilos diferentes de desarrollo de software, incluidos applets y aplicaciones clientes y aplicaciones de servidores individuales. Representa la base de la cual se derivan las tecnologías Java 2 Platform, Micro Edítion (J2ME) y es el motor que optimiza las implementaciones de Java 2 Plattorm, Enterprise Edition J2EE. ¾ JRE Java Runhme Environment (JRE) es el entorno mínimo para ejecutar programas Java 2. Incluye la JVM y la API. Está incluida en el J2SE aunque puede descargarse e instalarse separadamente. En aquellos sistemas donde se vayan a ejecutar programas Java, pero no compilados, el JRE es suficiente. El JRE incluye el Java Plug-in, que es el “añadido” que necesitan los navegadores (Explorer o Netscape) para poder ejecutar programas Java 2. Es decir que instalando el JRE se tiene soporte completo Java2, tanto para aplicaciones normales (denominadas “standalone”) como para Applets (programas Java que se ejecutan en una página Web, cuando esta es accedida desde un navegador). 2.1.3. Servidor Web ¾ TOMCAT Tomcat es un contenedor de Servlets con un entorno JSP. Un contenedor de Servlets es un shell de ejecución que maneja e invoca servlets por cuenta del usuario. Se pueden dividir los contenedores de Servlets en: 20 1. Contenedores de Servlets Stand-alone (Independientes). Estos son una parte integral del servidor web. Este es el caso cuando usando un servidor web basado en Java, por ejemplo, el contenedor de servlets es parte de JavaWebServer (actualmente sustituido por iPlanet). Este el modo por defecto usado por Tomcat. Sin embargo, la mayoría de los servidores, no están basados en Java. 2. Contenedores de Servlets dentro-de-Proceso. El contenedor Servlet es una combinación de un plugin para el servidor web y una implementación de contenedor Java. El plugin del servidor web abre una JVM (Máquina Virtual Java) dentro del espacio de direcciones del servidor web y permite que el contenedor Java se ejecute en él. Si una cierta petición debería ejecutar un servlet, el plugin toma el control sobre la petición y lo pasa al contenedor Java (usando JNI). Un contenedor de este tipo es adecuado para servidores multi-thread de un sólo proceso y proporciona un buen rendimiento pero está limitado en escalabilidad 3. Contenedores de Servlets fuera-de-proceso. El contenedor Servlet es una combinación de un plugin para el servidor web y una implementación de contenedor Java que se ejecuta en una JVM fuera del servidor web. El plugin del servidor web y el JVM del contenedor Java se comunican usando algún mecanismo IPC (normalmente sockets TCP/IP). Si una cierta petición debería ejecutar un servlet, el plugin toma el control sobre la petición y lo pasa al contenedor Java (usando IPCs). El tiempo de respuesta en este tipo de contenedores no es tan bueno como el anterior, pero obtiene mejores rendimientos en otras cosas (escalabilidad, estabilidad, etc.). Tomcat puede utilizarse como un contenedor solitario (principalmente para desarrollo y depuración) o como plugin para un servidor web existente (actualmente se soporan los servidores Apache, IIS y Netscape). Dentro de los distintos motores existentes para extender las características adicionales de Java 2 probablemente uno de los proyectos de código abierto liderado por la Apache Software Foundation en el cual se ha desarrollado el servidor 21 Jakarta-Tomcat, el cual no es más que un servidor de aplicaciones basado en Java y creado para ejecutar servlets y páginas JSP, siendo la implementación oficial de referencia de las especificaciones Servlet 2.3 y JavaServer Pages 1.2. con la ventaja adicional de ser gratuito. En el servidor tomcat contiene dos ficheros xml que son los que almacenan la configuración, y reciben el nombre de server.xml y web.xml, el primero se encarga de especificar la configuración global de Tomcat mientras que el segundo se encarga de recoger aquellos parámetros que son opcionales. Tomcat carece de algunas características funcionales importantes como son: - Velocidad: Tomcat es mucho más lento que Apache. - Configuración: Tomcat no es configurable en muchos de sus aspectos. - Robustez: Tomcat no está pensado como servidor web sino como motor de JSP y servlet por tanto no se debe sustituir un servidor web por Tomcat. ¾ 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.1.4. Herramientas de Seguridad ¾ SSL Son las siglas de Secure Socket Layer o capa segura de sockets. Es una tecnologia desarrollada por Netscape para asegurar la privacidad y fiabilidad de las 22 comunicaciones entre dos aplicaciones. SSL es el protocolo de encriptación más utilizado en Internet en estos momentos y es el más usado en servidores Web donde se solicita información confidencial. Es utilizado por el nivel de aplicación como capa de transporte de forma totalmente transparente independiente del protocolo utilizado. Las principales propiedades de seguridad proporcionadas por SSL son: - Comunicación segura basada en encriptación simétrica. - Autentificación y negociación basada en encriptación asimétrica. - Comunicación fiable basada en protocolos de integridad de mensajes. Análisis de las propiedades de seguridad SSL. SSL tiene dos fases en su proceso de comunicación. En la primera fase se establece una comunicación basada en encriptación asimétrica donde el cliente y el servidor intercambian los primeros mensajes y realizan la negociación de los parámetros de la sesión. En la segunda fase se establece la verdadera sesión de comunicación donde las aplicaciones intercambian información. Se pueden producir ataques sobre el protocolo en la comunicación a través de la red, sobre los mensajes intercambiados entre el cliente y el servidor. Se supone que un posible atacante podría realizar diversas operaciones ilícitas sobre los mensajes como sustitución, eliminación, interceptación y desencriptación. SSL ha sido diseñado teniendo en cuenta este tipo de ataques e implementa mecanismos para detectarlos. Entre las opciones de comunicación de SSL existe la posibilidad de autentificar a los participantes de la conexión por medio del uso de Certificados. Un Certificado no es más que una identificación que puede ser comprobada por una Entidad de Verificación o por un certificado propio. 23 2.2. INTERNET 2.2.1. Generalidades de Internet2 El Internet, algunas veces llamado simplemente "La Red", es un sistema mundial de redes de computadoras, un conjunto integrado por las diferentes redes de cada país del mundo, por medio del cual un usuario en cualquier computadora puede, en caso de contar con los permisos apropiados, accesar información de otra computadora y poder tener inclusive comunicación directa con otros usuarios en otras computadoras. Fue concebido por la agencia de nombre ARPA (Advanced Research Projects Agency) del gobierno de los Estados Unidos en el año de 1969 y se le conocía inicialmente como ARPANET. El propósito original fue crear una red que permitiera a los investigadores en un Campus poder comunicarse a través de los sistemas de cómputo con investigadores en otras Universidades. Hoy en día, el Internet es un medio de comunicación público, cooperativo y autosuficiente en términos económicos, accesible a cientos de millones de gentes en el mundo entero. Físicamente, el Internet usa parte del total de recursos actualmente existentes en las redes de telecomunicaciones. Técnicamente, lo que distingue al Internet es el uso del protocolo de comunicación llamado TCP/IP (Transmission Control Protocol/Internet Protocol). Para muchos usuarios del Internet, el correo electrónico (e-mail) ha reemplazado prácticamente al servicio postal para breves mensajes por escrito. El correo electrónico es la aplicación de mayor uso en la red. También se pueden realizar conversaciones "en vivo" con otros usuarios en otras localidades usando el IRC (Internet Relay Chat). Más recientemente, el software y hardware para telefonía en Internet permite conversaciones de voz en línea. 2 http://www.adap.es/utilidades/internet/generalidades/protocolos.htm 24 2.2.2. Sistemas de Información en Internet Un sistema de Información puede definirse de diferentes formas, entre las cuales se encuentra: - Conjunto ordenado de componentes o elementos interrelacionados, interdependientes e interactuantes que tienen por finalidad el logro de objetivos determinados. - Conjunto de elementos que interaccionan entre si, orientados a la consecución de un objetivo común. Un sistema está situado en un entorno o ambiento con el que interactúa, recibe entradas y produce salidas. - Conjunto de entidades que se relacionan e interactúan, en un contexto dado, en post de un objetivo final predefinido, brindando apoyo a las actividades realizadas en una empresa o negocio. En conclusión, un sistema de información es un conjunto de componentes interrelacionados que permiten capturar, procesar, almacenar y distribuir la información para apoyar la toma de decisiones y el control en una entidad o institución. Vale la pena resaltar que este no puede operar por sí mismo. Para eso se hace necesaria la presencia de un equipo de cómputo que contenga hardware necesario y también de recurso humano, el cual está formado por las personas que utilizan el sistema. Un sistema de información realiza cuatro actividades básicas: entrada, almacenamiento, procesamiento y salida de información. Entrada de Información: Es el proceso mediante el cual el Sistema de Información toma los datos que requiere para procesar la información. Las entradas pueden ser manuales o automáticas. Las manuales son aquellas que se proporcionan en forma 25 directa por el usuario, mientras que las automáticas son datos o información que provienen o son tomados de otros sistemas o módulos. Las unidades típicas de entrada de datos a las computadoras son las terminales, las cintas magnéticas, las unidades de diskette, los códigos de barras, los escáners, la voz, los monitores sensibles al tacto, el teclado y el mouse, entre otras. Almacenamiento de información: El almacenamiento es una de las actividades o capacidades más importantes que tiene una computadora, ya que a través de esta propiedad el sistema puede recordar la información guardada en la sección o proceso anterior. Esta información suele ser almacenada en estructuras de información denominadas archivos. Procesamiento de información: Es la capacidad del Sistema de Información para efectuar cálculos de acuerdo con una secuencia de operaciones preestablecida. Estos cálculos pueden efectuarse con datos introducidos recientemente en el sistema o bien con datos que están almacenados. Esta característica de los sistemas permite la transformación de datos fuente en información que puede ser utilizada para la toma de decisiones. Salida de Información: La salida es la capacidad de un Sistema de Información para llevar la información procesada o bien datos de entrada al exterior. Las unidades típicas de salida son las impresoras, terminales, diskettes, cintas magnéticas, la voz, los graficadores y los plotters, entre otros. Es importante aclarar que la salida de un Sistema de Información puede constituir la entrada a otro Sistema de Información o módulo. Por otro lado, existen diferentes aspectos que deben tenerse en cuenta al momento de pensar en la implantación de Sistemas de Información Internet, ya que estos se caracterizan principalmente por su constante crecimiento y evolución. Internet es un medio de propagación de información en el cual día a día todo cambia. No es lógico pensar en un sistema de información para Internet bajo un 26 enfoque clásico y estático ya que por sus mismas características, este nunca llega a ser un producto definitivo. Es por esto que al ver las diferentes metodologías que han sido planteadas y utilizadas en el desarrollo de sistemas de información se puede ver el Proceso Unificado como un soporte para el desarrollo e implantación de aplicaciones en Internet debido a sus características. 2.2.3. Aplicaciones Web La idea fundamental es que los navegadores, browsers, presentan documentos escritos en HTML que han obtenido de un servidor Web. Estos documentos HTML habitualmente presentan información de forma estática, sin más posibilidad de interacción con ellos. El modo de crear los documentos HTML ha variado a lo largo de la corta vida de las tecnologías Web pasando desde las primeras páginas escritas en HTML almacenadas en un fichero en el servidor Web hasta aquellas que se generan al vuelo como respuesta a una acción del cliente y cuyo contenido varía según las circunstancias. Además, el modo de generar páginas dinámicas ha evolucionado, desde la utilización del CGI ,Common Gateway Interface, hasta los servlets pasando por tecnologías tipo JavaServer Pages. Todas estas tecnologías se encuadran dentro de aquellas conocidas como Server Side, ya que se ejecutan en el servidor web. Otro aspecto que completa el panorama son las inclusiones del lado del cliente, Client Side, que se refieren a las posibilidades de que las páginas lleven incrustado código que se ejecuta en el cliente, como por ejemplo JavaScript y programas Java. 27 El esquema general de la situación se puede ver en la figura 2, donde se muestran cada tipo de tecnología involucrada en la generación e interacción de documentos Web. Figura 2. Esquema de interacción de documentos Web 2.3. ARQUITECTURA DE LA INFORMACIÓN 2.3.1. Modelo Cliente / Servidor La arquitectura cliente-servidor3 permite al usuario en una máquina, llamado el cliente, requerir algún tipo de servicio de una máquina a la que está unido, llamado el servidor, mediante una red como una LAN (Red de Área Local) o una WAN (Red de Área Mundial). Es el modelo de base utilizado en la mayoría de las redes de computadoras. El término servidor se aplica a cualquier programa que ofrece un servicio y que puede ser accesado a través de la red. Los servidores aceptan peticiones recibidas 3 http://www.informaticamilenium.com.mx/paginas/espanol/sitioweb.htm#top 28 por medio de la red, realizan el servicio y regresan el resultado al que generó la petición. Si el principal objetivo de una máquina es el de soportar un programa servidor en particular, entonces el término “servidor” puede ser aplicado también a dicha máquina. Un servidor entonces, provee un servicio, es pasivo, es decir, espera a que los clientes le soliciten un servicio. Un servidor comienza su ejecución antes del inicio de cualquier interacción y (usualmente) continúa aceptando peticiones y enviando respuestas indefinidamente. Por otro lado, un cliente es cualquier programa que efectúa una petición y espera una respuesta; (generalmente) termina después de usar un servidor un número finito de veces. Solicita servicios del servidor y es activo, es decir, es el que inicia las conexiones. Las aplicaciones cliente-servidor en la actualidad requieren un esquema híbrido de tal manera que puedan procesarse transacciones, diseño de bases de datos, experiencia de comunicaciones, uso de una interfase gráfica de usuario y uso de Internet. Las aplicaciones más avanzadas requieren conocimiento de objetos distribuidos e infraestructura de componentes. Entre las características de los sistemas cliente-servidor se encuentran: - Servicio: Un esquema cliente-servidor puede verse como una relación entre procesos corriendo o ejecutándose en máquinas separadas. El servidor es un proveedor de servicios. El cliente es un consumidor de servicios. En esencia, el esquema cliente-servidor provee una clara separación basándonos en la idea del servicio. - Recursos compartidos: Un servidor puede atender muchos clientes al mismo tiempo y regular el acceso de los mismos a los recursos compartidos. 29 - Protocolos asimétricos: Existen relaciones muchos-a-uno entre los clientes y un servidor. Los clientes siempre inician el diálogo solicitando el requerimiento a un servicio. Los servidores están siempre pasivos esperando los requerimientos de los clientes. - Localización transparente: El servidor es un proceso que puede estar en la misma máquina que el cliente o en diferentes máquinas sobre la red. El software cliente-servidor frecuentemente enmascara la localización del servidor para los clientes, redireccionando las llamadas al servicio cuando se hace necesario. Un programa puede ser un cliente, un servidor o ambos. - Escalabilidad: Los sistemas cliente-servidor deben escalarse tanto horizontal como verticalmente. Horizontalmente significa poder adicionar o retirar estaciones de trabajo con muy bajo impacto sobre el rendimiento; verticalmente significa migrar a estaciones más grandes y rápidas o a sistemas distribuidos sobre la red. - Integridad: El código en el servidor y los datos en él están administrados de forma centralizada, lo cual ofrece integridad y seguridad a los datos. Al mismo tiempo, los clientes son independientes. Existen diferentes tipos de servidores entre los cuales se encuentran: 1. Servidor de archivos: Con un servidor de archivos, un cliente lo que hace es requerimientos de éstos sobre una red. 2. Servidor de Bases de Datos: Con un servidor de bases de datos se pasan requerimientos SQL como mensajes a la base de datos. El resultado de cada comando SQL es retornado sobre la red, el código que procesa el requerimiento SQL y los datos, se encuentran en la misma máquina. 30 3. Servidor de transacciones: Con un servidor de transacciones, se pueden hacer llamados a procedimientos o servicios que se encuentran en el servidor donde se encuentra la base de datos. Se puede afirmar que una transacción existe cuando se agrupan varios requerimientos SQL. 4. Servidor de aplicaciones Web: Este modelo consiste en máquinas cliente simples que hablan con servidores Web. Un servidor Web retorna documentos cuando el cliente pregunta por el nombre de los mismos. 2.4. MODELO DEL PROCESO DEL SOFTWARE 2.4.1. Modelo en Cascada Es el más básico de todos los modelos de ciclo de vida y de hecho sirve de base para otros modelos4. Fue originalmente documentado por Royce en el año 1970. El modelo de cascada ve el desarrollo como una secuencia simple de fases (como se muestra en la figura) en donde cada fase tiene un conjunto de metas bien definidas y las actividades entre cualquier fase contribuye a satisfacer las metas de las fases subsiguientes. Figura 3. Modelo en cascada 4 Aurum Solutions - International IT Consulting and Training 31 Algunos principios básicos del Modelo en Cascada son: - Plan de proyecto antes de embarcarse en él. - Definición del comportamiento externo del sistema deseado. - Documentación de los resultados de cada actividad. - Diseño del sistema previo a la codificación. - Prueba del sistema antes de su construcción. Características del Modelo en Cascada: - Presenta el ciclo de desarrollo de software. - Tiene una secuencia ordenada. - Una etapa previa es la entrada del siguiente proceso. 2.4.2. Modelo Incremental El modelo incremental combina elementos del modelo en cascada (aplicados repetidamente) con la filosofía interactiva de construcción de prototipos. Como muestra la Figura 4 el modelo incremental aplica secuencias lineales de forma escalonada mientras progresa el tiempo en el calendario. Cada secuencia lineal produce un «incremento» del software. Es clave entender que el modelo incremental entrega el software en partes pequeñas, pero utilizables, llamadas «incrementos».5 En general, cada incremento se construye sobre aquél que ya ha sido entregado. Cuando se utiliza un modelo incremental, el primer incremento a menudo es un producto esencial. Es decir, se afrontan requisitos básicos, pero muchas funciones suplementarias (algunas conocidas, otras no) quedan sin extraer. El cliente utiliza el producto central (o sufre la revisión detallada). Como un resultado de utilización y/o de evaluación, se desarrolla un plan para el incremento siguiente. El plan afronta la modificación del producto central a fin de cumplir mejor las necesidades del cliente y la entrega de funciones, y características adicionales. Este proceso se repite 5 INGENIERÍA DEL SOFTWARE – Un enfoque práctico. PRESSMAN Roger S. Mc. Graw Hill. 32 siguiendo la entrega de cada incremento, hasta que se elabore el producto completo. El modelo de proceso incremental, como la construcción de prototipos y otros enfoques evolutivos, es iterativo por naturaleza. Pero a diferencia de la construcción de prototipos, el modelo incremental se centra en La entrega de un producto operacional con cada incremento. Los primeros incrementos son versiones «incompletas» del producto final, pero proporcionan al usuario la funcionalidad que precisa y también una plataforma para la evaluación. El desarrollo incremental es particularmente útil cuando la dotación de personal no esta disponible para una implementación completa en la fecha límite que se haya establecido para el proyecto. Los primeros incrementos se pueden implementar con menos personas. Figura 4. Modelo Incremental6 Ingeniería de Sistemas / Información Análisis Incremento 1 Diseño Código Entrega del 1er Incremento Prueba Incremento 2 Análisis Diseño Código Entrega del 2o Incremento Prueba Incremento 3 Análisis Diseño Código Prueba Entrega del 3er Incremento Incremento 4 Análisis Diseño Código Entrega del 4o Incremento Tiempo de Calendario 6 Prueba INGENIERIA DEL SOFTWARE Un enfoque Práctico. PRESSMAN Roger S. Mc. Graw Hill. 33 2.5. BASES DE DATOS Se define una base de datos como una serie de datos organizados y relacionados entre sí, los cuales son recolectados y explotados por los sistemas de información de una empresa o negocio en particular. Las bases de datos proporcionan la infraestructura requerida para los sistemas de apoyo a la toma de decisiones y para los sistemas de información estratégicos, ya que estos sistemas explotan la información contenida en las bases de datos de la organización para apoyar el proceso de toma de decisiones o para lograr ventajas competitivas. Por este motivo es importante conocer la forma en que están estructuradas las bases de datos y su manejo. 2.5.1. Componentes Principales Datos. Los datos son la Base de Datos propiamente dicha. Hardware. El hardware se refiere a los dispositivos de almacenamiento en donde reside la base de datos, así como a los dispositivos periféricos (unidad de control, canales de comunicación, etc.) necesarios para su uso. Software. Está constituido por un conjunto de programas que se conoce como Sistema Manejador de Base de Datos (DMBS: Data Base Management System). Este sistema maneja todas las solicitudes formuladas por los usuarios a la base de datos. Usuarios. Existen tres clases de usuarios relacionados con una Base de Datos: 1. El programador de aplicaciones, quien crea programas de aplicación que utilizan la base de datos. 2. El usuario final, quien accesa la Base de Datos por medio de un lenguaje de consulta o de programas de aplicación. 34 3. El administrador de la Base de Datos (DBA: Data Base Administrator), quien se encarga del control general del Sistema de Base de Datos. 2.5.2. Ventajas en el uso de Bases de Datos Globalización de la información. Permite a los diferentes usuarios considerar la información como un recurso corporativo que carece de dueños específicos. Eliminación de información redundante, duplicada. Eliminación de información inconsistente. Si el sistema esta desarrollado a través de archivos convencionales, dicha cancelación deberá operarse tanto en el archivo de facturas del Sistema de Control de Cobranza como en el archivo de facturas del Sistema de Comisiones. Permite compartir información. Varios sistemas o usuarios pueden utilizar una misma entidad. Permite mantener la integridad en la información. Solo se almacena la información correcta. Independencia de datos. La independencia de datos implica un divorcio entre programas y datos; es decir, se pueden hacer cambios a la información que contiene la base de datos o tener acceso a la base de datos de diferente manera, sin hace cambios en las aplicaciones o en los programas. 2.5.3. El Sistema Organizador de Base de Datos (DBMS) El DBMS es un conjunto de programas que se encargan de manejar la creación y todos los accesos a las bases de datos. Se compone de un lenguaje de definición de datos (DDL: Data Definition Language), de un lenguaje de manipulación de datos (DML: Data Manipulation Language) y de un lenguaje de consulta (SQL: Structured Query Language). 35 El lenguaje de definición de datos (DDL) es utilizado para describir todas las estructuras de información y los programas que se usan para construir, actualizar e introducir la información que contiene una base de datos. El lenguaje de manipulación de datos (DML) es utilizado para escribir programas que crean, actualizan y extraen información de las bases de datos. El lenguaje de consulta (SQL) es empleado por el usuario para extraer información de la base de datos. El lenguaje de consulta permite al usuario hacer requisiciones de datos sin tener que escribir un programa, usando instrucciones como el SELECT, el PROJECT y el JOIN. La secuencia conceptual de operaciones que ocurren para acceder cierta información que contiene una base de datos es la siguiente: 1. El usuario solicita cierta información contenida en la base de datos. 2. El DBMS intercepta este requerimiento y lo interpreta. 3. El DBMS realiza las operaciones necesarias para acceder y/o actualizar la información solicitada. 2.5.4. El Administrador de la Base de Datos (DBA) El DBA es la persona encargada de definir y controlar las bases de datos corporativas, además proporciona asesoría a los usuarios y ejecutivos que la requieran. 2.5.5. Tipos de Modelos de Datos Existen fundamentalmente tres alternativas disponibles para diseñar las bases de datos: el modelo jerárquico, el modelo de red y el modelo relacional. El modelo jerárquico: La forma de esquematizar la información se realiza a través de representaciones jerárquicas o relaciones de padre/hijo, de manera similar a la 36 estructura de un árbol. Así, el modelo jerárquico puede representar dos tipos de relaciones entre los datos: relaciones de uno a uno y relaciones de uno a muchos. En el primer tipo se dice que existe una relación de uno a uno si el padre de la estructura de información tiene un solo hijo y viceversa, si el hijo tiene solamente un padre. En el segundo tipo se dice que la relación es de uno a muchos si el padre tiene más de un hijo, aunque cada hijo tenga un solo padre. Inconveniente del modelo jerárquico Relación maestro-alumno, donde un maestro tiene varios alumnos, pero un alumno también tiene varios maestros, uno para cada clase. En este caso, si la información estuviera representada en forma jerárquica donde el padre es el maestro y el alumno es el hijo, la información del alumno tendrá que duplicarse para cada uno de los maestros. Otra dificultad que presenta el modelo jerárquico de representación de datos es respecto a las bajas. En este caso, si se desea dar de baja a un padre, esto necesariamente implicará dar de baja a todos y cada uno de los hijos que dependen de este padre. El modelo de red: El modelo de red evita esta redundancia en la información, a través de la incorporación de un tipo de registro denominado el conector, que en este caso pueden ser las calificaciones que obtuvieron los alumnos de cada profesor. La dificultad surge al manejar las conexiones o ligas entre los registros y sus correspondientes registros conectores. El modelo relacional: Se está empleando con más frecuencia en la práctica, debido el rápido entendimiento por parte de los usuarios que no tienen conocimientos profundos sobre Sistemas de Bases de Datos y a las ventajas que ofrece sobre los dos modelos anteriores. 37 En este modelo toda la información se representa a través de arreglos bidimensionales o tablas. Estas operaciones básicas son: • Seleccionar renglones de alguna tabla (SELECT) • Seleccionar columnas de alguna tabla (PROJECT) • Unir o juntar información de varias tablas (JOIN) Es importante mencionar que la mayoría de los paquetes que manejan bases de datos disponibles en el mercado poseen las instrucciones SELECT, PROJECT Y JOIN con diferentes nombres y modalidades. Una base de datos relacional debe cumplir con las siguientes características (Modelo ACID – Atomicity, consistency, Isolation, Durability) - Atomicidad: La atomicidad de una transacción garantiza que todas sus acciones sean realizadas o ninguna sea ejecutada. - Consistencia: La consistencia garantiza que las reglas que hayan sido declaradas para una transacción sean cumplidas. - Aislamiento: Esto garantiza que las transacciones que se estén realizando en el sistema sean invisibles a todos los usuarios hasta que estas hayan sido declaradas finales. El aislamiento garantiza que los usuarios del sistema no observen estos cambios intermedios hasta que sea finalizada la última acción de actualización. - Durabilidad: La durabilidad de una transacción garantiza que al instante en el que se finaliza la transacción esta perdure a pesar de otras consecuencias, esto es, si el disco duro falla, el sistema aún será capaz de recordar todas la transacciones que han sido realizadas en el sistema. 2.5.6. Bases de Datos Distribuidas Son las Bases de Datos que no están almacenadas totalmente en un solo lugar físico, (esta segmentada) y se comunican por medio de enlaces de comunicaciones a través de una red de computadoras distribuidas geográficamente. 38 2.5.7. Tendencias Futuras La explotación efectiva de la información dará ventaja competitiva a las organizaciones. Las bases de datos orientadas a objetos empleadas para diseño y manufactura asistida por computadora CAD/CAM serán utilizados a un mismo nivel que las Bases se Datos relacionales de la actualidad. Los lenguajes de consulta (SQL) permitirán el uso del lenguaje natural para solicitar información de la Base de Datos, haciendo más rápido y fácil su manejo. 2.5.8. Algunas Bases de Datos SQL, INFORMIX, ORACLE, DBASE, IV, FOXPRO, FOXBASE, PARADOS, ACCES, APPROACH, POSTGRESQL. ¾ INFORMIX Actualmente, las soluciones de bases de datos de Informix, que se encuentran soportadas por los más importantes proveedores de hardware, desarrolladores de software e integradores de soluciones, incluyen sistemas de alto desempeño para ambientes corporativos muy diversos: desde pequeños grupos de trabajos hasta las mas complejas aplicaciones de procesamiento paralelo, entre las que se destacan: servidores de bases de datos y herramientas para el desarrollo de aplicaciones en áreas de procesamiento de transacciones en línea, manejo dinámico de contenidos Web y sistemas empresariales de computación distribuida. Informix es un manejador de base de datos que combina alta disponibilidad de ejecución en el procesamiento de transacciones en línea. Además maneja recursos como memoria distribuida y disco I/O. Las tablas que contienen los datos pueden extenderse a múltiples discos, liberando al administrador de imponer restricciones por la limitación del almacenamiento de datos. 39 Informix incluye facilidades para definir y manejar bases de datos, realizar consultas y actualizaciones, además, provee un entorno llamado DBAccess, para el manejo de información sin necesidad de programación. ¾ PostgreSQL PostgreSQL es un Motor de Base de Datos con todas las características y ventajas de un motor comercial. Soporta conectividad ODBC para ser utilizado con aplicaciones Windows y JDBC 2.0 para Java. Del lado del servidor, PostgreSQL cuenta con un proceso postmaster, que se encarga de recibir las conexiones y cada vez que recibe una, crea una instancia del motor postgres, para procesar todos los requerimientos del cliente. En el cliente, se cuenta con una interfaz de comandos llamada psql, que le permite al usuario ejecutar cualquier sentencia SQL, así como administrar la Base de Datos y las tablas. Además se cuenta con una interfaz gráfica, PGaccess o Webmin, que permite realizar las funciones de administración, crear funciones, formas y reportes. Se puede afirmar entonces, que Postgres se caracteriza por ser un manejador de base de datos relacional porque cumple con las cuatro propiedades llamadas ACID. Por todo lo anterior PostgreSOL es el motor de Base de Datos apropiado para soportar aplicaciones críticas con óptimos resultados. 2.6. PROGRAMACIÓN WEB 2.6.1. JavaScript Javascript no es un lenguaje de programación propiamente dicho. Es un lenguaje script u orientado a documento, como pueden ser los lenguajes de macros que tienen muchos procesadores de texto. Trabaja siempre del lado del cliente porque es el navegador el que soporta la carga de procesamiento. Permite interactuar con 40 el navegador de manera dinámica y eficaz, proporcionando a las páginas Web dinamismo y vida. 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. No es posible desarrollar programas basándose en JavaScript, sin embargo, una aplicación escrita en JavaScript puede ser incrustada en un documento HTML proporcionando un mecanismo para la detección y tratamiento de eventos, como clicks del ratón o validación de entradas realizadas en forms. JavaScript es sensible a mayúsculas y minúsculas todos los elementos de JavaScript deben referenciarse cómo se definieron: no es lo mismo “Salto” que “salto”, La etiqueta utilizada para la inclusión de este código es: <Script Language = “JavaScript”> … </Script> Un documento puede tener cualquier número de etiquetas Script, las cuales a su vez pueden contener cualquier número de sentencias JavaScript. Aunque JavaScript y Java tienen algunas similitudes, tienen también diferencias fundamentales. JavaScript soporta la mayoría de constructores de flujo de control básico y sintaxis de expresiones. En contraste con el sistema de clases definidas en tiempo de compilación en Java, Javascript trabaja en base a un simple sistema en tiempo de ejecución, el cual permite el uso de enteros, dobles, booleanos y cadenas. JavaScript soporta un sistema simple de objetos basado en instancias (no en clases), que provee capacidades significativas. 2.6.2. Java Server Pages (JSP) Las JSP son una solución que permite en la creación de contenido dinámico, haciendo más fácil y más rápido construir aplicaciones Web. Inicialmente se genera 41 código fuente Java para todo el archivo JSP, se compila el código y ejecuta el archivo JSP como si fuera un servlet. Entre las características de las JSP se pueden encontrar: - Velocidad y Escalabilidad: Las JSP no son interpretadas sino compiladas y cargadas en la memoria del servidor la primera vez que se les llama, así que para las siguientes llamadas, el tiempo de respuesta es mucho más corto debido a que simplemente son ejecutadas. - Plataforma y Servidor Independiente: JSP se adhiere a la arquitectura de la filosofía Java. En lugar de ser soportada por una única plataforma o proveedor, esta tecnología puede ser ejecutada en cualquier servidor Web y es soportada por una gran cantidad de herramientas de múltiples proveedores. - La característica más importante de las JSP es que permite separar la interfaz del usuario de la generación del contenido dinámico, dando lugar a procesos de desarrollo más rápidos y eficientes. Un JSP se compila a un programa en Java la primera vez que se invoca, y del programa en Java se crea una clase que se empieza a ejecutar en el servidor como un servlet. Por consiguiente, el ciclo de vida en tiempo de ejecución de los archivos JSP es similar al ciclo de vida de los servlets. Cuando un servidor Web recibe una petición de obtener un archivo JSP, el servidor pasa la petición al motor de servlets que a su vez llama al procesador JSP. El procesador JSP es un servlet interno que convierte un archivo JSP en código fuente Java y lo compila. Si una determinada petición solicita por primera vez un archivo JSP o si no se encuentra la copia compilada del archivo JSP, el compilador JSP genera y compila un archivo fuente Java para el archivo JSP, este se mantiene en la memoria mientras se procesan todas las peticiones recibidas y generan las respuestas a los usuarios. 42 Cuando se recibe una petición que solicita un archivo JSP, se comprueba si ese archivo ha cambiado desde la última vez que se cargó, si es así, se recarga el archivo JSP actualizado, es decir, se genera un archivo fuente y un archivo de clase Java actualizados para el archivo JSP. Existen 2 tipos de acceso a los archivos JSP: 1. Un usuario trabajando en un navegador Web cliente hace una petición que es enviada a un archivo JSP (.jsp) El archivo .jsp accesa componentes del servidor que generan contenido dinámico y lo presentan en el navegador. Después de recibir la petición del cliente, el archivo JSP pide información de un JavaBean. El JavaBean puede pedir información de una Base de Datos. Una vez el JavaBean genera el contenido, el archivo JSP puede consultar y presentar el contenido del Bean. 2. Un usuario trabajando en un navegador Web cliente hace una petición que es enviada a un Java Servlet que genera un resultado y lo almacena en un componente. En seguida, el servlet llama un archivo JSP, el cual accesa el componente y presenta el contenido dinámico en el navegador. En este caso, el cliente hace una petición que es atendida por un Java Servlet. El servlet genera el contenido dinámico, usa JDBC para comunicarse con una Base de Datos para obtener el contenido. Ahora, el servlet empaqueta el contenido en un Bean. El archivo JSP accesa el contenido dinámico desde el Bean y presenta el contenido en el navegador cliente. 43 3. METODOLOGÍA PARA EL DESARROLLO DEL PROYECTO Para el desarrollo del proyecto se utilizará la metodología de acuerdo con los estándares fijados por la empresa ISIS LTDA, la cual siempre ha basado el desarrollo de sus proyectos en el Modelo en Cascada y en algunas ocasiones, según la complejidad a la que pueda llegar el software, el Modelo Incremental. 3.1. FASES EN LA ELABORACION DEL PROYECTO A continuación se enumeran y describen cada una de las fases del proyecto. 3.1.1. Fase I. Lectura y Análisis de Información El objetivo de esta fase, es la ubicación y contextualización del practicante dentro de la empresa y el proyecto específico en donde participa. Las actividades a realizar en esta fase son: 1. Conocimiento de la empresa y del plan de calidad a seguir en la elaboración del proyecto. 2. Conocimiento del Sistema de Información actual SISACAD, base del proyecto a desarrollar. 3. Capacitación y entrenamiento en las herramientas de programación y bases de datos a utilizar: JSP, PostgreSQL, Java, INFORMIX, 4GL. 4. Consecución y alistamiento del software y hardware necesarios para el desarrollo del proyecto. 5. Instalación del servidor WEB. 44 3.1.2. Fase II - Análisis y Diseño Durante esta fase se definen claramente los requerimientos especificados por los clientes en cuanto a los datos y la funcionalidad que debe contener el módulo WEB a desarrollar y se elabora un documento de requerimientos que será la base del diseño. Se procede a revisar el modelo de datos del sistema académico y se hace la reingeniería de procesos involucrando los nuevos datos y la aplicación WEB Al final de esta fase se tiene el documento de ESPECIFICACIONES DE DISEÑO, el cual contendrá el esquema entidad/relación, el diagrama funcional de la aplicación, la definición del esquema de la base de datos y el esquema de seguridad. Las actividades a realizar en forma específica son: 1. Reuniones para conocer y afinar requerimientos de los clientes 2. Elaboración y aprobación del documento de requerimientos. 3. Revisión del modelo de datos del Sistema Académico. 4. Diseño de la base de datos WEB7 5. Diseño de las páginas 6. Diseño del esquema de seguridad 7. Diseño de las interfases con la base de datos académica 8. Elaboración del documento de especificaciones de diseño 3.1.3. Fase III.- Implementación y Pruebas Durante esta fase se efectúa la programación del módulo WEB del Sistema Académico y se hacen las respectivas pruebas. Se hace la escritura, depuración y prueba de los programas tanto en forma independiente como integrada. 7 Ver Anexo A 45 Se hacen pruebas de almacenamiento, desempeño, carga pico que garanticen el óptimo funcionamiento del sistema. Las actividades a realizar en forma específica son: 1. Desarrollo del módulo de planes de estudio. 2. Desarrollo del módulo de notas 3. Desarrollo del módulo de admisiones 4. Desarrollo del módulo de prematricula 5. Desarrollo de las interfases con la base de datos académica 6. Desarrollo de las diferentes aplicaciones (aspirantes, estudiante, profesores, directores) 7. Implementación del protocolo de seguridad (SSL) 8. Pruebas de la carga de los archivos de datos al servidor WEB. 9. Carga y descarga de la base de datos con registros de prueba. 10. Prueba de programas individuales 11. Revisión de características finales de cada página 12. Pruebas de la aplicación en forma integral. 3.1.4. Fase IV.- Documentación En esta fase se complementa la documentación y se elaboran los respectivos manuales de usuario y administrador del sistema. 3.2. ASEGURAMIENTO DE CALIDAD Para la ejecución del proyecto la empresa ISIS LTDA, establece un plan de aseguramiento de la calidad tanto a nivel de la gestión del proyecto, como a nivel de cada una de las etapas para el desarrollo del software, siguiendo los estándares de Sistemas de Calidad, definidos en la Norma ANSI/IEEE Std-730-1984 respectivamente. 46 NTC-ISO 9002 y la Norma El plan de Aseguramiento de Calidad específico a aplicar, es revisado y definido, en conjunto con el equipo designado para el proyecto, en la primera fase de ejecución y dado a conocer al equipo de trabajo. El propósito del Plan de Calidad es establecer, documentar y mantener un sistema de calidad que asegure que el producto a desarrollar cumpla los requisitos especificados y se ejecute dentro del tiempo y normas establecidas por las directivas de la empresa. Específicamente el plan de calidad: ¾ Identifica los medios de control a seguir en cada una de las etapas de desarrollo del proyecto. ¾ Asegura la compatibilidad del análisis de requerimientos, diseño y construcción del sistema ¾ Establece el control de documentos y datos ¾ Establece el control de las actividades realizadas por cada uno de los integrantes del equipo de trabajo. ¾ Establece el control de las pruebas y ensayos de cada modulo del sistema. ¾ Establece el control del seguimiento de cada una de las etapas del proyecto 47 4. CONOCIMIENTO DEL SISTEMA 4.1. ANÁLISIS DEL SISTEMA ACTUAL SISACAD. SISTEMA DE INFORMACIÓN PARA ADMINISTRACIÓN ACADEMICA EN INSTITUCIONES DE EDUCACIÓN SUPERIOR SISACAD, se ha desarrollado como una solución a los problemas de registro y control de toda la información académica de las instituciones de educación superior. Cubre las necesidades de información para las áreas de pregrado y postgrado. 4.1.1. Objetivos Específicos - Realizar el manejo de admisiones facilitando el proceso de selección de aspirantes y la generación en forma automática de la hoja de vida de los aspirantes admitidos. - Permitir el manejo de la hoja de vida de un estudiante, con sus datos personales y toda la información académica, facilitando de esta manera su seguimiento durante su estadía en la institución y posteriormente como egresado. - Generar la prematricula para llevar el control de las asignaturas que un estudiante puede matricular y para facilitar la programación de asignaturas en un período académico. - Realizar el proceso de matrícula en forma dinámica y descentralizada para que cada facultad tenga el control sobre este proceso. - Descentralizar el manejo de notas para que cada facultad genere la información relacionada con este proceso en forma ágil y oportuna. 48 - Permitir la expedición de certificados y constancias asociados con: Admisiones, asignaturas, planes de estudios, matrículas, horarios, notas y grados en forma rápida y confiable. - Registrar los planes de estudio de las diferentes facultades con sus asignaturas, para facilitar el seguimiento académico del estudiante y el control de requisitos en el momento de la matrícula académica y durante el proceso de grados. - Controlar el acceso y manejo de la información del sistema de acuerdo con las actividades que le asigne la institución a cada usuario del sistema. - Conocer las actividades realizadas por cada usuario, teniendo como base el registro histórico de las transacciones realizadas sobre las principales tablas del sistema. - Permitir la interfase contable para poder integrar la información financiera pertinente a la parte académica al sistema financiero de la universidad. 4.1.2. Estructura del Sistema El sistema de Administración Académica, se ha diseñado en forma modular de acuerdo con las áreas funcionales existentes en una entidad de educación superior. La orientación dada al sistema es completamente en línea y su concepción permite una descentralización de actividades en el manejo de la información, de tal forma que cada facultad o escuela se constituya en usuario directo (cliente) del sistema de información. El sistema maneja las modalidades de pregrado y de postgrado. El manejo del entorno del sistema es parametrizado, facilitando de esta manera su adaptación a los requerimientos específicos de la institución. 49 El Sistema está conformado por módulos que conforman el Menú Principal del Sistema estos son: Admisiones, Hoja de Vida, Asignaturas, Planes, Horarios, Matrícula, Notas, Certificados, Requisitos Grados, Grados, Retirados, Tablas de Soporte Generales, Consultas, Auditoria, Salir. Figura 5. Menu principal SISACAD 4.2. ALCANCE DEL SISTEMA El módulo web del sistema de información académica SISACAD, desarrollado por ISIS Ltda. facilita a las Instituciones de Educación Superior, los procesos de admisiones, matrículas, registro y consultas horarios y de notas. Este sistema se ha diseñado continuando la estrategia utilizada en SISACAD en la parametrización de los datos, para ser utilizados en forma interactiva por las 50 diferentes clases de usuarios, aspirantes, estudiantes, profesores y administrativos. El presente documento contiene la descripción detallada del módulo web del sistema de información académica SISACAD, orientada a usuarios finales. En este manual se incluye la descripción de las actividades que se pueden realizar. Para cada opción se establece cual es su finalidad y la forma como se debe llevar a cabo. 4.2.1. Módulo Planes de Estudio Permite el manejo de la información relacionada con los planes de estudio ofrecidos por las diferentes facultades. Figura 6. Planes de Estudio 51 En este módulo se pueden consultar los diferentes Programas Académicos con su respectivo plan de estudios. Seleccionando determinado Programa académico se desplegará su respectivo plan de estudios en el cual se pueden observar: - El total de niveles. - El total de Créditos. - El total de horas. - Las asignaturas por nivel con sus respectivos créditos, horas y requisitos. - Los totales por Nivel. Si una asignatura tiene algún requisito, se puede observar la descripción de dicho requisito al darle clic sobre Req, como lo muestra la figura 7. Figura 7. Requisitos 52 Esto indica que la asignatura 4006 Cálculo Integral, tiene como requisito una asignatura obligatoria (4000 Cálculo Diferencial). Si una asignatura no posee ningún requisito aparecerá una ventana como la que se muestra en la figura 8. Figura 8. Asignatura sin requisito Esto indica que la asignatura 4011 Introducción a la administración no tiene ningún requisito. 4.2.2. Módulo de Admisiones Este módulo permite realizar el proceso de ingreso de nuevos estudiantes a una facultad. Presenta tres opciones: - Proceso de Inscripción - Inscripción en Línea - Resultados 53 ¾ Proceso de Inscripción. En ésta página se muestran los pasos a seguir para realizar el proceso de inscripción en línea a través del sitio WEB del centro educativo, como se muestra en la figura 9. Figura 9. Proceso de Inscripción ¾ Inscripción en Línea. En el momento en que un aspirante intente entrar a éste módulo, el sistema revisará si se encuentra dentro de las fechas estipuladas para el proceso de inscripción. Si en dicho momento el sistema no está habilitado, se mostrara un aviso como el de la figura 10. 54 Figura 10. Inscripción fuera de fecha límite De lo contrario, el sistema ingresa a una página en donde han sido definidas las condiciones de uso del sistema, por lo tanto, si el usuario acepta dichas condiciones de uso, tendrá acceso al proceso, de no aceptar las condiciones de uso, saldrá del sistema. Figura 11. Condiciones de uso 55 Enseguida, se habilitará el acceso al Registro de los Aspirantes, en el cual se presenta un formulario que solo podrán completar los aspirantes que hayan realizado la consignación como se especifica en los pasos del proceso de Inscripción. La figura que se muestra a continuación muestra la pantalla para hacer el registro del aspirante. Figura 12. Ingreso aspirantes Cuando el aspirante ingresa, podrá llenar el formulario de inscripción en el cual, los campos que están marcados con “*” son obligatorios. 56 Figura 13. Formulario de inscripción Después de llenar el formulario de inscripción, se pide seleccionar la fecha y la hora para la entrevista. Figura 14. Selección entrevista 57 Así se finaliza el proceso de inscripción en línea. En ese momento aparece una pantalla como la que se muestra a continuación con los datos mas importantes del registro, como es el número de la credencial que el sistema asigno y que le servirá al aspirante mas adelante para consultar si fue aceptado en la universidad, que el usuario acaba de hacer y se da la opción de Imprimir, Guardar y Terminar. Figura 15. Fin de la inscripción ¾ Resultados. En ésta opción se le permite al aspirante consultar si fue admitido por el centro educativo. El aspirante debe tener a la mano el número de credencial que se le fue asignado. Luego de ingresar los datos correspondientes el sistema le dirá que fue “ADMITIDO” o que “no existen resultados todavía” como muestra la siguiente figura. 58 Figura 16. Resultado del proceso de inscripción 4.2.3. Módulo Estudiantes Este módulo del sistema permite a los usuarios estudiantes, consultar sus notas y realizar el proceso de prematricula y cambiar contraseña. Antes de ingresar al modulo de estudiantes, el sistema muestra las condiciones de uso establecidas por la institución. Figura 17. Condiciones de uso estudiantes. 59 Siempre que el estudiante desee ingresar al sistema se le va a exigir una clave de acceso. Si es la primera vez que lo hace en el semestre, el sistema le indicará que su contraseña es la fecha de nacimiento como lo muestra la figura 18 Figura 18. Ingreso estudiantes Así mismo, cuando un estudiante ingresa por primera vez al sistema, éste le exige un cambio de contraseña para así tener mayor privacidad con su información. Figura 19. Cambio de contraseña obligatorio. 60 El sistema solicita ingresar los siguientes datos: - La contraseña actual. En éste caso es la fecha de nacimiento en formato mes/dia/año (mm/dd/aaaa) por ser la primera vez. - La nueva contraseña. Debe ser una cadena de mínimo seis (6) caracteres entre los cuales solo puede haber números y/o letras. - Confirmar Contraseña. Debe ser la misma que se ingresó en “Nueva contraseña” - Pregunta Recordatoria contraseña. Cuando el usuario olvide su clave, el sistema se la recordará a través de una pregunta (escogida por el usuario). - Respuesta Recordatoria Contraseña. Ésta repuesta y la pregunta tienen la finalidad de recordarle al usuario su clave. Después de esto el usuario ingresará al modulo y podrá realizar las siguientes actividades: • Consultar Notas • Consultar Prematrícula • Cambio de Contraseña Además el usuario siempre dispondrá de una ayuda en línea, la cual le guiará durante todo el proceso. 61 Figura 20. Opciones Estudiantes ¾ Consultar Notas. Permite la consulta de la información relacionada con las notas del estudiante. Éste módulo contempla las siguientes opciones: - Historial de Notas. El estudiante puede consultar la totalidad de las notas que ha obtenido durante su permanencia en el centro educativo. Las notas aparecerán ordenadas por año y periodo con sus respectivos totales del semestre y los acumulados así como lo muestra la figura 21. 62 Figura 21. Notas Históricas - Notas Actuales. Este módulo hace referencia a las notas del semestre en curso. Por lo tanto, si en el momento de hacer la consulta no aparece ninguna nota, indica que aun no se han registrado parciales y aparece la siguiente pantalla: Figura 22. No hay notas registradas. 63 De lo contrario el estudiante podrá consultar sus notas del semestre actual por asignatura. Figura 23. Notas del Semestre Actual Para ver las notas de alguna materia se hace clic en “ver notas”, lo cuál muestra una pantalla como la siguiente: Figura 24. Ver Notas 64 ¾ Consultar Prematrícula En éste módulo, el sistema muestra al estudiante las asignaturas que puede matricular, con sus respectivos grupos para que el estudiante pueda cuadrar su horario. La siguiente figura muestra las asignaturas que puede el estudiante matricular según el proceso de prematricula. Figura 25. Generación Formato Prematrícula. Para conocer los horarios disponibles de una asignatura, simplemente hay que darle clic sobre dicha asignatura. Enseguida el sistema muestra una pantalla como la que se muestra en la figura 26. 65 Figura 26. Detalle de la Asignatura Así el estudiante podrá acomodar sus asignaturas y sus grupos de acuerdo a su conveniencia. Después de seleccionar las asignaturas a matricular, se oprime el botón “Generar Prematrícula”. Si existe algún cruce de horarios, el sistema le avisará cuales asignaturas o grupos se cruzan para corregirlos al instante. (ver figura 27). 66 Figura 27. Cruces de horarios Si no hay cruces de horarios entonces verá la siguiente pantalla: Figura 28. Prematrícula Lista 67 En ésta pantalla se pueden diferenciar las asignaturas seleccionadas para la prematricula y el posible valor de la matrícula con la opción de corregir la prematricula o de imprimir. Así termina el proceso de prematricula. ¾ Cambio de Contraseña. El usuario podrá cambiar su contraseña cuantas veces desee. El procedimiento es el mismo descrito anteriormente.8 ¾ Ayuda El sistema cuenta con una ayuda en línea la cual esta disponible en los módulos que sea necesaria. La ayuda se presenta como lo indica la siguiente figura: Figura 29. Ayuda 8 Modulo de Estudiantes 68 ¾ ¿Olvidó su Contraseña? Si un usuario olvida su contraseña el sistema le permite cambiar su contraseña si responde correctamente a la pregunta recordatoria. Figura 30. Olvidó su contraseña El usuario ingresa con su código su programa académico, si los datos son correctos aparece la siguiente pantalla: Figura 31. Recordar Contraseña En ésta pantalla aparece la pregunta recordatoria. Así, si la respuesta recordatoria coincide con la respuesta que tiene guardada el sistema, éste le permite crear una nueva contraseña para su mayor seguridad. 69 4.2.4. Módulo Docentes Este módulo del sistema permite a los usuarios docentes las siguientes actividades: - Registro de Notas Parciales. - Registro de Notas de Exámenes Finales. - Cambio de Contraseña de ingreso al sistema. Siempre que el docente desee ingresar al sistema se le va a exigir una clave para hacerlo así como lo muestra la figura: Figura 32. Ingreso Docentes Si el login y la contraseña son correctos, ingresa al sistema y verá la siguiente pantalla: Figura 33. Opciones Docentes. 70 En esta pantalla aparecen las actividades que un usuario docente puede realizar en el sistema además el módulo de ayuda. El Docente puede: - Registrar Notas de Parciales. - Registrar Notas de Exámenes. - Consultar Notas de Parciales. - Consultar Notas de Exámenes. - Cambiar la contraseña. - Obtener Ayuda. ¾ Registrar Parciales. Este módulo permite al docente ir registrando en cada corte las notas parciales de su(s) grupo(s). En caso de ya haber registrado los parciales de todos los grupos a su cargo o en caso de no tener asignado ningún grupo, cuando intente ingresar aparecerá la siguiente pantalla: Figura 34. Registro de Parciales ya realizado. De lo contrario, podrá proceder a registrar las notas parciales de la asignatura y grupo deseado. 71 Figura 35. Asignaturas disponibles para registro de parciales Después de seleccionar la asignatura y grupo en la que desea registrar las notas parciales, verá la siguiente pantalla: Figura 36. Registro de Notas Parciales 72 Acá aparecen los estudiantes matriculados y asentados en el grupo y la asignatura seleccionada y aparece una caja de texto para que el docente ingrese la respectiva nota. (Arriba se puede ver el tipo de nota que está registrando, ejemplo: Primer Previo.) Luego, al darle clic al botón “Registrar Notas” (parte inferior de la página), verá una pantalla como la que se muestra a continuación: Figura 37. Confirmación registro de notas parciales. En este momento las notas aun no han sido registradas en el sistema. Está pantalla se presenta con el fin de que el docente pueda revisar las notas, si es necesario modificarlas (botón “modificar” en la parte inferior) o si están correctamente digitadas proceder a registrar las notas (botón “registrar” en la parte inferior). Una vez registradas, el docente tiene la opción de imprimir un listado o simplemente terminar la operación. 73 ¾ Registrar Exámenes. Este módulo permite al docente registrar las notas de los exámenes de su(s) grupo(s). Tiene las mismas funciones que tiene el módulo de “Registrar Parciales” descrito anteriormente. ¾ Consultar Parciales. En ésta opción, el docente puede tener acceso a la última pantalla presentada al registrar las notas parciales, esto con el fin de que el docente pueda consultar e imprimir las notas de un parcial en cualquiera de sus ingresos al sistema. ¾ Consultar Exámenes. En ésta opción, el docente puede tener acceso a la última pantalla presentada al registrar las notas de exámenes, esto con el fin de que el docente pueda consultar e imprimir las notas de un examen en cualquiera de sus ingresos al sistema. ¾ Cambio de Contraseña. El usuario podrá cambiar su contraseña cuantas veces desee. El procedimiento es el mismo descrito anteriormente en el módulo de estudiantes. ¾ Ayuda. El sistema cuenta con una ayuda en línea la cual esta disponible en los módulos que sea necesaria. 74 4.2.5. Módulo Administrador El sistema también posee un módulo para un administrador o superusuario. Por medio de éste módulo se pueden realizar las siguientes actividades: - Admisiones. - Notas Estudiantes. - Notas Docentes. - Prematrícula. - Cambio de Contraseña. - Ayuda. Al igual que en todos los módulos, para ingresar se requiere de un login y una contraseña. La pantalla de ingreso se muestra a continuación. Figura 38. Ingreso Administrador. Una vez ingresado, el usuario podrá acceder a una, varias o todas las actividades según los permisos que se le hayan dado. Figura 39. Opciones Administrador 75 ¾ Admisiones. El administrador o superusuario puede consultar e imprimir el listado de entrevistas en un rango de fechas para aspirantes a determinada facultad. Figura 40. Listado de Entrevistas. Esto con el fin de que el director de escuela o el encargado de realizar las entrevistas pueda tener un listado de los aspirantes que van a llegar. ¾ Notas Estudiantes. El usuario puede consultar las notas históricas o actuales de cualquier estudiante de la facultad deseada. La consulta se hace como lo indica la siguiente figura: Figura 41. Consulta de notas de un estudiante 76 Simplemente el administrador digita el CODIGO del estudiante al cual le va a consultar las notas, selecciona la FACULTAD a la que el estudiante pertenece y selecciona el TIPO DE NOTA que desea consultar (histórico o actuales). Por ejemplo, se selecciona el estudiante con código 2011065 de Tecnología en Sistemas y tipo de nota, histórico. Aparecerá la siguiente pantalla: Figura 42. Consulta del Administrador del Histórico de Notas de un estudiante De igual forma, si selecciona las notas del semestre actual, como se describe en el módulo de estudiantes. 77 ¾ Notas Docentes El usuario puede ingresar como un docente a consultar las notas de determinada materia y grupo. Inicialmente se debe seleccionar el numero de parcial y el tipo de nota. Figura 43. Consulta de notas registradas. Luego aparece una pantalla con todos los docentes y sus respectivas materias: Figura 44. Lista de Parciales Registrados. 78 Al darle clic sobre alguno de ellos se obtiene el listado de clase con las respectivas notas de la misma forma como se observa en el módulo de docentes. ¾ Prematricula. El usuario puede consultar la prematricula de cualquier estudiante de la facultad deseada. La consulta se hace como lo indica la siguiente figura: Figura 45. Consulta de Prematricula por parte del Administrador. Y se realiza el proceso de la misma forma como se describe en el módulo de estudiantes. ¾ Cambio de contraseña. El usuario podrá cambiar su contraseña cuantas veces desee. El procedimiento es el mismo descrito anteriormente.9 ¾ Ayuda. El sistema cuenta con una ayuda en línea la cual esta disponible en los módulos que sea necesaria. 9 Modulo de Estudiantes 79 4.3. ACTUALIZACION AL SISTEMA SISACAD A continuación se presenta la descripción detallada de los módulos del sistema de información académico SISACAD parte WEB orientado hacia los usuarios finales. La programación de estos módulos se hizo en 4GL de bajo UNIX. 4.3.1. Tablas de Soporte Para realizar el proceso de bajar o subir los datos hacia o desde el sistema académico a la Web para un año y periodo, se debe tener en cuenta primero que las tablas de soporte general estén actualizadas. ¾ Entorno WEB Opción del menú "TABLAS DE SOPORTE" que permite el manejo de la información referente al año y periodo utilizados para bajar la información hacia la Web. Esta opción presenta una pantalla que requiere la siguiente información: Código Registro Código del registro del entorno, siempre es 1. Año Año para realizar el proceso de bajar información. Periodo Periodo para realizar el proceso de bajar información. Se debe tener en cuenta que cuando se manejan los datos de admisiones el año y periodo es diferente a cuando se van a bajar los históricos de los estudiantes. ¾ Datos Facultad WEB Opción del menú "TABLAS DE SOPORTE" que permite el manejo de la información referente a los datos por facultad necesarios para bajar la información del SISACAD a la Web. 80 Esta opción presenta una pantalla que requiere la siguiente información: Código Facultad Código de la facultad. Si no se conoce, presione <F5> para consultar. Tipo de Prueba Tipo de prueba a realizar en la web. Es decir, el código del tipo de prueba que es la entrevista. Si no se conoce, presione <F5> para consultar. Código Entrevistador Código del entrevistador que va a realizar la entrevista por Web. Valor Inscripción Valor de la inscripción por facultad o programa académico. Es importante definir esta información, pues si no se incluye el valor de la inscripción el sistema asume que el que pague más de un peso en cualquier programa puede inscribirse. El tipo de prueba y código de entrevistador es para que el sistema solo baje las entrevistas para la facultad que cumplan con esa condición, además en el sistema SISACAD no permite asignar entrevistas a este entrevistador, con el fin de que no se crucen citas de la Web con citas del sistema SISACAD. 4.3.2. Bajar Datos Permite realizar el proceso de bajar los datos desde el sistema SISACAD hacia la Web. Este módulo presenta las opciones mostradas en la figura 46 y descritas a continuación. 81 Figura 46. Bajar Datos SISACAD. ¾ Admisiones Opción del menú "BAJAR DATOS" que permite bajar la información necesaria para que el sistema WEB pueda realizar el proceso de admisiones. Esta opción presenta una pantalla que requiere la siguiente información: Cuentas Bancos Cuentas bancarias activas del sistema académico. Documentos Id. Tabla de tipos de documentos de identidad. Distritos Tabla de distritos militares. Estado Civil Tabla de estado civil. Tipo Bachill. Tabla de tipos de bachillerato. Pruebas ICFES Tabla de pruebas icfes para exámenes después del año 2000. Departamentos Tabla de departamentos. Municipios Tabla de municipios. 82 Colegios Tabla de colegios activos. Entrevistas Entrevistas generadas por el sistema académico para ser pasadas. Facultad Facultad o facultades a seleccionar para generar la información. En la primera columna se marca con una X o un espacio para definir si se desea o no bajar esta información. La segunda columna muestra el nombre del archivo que va a contener la información. Los archivos son bajados a un directorio llamado webplano.10 ¾ Generales - Planes Opción del menú "BAJAR DATOS" que permite bajar la información necesaria para el sistema WEB como son las tablas generales para su buen funcionamiento. Esta opción presenta una pantalla que requiere la siguiente información: TABLAS GENERALES Facultades Tabla de los programas académicos ofrecidos por la institución. Jornadas Jornadas activas por cada facultad. Entorno Tabla de entorno general. Usuarios Prof Tabla que contiene los profesores que pueden ingresar al sistema para incluir notas. Usuarios Est. Tabla que contiene los estudiantes que pueden ingresar al sistema para entrar al modulo de estudiantes. 10 Directorio creado a capricho del administrador. 83 PLANES Planes Estudio Tabla con los planes de estudio vigentes por facultad. Planes Nivel Tabla con totales por nivel de los planes de estudio vigentes por facultad. Planes Asign. Tabla con las asignaturas de los niveles de los planes de estudios por facultad. Requisitos Tabla con los requisitos para las asignaturas en los planes de estudios por facultad. Facultad Facultad o facultades a seleccionar para generar la información. En la primera columna se marca con una X o un espacio para definir si se desea o no bajar esta información. La segunda columna muestra el nombre del archivo que va a contener la información. Los archivos son bajados a un directorio llamado webplano. ¾ Prematrícula - Históricos Opción del menú "BAJAR DATOS" que permite bajar la información necesaria para el sistema WEB para el proceso de prematrícula y los históricos de notas de los estudiantes. Esta opción presenta una pantalla que requiere la siguiente información: NOTAS ESTUDIANTES Datos Est Fac Tabla que contiene los datos por facultad de los estudiantes para el periodo a mostrar. Datos Acad. Tabla que contiene los totales semestrales de los estudiantes. 84 Notas Tabla que contiene las notas asociadas a los totales semestrales. Asig. Semestre Tabla que contiene las notas de las asignaturas vistas en el semestre en curso. Subnotas Sem. Tabla que contiene los parciales de las asignaturas vistas en el semestre en curso. PREMATRICULA Prematrícula Tabla que contiene los datos generales por estudiante de la prematrícula. Asig. Prematri Tabla que contiene las asignaturas a prematricular por estudiante. HORARIOS Horarios Tabla que contiene la información de los horarios. Días Materias Tabla que contiene los horarios por días de las asignaturas. Facultad Facultad o facultades a seleccionar para generar la información. En la primera columna se marca con una X o un espacio para definir si se desea o no bajar esta información. La segunda columna muestra el nombre del archivo que va a contener la información. Los archivos son bajados a un directorio llamado webplano. ¾ Notas Periodo Opción del menú "BAJAR DATOS" que permite bajar la información necesaria para el sistema WEB para el proceso de registro de notas parciales y exámenes. 85 Esta opción presenta una pantalla que requiere la siguiente información: REGISTRO DE NOTAS Parciales Tabla que contiene los datos generales de los parciales. Parcial Notas Tabla que contiene los datos por estudiante para registrar las notas parciales. Examen Tabla que contiene los datos generales del examen. Examen Notas Tabla que contiene los datos por estudiante para registrar las notas de examen. Facultad Facultad o facultades a seleccionar para generar la información. En la primera columna se marca con una X o un espacio para definir si se desea o no bajar esta información. La segunda columna muestra el nombre del archivo que va a contener la información. Los archivos son bajados a un directorio llamado webplano. 4.3.3. Subir Datos Permite realizar el proceso11 de subir los datos desde el sistema Web al sistema SISACAD. ¾ Cargar los datos de Admisiones Una vez que se hayan corrido los scripts para bajar los datos del sistema Web al sistema SISACAD, y los archivos se hayan bajado del servidor Web a servidor SISACAD en determinado directorio. 11 Ver Anexo C 86 En el sistema se ubica en dicho directorio y se accesa al dbaccess para correr el script de subir los datos llamado subeadm.sql. Que permite subir los datos a las tablas temporales de la base de datos que se creo para este fin. ¾ Cargar los datos de notas Una vez que se hayan corrido los scripts para bajar los datos del sistema Web al sistema SISACAD, y los archivos se hayan bajado del servidor Web a servidor SISACAD en determinado directorio. En el sistema se ubica en dicho directorio y se accesa al dbaccess para correr el script de subir los datos llamado subnot.sql. Que permite subir los datos a las tablas temporales de la base de datos que se creo para este fin. 87 5. PRUEBAS Y ESTADO FINAL DEL SISTEMA 5.1. PRUEBAS AL SISTEMA Durante el desarrollo de cada módulo se llevaron a cabo dos tipos de pruebas: pruebas en tiempo de desarrollo y pruebas después de la programación. A medida que se necesitaban datos en el Servidor Web para hacer las pruebas de la programación de las páginas,12 era necesario poblar la Base de datos del Servidor Web, con datos extraídos de la Base de Datos del Servidor SISACAD, por medio de los programas realizados en 4GL para bajar datos y así poderlos subir al servidor Web. El objetivo de estas pruebas es comprobar la integridad de los datos, verificar si los datos que se están bajando del Servidor SISACAD son los datos que requiere el servidor WEB. Las pruebas en tiempo de desarrollo fueron realizadas durante toda la etapa de programación y empalme de los módulos que conforman el software. Las pruebas después de la programación se efectúan cuando se considera que un módulo está terminado en su totalidad y se denominan “Pruebas Sistemáticas”. Su objetivo principal consiste en buscar fallos mediante un criterio específico. Para realizarlas, se tienen en cuenta dos criterios principales: Pruebas de caja negra y Pruebas de caja blanca. Las pruebas de caja blanca fueron realizadas de manera informal y constante por parte del grupo desarrollador durante las etapas de desarrollo del software, y pretendían: 12 Realizar consultas e inserción de datos 88 - Garantizar que la ejecución de todos los caminos posibles para realizar una acción determinada fuera satisfactoria. - Probar todas las decisiones de tipo lógico en sus limites verdadero y falso. - Ejercitar las estructuras de datos internas para asegurar su validez. Las pruebas de caja negra fueron llevadas a cabo por personas naturales y de manera formal; se enfocan directamente en el exterior del modulo; el código no es tan representativo en esta etapa ya que estas pruebas son más funcionales y tienen como objetivo detectar: - Fallas en la interfaz de usuario - Fallas en la apariencia de los menús - Funciones incorrectas o ausentes - Errores en estructuras de datos - Errores de rendimiento - Errores de inicialización y terminación Algunos de los detalles que se tuvieron en cuenta al realizar estas pruebas fueron: - Enlaces entre las páginas correspondientes al registro e inicio de sesión. - Conexión a la base de datos - Funcionamiento de los RecordSets - Validación de los datos a ingresar en la base de datos - Ingreso de registros - Ejecución de sentencias SQL. - Envío de formularios al registro e inicio de sesión - Finalización de la sesión activa para un usuario cualquiera - Manejo de variables de sesión - Envío de formularios a paginas receptoras - Modificación y eliminación de registros 89 - Interfaz gráfica - Correcta ejecución de las consultas SQL (resultados de búsquedas) 90 6. CONCLUSIONES Se desarrolló un módulo Web que con algunos requisitos básicos de hardware y software, permite al usuario navegar por el sistema de información Académico SISACAD, para consultar planes de estudios ofrecidos por una institución de educación superior, admisiones, prematricula, consulta de notas por parte de los estudiantes, registro de notas por parte de los docentes. La empresa desarrolladora de software ISIS Ltda. cumplió su objetivo de innovar una aplicación reconocida en el mercado, que puede seguir siendo ofrecida con un mayor valor agregado, e igualmente ofrecer un producto totalmente nuevo que puede interactuar con cualquier otra solución académica vigente en el mercado. A nivel personal, se vivió una gran experiencia al trabajar en equipo con un grupo de profesionales idóneos y consagrados, que me enseñaron el sentido de responsabilidad en el trabajo y la importancia de aplicar el aseguramiento de calidad en cada labor desarrollada para garantizar el éxito del proyecto y crear una imagen personal de cumplimiento, honestidad y confianza. El participar paso a paso en la implementación e implantación del proyecto en un cliente específico enriqueció todos aquellos aspectos académicos que se habían adquirido en la formación como Ingeniero de Sistemas. La investigación de campo y la práctica de prueba y error permitió cumplir los objetivos de aprender a configurar servidores e instalar herramientas seguras de bajo costo, igualmente se participó en el diseño de un entorno amigable, funcional, llamativo y seguro, se diseñaron e implementaron las interfaces necesarias que permiten el manejo de los datos entre el Servidor de SISACAD y el Servidor de la WEB y se elaboraron los respectivos manuales de documentación. 91 7. RECOMENDACIONES El modulo Web desarrollado puede ser enriquecido mediante el desarrollo de nuevas utilidades, tales como, matrículas en línea para pregrado y postgrado, facilidades para solicitudes de grado, seguimiento a los egresados por facultad mediante interacción con correo electrónico para tener la base de datos actualizada en cuanto a cargos ocupados en las empresas, necesidades de empleo y otros aspectos importantes que le permitan a la Universidad colaborar en la búsqueda de un mejor nivel socio-económico de sus egresados. A nivel de la Escuela de Ingeniería de Sistemas, es muy importante que animen a los estudiantes a realizar practicas empresariales como trabajo de grado, pues en realidad en la única forma que el estudiante tiene de interactuar directamente en el campo laboral desconocido totalmente, antes de graduarse. 92 8. BIBLIOGRAFÍA INSTITUTO SANTANDEREANO DE SISTEMATIZACION, Sistema de Información Académico SISACAD. Manual de diseño. INSTITUTO SANTANDEREANO DE SISTEMATIZACION, Sistema de Información Académico SISACAD. Manual de usuario. PostgreSQL 7.1 Tutorial, The PostgreSQL Global Development Group. Copyright © 1996-2001 by PostgreSQL Global Development Group. Beginning JSP Web Development, Jayson Falkner (Author), John Timney, Casey Kochmer, Romin Irani, Perrumal Krishnaraj, Meeraj Moidoo Kunnumpurath, Sathya Narayana Panduranga, Ben Galbraith PRESSMAN Roger S. INGENIERIA DEL SOFTWARE Un enfoque Práctico. Mc. Graw Hill Páginas WEB: o http://www.verextremadura.com/miguel/jsp/index.htm Manual de JSP o http://www.faqs.org/docs/ppbook/book1.htm Manual de PostgreSQL o http://www.informaticamilenium.com.mx/paginas/espanol/sitioweb.htm #top o http://www.adap.es/utilidades/internet/generalidades/protocolos.htm o http://www.arsys.es/soporte/generalidades/redes.htm Generalidades de Internet 93 ANEXO A. DESCRIPCION DE LAS TABLAS DE LA BASE DE DATOS UDI EN SISACAD. GENERALES entrno Tabla que contiene los datos generales para el manejo de la web. Tales como año y periodo actual, año y periodo de admisiones, nombre de la universidad, fechas limites para admisiones, prematrícula, etc. Generada una parte por el sistema sisacad y se debe actualizar en postgres según las necesidades. Si no se cambia cada semestre antes de realizar admisiones por la web se debe actualizar las fechas y el numero de la credencial que empieza en 5000. usrios_prof Tabla que contiene los profesores que pueden ingresar al sistema por la web. Genera la clave que es el mismo documento de identificación. Esta tabla debe ser borrada y actualizada cada semestre. usrios_est Tabla que contiene los estudiantes que pueden ingresar al sistema por la web. Genera la clave que es la fecha de nacimiento. Esta tabla debe ser borrada y actualizada cada semestre. usrios_dec Tabla que contiene los usuarios que pueden mirar información de la web. Los datos se incluyen por postgres. ADMISIONES cntas_bncos Tabla que contiene las cuentas bancarias donde los aspirantes han consignado su inscripción. Generada por el sistema sisacad. rcbos_bncos Tabla que contiene los recibos provenientes de los bancos con los pagos de la inscripción. Tabla que se recibe del banco. Tabla que debe existir cntas_bncos. tab_dcmntoid Tabla que contiene los tipos de documentos de identidad para la inscripción de los aspirantes. Generada por el sistema sisacad. tab_dstrtos Tabla que contiene los distritos militares para la inscripción de aspirantes. Generada por el sistema sisacad. tab_estdocvil Tabla que contiene los tipos de estado civil para la inscripción de aspirantes. Generada por el sistema sisacad. tpo_bchllrto Tabla que contiene los tipos de bachillerato para la inscripción de aspirantes. Generada por el sistema sisacad. 94 prbas_icfes Tabla que contiene las pruebas icfes nuevas para la inscripción de aspirantes con icfes después del año 2000. Generada por el sistema sisacad. Dprtmntos Tabla que contiene los departamentos para la inscripción de aspirantes. Generada por el sistema sisacad. Mncpios Tabla que contiene los municipios para la inscripción de aspirantes. Generada por el sistema sisacad. Tabla que debe existir dprtmntos. Clgios Tabla que contiene los colegios para la inscripción de aspirantes. Generada por el sistema siscad. Tabla que debe existir mncpios. Fcltdes Tabla que contiene los programas académicos de la universidad. Generada por el sistema sisacad. Jrndas Tabla que contiene las jornadas de las facultades para la inscripción del aspirante. Generada por el sistema sisacad. Tabla que debe existir fcltdes. Asprntes Tabla que contiene los datos de los aspirantes cuando realiza la inscripción. Generada por el sistema web. Tablas que deben existir para incluir datos tab_dcmntoid, jrndas, tab_estdocvil, mncpios, tab_dstrtos, clgios, tpo_bchllrto Entrvstas Tabla que contiene las entrevistas para que el aspirante pueda ser entrevistado por el jefe de escuela. Tabla generada por el sistema sisacad. Tabla que debe existir fcltdes y asprntes cuando se le asigna la cita. pntjeicfes_asprnte Tabla que contiene los valores de las áreas icfes para pruebas superiores al año 2000. Tabla que debe existir prbas_icfes, asprntes. PLANES DE ESTUDIO Planes Tabla que contiene la información general de los planes de estudio. Tabla generada por el sistema sisacad. Para cada programa se muestra el plan de estudios que este activo en el momento de bajar la información. nvel_plnes Tabla que contiene los valores totales por nivel. Tabla que debe existir planes. Tabla generada por el sistema académico. asig_plnes Tabla que contiene para cada nivel las asignaturas asociadas al plan de estudios. Tabla que debe existir planes. Generada por el sistema sisacad. Rqstos Tabla que contiene los requisitos de las asignaturas. Tabla que debe existir asig_plnes. Generada por el sistema sisacad. 95 PREMATRICULA Prmtrcla Tabla que contiene los datos generales del estudiante que se le ha generado prematrícula. Generada por el sistema sisacad. Para generar esta tabla ya deben existir los datos actualizados en el sistema sisacad de valores de matricula para el ano y periodo a generar, horarios y días materias, y datos académicos generados del semestre anterior. asig_prmtrcla Tabla que contiene las asignaturas posibles de los estudiantes que se les genero prematrícula. Tabla que debe existir prmtrcla. Generada por el sistema sisacad. Hrrios Tabla que contiene los horarios para el semestre a generar la prematrícula. Generada por el sistema sisacad. dias_mtrias Tabla que contiene en detalle de los días de los horarios para realizar matricula. Generada por el sistema sisacad. HISTORICO DE NOTAS dtos_est_fac Tabla que contiene los datos de los estudiantes según en la facultad a la que esta cursando. Generada por el sistema sisacad. dtos_acdmcos Tabla que contiene los totales por semestre de los estudiantes según a la facultad que este cursando. Generada por el sistema sisacad. Tabla que debe existir datos_est_fac. ntas Tabla que contiene las notas definitivas de los estudiantes por semestre. Generada por el sistema sisacad. Tabla que debe existir dtos_acdmcos. NOTAS DEL SEMESTRE asig_smstre Tabla que contiene la información de las notas del semestre de los estudiantes con al menos un parcial registrado. Generada por el sistema sisacad. sbntas_smstre Tabla que contiene los parciales del semestre de los estudiantes. Generada por el sistema. REGISTRO DE NOTAS 96 Prcles Tabla que contiene la información básica de los parciales a los cuales se les puede incluir notas en el sistema. Generada por el sistema. Actualizada por el sistema WEB. Se debe bajar cada vez que se terminan las fechas para registrar los parciales para pasar la información al sisacad. prcles_ntas Tabla que contiene los estudiantes para registrarle las notas parciales. Generada por el sistema sisacad. Actualizada por el sistema WEB. Tabla que debe existir prcles. Se debe bajar igual que la tabla anterior. cntrol_prcles Tabla que contiene los valores control de registro de las notas parciales de una asignatura y parcial. Creada por el sistema WEB. Se debe bajar al sistema sisacad. Tablas que deben existir prcles y prcles_ntas. Exmen Tabla que contiene la información básica de los exámenes a los cuales se les puede incluir notas en el sistema. Generada por el sistema. Actualizada por el sistema WEB. Se debe bajar cada vez que se terminan las fechas para registrar exámenes para pasar la información al sisacad. exmen_ntas Tabla que contiene los estudiantes para registrarle las notas de examen final. Generada por el sistema sisacad. Actualizada por el sistema WEB. Tabla que debe existir exmen. Se debe bajar igual que la tabla anterior. 97 ANEXO B. DESCRIPCION DE LOS SCRIPTS EN SISACAD DE LAS TABLAS TEMPORALES - DATABASE UDI Dentro del directorio /u2/sisacadc/udi están los siguientes scripts y su uso: Para poder correr estos scritps se debe estar en dbaccess y haber seleccionado la base de datos udi. Boradm.sql Permite borrar las tablas temporales de la base de datos udi para admisiones. Contiene los siguientes comandos. delete from udi:rcbos_bncos; delete from udi:entrvstas; delete from udi:pntjeicfes_asprnte; delete from udi:asprntes; delete from udi:cntas_bncos; delete from udi:tab_dcmntoid; delete from udi:tab_dstrtos; delete from udi:tab_estdocvil; delete from udi:tpo_bchllrto; delete from udi:prbas_icfes; delete from udi:clgios; delete from udi:mncpios; delete from udi:dprtmntos; delete from udi:jrndas; delete from udi:fcltdes; Bornta.sql Permite borrar las tablas temporales de la base de datos udi para notas parciales y notas examen final. Contiene los siguientes comandos. delete from udi:cntrol_prcles; delete from udi:exmen_ntas; delete from udi:exmen; delete from udi:prcles_ntas; delete from udi:prcles; Subeadm.sql Permite subir los datos de los archivos planos generados por el sistema web y al las tablas temporales del sistema sisacad base de datos udi, Contiene los siguientes comandos. load from cuentas.txt insert into cntas_bncos; load from dcmntoid.txt insert into tab_dcmntoid; load from dstrtos.txt insert into tab_dstrtos; load from estcivil.txt insert into tab_estdocvil; load from bchllrto.txt insert into tpo_bchllrto; 98 load from prbasicf.txt insert into prbas_icfes; load from dprtmnto.txt insert into dprtmntos; load from mncpios.txt insert into mncpios; load from clgios.txt insert into clgios; load from fcltdes.txt insert into fcltdes; load from jrndas.txt insert into jrndas; load from asprntes.txt insert into asprntes; load from entrvsta.txt insert into entrvstas; load from pntjeasp.txt insert into pntjeicfes_asprnte; load from rcbosban.txt insert into rcbos_bncos; 99 ANEXO C. DESCRIPCION DE LOS SCRIPTS EN SERVIDOR WEB A. SUBIR DATOS AL SERVIDOR WEB Dentro del directorio /usr/local/pgsql/planos están los siguientes scripts y su uso: Boradmision Permite realizar el borre de los datos de las tablas de admisiones admisiones, contiene los siguientes comandos delete delete delete delete delete delete delete delete delete delete delete delete delete delete delete Borhistorico from from from from from from from from from from from from from from from rcbos_bncos; clgios; mncpios; cntas_bncos; dprtmntos; entorno; entrvstas; jrndas; fcltdes; prbas_icfes; tab_dcmntoid; tab_dstrtos; tab_estdocvil; tpo_bchllrto; asprntes; Permite realizar el borre de los datos académicos históricos de los estudiantes, contiene los siguientes comandos delete from ntas; delete from dtos_acdmcos; delete from dtos_est_fac; Bornotassem Permite realizar el borre de las notas del semestre de los estudiantes, contiene los siguientes comandos delete from sbntas_smstre; delete from asig_smstre; Borplanes Permite realizar el borre de los datos de los planes de estudios activos, contiene los siguientes comandos delete from rqstos; 100 delete from asig_plnes; delete from nvel_plnes; delete from planes; Borprematricula Permite realizar el borre de los datos de los planes de estudios activos, contiene los siguientes comandos delete delete delete delete Borregnotas asig_prmtrcla; dias_mtrias; hrrios; prmtrcla; Permite realizar el borre de los datos de las notas parciales y notas de examen final, contiene los siguientes comandos: delete delete delete delete delete Convertir from from from from from from from from from prcles_ntas; cntrol_prcles; prcles; exmen_ntas; exmen; Permite paasr los archivos que se han bajado del sistema academico con extension z a extension Z, para que sean descomprimidos por el sistema, contiene los siguientes comandos: mv mv mv mv mv mv mv mv mv mv mv mv mv mv mv mv mv mv mv mv mv mv mv mv mv mv asigsem.z asi_prem.z bachille.z colegios.z cuentas.z datosaca.z datosfac.z departam.z diasmate.z distrito.z document.z entorno.z estcivil.z facultad.z horarios.z jornadas.z municipi.z notas.z parciale.z parnotas.z planasig.z planes.z planniv.z prematri.z requisit.z subnotas.z asigsem.Z asi_prem.Z bachille.Z colegios.Z cuentas.Z datosaca.Z datosfac.Z departam.Z diasmate.Z distrito.Z document.Z entorno.Z estcivil.Z facultad.Z horarios.Z jornadas.Z municipi.Z notas.Z parciale.Z parnotas.Z planasig.Z planes.Z planniv.Z prematri.Z requisit.Z subnotas.Z 101 mv usuest.z mv usuprofe.z usuest.Z usuprofe.Z Subadmision Permite realizar el cargue de los archivos a usar del sistema académico sisacad para admisiones, contiene los siguientes comandos psql psql psql psql psql psql psql psql psql psql psql psql Subgeneral udi udi udi udi udi udi udi udi udi udi udi udi -f -f -f -f -f -f -f -f -f -f -f -f cuentas document distrito estcivil bachille pruicfes departam municipi colegios facultad jornadas entrevis Permite realizar el cargue de los archivos generales a usar del sistema académico sisacad, contiene los siguientes comandos: psql udi -f entorno Suhistorico Permite realizar el cargue de los archivos a usar del sistema académico sisacad para mostrar los históricos de notas, contiene los siguientes comandos: psql udi -f datosfac psql udi -f datosaca psql udi -f notas Subplanes Permite realizar el cargue de los archivos a usar del sistema académico sisacad para mostrar los planes de estudio vigentes, contiene los siguientes comandos: psql psql psql psql udi udi udi udi -f -f -f -f planes planniv planasig requisit Subprematricula Permite realizar el cargue de los archivos a usar del sistema académico sisacad para la prematrícula, contiene los siguientes comandos: psql psql psql psql udi udi udi udi -f -f -f -f prematri asi_prem horarios diasmate 102 Subregnotas Permite realizar el cargue de los archivos a usar del sistema académico sisacad para el registro de parciales y notas de examen final, contiene los siguientes comandos: psql psql psql psql udi udi udi udi -f -f -f -f parciale parnotas examen examenot B. BAJAR DATOS DEL SERVIDOR WEB Dentro del directorio /usr/local/pgsql/planos/bajar están los siguientes scripts y su uso: Admisiones psql psql psql psql psql psql psql psql psql psql psql psql psql psql psql -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d udi udi udi udi udi udi udi udi udi udi udi udi udi udi udi Permite realizar el proceso de bajarlos datos de admisiones del servidor WEB a archivos planos para ser pasados al servidor sisacad, contiene los siguientes comandos: -f -f -f -f -f -f -f -f -f -f -f -f -f -f -f Notas psql psql psql psql psql -d -d -d -d -d bcuentas.sql -o "/usr/local/pgsql/planos/bajar/cuentas.txt" -t -A brcbosbncos.sql -o "/usr/local/pgsql/planos/bajar/rcbosban.txt" -t -A bdcmntoid.sql -o "/usr/local/pgsql/planos/bajar/dcmntoid.txt" -t -A bdstrtos.sql -o "/usr/local/pgsql/planos/bajar/dstrtos.txt" -t -A bestcivil.sql -o "/usr/local/pgsql/planos/bajar/estcivil.txt" -t -A bbchllrto.sql -o "/usr/local/pgsql/planos/bajar/bchllrto.txt" -t -A bprbasicfes.sql -o "/usr/local/pgsql/planos/bajar/prbasicf.txt" -t -A bdprtmntos.sql -o "/usr/local/pgsql/planos/bajar/dprtmnto.txt" -t -A bmncpios.sql -o "/usr/local/pgsql/planos/bajar/mncpios.txt" -t -A bclgios.sql -o "/usr/local/pgsql/planos/bajar/clgios.txt" -t -A bfcltdes.sql -o "/usr/local/pgsql/planos/bajar/fcltdes.txt" -t -A bjrndas.sql -o "/usr/local/pgsql/planos/bajar/jrndas.txt" -t -A basprntes.sql -o "/usr/local/pgsql/planos/bajar/asprntes.txt" -t -A bpntjeasp.sql -o "/usr/local/pgsql/planos/bajar/pntjeasp.txt" -t -A bentrvstas.sql -o "/usr/local/pgsql/planos/bajar/entrvsta.txt" -t -A Permite realizar el proceso de bajarlos datos de notas parciales y notas de examen final del servidor WEB a archivos planos para ser pasados al servidor sisacad, contiene los siguientes comandos: udi udi udi udi udi -f -f -f -f -f bprcles.sql -o "/usr/local/pgsql/planos/bajar/prcles.txt" -t -A bprclesntas.sql -o "/usr/local/pgsql/planos/bajar/prclesnt.txt" -t -A bctrolprcles.sql -o "/usr/local/pgsql/planos/bajar/ctrolpar.txt" -t -A bexmen.sql -o "/usr/local/pgsql/planos/bajar/exmen.txt" -t -A bexmenntas.sql -o "/usr/local/pgsql/planos/bajar/exmennta.txt" -t -A Los archivos de extensión .sql contiene el select para bajar los datos de las tablas. 103