Source: http://docplayer.es/8292294-Universidad-veracruzana-facultad-de-contaduria-y-administracion.html
Timestamp: 2018-02-19 08:30:19+00:00

Document:
UNIVERSIDAD VERACRUZANA. Facultad de Contaduría y Administración - PDF
Download "UNIVERSIDAD VERACRUZANA. Facultad de Contaduría y Administración"
Alba Campos Ferreyra
1 UNIVERSIDAD VERACRUZANA Facultad de Contaduría y Administración Desarrollo, Evaluación y Justificación del Sistema de Información Implementado en el Departamento de Experiencia Recepcional de la Facultad de Contaduría y Administración. T E S I S para obtener el Título de: Licenciado en Sistemas Computacionales Administrativos Presenta: Angel Antonio Contreras Moctezuma Asesor: M.T.E. Mayra Minerva Méndez Anota Xalapa-Enríquez, Veracruz Enero 2014
3 UNIVERSIDAD VERACRUZANA Facultad de Contaduría y Administración Desarrollo, Evaluación y Justificación del Sistema de Información Implementado en el Departamento de Experiencia Recepcional de la Facultad de Contaduría y Administración. T E S I S para obtener el Título de: Licenciado en Sistemas Computacionales Administrativos Presenta: Angel Antonio Contreras Moctezuma Asesor: M.T.E. Mayra Minerva Méndez Anota Xalapa-Enríquez, Veracruz Enero 2014
4 DEDICATORIAS Y/O AGRADECIMIENTOS Este trabajo se lo dedico a mis padres por todo el apoyo incondicional que me han brindado a lo largo de mis estudios, por todo el sacrificio que ambos han hecho por mí del cual siempre estaré agradecido, y espero se sientan orgullosos de mí; a mi hermana, mis sobrinas y mi hijo que junto con mis padres son el motor que me mueve para salir adelante y sin su apoyo no hubiese logrado lo que hasta hoy he hecho. También quiero dedicar este trabajo a mis maestros y compañeros que durante todo este camino han compartido su conocimiento y me han apoyado cuando necesité de su ayuda. Por ultimo un agradecimiento especial a mi asesora la maestra Mayra Méndez por todo el apoyo y los conocimientos que me brindo desde que forme parte del Centro de Desarrollo y Producción Tecnológica, hasta este momento en el que concluyo con una meta muy importante en mi vida. Y que junto con mis sinodales las maestras Nancy Olivares y Alma Rosa Galindo Monfil dedicaron parte de su tiempo y realizaron un esfuerzo por revisar y corregir este trabajo. A todos ustedes y a las demás personas que me apoyaron en todo momento les dedico este trabajo y les doy las gracias por todo su apoyo. GRACIAS!!!
5 INDICE RESUMEN... 1 INTRODUCCIÓN... 2 CAPITULO I. MARCO TEÓRICO SISTEMAS DE INFORMACIÓN LOS SISTEMAS DE INFORMACIÓN EN LAS ORGANIZACIONES BASES DE DATOS APLICACIONES WEB ARQUITECTURA WEB SERVICIOS Y SEGURIDAD WEB ESTÁNDARES WEB HERRAMIENTAS PARA DESARROLLO WEB CAPITULO II. CONTEXTO DEL PROYECTO FACULTAD DE CONTADURÍA Y ADMINISTRACIÓN LICENCIATURA EN SISTEMAS COMPUTACIONALES ADMINISTRATIVOS DEPARTAMENTO DE EXPERIENCIA RECEPCIONAL CAPITULO: III. SISTEMA DE CONTROL PARA EXPERIENCIA RECEPCIONAL PLANTEAMIENTO EL SISTEMA DE CONTROL DISEÑO Y DESARROLLO EXPLORACIÓN PLANIFICACIÓN DE LA ENTREGA ITERACIONES PRODUCCIÓN MANTENIMIENTO MUERTE DEL PROYECTO II
6 EVALUACIÓN Y RESULTADOS CONCLUSIONES FUENTES DE INFORMACIÓN ANEXO I ANEXO ANEXO ANEXO ANEXO ANEXO ANEXO INDICE DE TABLAS INDICE DE GRÁFICAS INDICE DE IMÁGENES III
7 RESUMEN Los sistemas de información son un factor muy importante dentro de las organizaciones, ya que gracias a ellos es posible automatizar los procesos y llevar un mejor control en los recursos de la empresa, así como tener fácil acceso a la información que se requiere en determinado momento, es por eso que dentro de la Facultad de Contaduría y Administración no se quieren quedar atrás, ya que uno de sus propósitos es automatizar sus procesos mediante este tipo de sistemas, con los que se pretende que el tratamiento de la información sea más fácil y los datos se manejen de manera adecuada, para lograr así una mayor eficiencia en los procesos y apoyar en la toma de decisiones. Es por eso que se tomó la decisión de desarrollar el sistema de información para el departamento de Experiencia Recepcional, el cual mediante las nuevas tecnologías web permite llevar un control adecuado de los alumnos que se encuentran en el proceso de titulación. Dentro de este trabajo se podrá encontrar todo lo relacionado con el proceso de desarrollo que se siguió para ayudar a alcanzar uno de los objetivos de la facultad, así como las pruebas que se realizaron para comprobar su correcto funcionamiento y que su implementación sea la adecuada. 1
9 En la actualidad los sistemas de información se han hecho una parte imprescindible dentro de las organizaciones. Esto se debe a que estos sistemas ayudan a agilizar y automatizar muchos de los procesos que en ellas se realizan, con el fin de concentrar y facilitar la obtención de la información necesaria para la toma de decisiones o simplemente realizar sus tareas cotidianas. Como ya se sabe los sistemas de información se definen a grandes rasgos como un conjunto de elementos interrelacionados que ayudan en la toma de decisiones y facilitan las actividades de las organizaciones, por lo que, con esta definición podemos decir que si una organización requiere que sus actividades estén correctamente automatizadas o simplemente que sea más fácil el manejo de la información, es necesario que se implemente un sistema que abarque toda su organización, con lo que se podrá concentrar toda la información en un solo lugar, facilitando así la toma de decisiones. Cabe mencionar que la implantación de un sistema de información dentro de las organizaciones no es una tarea fácil, ya que puede existir resistencia al cambio por parte de los trabajadores o tener una instalación costosa. Lo que hacen que en muchas de las organizaciones aún no se tenga implementado algún sistema de información que les ayude a automatizar los procesos o simplemente a llevar un control adecuado de diferentes recursos con los que cuentan. La introducción de un nuevo sistema de información con el apoyo de nuevas tecnologías, implica un gran cambio en el manejo de la información, creando nuevas fuentes de conocimiento que generen información de manera veraz, confiable y oportuna para las Organizaciones, ayudando a mantener un amplio control y gestión en sus actividades. Tal es el caso de Sistema de Información Implementado en el Departamento de Experiencia Recepcional, el cual surge como estrategia en el manejo de información en tiempo real sobre el registro y actualización de información relativa a egresados y alumnos que aún se encuentran inmersos en el proceso de titulación de los cuatro programas educativos de licenciatura que en esta facultad se ofertan. 3
10 El sistema de Experiencia Recepcional se desarrolló utilizando la metodología de Programación Extrema, debido a que al inicio del proyecto no se tenían completamente claros los requerimientos del sistema, lo que ocasionó que durante el proceso de desarrollo se fueran modificando y corrigiendo las secciones que ya habían sido entregadas anteriormente, con el fin de entregar al cliente lo que realmente necesita, y mediante se avanzaba con el proyecto se fueran agregando nuevos requisitos, todo esto haciendo uso de herramientas que esta misma metodología proporciona para la correcta documentación como lo son las historias de usuarios, en las que se describen cada uno de los requerimientos que el cliente necesita. Este sistema será implementado en la Facultad de Contaduría y Administración de la Universidad Veracruzana, y a través de él, se pretende poder realizar una administración eficiente y eficaz de las actividades y funciones realizadas dentro del departamento de Experiencia Recepcional, trayendo como principal beneficio la administración de alumnos que se encuentran inscritos en la experiencia educativa de Experiencia Recepcional y se encuentran realizando su trabajo recepcional. Todo esto con el fin de reducir la carga de trabajo para la coordinadora del departamento y proporcionar un mejor control sobre todo lo relacionado con los alumnos y sus avances durante el proceso de titulación. El principal motivo por el cual es importante la generación de un Sistema de información para el departamento de Experiencia Recepcional, es el poder hacer uso de las nuevas tecnologías para lograr sistematizar los procesos y procedimientos llevados a cabo en dicho departamento de la Facultad de Contaduría y Administración. Por tal motivo se desarrolló el siguiente trabajo de investigación para la documentación del sistema antes mencionado, el cual comprende cuatro capítulos de desarrollo. En el capítulo 1 Marco teórico, se explica a grandes rasgos los conceptos que son necesarios para poder desarrollar un sistema de información, desde la teoría de que son sistemas, tipos de sistemas, seguridad dentro de las aplicaciones web, hasta las herramientas necesarias para el desarrollo web. 4
11 Además se menciona la importancia y necesidad de los sistemas web, el uso de estándares (HTML, CSS y JavaScript), así como los lenguajes de programación utilizados para el desarrollo de sistemas de información y el manejador de base de datos. También se habla de las principales metodologías agiles que existen para el desarrollo de software, de las cuales se utilizó Programación extrema como se mencionó anteriormente. En el capítulo 2 se abordara el contexto del proyecto y la relación que existe entre dicha facultad y el sistema de Experiencia Recepcional. Se da un pequeño resumen de la historia de dicha facultad, su estructura jerárquica y lo correspondiente a la carrera de Sistemas Computacionales Administrativos. Así como todo lo correspondiente al departamento de Experiencia Recepcional y a la experiencia educativa correspondiente al proceso de titulación por el que tienen que pasar todos los alumnos que pretenden titularse realizando su trabajo recepcional. También se menciona la problemática que existía dentro del departamento para poder llevar un control adecuado de los alumnos inscritos en el departamento y las fechas de los exámenes profesionales. Por otra parte en el capítulo 3 se menciona el Sistema de Control de Experiencia Recepcional, abarcando los objetivos, beneficios, justificación y la metodología seleccionada para la elaboración del sistema. En el capítulo 4 se describe el procedimiento que se utilizó para la realización de dicho sistema, utilizando la metodología antes seleccionada de Programación Extrema y sus diferentes etapas de desarrollo. También se mencionan las correspondientes pruebas a las que fue sometido para garantizar su correcto funcionamiento y que su fácil implementación. Así como el cuestionario de evaluación que se aplicó a los usuarios del sistema para conocer sus opiniones sobre el funcionamiento del sistema y saber en qué campos del sistema se tienen que hacer correcciones y si se capacitó correctamente a los usuarios del sistema. 5
12 1. c Capitulo I. Marco Teórico
13 1.1. SISTEMAS DE INFORMACIÓN Que es un sistema de información Los autores Laudon & Laudon (2008) definen los sistemas de información como un conjunto de componentes interrelacionados que recolectan, procesan, almacenan y distribuyen información para apoyar la toma de decisiones y el control de una organización. Así mismo Cohen & Asín (2000) lo definen como un conjunto de elementos que interactúan entre sí con el fin de apoyar las actividades de una empresa o negocio. Estos elementos son de naturaleza diversa y normalmente incluyen: El equipo computacional. Los datos o información fuente. Los programas informáticos. Con estas definiciones se puede decir que los sistemas de información son un conjunto de elementos interrelacionados que ayudan en la toma de decisiones y facilitan las actividades de las organizaciones. Cohen & Asín (2000) dice que durante los próximos años los sistemas de información cumplirán tres objetivos básicos dentro de las organizaciones: Automatizar los procesos operativos. Proporcionar información que sirva de apoyo al proceso de toma de decisiones. Lograr ventajas competitivas a través de su implantación y uso Características de los sistemas de información Algunas de las características fundamentales de los sistemas de información de acuerdo a Burch & Grudnitski (1999), son las siguientes: 7
14 Disponibilidad de la información cuando es requerida y por los medios adecuados: Determinar reportes, tipo de papel, pantallas de usuario, accesos vía web, LAN o local. Información selectiva: Evitar caer en la exageración de datos, buscando la calidad de la información que la cantidad de datos. Presentación de la información: El análisis de la información puede variar e incluso simplificarse variando la forma de presentación, ej. En un análisis de una tendencia puede ser mostrada de manera numérica o gráfica, lo que la gráfica puede ser más entendible para el análisis. El grado de Inteligencia: Es la capacidad de aprender de acuerdo a la captura de datos e información. El tiempo de respuesta: Es la diferencia que existe al hacer una consulta de cierta información y la obtención de esta. Exactitud: Conformidad entre los datos suministrados por el sistema y los reales. Esto es de gran importancia ya que de esta exactitud se basaran decisiones. Generalidad: Conjunto de funciones disponibles para atender diferentes necesidades. Flexibilidad: Capacidad de adaptación y/o ampliación del sistema a nuevas necesidades (un SI no debe ser estático puesto que la organización va a evolucionar y crecer). Fiabilidad: Es la probabilidad con la que el sistema va a operar correctamente durante su periodo de uso. Seguridad: Protección contra pérdida y/o uso no autorizado de los recursos del sistema (accidentales o no). Reserva: nivel de replicar la información para protegerlos de perdidas catastróficas de alguna parte del sistema. Intuitivo o Amigable para el usuario: grado con el que el sistema reduce las necesidades de aprendizaje para su manejo. 8
15 Tipos de sistemas de información En una organización existen diversos tipos de sistemas de información dependiendo de los niveles jerárquicos, de sus intereses y especialidades. De acuerdo con Domínguez (2012) en una organización se puede encontrar los siguientes tipos de sistemas como se muestra en la imagen 1.1: Sistema de nivel operativo: Seguimiento de actividades y transacciones elementales y de rutina de la organización. Sistemas de nivel de conocimientos: En estos se apoyan los trabajadores del conocimiento y de la información en una institución. Sistemas de nivel gerencial: En estos se apoya el seguimiento, control y toma de decisiones y las actividades administrativas de los administradores de nivel medio. Sistemas de nivel estratégico: Apoyan a las actividades de planeación a largo plazo de los niveles de dirección de la institución. Imagen 1.1 Pirámide de tipos de sistemas de información. (Domínguez, 2012) Necesidad de la información en la actualidad Antes de hablar acerca de la necesidad de la información primero se tiene que saber que es información. Domínguez (2012) la define como un conjunto organizado de datos procesados, constituyen un mensaje que pasa al conocimiento del sujeto o de quien recibe el mensaje. Desde otro punto de vista, la información es el conocimiento extraído por seres vivos o sistemas expertos como resultado de la interacción con el entorno. La 9
16 información, a diferencia de los datos aislados, tiene una estructura útil que modifica las interacciones de quien posee la información de su entorno. En la actualidad se necesita manejar grandes volúmenes de información que cada vez es más indispensable para la población. Es necesario que dicha información se encuentre disponible a los usuarios cuando se le requiera. Anteriormente la información era reunida y almacenada de forma manual en hojas y documentos. Eso hacía que el trabajo de recolección, actualización y almacenaje fuera más laborioso y cansado y se tardara más tiempo en encontrar la información requerida. Actualmente con los sistemas de información se trata de hacer más accesible dicha información necesaria para las operaciones de la organización. Actualmente con las grandes cantidades de información que se manejan un sistema manual resulta ser ineficiente. Tal como menciona Gil Pechuán (1997), frente a esta inevitable amplitud tecnológica, lo mejor que puede hacer la dirección de las organizaciones, es consolidar una competencia solida de la organización en Sistemas y Tecnologías de Información, y levantar una infraestructura capaz, que facilite la adaptación al cambio Los sistemas de información en las organizaciones En la actualidad los sistemas de información se encuentran en las organizaciones desde publicas hasta privadas, sin importar el tamaño o el giro empresarial, debido a que todas las organizaciones requieren un sistema de información que los apoye en el control y administración de sus recursos y les genere información necesaria para el funcionamiento de las mismas, lo podemos ver en el área gubernamental en donde tienen que controlar enormes cantidades de información y utilizan sistemas que les facilitan el control de dicha información. Las organizaciones invierten fuertemente en los sistemas de información ya que les permite automatizar los procesos operativos, proporcionar información que sirva de apoyo al proceso de toma de decisiones y lo mejor para ellos es que logran ventajas competitivas a través de su implantación y uso. 10
17 Desde el surgimiento del internet los sistemas de información han ido en incremento ya que las empresas eligen por utilizar sistemas de información en la web que les permite tener interconectadas varias sucursales o tener contacto directo con sus clientes y proveedores. Todos los cambios que han generado el internet y el rediseño de las organizaciones han creado las condiciones para el surgimiento de la empresa digital. Laudon & Laudon (2008) la definen como aquella en la que casi todas las relaciones significativas de negocios de la organización con clientes, proveedores y empleados se realizan y controlan por medio digitales. Los procesos de negocios centrales se completan a través de redes digitales que abarcan toda la empresa o se enlazan con múltiples organizaciones. Los procesos del negocio se refieren al conjunto de tareas y comportamientos lógicamente relacionados que las organizaciones desarrollan a través del tiempo para producir resultado de negocios específicos y, a la manera particular en la cual se organizan y coordinan estas actividades. (Laudon & Laudon, 2008). Laudon & Laudon (2008) define un sistema de información desde una perspectiva empresarial como: un sistema de información constituye un importante instrumento para crear valor para la empresa. Los sistemas de información permiten a la empresa incrementar sus ingresos o reducir sus costos al proporcionar información que ayuda a los gerentes a tomar mejores decisiones o que mejora la realización de los procesos de negocios Metodologías agiles para el desarrollo de software. El término ágil aplicado en el desarrollo de software nació en febrero de 2001 en una reunión celebrada en Utah-EEUU. En esta reunión participaron 17 expertos en el desarrollo de software. Según Letelier & Penadés (2008) el objetivo principal de esta reunión fue presentar los valores y principios que deberían permitir a los equipos desarrollar software de manera rápida y respondiendo a los cambios que puedan surgir a lo largo del proyecto. Con esto se pretendía ofrecer una alternativa a los procesos de desarrollo de software tradiciones, que se caracterizan por ser rígidos y dirigidos por la documentación que se genera en cada una de las actividades desarrolladas. Muchas de las metodologías agiles ya estaban siendo utilizadas con éxito en 11
18 proyectos reales, pero les faltaba una mayor difusión y reconocimiento. Para eso se llevó a cabo dicha reunión en la que se creó The Agile Alliance, que es una organización dedicada a promover los conceptos relacionados con el desarrollo ágil de software y ayudar a las organizaciones para que adopten dichos conceptos. El punto de partida fue el Manifiesto Ágil en el cual se resume la filosofía ágil y del cual hablamos a continuación. Manifiesto Ágil El Manifiesto Ágil comienza enumerando los principales valores del desarrollo ágil. Según el Manifiesto (2001) se valora: - Al individuo y las interacciones del equipo de desarrollo sobre el proceso y las herramientas. La gente es el principal factor de éxito de un proyecto software. Es más importante construir un buen equipo que construir el entorno. Muchas veces se comete el error de construir primero el entorno y esperar que el equipo se adapte automáticamente. Es mejor crear el equipo y que éste configure su propio entorno de desarrollo en base a sus necesidades. - Desarrollar software que funciona más que conseguir una buena documentación. La regla a seguir es no producir documentos a menos que sean necesarios de forma inmediata para tomar una decisión importante. Estos documentos deben ser cortos y centrarse en lo fundamental. - La colaboración con el cliente más que la negociación de un contrato. Se propone que exista una interacción constante entre el cliente y el equipo de desarrollo. Esta colaboración entre ambos será la que marque la marcha del proyecto y asegure su éxito. - Responder a los cambios más que seguir estrictamente un plan. La habilidad de responder a los cambios que puedan surgir a los largo del proyecto (cambios en los requisitos, en la tecnología, en el equipo, etc.) determina también el éxito o fracaso del mismo. Por lo tanto, la planificación no debe ser estricta sino flexible y abierta. Los valores anteriores inspiran los doce principios del manifiesto. Son características que diferencian un proceso ágil de uno tradicional. Los dos 12
19 primeros principios son generales y resumen gran parte del espíritu ágil. El resto tienen que ver con el proceso a seguir y con el equipo de desarrollo, en cuanto metas a seguir y organización del mismo. Los principios establecidos en el manifiesto son: I. La prioridad es satisfacer al cliente mediante tempranas y continuas entregas de software que le aporte un valor. II. Dar la bienvenida a los cambios. Se capturan los cambios para que el cliente tenga una ventaja competitiva. III. Entregar frecuentemente software que funcione desde un par de semanas a un par de meses, con el menor intervalo de tiempo posible entre entregas. IV. La gente del negocio y los desarrolladores deben trabajar juntos a lo largo del proyecto. V. Construir el proyecto en torno a individuos motivados. Darles el entorno y el apoyo que necesitan y confiar en ellos para conseguir finalizar el trabajo. VI. El diálogo cara a cara es el método más eficiente y efectivo para comunicar información dentro de un equipo de desarrollo. VII. El software que funciona es la medida principal de progreso. VIII. Los procesos ágiles promueven un desarrollo sostenible. Los promotores, desarrolladores y usuarios deberían ser capaces de mantener una paz constante. IX. La atención continua a la calidad técnica y al buen diseño mejora la agilidad. X. La simplicidad es esencial. XI. Las mejores arquitecturas, requisitos y diseños surgen de los equipos organizados por sí mismos. XII. En intervalos regulares, el equipo reflexiona respecto a cómo llegar a ser más efectivo, y según esto ajusta su comportamiento. Metodologías Ágiles versus Metodologías Tradicionales En la tabla 1.1 se muestran las principales diferencias de las metodologías agiles con respecto a las tradicionales, dichas diferencias no solo afectan al proceso, sino también al equipo y a su organización. 13
20 Metodologías Ágiles Metodologías Tradicionales Basadas en heurísticas provenientes de prácticas de producción de código. Basadas en normas provenientes de estándares seguidos por el entorno de desarrollo. Especialmente preparadas para cambio Cierta resistencia a los cambios. durante el proyecto. Impuestas internamente (por el equipo) Impuestas externamente Proceso menos controlado, con pocos principios. Proceso mucho más controlado, con numerosas políticas / normas. No existe contrato tradicional o al Existe un contrato prefijado. menos es bastante flexible. El cliente es parte del equipo de desarrollo. El cliente interactúa con el equipo de desarrollo mediante reuniones. Grupos pequeños que trabajan en el Grupos grandes y posiblemente mismo sitio. distribuidos. Pocos artefactos. Más artefactos. Pocos roles. Más roles. Menos énfasis en la arquitectura de software. La arquitectura del software es esencial y se expresa mediante modelos. Tabla 1.1 Diferencia entre metodologías ágiles y tradicionales. (Letelier & Penadés, 2008) Es importante mencionar que el uso de un método ágil no es para todos. Sin embargo, una de las principales ventajas de los métodos agiles es su peso inicialmente ligero, que es lo que se encuentre agradable para las personas que no estén acostumbradas a seguir procesos. Por qué usar Metodologías Ágiles? Comparando las metodologías se puede decir que las tradicionales presentan los siguientes problemas en los proyectos. Las fases de requisitos, análisis y diseños resultan ser muy costosas y en caso de que haya un error en estas fases, corregirlo durante el proceso de desarrollo sería mucho más costoso, lo cual hace que se pierda la flexibilidad ante los cambios. 14
21 El proceso de desarrollo debe ser autorizado mediante documentos autorizados mediante una firma. El desarrollo es más lento, ya que es más complicado para los programadores entender todo el proceso de una sola vez. Las metodologías agiles están diseñadas para proyectos en los que no se tienen bien definidos los requerimientos o estos van variando durante el proceso de desarrollo. Estas metodologías se aplican bien a equipos de desarrollo pequeños que resuelven problemas en específico, por lo que se hace la modularización del desarrollo de grandes proyectos, ya que es fundamental para su implantación exitosa. Al hacer esto se minimizan los fallos y el coste. Amaro & Valverde (2007) nos dice que algunas de las ventajas que podemos destacar de las metodologías ágiles tenemos: Capacidad de respuesta a cambios de requisitos a lo largo del desarrollo Entrega continua y en plazos breves de software funcional Trabajo conjunto entre el cliente y el equipo de desarrollo Importancia de la simplicidad, eliminando el trabajo innecesario Atención continua a la excelencia técnica y al buen diseño Mejora continua de los procesos y el equipo de desarrollo Metodologías Ágiles de Desarrollo de Software En la tabla 1.2 presentamos las convergencias y divergencias en la definición de las metodologías ágiles más importantes. Metodología Tipo de modelo Características Adaptive Software Prácticas + ciclo de vida Inspirado en sistemas Development adaptativos complejos Agile Modeling Metodología basada en Suministra modelado la ágil a otros métodos práctica Cristal Methods Familia de metodologías Metodología ágil con énfasis en modelo de ciclos Agile RUP Framework/Disciplina XP dado vuelta con artefactos RUP 15
22 Dynamic Solutions Delivery Model Framework/modelo de ciclo de vida Framework/modelo de ciclo de vida Evolutionary Project Framework adaptativo Primer método ágil Existente Management extreme Disciplina en prácticas de Método ágil radical Programming Ingeniería Feature-Driven Development Metodología Método ágil de diseño y Construcción Lean Development Forma de pensar Forma de pensar modelo modelo Logístico Logístico Forma de pensar Forma de pensar Selección de best modelo modelo practices, no método Logístico Logístico Microsoft Solutions Framework Lineamientos, disciplinas, Prácticas Lineamientos, disciplinas, Prácticas Scrum Proceso framework de Management Complemento de otros métodos, ágiles o no Tabla 1.2. Tabla de convergencias y divergencias entre las principales metodologías ágiles. (Amaro & Valverde, 2007). A continuación se describen brevemente algunas de las metodologías ágiles más destacadas hasta el momento. SCRUM Desarrollada por Ken Schwaber, Jeff Sutherland y Mike Beedle. Define un marco para la gestión de proyectos, que se ha utilizado con éxito durante los últimos 10 años. Está especialmente indicada para proyectos con un rápido cambio de requisitos. Sus principales características se pueden resumir en dos. El desarrollo de software se realiza mediante iteraciones, denominadas sprints, con una duración de 30 días. El resultado de cada sprint es un incremento ejecutable que se muestra al cliente. 16
23 La segunda característica importante son las reuniones a lo largo proyecto. Éstas son las verdaderas protagonistas, especialmente la reunión diaria de 15 minutos del equipo de desarrollo para coordinación e integración. Crystal Methodologies Fueron desarrolladas por Alistair Cockburn y se tratan de un conjunto de metodologías para el desarrollo de software caracterizadas por estar centradas en las personas que componen el equipo y la reducción al máximo del número de artefactos producidos. El desarrollo de software se considera un juego cooperativo de invención y comunicación, limitado por los recursos a utilizar. El equipo de desarrollo es un factor clave, por lo que se deben invertir esfuerzos en mejorar sus habilidades y destrezas, así como tener políticas de trabajo en equipo definidas. Estas políticas dependerán del tamaño del equipo, estableciéndose una clasificación por colores, por ejemplo Crystal Clear (3 a 8 miembros) y Crystal Orange (25 a 50 miembros). Dynamic Systems Development Method (DSDM) Define el marco para desarrollar un proceso de producción de software. Nace en 1994 con el objetivo el objetivo de crear una metodología RAD unificada. Sus principales características son: es un proceso iterativo e incremental y el equipo de desarrollo y el usuario trabajan juntos. Propone cinco fases: estudio viabilidad, estudio del negocio, modelado funcional, diseño y construcción, y finalmente implementación. Las tres últimas son iterativas, además de existir realimentación a todas las fases. Adaptive Software Development (ASD) Su impulsor es Jim Highsmith. Sus principales características son: iterativo, orientado a los componentes software más que a las tareas y tolerante a los cambios. El ciclo de vida que propone tiene tres fases esenciales: especulación, colaboración y aprendizaje. En la primera de ellas se inicia el proyecto y se planifican las características del software; en la segunda desarrollan las características y finalmente en la tercera se revisa su calidad, y se entrega al cliente. La revisión de los componentes sirve para aprender de los errores y volver a iniciar el ciclo de desarrollo. 17
24 Feature-Driven Development8 (FDD) Define un proceso iterativo que consta de 5 pasos. Las iteraciones son cortas, no mayores a 2 semanas. Se centra en las fases de diseño e implementación del sistema partiendo de una lista de características que debe reunir el software. Sus impulsores son Jeff De Luca y Peter Coad. Lean Development (LD) Definida por Bob Charette s a partir de su experiencia en proyectos con la industria japonesa del automóvil en los años 80 y utilizada en numerosos proyectos de telecomunicaciones en Europa. En LD, los cambios se consideran riesgos, pero si se manejan adecuadamente se pueden convertir en oportunidades que mejoren la productividad del cliente. Su principal característica es introducir un mecanismo para implementar dichos cambios. Para el desarrollo de esta tesis se optó por la metodología de Programación Extrema (Extreme Programming, XP) la cual se describe a continuación: Programación Extrema (Extreme Programmin, XP) XP es la primera metodología ágil y la que dio inicio al movimiento actual de metodologías ágiles. Esta metodología ha conformado un extenso grupo de seguidores en todo el mundo, dirigido principalmente por Kent Beck, disparando una gran cantidad de libros a los que dio comienzo el mismo Beck. Inclusive Addison-Wesley ha creado una serie de libros denominados The XP Series. XP es una metodología ágil centrada en potenciar las relaciones interpersonales como clave para el éxito en el desarrollo de software, promoviendo el trabajo en equipo, preocupándose por el aprendizaje de los desarrolladores, y propiciando un buen clima de trabajo (Amaro & Valverde, 2007). XP se basa en realimentación continua entre el cliente y el equipo de desarrollo, comunicación fluida entre todos los participantes, simplicidad en las soluciones implementadas y coraje para enfrentar los cambios. XP se define como especialmente adecuada para proyectos con requisitos imprecisos y muy cambiantes, y donde existe un alto riesgo técnico. Letelier & Penadés (2008) nos presenta las características esenciales de Xp organizadas en tres apartados. 18
25 A. Las historias de Usuario Son la técnica utilizada para especificar los requisitos del software. Se trata de tarjetas de papel las cuales el cliente describe brevemente las características que el sistema debe poseer, sean requisitos funcionales o no funcionales. El tratamiento de las historias de usuario es muy dinámico y flexible. Cada historia de usuario es lo suficientemente comprensible y delimitada para que los programadores puedan implementarla en unas semanas. B. Roles XP Los roles de acuerdo con la propuesta original de Beck (1999) son: - Programador: el programador escribe las pruebas unitarias y produce el código del sistema. - Cliente: escribe las historias de usuario y las pruebas funcionales para validar su implementación. Además, asigna la prioridad a las historias de usuario y decide cuales se implementan en cada iteración centrándose en aportar mayor valor al negocio. - Encargado de pruebas (Tester). Ayuda al cliente a escribir las pruebas funcionales. Ejecuta las pruebas regularmente, difunde los resultados en el equipo y es responsable de las herramientas de soporte para pruebas. - Encargado de seguimiento (Tracker). Proporciona realimentación al equipo. Verifica el grado de acierto entre las estimaciones realizadas y el tiempo real dedicado, para mejorar futuras estimaciones. Realiza el seguimiento del progreso de cada iteración. - Entrenador (Coach). Es responsable del proceso global. Debe proveer guías al equipo de forma que se apliquen las prácticas XP y se siga el proceso correctamente. - Consultor. Es un miembro externo del equipo con un conocimiento específico en algún tema necesario para el proyecto, en el que puedan surgir problemas. - Gestor (Big boss). Es el vínculo entre clientes y programadores, ayuda a que el equipo trabaje efectivamente creando las condiciones adecuadas. Su labor esencial es de coordinación. 19
26 C. Proceso XP Según Jeffries, Anderson & Hendrickson (2001) un proyecto XP tiene éxito cuando el cliente selecciona el valor del negocio a implementar basado en la habilidad del equipo para medir la funcionalidad que puede entregar a través del tiempo. El ciclo de desarrollo consiste (a grandes rasgos) en los siguientes pasos: 1. El cliente define el valor de negocio a implementar. 2. El programador estima el esfuerzo necesario para su implementación. 3. El cliente selecciona qué construir, de acuerdo con sus prioridades y las restricciones de tiempo. 4. El programador construye ese valor de negocio. 5. Vuelve al paso 1. En cada una de las iteraciones de este ciclo entre el cliente y el programador van aprendiendo. No se debe presionar al programador a realizar más trabajo que el estimado, ya que esto causara que el software pierda calidad o no se cumplan los plazos establecidos. De la misma forma el cliente tiene la obligación de manejar el ámbito de entrega de producto, para asegurarse que el sistema tenga el mayor valor de negocio posible con cada iteración. Según Beck (1999) el ciclo de vida ideal de XP consiste en seis fases: Exploración, Planificación de la Entrega, Iteraciones, Producción, Mantenimiento y Muerte del Proyecto. I. Exploración En esta fase, los clientes plantean a grandes rasgos las historias de usuario que son de interés para la primera entrega del producto. Al mismo tiempo el equipo de desarrollo se familiariza con las herramientas, tecnologías y prácticas que se utilizarán en el proyecto. Se prueba la tecnología y se exploran las posibilidades de la arquitectura del sistema construyendo un prototipo. La fase de exploración toma de pocas semanas a pocos meses, dependiendo del tamaño y familiaridad que tengan los programadores con la tecnología. 20
27 II. Planificación de la Entrega En esta etapa el cliente establece el orden de cada historia de usuario y los programadores realizan una estimación del esfuerzo necesario en cada una de ellas. Se hacen acuerdo sobre el contenido que tendrá la entrega y se determinara un cronograma de actividades en conjunto con el cliente. La entrega se deberá obtener en no más de tres meses. Esta fase dura pocos días. Cada historia de los usuarios generalmente se lleva a cabo en 3 o 4 semanas, lo que hace que los programadores mantengan un registro de la velocidad y los avances que se tienen en cada iteración. Esto sirve para establecer cuantas historias se pueden implementar antes de una fecha determinada o cuánto tiempo tomara implementar un conjunto de historias. III. Iteraciones Esta fase incluye varias iteraciones sobre el mismo sistema antes de ser entregado. El plan de entrega está compuesto por iteraciones de no más de tres semanas. En la primera iteración se puede intentar establecer un ritmo de trabajo o una estructura que podrá ser utilizada en el resto del proyecto. Los elementos que deben de tomarse en cuenta durante la elaboración del plan de la iteración son: historias de usuario no abordadas, velocidad del proyecto, pruebas de aceptación no superadas y tareas no terminadas en la iteración anterior. Todo el trabajo de las iteraciones son expresados en tareas de programación, cada una de ellas es asignada a un programador responsable, pero llevadas a cabo por parejas de programadores. IV. Producción La fase de producción requiere de pruebas adicionales y revisiones de rendimiento antes de que el sistema sea trasladado al entorno del cliente. Al mismo tiempo, se deben tomar decisiones sobre la inclusión de nuevas características a la versión actual, debido a cambios durante esta fase. Es posible que se rebaje el tiempo que toma cada iteración, de tres a una semana. Las ideas que han sido propuestas y las sugerencias son documentadas para su posterior implementación. 21
28 V. Mantenimiento Mientras la primera versión se encuentra en producción, el proyecto XP debe mantener el sistema en funcionamiento al mismo tiempo que desarrolla nuevas iteraciones. Para realizar esto se requiere de tareas de soporte para el cliente. De esta forma, la velocidad de desarrollo puede bajar después de la puesta del sistema en producción. La fase de mantenimiento puede requerir nuevo personal dentro del equipo y cambios en su estructura. VI. Muerte del Proyecto Es cuando el cliente no tiene más historias para ser incluidas en el sistema. Esto requiere que se satisfagan las necesidades del cliente en otros aspectos como rendimiento y confiabilidad del sistema. Se genera la documentación final del sistema y no se realizan más cambios en la arquitectura. La muerte del proyecto también ocurre cuando el sistema no genera los beneficios esperados por el cliente o cuando no hay presupuesto para mantenerlo. D. Practicas XP La principal suposición que se realiza en XP es la posibilidad de disminuir la mítica curva exponencial del costo del cambio a lo largo del proyecto, lo suficiente para que el diseño evolutivo funcione. Esto se consigue gracias a las tecnologías disponibles para ayudar en el desarrollo de software y a la aplicación disciplinada de las siguientes prácticas. El juego de la planificación. Hay una comunicación frecuente el cliente y los programadores. El equipo técnico realiza una estimación del esfuerzo requerido para la implementación de las historias de usuario y los clientes deciden sobre el ámbito y tiempo de las entregas y de cada iteración. A continuación se mencionan las prácticas más comunes de la metodología. Entregas pequeñas. Producir rápidamente versiones del sistema que sean operativas, aunque no cuenten con toda la funcionalidad del sistema. Esta versión ya constituye un resultado de valor para el negocio. Una entrega no debería tardar más 3 meses. Metáfora. El sistema es definido mediante una metáfora o un conjunto de metáforas compartidas por el cliente y el equipo de desarrollo. Una 22
29 metáfora es una historia compartida que describe cómo debería funcionar el sistema (conjunto de nombres que actúen como vocabulario para hablar sobre el dominio del problema, ayudando a la nomenclatura de clases y métodos del sistema). Diseño simple. Se debe diseñar la solución más simple que pueda funcionar y ser implementada en un momento determinado del proyecto. Pruebas. La producción de código está dirigida por las pruebas unitarias. Éstas son establecidas por el cliente antes de escribirse el código y son ejecutadas constantemente ante cada modificación del sistema. Refactorización (Refactoring). Es una actividad constante de reestructuración del código con el objetivo de remover duplicación de código, mejorar su legibilidad, simplificarlo y hacerlo más flexible para facilitar los posteriores cambios. Se mejora la estructura interna del código sin alterar su comportamiento externo. Programación en parejas. Toda la producción de código debe realizarse con trabajo en parejas de programadores. Esto conlleva ventajas implícitas (menor tasa de errores, mejor diseño, mayor satisfacción de los programadores, etc.). Propiedad colectiva del código. Cualquier programador puede cambiar cualquier parte del código en cualquier momento. Integración continúa. Cada pieza de código es integrada en el sistema una vez que esté lista. Así, el sistema puede llegar a ser integrado y construido varias veces en un mismo día. 40 horas por semana. Se debe trabajar un máximo de 40 horas por semana. No se trabajan horas extras en dos semanas seguidas. Si esto ocurre, probablemente está ocurriendo un problema que debe corregirse. El trabajo extra desmotiva al equipo. Cliente in-situ. El cliente tiene que estar presente y disponible todo el tiempo para el equipo. Éste es uno de los principales factores de éxito del proyecto XP. El cliente conduce constantemente el trabajo hacia lo que aportará mayor valor de negocio y los programadores pueden resolver de manera inmediata cualquier duda asociada. La comunicación oral es más efectiva que la escrita. 23
30 Estándares de programación. XP enfatiza que la comunicación de los programadores es a través del código, con lo cual es indispensable que se sigan ciertos estándares de programación para mantener el código legible. Si bien XP es la metodología ágil de más renombre en la actualidad como se muestra en la imagen 1.2, se diferencia de las demás metodologías que forman este grupo en un aspecto en particular: el alto nivel de disciplina de las personas que participan en el proyecto. Imagen 1.2 Encuesta de IBM: Qué opina de extreme Programming?. (IBM, 2000) 1.3. Bases de datos Definición Date (2001) define un sistema de bases de datos como un sistema computarizado para llevar registros; es decir, es un sistema computarizado cuya finalidad general es almacenar información y permitir a los usuarios recuperar y actualizar esa información con base en peticiones. La información en cuestión puede ser cualquier cosa que sea de importancia para el usuario. Es posible considerar a la propia base de datos como una especie de armario electrónico para archivar; es decir, es un depósito o contenedor de una colección de archivos de datos computarizados. 24
31 Elmasri & Navathe (2000) la definen como un conjunto de datos relacionados entre sí. Por datos entendemos hechos conocidos que pueden registrarse y que tiene significado implícito Ventajas de utilizar bases de datos Según Elmasri & Navathe (2000) algunas de las principales ventajas de utilizar base de datos para la persistencia de los datos son: Normalizar los datos: Es una metodología que permite minimizar la redundancia de datos. Evitar redundancia de datos: Estos se tratan de guardar en un único lugar y cuando existe la necesidad de acceder a ellos, se hace por medio de relaciones entre los mismos. Evitar inconsistencias de datos: Dado que las bases de datos utilizan transacciones se puede garantizar la inexistencia de inconsistencias de datos. Garantizar la integridad de los datos: Como se evita la redundancia de datos y la inconsistencia y se manejan transacciones, la integridad está garantizada. El concepto básico de integridad es que la información obtenida de la base de datos es correcta en todo momento. Garantizar la seguridad de los datos: Debido a que los accesos a la base de datos tanto para usuarios como para aplicaciones están dados por medio de permisos, si estos últimos están bien definidos nadie podrá ingresar a ningún lugar que no le esté permitido ni acceder a un conjunto de datos que no le esté permitido. Compartir los datos: Dado que todos los datos de una base de datos se almacenan en un mismo lugar lógico estos se pueden compartir sin problema entre distintos usuarios y aplicaciones. Facilidad de modificar los datos: Como se evita la redundancia de datos y estos se guardan en un único lugar es más fácil poder realizar modificaciones sobre ellos. 25
32 Sistema Gestor de Bases de datos Entre la base de datos física, es decir, los datos como están almacenados físicamente, y los usuarios del sistema, hay una capa de software conocida como el Sistema de Manejador de Base de Datos (SMBD, por sus siglas en ingles DBMS) como se muestra en la imagen 1.3. Todas las solicitudes de acceso a la base de datos son manejadas por el DBMS; las características para agregar, eliminar archivos (o tablas), recuperar y almacenar datos desde y en dichos archivos, etcétera, son características que proporciona el DBMS. Por lo tanto, una función general que ofrece DBMS consiste en ocultar a los usuarios de la base de datos los detalles al nivel de hardware. El DBMS es el componente de software más importante del sistema en general, aunque no es el único. Otros comprenden las utilerías, herramientas de desarrollo de aplicaciones, ayudas de diseño, generadores de informes y (el más importante) el administrador de transacciones o monitor PT. Imagen 1.3 Sistema de Base de Datos. (Date, 2001). 26
33 Las funciones principales de un DBMS son: - Crear y organizar la base de datos. - Establecer y mantener las trayectorias de acceso a la base de datos de tal forma que los datos puedan ser ingresados rápidamente. - Manejar los datos de acuerdo a las peticiones de los usuarios. - Registrar el uso de las bases de datos. - Interacción con el manejador de archivos. - Respaldo y recuperación. - Control de concurrencia. - Seguridad e integridad Algunos de los DBMS más utilizados son: - MySQL - PosgreSQL - Microsoft SQL Server - Oracle - Microsoft Access - Firebird - IBM DB2 - IBM Informix - SQLite 1.4. Aplicaciones Web Definición La W3C define "aplicación web" como un sistema de software diseñado para permitir interoperabilidad máquina a máquina en una red. En la ingeniería de software se denomina aplicación web a aquellas aplicaciones que los usuarios pueden utilizar accediendo a un servidor web a través de internet o de una intranet mediante un navegador (Capilla & Urquiza, 2003). En otras palabras se puede decir que es una aplicación remota a la que se accede por internet y que los datos se guardan físicamente en nuestro servidor sin utilizar la memoria de nuestro equipo personal. 27
34 Es importante mencionar que una página web puede contener elementos que permiten una comunicación activa entre el usuario y la información. Esto permite que el usuario acceda a los datos de modo interactivo y siempre se encuentre la información actualizada. Ventajas: - Ahorra tiempo al no necesitar descargar ni instalar ningún software en nuestro dispositivo. - No hay problemas de compatibilidad, ya que solo se necesita tener un navegador actualizado y una conexión a internet. - No ocupa espacio en nuestro disco duro, ya que toda la información se almacena en el servidor web. - La aplicación siempre se encuentra actualizada, ya que no tenemos que estar instalando personalmente las actualizaciones. - No consume los recursos de nuestra computadora, ya que toda la aplicación se encuentra en el servidor web. - Multiplataforma, ya que solo requiere tener un navegador actualizado. - Es portable, ya que solo se necesita un navegador y una conexión a internet y se puede acceder a él desde cualquier dispositivo. - Compartido, debido a que pueden estar muchas personas conectadas al sistema y cada quien puede estar en diferentes lugares. Desventajas - La principal desventaja es que para acceder a la aplicación se necesita de un tercero, ya sea la conexión a internet o la persona que provee el servidor de aplicación, si alguno de estos falla la disponibilidad de la aplicación queda suspendida. A continuación se menciona los principales componentes de una aplicación web. Lógica de negocio. - Parte más importante de la aplicación. - Define los procesos que involucran a la aplicación. - Conjunto de operaciones requeridas para proveer el servicio. Administración de los datos. 28
35 - Manipulación de BD y archivos. Interfaz: - Los usuarios acceden a través de navegadores, móviles, PDAs, etc. o Funcionalidad accesible a través del navegador. o Limitada y dirigida por la aplicación Desarrollo Una aplicación web normalmente está estructurada como una aplicación de tres capas como se muestra en la imagen 1.4. En la forma más común, el navegador web ofrece la primera capa, y un motor capaz de usar de usar alguna tecnología web dinámica como lo es PHP, ASP, ASP.NET, Python o Ruby, el cual constituye la capa intermedia. Por último se encuentra una base de datos que constituye la tercera capa. Imagen 1.4 Modelo de capas en aplicación web. (Segundo, 2008). El funcionamiento de estas capas es que el navegador web manda las peticiones a la capa intermedia, la cual mediante el lenguaje de programación ofrece una interfaz de usuario y permite realizar consultas y actualizaciones a la base de datos que se encuentra en el servidor. 29
36 1.5. Arquitectura web Para abrir una página web en un navegador, normalmente se teclea directamente la dirección URL de la página que se desea visitar o se da clic en el hipervínculo oportuno. Una vez que se hace esta petición mediante el protocolo HTTP y la recibe el servidor web, este hace una búsqueda en su sistema de ficheros para localizar dicha URL y al encontrarla la envía como respuesta al navegador que la solicito (Capilla & Urquiza, 2003). Imagen 1.5 Arquitectura web. (Segundo Jiménez, 2008). En la arquitectura el modelo más conocido es el modelo cliente servidor, el cual se puede definir como una arquitectura distribuida que permite a los usuarios finales acceso a la información en forma transparente aún en entornos multiplataforma como se muestra en la imagen 1.5. El modelo cliente-servidor es una arquitectura software que involucra uno o más clientes solicitando servicios a uno o más servidores. El cliente puede ser un proceso corriendo en una computadora o en un dispositivo como una PDA o un teléfono móvil. El servidor puede ser un proceso corriendo en una computadora (normalmente de altas prestaciones). En la arquitectura Web actual aparecen además elementos que se sitúan en medio (proxies, cachés) Beneficios: 30
37 o Usabilidad/flexibilidad/interoperabilidad/ escalabilidad. En el modelo cliente - servidor, el cliente (como se muestra en la imagen 5 es el navegador) envía un mensaje solicitando un determinado servicio a un servidor (hace una petición), y este envía uno o varios mensajes con la respuesta (provee el servicio en páginas HTML) El navegador Un navegador web es una aplicación que opera a través de internet, interpretando la información de archivos y sitios web para que estos puedan ser leídos. La funcionalidad básica de un navegador es traducir los lenguajes de programación con los que están hechos los sitios web a una interfaz amigable con el usuario, por lo cual el navegador es considerado como una interfaz de usuario universal. En los navegadores es en donde se generan las peticiones hacia los servidores de aplicación, en los cuales están almacenadas páginas web o sistemas de información, y con dichas peticiones se puede hacer que se muestre en pantalla la página solicitada o mediante consultas modificar datos almacenados en una base de datos. La función principal del navegador es descargar documentos HTML y mostrarlos en pantalla. En la actualidad, no solamente descargan este tipo de documentos sino que muestran con el documento sus imágenes, sonidos e incluso vídeos streaming en diferentes formatos y protocolos. Además, permiten almacenar la información en el disco o crear marcadores (bookmarks) de las páginas más visitadas. Una de las posibilidades de los navegadores es la gestión del llamado HTML dinámico. Este está compuesto de HTML, hojas de estilo en cascada (Cascade Style Sheets, CSS), modelo de objetos y scripts de programación que permiten formatear y posicionar correctamente los distintos elementos HTML de las páginas web, permitiendo un mayor control sobre la visualización de las páginas (Segundo, 2008). 31
38 El servidor Un servidor web es un programa que atiende y responde a las diversas peticiones de los navegadores, proporcionándoles los recursos que solicitan mediante el protocolo HTTP o el protocolo HTTPS (Mateu, 2004). Un servidor web básico tiene un esquema de funcionamiento muy sencillo, ejecutando de forma infinita el bucle siguiente: Se conecta con el cliente. Recibe el mensaje HTTP de la petición. Procesa el mensaje HTTP. Localiza y envía el resultado en forma de mensaje HTTP. Un servidor web que siguiese el esquema anterior cumpliría los requisitos básicos de los servidores HTTP, aunque, eso sí, sólo podría servir ficheros estáticos. A partir del esquema anterior se han diseñado y construido todos los programas servidores de HTTP que existen, variando sólo el tipo de peticiones que pueden atender, en función de que sean o no multi-proceso, multi-hilados, etc. Los servidores más importantes son Apache e IIS. Características de los servidores Componente del sistema que presta servicios al cliente Gestiona y comparte sus recursos con los clientes que sirve Suele tener restricciones especiales respecto a rendimiento, fiabilidad, escalabilidad y seguridad o Capacidad suficiente para atender a múltiples clientes o Los fallos en el servidor son críticos e invalidan el sistema o El número de clientes (peticiones) puede ser muy variable y aumentar si se requiere o Evitar comprometer la seguridad de los recursos o datos gestionados y de los clientes 1.6. Servicios y seguridad web Morales (2010) nos dice que un servicio web no es más que una colección de protocolos y estándares usados para intercambiar datos entra diferentes 32
39 aplicaciones. Existe una gran variedad de aplicaciones de software desarrolladas en lenguajes de programación diferentes, y ejecutadas en diversas plataformas que pueden utilizar los servicios web para el intercambio de datos en redes de computadoras como internet. La interoperabilidad de las redes se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la arquitectura y reglamentación de los servicios web. OASIS (Organization for the Advancement of Structured Information Standars) fue creada en 1993, es una organización internacional sin ánimo de lucro, que gestiona el desarrollo, la convergencia y la adopción de los estándares sobre comercio electrónico. La organización crea estándares abiertos en los ámbitos de servicios web, seguridad, comercio electrónico y estandarización en el sector público, así como para mercado de aplicación específicas. Las W3C es una organización internacional donde las organizaciones miembros, el personal a tiempo completo y el público en general, trabajan conjuntamente para desarrollar estándares web. El W3C lleva a cabo su misión a través de la creación de estándares web y pautas diseñadas para garantizar el crecimiento de la web a largo plazo. Según Morales (2010) la seguridad de los servicios web puede aplicarse en tres niveles distintos: Seguridad (de punto a punto) para plataformas/transporte. El modelo de seguridad para transporte es sencillo, bien diseñado y adecuado para una gran variedad de escenarios (básicamente para intranets), en los que los mecanismos de transporte y la configuración del punto final pueden controlar de forma exhaustiva. Seguridad (personalizada) para aplicaciones. Con este enfoque, la aplicación se hace cargo de la seguridad y utiliza las funciones de seguridad personalizadas. Seguridad (de extremo a extremo) para mensajería. Esta especificación de seguridad puede utilizarse para crear un marco de intercambio de mensajes seguros en un entorno de servicios web heterogéneo. La seguridad web aporta: Autenticación: Certificados digitales. 33
40 Confidencialidad: Cifrado simétrico / asimétrico Integridad: MAC No repudio: Firma electrónica Estándares web Los estándares web son tecnologías establecidas por el Word Wide Web Consortium (W3C), usadas para crear e interpretar el contenido basado en web, de tal manera que estos documentos estén siempre disponibles y accesibles para todos. Son un conjunto de tecnologías orientadas a brindar beneficios a la mayor cantidad de usuarios, asegurando la vigencia de todo documento publicado en la web. Las herramientas básicas para el desarrollo de aplicaciones y sistemas web son los principales estándares web: HTML, CSS y Java Script. A continuación se destacan los siguientes estándares: Identificador de Recurso Uniforme (URI), que es un sistema universal para referenciar recursos en la Web, como páginas web, Protocolo de Transferencia de Hipertexto (HTTP), que específica cómo se comunican el navegador y el servidor entre ellos, Lenguaje de Marcado de Hipertexto (HTML), usado para definir la estructura y contenido de documentos de hipertexto, Lenguaje de Marcado Extensible (XML), usado para describir la estructura de los documentos de texto Los beneficios del uso de estándares web Tiene un montaje más rápido Fácil mantenimiento, menor costo de mantenimiento Diseño centralizado Compatibilidad con todos los navegadores Se descarga y presenta más rápidamente Menor costo de ancho de banda 34
41 Mayor accesibilidad, mejor experiencia del usuario Mejor posicionamiento en los buscadores Mayor cantidad de usuarios que pueden accedes a nuestro sitio 1.8. Herramientas para desarrollo web HTML Según Gauchat (2012) HTML (HyperText Markup Language) es el lenguaje de etiquetado utilizado para crear documentos que pueden ser recuperados por la Word Wide Web. El lenguaje HTML contiene semánticas apropiadas para presentar la información de un amplio rango de tipos de documentos. Puede representar noticias, correo o documentos con imágenes embebidas, y vistas hipertexto de cuerpos de información existentes. Actualmente HTML 5 es la quinta revisión importante del lenguaje básico de la World Wide Web, HTML. HTML5 especifica dos variantes de sintaxis para HTML: un clásico HTML (text/html), la variante conocida como HTML5 y una variante XHTML conocida como sintaxis XHTML5 que deberá ser servida como XML (XHTML) (application/xhtml+xml) (Wikipedia, 2013). Html5 incluye elementos nuevos destinados a enriquecer la presentación de documentos. Son ejemplos de ello los elementos semánticos article, header, hgroup, nav, section, aside y footer. Con ellos se pretende evitar que los autores abusen del elemento div para delimitar partes de un documento. Los blogs y los sitios de noticias han influido en gran medida en esta evolución (Schafer, 2010). Html5 define más de una docena de nuevos controles ( , range, date, time, placeholder, autofocus, etc.) que actúan, por fin, sin necesidad de utilizar JavaScript, un lenguaje de programación que no todos los usuarios tienen habilitado (Pilgrim, 2010). Ejemplo de código HTML5 básico <!DOCTYPE> <html> <head> 35
42 <title>ejemplo de HTML5</title> </head> <body> <nav>nueva etiqueta que se utiliza para los menus de navegacion</nav> <section> <article>aqui va el contenido importante de la página</article> <aside>aqui se muestra informacion poco importante que en dispositivos moviles queda excluida </aside> </section> <footer>muestra el pide de la página</footer> </body> </html> Diferentes versiones de HTML. HTML 1: es la primera versión creada por Tim Berners-Lee en HTML 2: la segunda versión de HTML apareció en 1994 y se terminó en 1996 con la aparición de HTML 3.0, esta es la versión que en realidad plantea las bases de las siguientes versiones de HTML. Las reglas y el funcionamiento de esta versión están dadas por el W3C. HTML 3: apareció en 1996, esta nueva versión de HTML, añade muchas posibilidades al lenguaje como tablas, applets, scripts, posicionamiento de texto alrededor de imágenes, etc. HTML 4: Esta es la versión más común de HTML (en concreto, es HTML 4.01). Apareció por primera vez en 1998 y propone el uso de marcos (que dividen una página web en varias partes), tablas más complejas, mejoras en las formas, etc. Más importante aún, esta versión permite por primera vez utilizar hojas de estilo del famoso CSS. HTML 5: es la última versión. Aún no está muy extendida, llama mucho la atención porque trae muchas mejoras como la posibilidad de incluir fácilmente vídeos, mejorar el contenido, nuevas características para los formularios, etc. Esta es la versión que vamos a describir en esta documentación. EL estándar estará completado en el año
43 CSS CSS (Cascading Style Sheets, también conocidas como hojas de estilo): el papel de CSS es describir la apariencia de la página web (diseño, posicionamiento, colores, tamaño de texto, etc.).este lenguaje ha complementado el código HTML desde CSS se utiliza para dar estilo a documentos HTML y XML, separando el contenido de la presentación. Los estilos definen la forma de mostrar los elementos HTML. CSS permite a los desarrolladores web controlar el estilo y el formato de múltiples páginas web al mismo tiempo. Cualquier cambio en el estilo marcado para un elemento en la CSS afectara a todas las páginas vinculadas a esa CSS en las que aparezca ese elemento. CSS funciona a base de reglas, es decir, declaraciones sobre el estilo de uno o más elementos. Las hojas de estilo están compuestas por una o más de esas reglas aplicadas a un documento HTML. Versiones CSS CSS 1: en 1996, apareció la primera versión de CSS. En ella se establecen las bases de este lenguaje que permiten mejoras de presentación en páginas web, tales como colores, márgenes, fuentes, etc. CSS 2: apareció en 1999 y fue completado por CSS 2.1, esta nueva versión de CSS, añade numerosas opciones. Ahora se pueden utilizar técnicas de posicionamiento muy precisas que permiten ver los elementos en el lugar deseado en la página. CSS 3: esta es la última versión, que agrega características muy esperadas, tales como bordes redondeados, degradados, sombras, etc Java script Según Gauchat (2012) JavaScript es un lenguaje de programación que se utiliza principalmente para crear páginas web dinámicas. Una página web dinámica es aquella que incorpora efectos como texto que aparece y desaparece, animaciones, acciones que se activan al pulsar botones y ventanas con mensajes de aviso al usuario. Javascript es un lenguaje interpretado usado para múltiples propósitos pero solo considerado como un complemento hasta ahora. Una de las innovaciones 37
44 que ayudó a cambiar el modo en que vemos Javascript fue el desarrollo de nuevos motores de interpretación, creados para acelerar el procesamiento de código. La clave de los motores más exitosos fue transformar el código Javascript en código máquina para lograr velocidades de ejecución similares a aquellas encontradas en aplicaciones de escritorio. Esta mejorada capacidad permitió superar viejas limitaciones de rendimiento y confirmar el lenguaje Javascript como la mejor opción para la web. Entre las acciones típicas que se pueden realizar en Javascript existen dos vertientes. Por un lado los efectos especiales sobre páginas web, para crear contenidos dinámicos y elementos de la página que tengan movimiento, cambien de color o cualquier otro dinamismo. Por el otro, Javascript permite ejecutar instrucciones como respuesta a las acciones del usuarios, con lo que es posible crear paginas interactivas con programas como calculadoras o agendas Lenguajes de programación Antes de hablar acerca de los diferentes lenguajes de programación primero tenemos que saber que programación hace referencia cuando creamos un programa de computadora mediante la aplicación de procedimientos lógicos. La programación se desarrolla en distintos lenguajes. Estos lenguajes son códigos estructurados que cobran sentido en determinados contextos de uso. El lenguaje de programación es un idioma artificial diseñado para expresar cómputos que puedan ser llevados a cabo por las computadoras. Puede usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión o como modo de comunicación humana. Estos lenguajes permiten especificar de manera precisa sobre qué datos debe operar una computadora, como deben ser almacenados o transmitidos y que acciones debe tomar bajo una gran cantidad de opciones posibles. Todo esto, a través de un lenguaje que intenta ser relativamente próximo al lenguaje humano o natural. 38
45 Php PHP es un lenguaje de secuencia de comandos de servidor diseñado especificamente para la web. Dentro de una pagina web puede incrustar codigo PHP que se ejecutara cada vez que se visite una pagina. El codigo php es interpretado en el servidor web y genera codigo HTML y otro contenido que el usuario vera. (Welling & Thomson, 2005). PHP fue consebido en 1994 por Rasmus Lerdorf. Actualmente php se encuentra instalado en mas de 244 millones de dominios en todo el mundo como se muestra en la siguiente imagen. Imagen 1.6 Preferencias de PHP. (http://php.net/. Consultado el 16 de Octubre de 2013). PHP es un producto de código abierto, lo que quiere decir que puede acceder a su código. Puede utilizarlo, modificarlo y distribuirlo sin algún costo. Las siglas PHP equivalían principalmente a Personal Home Page, pero se modificaron de acuerdo con la convención de designación de GNU y ahora equivale a PHP Hipertext Preprocessor (preprocesador de hipertexto PHP). Actualmente se encuentra disponible la versión 5 de PHP. Ventajas: Se caracteriza por ser un lenguaje muy rápido. Soporta en cierta medida la orientación a objetos. Es un lenguaje multiplataforma. 39
46 Capacidad de conexión con la mayoría de los manejadores de base de datos. Es libre, por lo que se presenta como una alternativa de fácil acceso para todos. Incluye gran cantidad de funciones. No requiere definición de tipos de variables ni manejo detallado del bajo nivel. Desventajas Se necesita instalar un servidor web. Todo el trabajo lo realiza el servidor y no delega al cliente. La legibilidad del código puede verse afectada al mezclar sentencias HTML y PHP. La programación orientada a objetos es aún muy deficiente para aplicaciones grandes. Dificulta la organización por capas de la aplicación MySQL MySQL es un sistema para la administración de bases de datos relacionales (RDBMS) rápido y sólido. Las bases de datos permiten almacenar, buscar, ordenar y recuperar datos de forma eficiente. El servidor de MySQL controla el acceso a los datos para garantizar el uso simultáneo de varios usuarios, para proporcionar acceso a dichos datos y para asegurarse de que solo obtienen acceso a ellos los usuarios con autorización. Por lo tanto, MySQL es un servidor multiusuario y de subprocesamiento múltiple. Utiliza SQL (Structured Query Language), el lenguaje estándar para la consulta de bases de datos más utilizados en todo el mundo. (Welling & Thomson, 2005). Las características principales de MySQL son: Es un gestor de base de datos: una base de datos es un conjunto de datos y un gestor de base de datos es una aplicación capaz de manejar este conjunto de datos de manera eficiente y cómoda. Es una base de datos relacional. Una base de datos relacional es un conjunto de datos que están almacenados en tablas entre las cuales se 40
47 establecen unas relaciones para manejar los datos de una forma eficiente y segura. Para usar y gestionar una base de datos relacional se usa el lenguaje estándar de programación SQL. Es Open Source. El código fuente de MySQL se puede descargar y esta accesible a cualquiera, por otra parte, usa licencia GPL para aplicaciones comerciales. Es una base de datos muy rápida, segura y fácil de usar. Existe gran cantidad de software que la usa Razones para utilizar PHP y MySQL Por las siguientes cualidades de PHP y MySQL es por lo que se recomienda utilizar este lenguaje de programación y manejador de base de datos. Cualidades de PHP Entre los competidores principales de PHP se puede citar Perl, Microsoft Active Server Pages (ASP), Java Server Pages (JSP) y Allaire ColdFusion. En comparación con estos productos Welling & Thomson (2005) encuentra que PHP cuanta con las siguientes ventajas: Rendimiento: mediante el uso de un servidor, puede servir a millones de usuarios al mismo tiempo. Integración de base de datos: dispone de una conexión propia a todos los sistemas de base de datos, ya que utiliza el estándar ODBC (Open Database Connectivity Standard) el cual permite establecer la conexión a cualquier base de datos. Bibliotecas compartidas: como está enfocado a la web incorpora una gran cantidad de funciones integradas, puede generar imágenes, establecer conexiones a otros servidores, enviar correos electrónicos, trabajar con cookies y generar documentos PDF, todo con pocas líneas de código. Coste: PHP es gratuito, no requiere de ninguna licencia de uso. Portabilidad: Está disponible para gran cantidad de sistemas operativos. 41
48 Ventajas de MySQL Rendimiento: MySQL es muy rápido. Bajo Coste: MySQL está disponible de manera gratuita, bajo licencia de código abierto o por un precio reducido en forma de licencia comercial. Facilidad de uso: utiliza el lenguaje de programación SQL, el cual es el más utilizado en el mercado. Portabilidad: MySQL se puede utilizar en una gran cantidad de sistemas Unix diferentes, así como bajo Microsoft Windows Servidor Apache El servidor HTTP Apache es un servidor web HTTP de código abierto, para plataformas Unix, Microsoft Windows,Macintosh y otras, que implementa el protocolo HTTP/1.1 2 y la noción de sitio virtual. Su nombre se debe a que Behelendorf quería que tuviese la connotación de algo que es firme y enérgico pero no agresivo, y la tribu Apache fue la última en rendirse al que pronto se convertiría en gobierno de EEUU, y en esos momentos la preocupación de su grupo era que llegasen las empresas y "civilizasen" el paisaje que habían creado los primeros ingenieros de internet. Además Apache consistía solamente en un conjunto de parches a aplicar al servidor de NCSA. El servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de la Apache Software Foundation. Apache presenta entre otras características altamente configurables, bases de datos de autenticación y negociado de contenido, pero fue criticado por la falta de una interfaz gráfica que ayude en su configuración. Apache tiene amplia aceptación en la red: desde 1996, Apache, es el servidor HTTP más usado. 42
49 2. ssa CAPITULO II. Contexto del Proyecto
50 2.1. Facultad de Contaduría y Administración La Facultad de Contaduría y Administración forma parte de la Universidad Veracruzana, la cual es la institución de educación superior pública con mayor impacto en la República Mexicana, además de ser una de las cinco más importantes del país. La Universidad Veracruzana inicio sus actividades en 1944, con el propósito de reunir y coordinar las actividades de un grupo de escuelas dispersas en educación media superior, así como de otros establecimientos afines. La Facultad de Contaduría y Administración fue fundada en 1949 con el nombre de Facultad de Comercio, en la cual se otorgaba el título profesional de Contador Público y Auditor. Más adelante en el año 1967, se creó una nueva carrera en esta Facultad, a la cual llamaron Administración de Empresas, posteriormente con el paso del tiempo y los avances tecnológicos se tuvo la necesidad de crear una carrera que tuviera que ver con estos grandes avances, por lo cual se agregó en 1994 la carrera denominada Sistemas Computacionales Administrativos de la cual es un placer ser egresado y la carrera más nueva dentro de esta Facultad es la de Gestión y Dirección de Negocios que fue creada en el año Misión de la Facultad Generar conocimientos contables, administrativos y de sistemas computacionales útiles y pertinentes a la sociedad; preservar y difundir la cultura empresarial: enseñar y aprender para formar profesionistas en las áreas de Contaduría, Administración y Sistemas Computacionales Administrativos Visión de la Facultad Ser una institución de liderazgo académico universitario y calidad acreditada con estrechas relaciones hacia el sector privado, gubernamental y no gubernamental generando de manera continua conocimientos de gran valor social. 44
51 Cuerpo directivo M.A. Rafael Olvera Carrascosa Director M.C.C. Rubén Álvaro González Benítez Secretario de la Facultad Dra. Sandra Luz Domínguez López Jefe de Carrera de Contaduría L.A.E. Luz Gabriela Navarro Domínguez Jefe de Carrera de Administración M.C.A. Luis Alejandro Gazca Herrera Jefe de Carrera de Sistemas Computacionales Administrativos M.A. Carlos Arturo Bolio Yris Jefe de Carrera de Gestión y Dirección de Negocios La información anterior se obtuvo de la página oficial de la Universidad Veracruzana, dentro del portal de la Facultad de Contaduría y Administración Estructura Orgánica Imagen 2.1 Estructura Orgánica Facultad de Contaduría y Administración Fuente 45
52 2.2. Licenciatura en Sistemas Computacionales Administrativos Descripción La permanente búsqueda de un desarrollo económico sustentable de mayor productividad, eficacia y eficiencia dentro de todas las actividades económicas, han estimulado el desarrollo de la ciencia y la tecnología, y estas a su vez como en un virtuoso círculo han propiciado la aceleración de todos los cambios, creando de esta manera un gran reto a la capacidad para dirigir y administrar las tendencias que en general están transformando al mundo, de tal manera es evidente el rol que juega el Licenciado en Sistemas Computacionales Administrativos ante las necesidades sociales de nuestro mundo cambiante. Con base en lo anterior, los Licenciados en Sistemas Computacionales Administrativos mexicanos también forman parte de la comunidad informática mundial, identificándose por ser agentes de cambio prácticamente en todos los sectores de nuestra economía, que como todas se encuentra en plena transformación y búsqueda permanente de las mejores soluciones frente a la diversas problemáticas existentes en las organizaciones. Misión Formar profesionistas de calidad, comprometidos y éticos con un espíritu creativo e innovador que apliquen y desarrollen las tecnologías de la información, para satisfacer las necesidades de las organizaciones en la consecución de sus objetivos Visión Ser una institución de excelencia y certificación académica que forme profesionistas con las competencias necesarias que les permitan integrarse de manera proactiva con otras disciplinas profesionales en un contexto globalizado; que contribuya a lograr cambios en el manejo de la información y apoye al proceso de toma de decisiones; integrado en grupos de trabajo académico donde se desarrollan actividades de investigación, extensión y 46
53 difusión con base a un plan de estudios actualizado y dinámico que responda al vertiginoso avance tecnológico, promoviendo el crecimiento profesional y comprometidos con los valores de nuestro ideario Objetivo General Formar profesionistas con conocimientos sólidos en la teoría general de sistemas y la teoría contable administrativa para el uso y aplicación de tecnologías de información Objetivos Particulares Desarrollar la capacidad y habilidad para el análisis, diseño e implantación de sistemas de información de la empresa en sus diferentes niveles operacionales. Desarrollar la habilidad emprendedora, creadora e innovadora, para su aplicación en el ámbito empresarial. Formar líderes de equipos de trabajo. Formar profesionistas capaces de resolver problemas y apoyar a la toma de decisiones mediante la aplicación de tecnología de información. La información anterior se obtuvo de la página oficial de la Universidad Veracruzana, dentro del portal de la Facultad de Contaduría y Administración Departamento de Experiencia Recepcional El departamento de Experiencia Recepcional se encuentra dentro de la Facultad de Contaduría y Administración, el cual está a cargo la Licenciada Jessica Garizurieta Bernabé, este departamento está encargado de llevar un control de los alumnos que se encuentran en el proceso de titulación Experiencia Educativa de Experiencia Recepcional Propósitos de la Experiencia Educativa de Experiencia Recepcional Promover la integración de los saberes adquiridos a través del proceso de formación. 47
54 Generar espacios de trabajo colaborativo que afiancen los saberes requeridos para el ejercicio profesional. Fomentar la participación de los estudiantes en la generación y aplicación del conocimiento y su distribución social. Concluir satisfactoriamente el proceso de aprendizaje por parte del estudiante Características de la Experiencia Educativa de Experiencia Recepcional Valor Crediticio: 12. Se elimina la categoría de pasante ya que se conseguirá que todos los estudiantes, al cubrir el cien por ciento de los créditos establecidos por su plan de estudios, concluyan y obtengan el grado. Se considera como experiencia educativa cursativa por lo que su acreditación tendrá que realizarse con carácter de ordinario. Se cursa en dos modalidades establecidas en la normatividad universitaria: Trabajo Recepcional y EGEL-CENEVAL. En el caso de los estudiantes que puedan alcanzar su titulación por Promedio, tendrán que elegir alguna de las modalidades señaladas anteriormente y cumplir con los lineamientos respectivos. Cada estudiante contará con la guía de un profesor que asumirá la función de Director de Trabajo Recepcional o Asesor de Antología. Inscripción en la Experiencia Educativa de Experiencia Recepcional 1. Inscripción Administrativa. 2. Inscripción Académica (Trabajo Recepcional). 3. Registro de Director de Trabajo Recepcional o Asesor de Antología. 4. Registro del Protocolo de Investigación o Plan de Trabajo. Acreditación de la Experiencia Educativa de Experiencia Recepcional 1. Aprobar el total de créditos del plan de estudios que este cursando. 2. Cumplir con los requisitos académicos de cada modalidad de la ER. 3. Realizar el procedimiento administrativo de cada modalidad de la ER. 48
55 Procedimiento Inicio Inscripción a Experiencia Recepcional Si Platica de Inicio Entrega ER1 No ER1 aceptado? Si Oficio de asignación de asesor Registro de Protocolo de Investigación No Inscripción realizada? Elaboración Trabajo Completo Entrega ER2 segundo avance Entrega ER2 primer avance Elboracion de Trabajo Recepcional Si Protocolo Aceptado? No No Fin No No Aprobado por el asesor? Si Entrega ER3 Asignacion de sinodales Aceptado por sinodales? SI No Calificacion Aprobatoria Defensa del trabajo Formato ER5 Entregar trabajo empastado y 5 cds Si Trabajo autoriado? Entrega ER4 y trabajo impreso Si Fin Imagen 2.2 Diagrama de flujo de procedimiento de Experiencia Recepcional. Fuente Propia. Como podemos ver en la imagen 2.2 se presenta un diagrama de flujo del proceso que se debe seguir en Experiencia Recepcional, el cual se describe a continuación. Platica de inicio. Esta platica se hace al inicio del periodo escolar con el fin de que los alumno que se encuentran inscritos en la experiencia educativa de experiencia recepcional tengan las bases para saber cómo es el proceso de titulación y los pasos que deben ir siguiendo para lograr entregar a tiempo su trabajo de titulación. Registro de director de trabajo recepcional (ER1). Este es el primer paso para iniciar el trabajo de titulación, para el cual se debe entregar el formato de registro a Experiencia Recepcional, en el cual se deberá llenar con los datos del alumno, nombre del director, modalidad y título del trabajo a presentar y 49
56 debidamente firmado de conformidad por el alumno y el director del trabajo recepcional, tal y como se muestra en el anexo 1. Oficio de asignación de director de trabajo recepcional. Una vez registrado el ER1, la coordinación de Experiencia Recepcional emitirá un oficio para informarle al profesor registrado que ha sido elegido como asesor de tesis, especificando el nombre del alumno que lo solicita y el nombre del trabajo recepcional a realizar. Registro de protocolo de investigación. Se entregara el protocolo de investigación del trabajo recepcional a realizar, previamente revisado y autorizado por el director del trabajo recepcional. Aprobación de protocolo de investigación. Una vez entregado el protocolo de investigación la Coordinación de Experiencia Recepcional aprobara el contenido que en él se encuentra y procederá a realizar su trabajo recepcional. Entrega de 1 avance (ER2). Una vez entregado y aprobado el protocolo de investigación se comenzara a realizar el trabajo recepcional, esté se entregara en dos avances revisados y autorizados por el director del trabajo recepcional, llenando debidamente el formato ER2 como se muestra en el anexo 2. Entrega de 2 avance (ER2). Se entregara una segunda revisión de avances del resto de los capítulos del trabajo recepcional debidamente firmado por el director del trabajo. (Véase anexo 2) Entrega voto aprobatorio director (ER3). Una vez finalizado el trabajo recepcional el director realizara la revisión final y en caso de estar correcto entregara al alumno su voto aprobatorio como se muestra en el formato (Véase anexo 3). Asignación de sinodales. Cuando se tenga el trabajo por completo será necesario elegir 4 sinodales, 2 titulares y 2 suplentes, los cuales formaran el jurado ante el cual se tendrá que defender el trabajo recepcional. Entrega voto aprobatorio sinodal (ER4). Una vez elegidos los sinodales se les entregara una copia del trabajo recepcional para su revisión y posterior aprobación que se entregara como se muestra en el formato (Véase anexo 4). Entregar trabajo impreso. Cuando el trabajo haya sido autorizado por el director y los sinodales, el trabajo será entregado impreso en la coordinación para revisión del formato y emitir las correcciones necesarias para presentarlo. 50
57 Entrega de trabajo con correcciones. Una vez realizadas las correcciones que emite la coordinación se entregara el trabajo impreso empastado con pasta blanda y 5 cds. Entrega ER5 por la coordinación. La coordinación entregara el formato ER5, en el cual se pedirá autorización para que el alumno realice la defensa de su trabajo recepcional. Inicia trámite administrativo. Una vez obtenido el ER5 se iniciaran los trámites administrativos necesarios para que se asigne una fecha y hora para llevar a cabo la defensa del trabajo recepcional. Defensa de trabajo recepcional. Cuando se tenga fecha y hora asignadas para la defensa se llevara a cabo el acto protocolario en el cual el alumno defenderá su trabajo recepcional frente al jurado, quien al finalizar dicha defensa emitirá su veredicto y una calificación para el alumno Problemática En el departamento de Experiencia Recepcional se tiene la problemática de que existe un sub-departamento llamado Centro de Apoyo a la Titulación (CAT), en el que también se registran los alumnos que se encuentran en el proceso de titulación, por lo que en el departamento no se puede llevar un control completo de todos los alumnos inscritos en la experiencia educativa, ya que al pasar los datos de los alumnos que se han registrado mediante el CAT se pueden perder o duplicar los datos, además de que cuando se asignan los directores y sinodales de los trabajos no se lleva un control adecuado sobre el número de alumnos permitido para los profesores, por lo que algunos de ellos tienen sobre carga de trabajo y otros no logran cumplir con el número de alumnos asesorados requeridos por la dirección. También se tiene el problema de que al asignar la fecha y hora de los exámenes de titulación se pueden duplicar los horarios, o que alguno de los profesores integrantes del jurado tenga otro examen en esa misma fecha y horario Antecedentes Anteriormente en el departamento de Experiencia Recepcional todo el control del procedimiento se llevaba a cabo en hojas de Excel, las cuales solo era de control interno. 51
58 Posteriormente en el año 2008 Salas Muñoz propuso la elaboración de un sistema de registro al CAT el cual apoyaría a la gestión de los procedimientos de la coordinación, ya que el principal funcionamiento de dicho sistema consistía en inscripción de los alumnos al CAT, asignación de asesores, entrega de documentos, pago de inscripción, impartición de cursos y revisión constante de los alumnos, con lo cual se pretendía hacer más fácil el control de todos los alumnos que se encuentran en el proceso de titulación. El sistema de información para la gestión de servicios del Centro de Apoyo a la Titulación (CAT) surge principalmente como estrategia en el manejo de información en tiempo real sobre el registro de instructores, periodos, materiales, registro y actualización de información relativa a egresados y alumnos inmersos en un proceso de preparación para la titulación de los tres programas de licenciatura que en esta Facultad se ofertan. Este sistema fue desarrollado para apoyar en los procedimientos en dicho departamento aunque su función también pudo haber sido implementado en la Coordinación de Experiencia Recepcional, ya que los procedimientos son muy parecidos Normativa de Experiencia Recepcional La normativa de este departamento se rige por lo establecido en el Titulo X, Capítulo I del Estatuto de Alumnos 2008 de la Universidad Veracruzana, en cual se presentan los artículos del 78 al 82 estipulando lo siguiente: Artículo 78. Los alumnos que cursen planes de estudio flexibles de nivel técnico y de estudios profesionales podrán acreditar la experiencia recepcional a través de las siguientes opciones: I) Por trabajo escrito presentado en formato electrónico bajo la modalidad de tesis, tesina, monografía, reporte o memoria y las demás que apruebe la Junta Académica de cada programa educativo. II) Por trabajo practico que puede ser científico, educativo, artístico o técnico. III) Por promedio, cuando hayan acreditado todas las experiencias educativas del plan de estudios con promedio 52
59 IV) ponderado mínimo de 9.00 en ordinario en primera inscripción, en los casos que así lo apruebe la Junta Académica. Por examen general de conocimientos (CENEVAL). Artículo 79.La academia correspondiente propondrá a la Junta Académica, para su aprobación, los criterios que deberán reunir los trabajos escritos y prácticos a que se refieren las fracciones I y II del artículo anterior. Artículo 80. Para cursar y acreditar la experiencia recepcional, el alumno debe: I. Cumplir como mínimo con el 70% de los créditos del programa educativo. La Junta Académica determinará si este porcentaje se incrementa, atendiendo el perfil profesional requerido; II. Estar inscrito, eligiendo la línea de generación y aplicación del conocimiento, de acuerdo con la oferta del programa educativo, para las opciones señaladas en las fracciones I y II del artículo 78 de este Estatuto; y III. Presentar ante el Secretario de la Facultad o titular de la entidad académica la solicitud y la documentación con la cual se pretenda acreditar la experiencia recepcional, para las opciones señaladas en las fracciones III, IV y V. Artículo 81. Para las opciones de acreditación de la experiencia recepcional por trabajo escrito o práctico deberá observarse lo siguiente: I. El plan de estudios respectivo debe establecer la duración de la experiencia recepcional en uno o dos períodos. Cuando la duración sea de dos periodos, el alumno deberá cursarla de manera continua y con una sola inscripción; II. En caso de que el alumno no concluya su trabajo en el tiempo de duración de la experiencia recepcional y demuestre un avance mínimo del 75%, podrá solicitar al Secretario de la Facultad o titular de la entidad académica, previa autorización del jurado, una prórroga para terminarlo, misma que no podrá ser mayor a cuarenta días hábiles a partir de la fecha programada para la conclusión de la experiencia recepcional. En caso de no acreditarla, deberá cursarla en segunda inscripción; 53
60 III. Cuando el alumno se encuentre en el último periodo escolar, de acuerdo con el tiempo máximo de permanencia permitido, y la duración de la experiencia recepcional sea de dos periodos, el tiempo máximo de permanencia podrá prorrogarse por un período más, únicamente para concluir la experiencia recepcional. Para que la prórroga sea procedente, el alumno deberá tener acreditadas todas las demás experiencias educativas del plan de estudios; IV. Es responsabilidad del académico designado programar y dar seguimiento a la experiencia recepcional; V. Para realizar el trabajo escrito o práctico, el alumno contará con un asesor, que será nombrado por el Consejo Técnico o por los coordinadores de Academia. El asesor podrá ser el mismo académico asignado a la experiencia recepcional; VI. El alumno podrá solicitar al Consejo Técnico que el asesor sea algún académico de la propia facultad o de otra entidad académica de la Universidad Veracruzana, o bien un académico externo. Si éste fuera el caso, el asesor externo deberá ser docente o investigador invitado, pertenecer al mismo nivel educativo o a un nivel superior, poseer como mínimo el grado académico que se va a otorgar y ser un experto en la línea de investigación del trabajo recepcional; VII. La evaluación de la experiencia recepcional la realizará un jurado constituido por tres integrantes, nombrados por el Director de la Facultad, en el que se incluirá al asesor del alumno y podrá incluirse al académico designado; VIII. El Consejo Técnico u órgano equivalente conocerá y resolverá la objeción justificada que el alumno presente respecto de algún miembro del jurado; IX. La calificación de la experiencia recepcional la asentará el académico designado para la misma, a partir de la valoración que realice el jurado; y X. Los trabajos escritos y prácticos deberán presentarse mediante exposición oral en presencia del jurado y miembros de la comunidad universitaria. 54
61 Artículo 82. Si el alumno no acredita la experiencia recepcional en las dos inscripciones a las que tiene derecho, sólo podrá acreditarla mediante el examen general de conocimientos o el examen general para el egreso del Ceneval, de existir para el programa educativo que cursó o esté cursando. 55
62 Capitulo: III. Sistema de Control para Experiencia 3. d Recepcional
63 3.1. Planteamiento La implementación de un sistema de información en el departamento de experiencia recepcional de la Facultad de Contaduría y Administración facilita el control de alumnos en el proceso de titulación El sistema de control Objetivos Generales Elaborar un Sistema de información para la Faculta de Contaduría y Administración de la Universidad Veracruzana en el departamento de Experiencia Recepcional en donde se lleva el control de los alumnos que están por titularse, así como la administración de las fechas de examen, horarios y maestros directores de tesis y sinodales Específicos - Registrar alumnos que están por titularse. - Llevar el registro de los alumnos y maestros participantes en el proceso de titulación. - Controlar fechas de exámenes y entrega de avances de cada alumno. - Generar reportes de los alumnos que van al corriente en la entrega de sus avances y las fechas de exámenes. - Emitir reportes estadísticos necesarios por el departamento, como son totales de titulados, los que se encuentran aún en el proceso de titulación y entregas de avances. - Registrar profesores involucrados en el proceso de titulación y controlar el número de asesorados por cada periodo, para evitar sobrecarga de trabajo. 57
64 Beneficios Los beneficios que se obtendrán con el uso de este sistema, será que se podrá tener un mejor control de los alumnos inscritos en la experiencia educativa de experiencia recepcional, ya sea que se hayan inscrito mediante el CAT o directamente en la coordinación de Experiencia Recepcional, los cuales como se explicó anteriormente tendrán que ir realizando sus entregas de los diferentes reportes, que se irán registrando en el sistema y se podrá controlar el número de alumnos que van realizando sus entregas en tiempo y forma y saber cuáles alumnos están presentando problemas en dichas entregas, con lo que se podrán tomar decisiones como la de ampliarles el periodo de titulación, otorgándoles una prórroga de 40 días para que concluyan con su trabajo recepcional. Así mismo el sistema permitirá controlar el número de profesores que se encuentran participando como asesores o sinodales en el proceso de titulación, para poder llevarles un control de los alumnos que tienen a su cargo y evitar que tenga sobrecarga de alumnos, para que al tener la cantidad establecida puedan atender mejor a sus alumnos. El sistema también podrá otorgar reportes que necesitan los directivos para poder tomar decisiones, como el número de alumnos que se titulan por periodo, cuántos alumnos se encuentran atrasados en sus trabajos recepcionales, cuantos profesores están participando y a cuantos alumnos atienden por periodo Justificación Anteriormente el área de experiencia recepcional se realizaba el registro y control de alumnos en hojas de cálculo de Excel por ello es necesario la implementación de un nuevo software, el cual cumpla con el objetivo primordial que se requiere para el control de dicha información, permitiendo mayor comodidad y confiabilidad en la información que se maneja. El sistema, se elaboró con la finalidad de ahorrar tiempo y trabajo específicamente en el área de experiencia recepcional, ya que es ahí donde se llevan a cabo las diferentes operaciones del manejo de la información de los alumnos, de esta manera facilitar el uso de documentos de avances y calendarizar fechas. 58
65 El sistema de información permite agilizar el proceso de titulación y ayudar al control de fechas de entrega de avances y fechas de exámenes profesionales, con el fin de evitar traslapes de horarios para los maestros sinodales y director del trabajo recepcional, y así mismo evitar la carga de trabajo en los directores, controlando el límite de alumnos permitidos y genera reportes necesarios por el departamento para control de estadísticas. Gracias a este nuevo software las operaciones serán mucho más fáciles y rápidas, debido a que con este sistema será más eficiente realizar todas estas operaciones, lo que motivará al usuario, además de que con este sistema el área tendrá una imagen más a la vanguardia. Otra de las razones por la que se decide elaborar este software, es con la idea de que la información sea clara, concisa y libre de errores, permitiendo además mayor seguridad en el manejo de la información. Anteriormente no se tenía la seguridad adecuada en los datos, puesto al ser llenado los formatos de manera manual, y ser guardados en archiveros, se tenía el pendiente de que algún día por motivos de descuidos, estos expedientes desaparecieran de la institución Metodología La metodología que se seleccionó para el desarrollo del trabajo fue la de Programación Extrema (extreme Programming, XP), porque es la metodología que más se acopla al trabajo que se pretende realizar, ya que fue creada para proyectos en los cuales no se cuenta con mucho tiempo para el desarrollo y no se tienen bien planteados los requerimientos, los cuales irán surgiendo mediante se vayan teniendo las iteraciones con el cliente, las cuales son lo más importante dentro del proceso, ya que en ellas existe retroalimentación entre el programador y el cliente. En cuanto al desarrollo del sistema se optó por la utilización de algunos lenguajes de programación como PHP, el cual se eligió por ser libre y porque los demás sistemas utilizados dentro de la facultad se encuentran programados en este mismo lenguaje. Aunque la metodología de Programación Extrema se basa en que la documentación no sea tan extensa, se utilizó UML para diseñar el sistema, dado que es un lenguaje sencillo que permite visualizar de mejor manera los datos que se utilizaran. 59
66 Para el diseño de la interfaz se utilizó el lenguaje CSS, el cual permite desarrollar la interfaz sin necesidad de utilizar imágenes y animaciones flash, lo que hace que el sistema sea más sencillo de cargar en cualquier navegador. En cuanto a la base de datos se utilizó el manejador de base de datos MySQL, ya que en el que se utilizó para desarrollar la base de datos general de la facultad, y es en la que se basara nuestro sistema. Para facilitar el manejo de la base de datos y tablas se utilizó phpmyadmin, que es un software que permite la manipulación de los datos de manera gráfica. Finalmente se utilizaran las herramientas que según Kendall & Kendall (2005) son los diagramas de casos de uso, diagramas de secuencia, diagramas de clases para llevar a cabo el diseño del sistema y la creación de diseños de interfaces, con los cuales se podrá desarrollar el sistema y se podrá tener la documentación necesaria para futuros cambios que se requieran Diseño y Desarrollo Exploración Como se mencionó anteriormente, en la Programación Extrema lo más importante es el cliente, no solo porque será el usuario final, sino porque forma parte del equipo de desarrollo. El cliente al estar en constante participación dentro del desarrollo del sistema expresa correctamente sus requisitos y revisa los avances que se van teniendo conforme avanza el proyecto para poder dar las correcciones necesarias para que sea lo que realmente necesita. En la fase de exploración de acuerdo a XP no existe la recopilación de requerimientos como tal, ya que estos se van dando conforme avanza el proyecto. Esto permite que el sistema se vaya adecuando a lo que el cliente necesita. El sistema será utilizado por dos tipos de usuarios. El Administrador principal el cual contará con privilegios que el otro usuario no podrá tener acceso, el usuario al iniciar su sesión tendrá un menú el cual le permitirá elegir alguna de las opciones sobre la cual desee trabajar, entre las cuales esta: Alumnos, 60
67 Maestros, Parámetros, Reportes, etc. A continuación se presentan las actividades que podrá realizar el usuario: - Gestionar usuarios del sistema. - Gestionar profesores que participan con el departamento (crear, modificar, eliminar). - Gestionar alumnos inscritos en la experiencia educativa (crear, modificar, eliminar). - Gestionar parámetros necesarios para la funcionalidad del sistema (Agregar, modificar y eliminar periodos, salones disponibles, modalidades de titulación y licenciaturas). - Gestionar información de los alumnos (registrar los avances de los alumnos, seleccionar su jurado). - Autorizaciones para profesores que requieran aumentar su número de alumnos permitidos. - Emitir reportes. El otro usuario será Servicio Social el cual solo tendrá acceso a registrar alumnos y editar campos específicos de su información personal, emitir reportes y a los permisos que el administrador le conceda en su sesión. Algunas de las actividades que podrá realizar son: - Gestionar información de los alumnos (registrar los avances de los alumnos, seleccionar su jurado). - Emitir reportes Planificación de la entrega Una vez concluida la primera parte del análisis, cuando ya se tienen definidas las tareas que realizara cada integrante del equipo, se procede a la creación de las historias de usuario, que solo son una tarjeta que apoya la recolección de datos, de manera que el equipo de trabajo puede identificar fácilmente como se desarrollan las tareas. Para la realización del sistema se realizaron las siguientes historias de usuario como apoyo a la tarea de diseño y programación del sistema. A continuación en las tablas 3.1, 3.2 y 3.3 se muestran las historias de usuario más importantes. (Véase anexo 5). 61
68 HISTORIA DE USUARIO Número: 1 Nombre: Registrar alumnos en el sistema Usuario: Administrador Modificación de Historia: Iteración Asignada: 1 Prioridad: Alta Puntos Estimados: Riesgo de Desarrollo: Puntos Reales: El administrador registrara a los alumnos que se encuentren en el proceso de titulación y que no se hayan Descripción: inscrito mediante el CAT, si ya se inscribieron mediante el CAT no será necesario volverlos a inscribir. Para la inscripción solo será necesario tener la matricula Observaciones: del alumno y haber entrega el formato ER1 a la coordinación. Tabla 3.1 Historia de usuario 1. (Fuente propia). HISTORIA DE USUARIO Número: 2 Nombre: Registrar información de los alumnos Usuario: Administrador Modificación de Historia: Iteración Asignada: 1 Prioridad: Alta Puntos Estimados: Riesgo de Desarrollo: Puntos Reales: Una vez registrado el alumnos en el sistema, se procede a Descripción: llenar toda la información, ya sea personal o referente a su trabajo recepcional dentro del sistema. Esta información debe estar debidamente anexada en el Observaciones: formato ER1, como nombre del trabajo a realizar, asesor de trabajo recepcional y modalidad elegida. Tabla 3.2 Historia de usuario 2. (Fuente propia). HISTORIA DE USUARIO Número: 3 Nombre: Registro de fechas de entrega de los formatos Usuario: Administrador Modificación de Historia: Iteración Asignada: 2 62
69 Prioridad: Alta Puntos Estimados: Riesgo de Desarrollo: Puntos Reales: Los alumnos entregaran los diferentes formatos y se deberán registrar en el sistema, con el fin de poder Descripción: calificar a los alumnos si las entregas las hacen a tiempo, mediante el cronograma entregado en el protocolo de investigación. El cronograma debe estar anexado en el protocolo de Observaciones: investigación, quedando estas fechas como tentativas de entrega. Tabla 3.3 Historia de usuario 3. (Fuente propia) Iteraciones En este punto se presentan las entregas por etapas, cada etapa será una iteración de 3 semanas de trabajo aproximadamente, en las que se entregaran las historias de usuario más interesantes, para que el usuario las evalué y emita las correcciones pertinentes para que sea lo que él requiere. Se calcula que el proyecto concluirá en 6 meses, tomando en cuenta la entrega de cada iteración como se muestra en la tabla 3.4. Actividades Mes 1 Mes 2 Mes 3 Mes 4 Mes 5 Mes 6 Iteración 1 Iteración 2 Iteración 3 Iteración 4 Iteración 5 Iteración 6 Iteración 7 Entrega final del proyecto Tabla 3.4 Cronograma de entrega de iteraciones. (Fuente propia) 63
70 Producción Diseño de la Base de Datos Para nuestra base de datos se utilizara la base de datos general de la facultad, de la cual se tomaran tablas como la de alumnos y profesores, de las cuales se obtendrá la información personal de cada uno de ellos, además de las tablas o entidades (Véase imagen 3.1 y 3.2) que son exclusivas de este sistema. Matricula Director Sinprop1 Sinprop2 titulotrab Sinsup1 Formulario Periodo_tit Sinsup2 horaexam fechaexam Fecha_creacion tipo modalidad Salon submodalidad protocolo Matricula inscripcion er1 er2 er5 er5t er6 Formulario_er calificacion er41t er41 er4t er4 er3t er3 er2t califer2 er22 er22t califer22 id Hora_ini Id_licenciatura abreviatura id institucion Id_periodo Fecha_ini Horas_exam Licenciatura Maximo Periodo Hora_fin estado completo maximo nombre estado Fecha_fin Id_modalidad concepto Id_salon no_salon Id_usuario usuario password Modalidad estado Salon tipoinstitucion Usuarios tipo estado capacidad_fisica edificio imagen estatus nick permiso nombre Id_auto matricula no_personal encargado Historial_autorizaciones puesto status fecha periodo Imagen 3.1 Diagrama de entidades. (Fuente propia) Entidad Relación. Alumno -Matricula -Nombre -Apepat -Apemat -Carrera -Calle -No_Externo -No_Interno -Colonia -Ciudad -Codigo_Postal -Estado -Campus -Nombre_Emergencia -Tel_Emergencia -Matricula_Interna -Estatus -Sexo -Tipo_Pago -Tutor_No_Personal -Servicio_Medico -Condicionado -Jefe_grupo -Usuario -Contraseña -Celular -Correo Horas_exam -id -hora_ini -hora_fin -id_periodo -periodo -fecha_ini -fecha_fin -estado 1..* 1..* Periodo -tiene -tiene -registra 1..* 1..* 1..* 1..* Licenciaturas -id_licenciatura -abreviatura -completo -estado Formulario -Matricula -Director -Sinprop1 -Sinprop2 -Sinsup1 -Sinsup2 -Salon -Horaexam -Fechaexam -Periodo_tit -Titulotrab -Modalidad -Fecha_creacion -Tipo Modalidad -id_modalidad -concepto -estado 1..* -tiene 1..* 1..* -tiene -tiene 1..* 1..* salon -id_salon -no_salon -capacidad_fisica -edificio -estado 1..* 1..* 1..* -registra 1..* Profesor 1..* -registra -no_personal -apellido_paterno -apellido_materno -nombre - -telefono -sexo -clave_contratacion -clave_categoria -clave_puesto -hrs_per_uno -hrs_per_dos -activo Formulario_er -Matricula -Inscripcion -Submodalidad -Er1 -Protocolo -Er2 -Er2t -Califer2 -Er22 -Er22t -califer22 -Er3 -Er3t -Califer3 -Er4 -Er4t -Er41 -Er41t -Er5 -Er5t -Er6 -Calificacion Historial_autorizaciones -id_auto -matricula -no_personal -puesto -periodo -fecha -status -encargado Maximo -id -institucion -nombre -maximo Usuarios -id_usuario -password -tipo -estatus -permiso -nombre -nick -imagen -tipoinstitucion Imagen 3.2 Diagrama Entidad - Relación. (Fuente propia) 64
71 A continuación se muestran algunas pantallas del sistema y se describen las acciones que se presentan en cada una de estas. Pantalla de inicio de sesión. En esta pantalla el usuario se autentificara para poder acceder al sistema. (Véase imagen 3.3). Imagen 3.3 Pantalla de inicio de sesión. (Fuente propia) Pantalla de bienvenida. Pantalla principal al iniciar sesión en la que se muestra el menú al que puede acceder el usuario. (Véase imagen 3.4).. Imagen 3.4 Pantalla de bienvenida. (Fuente propia) 65
72 Pantalla del menú de alumnos. En esta pantalla muestra las opciones que permite el sistema referente a los alumnos. (Véase imagen 3.5). Imagen 3.5 Pantalla de menú de alumnos. (Fuente propia) Pantalla de búsqueda de alumnos. En esta pantalla el usuario podrá buscar a los alumnos con su matrícula, para posteriormente inscribirlos dentro del sistema. (Véase imagen 3.6). Imagen 3.6 Pantalla de búsqueda de alumnos. (Fuente propia) Pantalla de listado de alumnos. En esta pantalla se mostrará un listado de los alumnos que se encuentran inscritos en la experiencia recepcional y mostrará el medio por el cual se hayan inscrito, ya sea por el CAT o por el mismo departamento. (Véase anexo 6). 66
73 Pantalla de expediente. En esta pantalla se muestra toda la información del alumno. (Véase anexo 6). Datos generales. Permite modificar los datos personales. Datos del proceso de titulación. Apartado especial para los datos referentes a su titulación, aquí se selecciona su asesor y los miembros de su jurado, además de la fecha de examen y validará que se encuentre disponible el salón y los profesores participantes. Fechas de entrega. En este apartado se agregarán las fechas tentativas de entrega de avances que propone el alumno en su protocolo y las fechas reales en que realiza dichas entregas con el fin de ayudar al departamento a emitir la calificación correspondiente. (Véase anexo 6). Pantalla de maestros. En esta pantalla permitirá agregar un maestro que no se encuentre en la base de datos o ver el listado de los ya existentes. (Véase anexo 6). Pantalla de autorizaciones. En esta pantalla permitirá al usuario aceptar o rechazar las peticiones de incrementar el número de alumnos asesorados por maestro, además de poder ver el historial de las autorizaciones anteriores. (Véase anexo 6). Pantalla de parámetros. En esta pantalla se configuran y agregan los parámetros necesarios para que funcione correctamente el sistema, se agregan los periodos, licenciaturas, modalidades y los salones que se encuentran disponibles para la titulación. (Véase anexo 6). Pantalla de reportes. En esta pantalla el usuario podrá imprimir los reportes que necesite, ya sea por los alumnos inscritos en algún periodo, los alumnos asesorados por profesor y la relación completa de los alumnos que se encuentran el proceso de titulación y sus fechas de entrega. (Véase anexo 6). Usuarios y perfil. En esta pantalla permitirá al administrador controlar los usuarios que se encuentren registrados y tengan acceso al sistema y en perfil podrá editar sus datos de usuario. (Véase anexo) Mantenimiento Mientras el desarrollo del sistema continúa, es conveniente realizar pruebas al sistema con la finalidad de encontrar y corregir errores en el momento de 67
74 presentar los módulos al cliente, en caso de que estos no tengan ningún error y funcionen correctamente se pueden entregar completamente funcionales. Las pruebas se pueden realizar en dos categorías diferentes, las pruebas de caja blanca y las pruebas de caja negra. Pruebas de caja blanca. Se basan en la lógica interna de la aplicación y el código, se hace una cobertura de declaraciones del código, ramas, caminos y condiciones con la finalidad de demostrar que las sentencias se han ejecutado por lo menos una vez. Pruebas de caja negra. No se basa en el con conocimiento del código o su diseño interno, sino que verifican la funcionalidad del sistema, realizando los procesos que dicho sistema debe cumplir, la entrada y salida de datos, así como las pruebas de interfaz Muerte del proyecto Una vez que el proyecto ha sido terminado es conveniente realizar una pequeña documentación, que como lo menciona la metodología de Programación Extrema debe ser pequeña pero funcional. A continuación se muestra al catálogo de usuarios y el diccionario de datos de las principales tablas del sistema para que quede documentado en caso de ser requerido en el futuro. Catálogo de usuarios Administrador: este perfil de usuario está destinado para el administrador del sistema, el cual tendrá todos los permisos necesarios para manipular toda la información que en él se muestra, podrá agregar, modificar, eliminar alumnos, profesores, realizar autorizaciones, y emitir reportes. Servicio Social: este perfil está diseñado para los alumnos que realizan su servicio social en el departamento de Experiencia Recepcional, con el fin de apoyar con las actividades que en él se desarrollan. Estos usuarios solo podrán agregar alumnos y modificar la información referente a su titulación. 68
75 Diccionario de datos Tabla formulario: en esta tabla se concentra toda la información referente a la titulación del alumno. Matricula: se refiere a la matricula del alumno, con la que se conectará esta tabla con la tabla de alumnos, de la que se extrae toda la información personal del alumno. Proviene de la tabla alumno. Director: se refiere al número de personal de profesor asignado como asesor de tesis. Proviene de la tabla profesor. Sinprop1: se refiere al número de personal del profesor elegido como sinodal propietario 1. Proviene de la tabla profesor. Sinprop2: se refiere al número de personal del profesor elegido como sinodal propietario. Proviene de la tabla profesor. Sinsup1: se refiere al número de personal del profesor elegido como sinodal suplente 1. Proviene de la tabla profesor. Sinsup2: se refiere al número de personal del profesor elegido como sinodal suplente 2. Proviene de la tabla profesor. Salón: se refiere al id del salón asignado para el examen profesional. Proviene de la tabla salón. Horaexam: se refiere al id del horario asignado para el examen de titulación. Proviene de la tabla horas_exam. Fechaexam: se refiere a la fecha en que se aplicara el examen de titulación. Periodo_tit: se refiere al id del periodo de titulación al que se encuentra inscrito el alumno. Proviene de la tabla periodo. Titulotrab: se refiere al título del trabajo registrado por el alumno. Modalidad: se refiere a la modalidad que el alumno ha determinado para realizar su trabajo recepcional Proviene de la tabla modalidad. Fecha_creacion: se refiere a la fecha en que se registró el alumno al sistema. Tipo: se refiere al tipo de inscripción, depende de donde se haya realizado el registro, puede tomar los valores de CAT o ER. Tabla formulario_er: en esta tabla se encuentra todo exclusivo del departamento, como las fechas de entrega. 69
76 Matricula: se refiere a la matricula del alumno, con la que se conectara esta tabla con la de formulario, de la que se extrae toda la información referente al proceso de titulación. Inscripción: se refiere al número de inscripción en la que se encuentra el alumno. Submodalidad: se refiere a la opción que eligió el alumno realizar, puede ser por Trabajo o por Ceneval. Er1: se refiere a la fecha en la que se realizó la entrega del formato ER1. Protocolo: se refiera a la fecha en la que se realizó la entrega del protocolo de investigación. Er2: se refiere a la fecha en la que se realizó la entrega del formato ER2. Er2t: se refiere a la fecha tentativa de entrega del formato ER2 que el alumno propuso dentro del cronograma de actividades. Califer2: Er22: se refiere a la fecha en la que se realizó la entrega del segundo formato ER2. Er22t: se refiere a la fecha tentativa de entrega del segundo formato ER2 que el alumno propuso dentro del cronograma de actividades. Califerer22: Er3: se refiere a la fecha en la que se realizó la entrega del formato ER3. Er3t: se refiere a la fecha tentativa de entrega del formato ER3 que el alumno propuso dentro del cronograma de actividades. Er4: se refiere a la fecha en la que se realizó la entrega del formato ER4. Er4t: se refiere a la fecha tentativa de entrega del formato ER4 que el alumno propuso dentro del cronograma de actividades. Er41: se refiere a la fecha en la que se realizó la entrega del segundo formato ER4. Er41t: se refiere a la fecha tentativa de entrega del formato ER2 que el alumno propuso dentro del cronograma de actividades. Er5: se refiere a la fecha en la que se realizó la entrega del formato ER5. Er5t: se refiere a la fecha tentativa de entrega del formato ER5 que el alumno propuso dentro del cronograma de actividades. 70
77 Er6: se refiere a la calificación que se asigna al alumno por parte del departamento. Calificación: se refiere a la calificación obtenida en su experiencia educativa experiencia recepcional Evaluación y Resultados Prueba unitaria Las pruebas de la unidad centran su proceso de verificación e la menor unidad del software, el modulo. Una unidad de programa es lo suficientemente pequeña para que el programador pueda probarla minuciosamente tomando como guía las historias de usuario realizas (ver anexo 1). Estas pruebas se aseguran que las operaciones internas se ajustan a las especificaciones establecidas. Para la historia de usuario 1 (Registro de alumnos) se realizó el siguiente diagrama de flujo de proceso (ver imagen 3.7). Búsqueda de alumnos por matricula. Inicio Buscar alumnos por matricula Se encontro al alumno? Si Registrar alumno Fin No Fin No Desea registrarlo? Si Registro de datos personales Fin Imagen 3.7 Diagrama de flujo de proceso. (Fuente propia) Una vez que se tienen los caminos posibles, se realizaron los casos de prueba para simular el registro de los alumnos (véase tablas 3.5, 3.6 y 3.7). CASO DE PRUEBA No. De caso de prueba: 1 No. De historia de usuario: 1 Nombre: No se encuentra el alumno Descripción: Al buscar el alumno dentro de la base de datos de la facultad para registrarlo dentro del sistema y no se encuentra Condiciones de ejecución: Buscar al alumno por la matricula Entradas: Matricula Resultado: No se encontró al alumno 71
78 Evaluación: Al no encontrar al alumno dentro de la base de datos, se procede a verificar que la matricula sea la correcta, en caso de ser así, se da la opción de registrarlo. Tabla 3.5 Caso de prueba 1 historia de usuario 1. (Fuente propia) CASO DE PRUEBA No. De caso de prueba: 2 No. De historia de usuario: 1 Nombre: El alumno ya se encuentra registrado Descripción: Al buscar al alumno dentro de la base de datos, esté ase encuentra registrado en el sistema. Condiciones de ejecución: Buscar al alumno por matricula Entradas: Matricula Resultado: El alumno ya se encuentra registrado Evaluación: Cuando el alumno ya se encuentra registrado se muestra un mensaje y nos permite entrar a ver toda su información almacenada Tabla 3.6 Caso de prueba 2 historia de usuario 1. (Fuente propia) CASO DE PRUEBA No. De caso de prueba: 3 No. De historia de usuario: 1 Nombre: Se encontró el alumno Descripción: Al buscar a un alumno mediante su matrícula y se encuentra en la base de datos y aun no se ha registrado, se da la opción de registrar, para poder proceder a almacenar sus datos Condiciones de ejecución: Buscar al alumno por su matricula Entradas: Matricula Resultado: Se encontró al alumno Evaluación: Al encontrar al alumno y verificar que no se encuentra inscrito en el sistema, se permite que sea registrado Tabla 3.7 Caso de prueba 3 historia de usuario 1. (Fuente propia) Pruebas de integridad El objetivo es tomar los módulos probados en la prueba de unidad y construir una estructura de programa que esté de acuerdo con lo que fue diseñado. Hay dos formas de integración: 72
79 Integración no incremental: Se combinan todos los módulos por anticipo y se prueba todo el programa en conjunto. Integración incremental: el programa se construye y se puede en pequeños segmentos. Para el sistema de experiencia recepcional se decidió usar la prueba de integración incremental, ya que en base a la metodología utilizada durante el desarrollo se trabaja constantemente en el sistema, realizando las pruebas necesarias al terminar cada módulo, con la finalidad de que el producto final no contenga errores y cumpla las expectativas el cliente Pruebas de arquitectura Debido a las necesidades del usuario y a las condiciones en las que el sistema operaria, se decidió la utilización de la arquitectura cliente servidor. Es por ello que para este caso, es recomendable hacer las siguientes pruebas: Pruebas de servidor: se prueban funciones de coordinación y manejo de datos del servidor. También se considera el desempeño del servidor (tiempo de respuesta y procesamiento de los datos). Pruebas de base de datos: consiste en realizar las pruebas necesarias para demostrar que existe integridad de los datos almacenados en el servidor, se verifica que las transacciones que se realizan en las aplicaciones cliente afecten adecuadamente la base de datos ya sea al almacenar, modificar, eliminar o consultar daos d la misma. Pruebas de transacción: se crea una serie de pruebas para asegurar que cada clase de transacciones se procesa de acuerdo a sus requisitos Pruebas del sistema Se verifico el funcionamiento del sistema en cuanto a su seguridad y en la manera en la que se mantienen los datos. Las pruebas realizadas fueron: 73
80 Pruebas de recuperación La finalidad de realizar pruebas de recuperación es verificar que las transacciones realizadas se guardan correctamente en la base de datos a pesar de alguna contingencia. Algunas contingencias que pasan a menudo en los sistemas web es el cierre de una ventana mientras el sistema es utilizado. Se hicieron las pruebas de cerrar la ventana después de haber guardado los datos de un alumno y se verifica que al volver a ingresar al sistema los datos del alumno fueron guardados correctamente, lo que nos garantiza que una vez registrado los datos estos quedaran debidamente almacenados Integridad de datos y base de datos En esta prueba se verifico que los procesos funcionan correctamente con la base de datos, lo cual hace que los datos que se envían en cada proceso sean los correctos. Se hicieron pruebas con datos inválidos en la base de datos para ver el comportamiento del sistema y se comprobó que no ser los datos especificados, esté mostrara un mensaje de error y no permitirá continuar con la transacción Pruebas de seguridad Se refiere a la manera en que el sistema protege la información para que está no pueda ser robada ni alterada por cualquier persona. Para eso se tienen los dos tipos de usuarios permitidos para el sistema, los cuales son Administrador y Servicio Social. A petición del cliente, el usuario de servicio social podrá tener acceso total al sistema, para apoyar mejor en los procedimientos que en el departamento se llevan a cabo, lo que hace que ambos usuarios tengan los mismos privilegios. En cuestión de seguridad dentro del sistema se manejan sesiones, las cuales no permiten acceder a ninguna página, ya sea HTML o Php, sin antes haberse autentificado como usuario registrado. Para esto se hicieron pruebas seleccionando al azar diferentes paginas e intentando acceder a ellas desde el navegador, obteniendo como resultado lo que se esperaba, que nos re direccionara a la página de inicio en la que pedirá al usuario que ingrese debidamente. 74
81 Pruebas de GUI En esta prueba se verifico la navegación dentro del sistema, en lo que se obtuvo como resultado que todos los links están correctamente direccionados y todo funciona conforme a lo establecido. Además de lo anterior se verificó que los elementos que se encuentran en cada interfaz están debidamente acomodados, haciendo que sea fácil de entender para los usuarios Pruebas de estilo En esta prueba se comprobara que la aplicación sigue con los estándares del cliente. Se revisara el formato de las ventanas, colores institucionales, tipos de letra, logotipos, etc. Con la revisión se obtuvo como resultado que el diseño de la interfaz va acorde con los colores institucionales de la Universidad Veracruzana y se utilizan los logotipos oficiales de dicha institución Pruebas de aceptación Son pruebas que se realizan por parte del cliente, se realizan antes de ser implementado para validar que sea lo que el cliente. Al realizar estas pruebas se obtuvo que el cliente está conforme a lo que se le propone, con lo que se puede decir que el sistema está completo y se puede proceder a instalar para su correcta implementación Pruebas de instalación El sistema se instaló provisionalmente en una computadora del Centro de Desarrollo y Producción Tecnológica, ya que el servidor en el cual debe ser instalada requiera una actualización, posteriormente a esta actualización se procederá a instalar el sistema correctamente. El segundo propósito de esta prueba es verificar que el sistema funciona correctamente en cada cliente (computadora personal de cada usuario). Para ello se creó un acceso directo en cada computadora con el que se podrá acceder de una manera fácil y rápida. Con esto se comprobó que el sistema funciona correctamente en cualquier computadora que se requiera simplemente se necesita la dirección URL del servidor en el que se encuentra instalado. 75
82 Pruebas funcionales Esta prueba se llevó a cabo tomando en cuenta los requisitos del cliente, se fue revisando que cada requisito haya sido cubierto dentro del sistema y que su funcionamiento sea el correcto y necesario para el cliente. Con estas pruebas obtuvimos como resultados que cubren correctamente todas las funciones que solicito previamente el cliente Prueba de usabilidad En esta prueba se verifico que el sistema sea fácil de usar, que no sea complicado para el usuario poder encontrar los procesos que requiere y que se encuentre toda la información disponible sin tener que realizar un trabajo extra que no le corresponde al usuario. Esta prueba se realizó con la entrevista al usuario verificando que el proceso sea correcto y fácil de utilizar Pruebas de campo Una vez implementado el sistema se volvieron a hacer las pruebas anteriores con la finalidad de encontrar errores que se produjeran dentro del servidor. Estas pruebas se realizaron desde las computadoras que utilizaran los clientes para garantizar su correcto funcionamiento EVALUACION Para la evaluación del sistema se realizó un cuestionario (ver anexo 7) al usuario final del sistema, obteniendo los siguientes resultados. Se agilizo el proceso de inscripción y registro de alumnos al departamento? Si 3 100% No 0 0% Gráfica 3.1 Pregunta 1. (Fuente Google Docs) 76
83 El manejo de la información se ha optimizado? Si 3 100% No 0 0% Gráfica 3.1 Gráfica 3.2 Pregunta 2. (Fuente Google Docs) Es más fácil llevar el control de los alumnos que se encuentran en el proceso de titulación? Si 3 100% No 0 0% Gráfica Pregunta 3. (Fuente Google Docs) Gráfica 3.3 Pregunta 3. (Fuente Google Docs) Es más fácil el manejo de los exámenes de titulación? Si 3 100% No 0 0% Gráfica Gráfica 3.4 Pregunta 4. (Fuente Google Docs) 77
84 Se tiene control adecuado de los alumnos asesorados por cada profesor? Si 3 100% No 0 0% Gráfica Gráfica 3.5 Pregunta 5. (Fuente Google Docs) Gráfica 3.5 Pregunta 5. (Fuente Google Docs) Se tiene control de las entregas de los alumnos? Si 3 100% No 0 0% Gráfica Gráfica 3.6 Pregunta 6. (Fuente Google Docs) Los reportes emitidos por el sistema son los adecuados para la información que necesita? Si 1 33% No 2 67% Gráfica 3.7 Pregunta 7. (Fuente Google Docs) 78
85 El sistema cumple con el procedimiento completo que se realiza en su departamento? Si 3 100% No 0 0% Gráfica Gráfica 3.8 Pregunta 8. (Fuente Google Docs) Es fácil el uso del sistema? Si 3 100% No 0 0% Gráfica Gráfica 3.9 Pregunta 9. (Fuente Google Docs) Es amigable la interfaz del sistema? Si 3 100% No 0 0% Gráfica Gráfica 3.10 Pregunta 10. (Fuente Google Docs) 79
86 Recibió una adecuada capacitación sobre el sistema? Si 1 33% No 2 67% Gráfica Gráfica 3.11 Pregunta 11. (Fuente Google Docs) Tiene dudas acerca del funcionamiento del sistema? Si 1 33% No 2 67% Gráfica Gráfica 3.12 Pregunta 12. (Fuente Google Docs) Con los resultados anteriores podemos darnos cuenta de que el sistema si cumple con los requisitos que solicito el cliente, pero en la parte de reportes aún no se encuentra completa, que será un nuevo proyecto para poder concluir correctamente este sistema, además de proporcionar una adecuada capacitación al personal que labora dentro del departamento de Experiencia Recepcional para poder resolver todas sus dudas con el procedimiento que deben seguir y que sean capaces de manejar a la perfección el sistema. 80
87 CONCLUSIONES
88 A lo largo de este trabajo se habló sobre los sistemas de información como una solución para los problemas de automatización de procesos de las organizaciones y la importancia que tienen dentro de estas, ya que apoyan diversos procesos y manejan grandes volúmenes de información, así como los diferentes tipos de sistemas de información existentes de los cuales las organizaciones pueden apoyarse para cada una de sus actividades. También se habló de las aplicaciones web, las cuales le dan la capacidad usuario de interactuar con los servicios desde cualquier parte del mundo y cualquier dispositivo con acceso a internet, lo que hace que las empresas u organizaciones puedan ahorrar tiempo o recursos. Los sistemas web son diferentes a los sistemas tradicionales, ya que en ellos se busca que se encuentren disponibles en cualquier momento y en cualquier lugar sin exigirle al usuario grandes capacidades de almacenamiento o proceso de su dispositivo, esto se logra gracias a que el proceso completo se ejecuta en el servidor, el cual será el responsable de almacenar, procesar y desplegar la información que requiera el usuario de acuerdo a su petición. Se dio un panorama general de lo que es la Universidad Veracruzana, la Facultad de Contaduría y Administración y el departamento de Experiencia Recepcional, que se encuentra dentro de dicha facultad, para el cual se propuso un sistema para llevar un control adecuado de los alumnos que se encuentran inscritos en el proceso de titulación, resolviendo así los problemas que se presentan de manera cotidiana en lo que respecta a dicho proceso. Como se ha visto, los sistemas como el propuesto para el departamento de Experiencia Recepcional, son de gran ayuda para las organizaciones, ya que son capaces de automatizar procesos que son repetitivos dentro de las mismas, ahorrando esfuerzo humano, tiempo y en ocasiones generan ganancias económicas aparte de la ventaja competitiva que representan para las organizaciones que los implementan. De igual manera podemos decir que actualmente los sistemas de información basados en web representan una alternativa muy viable y provechosa para las 82
89 organizaciones, dado que este tipo de sistemas dan la virtud de poder ser utilizado desde cualquier punto del planeta si así se requiere, además con las nuevas tecnologías cada vez son sistemas más robustos y seguros. Otra ventaja de este tipo de sistemas es que no dependen de una plataforma en si para poder ser utilizados ni de tener ningún software especializado instalado de manera local, es decir que no importa el sistema operativo que tenga el cliente, solo necesita un browser o explorador compatible para poder utilizar el sistema. En el caso particular del sistema de control para el departamento de Experiencia Recepcional, se puede concluir que es una propuesta de solución muy viable dado que ya se cuenta con la infraestructura tecnológica necesaria para su desarrollo e implementación, además de un sistema que ya se encuentra implementado en la Facultad de Contaduría y Administración que cuenta en su base de datos, con información necesaria para que el sistema de Experiencia Recepcional funcione correctamente y evite realizar un mayor trabajo al registrar la información personal de los alumnos, y con esto permitir que la base de datos se encuentre en constante actualización. En cuanto a los beneficios esperados con la implementación del sistema, aunque no reportara beneficios económicos, reducirá problemas de coordinación, traslape en fechas y horarios de exámenes y la emisión de reportes necesarios. Dentro de este trabajo recepcional se mencionan las metodologías agiles, las cuales se basan principalmente en cumplir los requisitos y las necesidades del usuario sin tener que realizar una documentación tan exhaustiva, enfocándose primordialmente en lograr una completa satisfacción en cuanto al proyecto que se pretende realizar. Así mismo se hizo mención sobre el manifiesto ágil, en el cual se establecen las bases de las metodologías agiles y explica cuáles son los principales puntos que deben seguirse al utilizar alguna de estas metodologías de desarrollo. Con lo anterior se puede observar existen metodologías de desarrollo que para algunos programadores son desconocidas, pero hemos demostrado que estás funcionan correctamente y permiten desarrollar los sistemas enfocándose a los 83
90 requisitos del usuario y no tanto en la documentación. El conocimiento adquirido durante la elaboración de este trabajo es suficiente para continuar con las labores de desarrollo de sistemas web, sin embargo es conveniente profundizar en estas tecnologías para lograr mejores resultados. Otro aspecto importante que se menciona dentro del trabajo es el uso de los estándares web, los cuales facilitan la tarea de desarrollo y permiten que el contenido y la apariencia de nuestro sistema sea realizado de una manera rápida y precisa sin importar si se trata de una sola página o de miles, dado que los cambios se realizan en un solo lugar y se aplican a todos los que estén relacionados con él. Para este trabajo se utilizaron los lenguajes de CSS, JavaScript y HTML para que el sistema sea compatible con la mayoría de los navegadores actuales, por lo que tendrá la capacidad de funcionar en cualquier computadora o cualquier dispositivo móvil que sea compatible con estos estándares. En el departamento de Experiencia Recepcional no hubo problema sobre la resistencia o miedo al cambio, ya que mostraron disponibilidad a cambiar su proceso de control de alumnos, aunque se seguirá usando por un tiempo como respaldo su método anterior hasta asegurar el correcto funcionamiento del sistema. Como conclusión general se puede decir que los sistemas de información en las organizaciones hoy en día son esenciales para llevar a cabo sus procesos elementales e incluso los más complejos, y el sistema de control de Experiencia Recepcional no es la excepción, dado que aparte de los beneficios mencionados anteriormente, dará al departamento de Experiencia Recepcional una ventaja en relación con el tiempo de atención a los alumnos y una mejora dentro de sus procesos, todo esto cumpliendo sus requisitos y los objetivos principales del sistema. 84
91 FUENTES DE INFORMACIÓN Amaro Calderón, S. D. & Valverde Rebaza, J. C. (2007). Metodologías agiles. Perú: Trujillo. Beck, K. (2000). Una explicación de la programación extrema. Aceptar el cambio. Addison Wesley. Burch, John & Grudnitski (1999). Diseño de Sistemas de Información: Teoría y práctica. México: Primera Edición. Edit. Limusa Capilla, S. R. & Urquiza F. J. (2003). Fundamentos de Internet y programación de aplicaciones para la web. Edit. Ramón Areces. Cohen Karen Daniel & Asín Lares Enrique (2000). Sistemas de información para los negocios. México D.F.: Tercera Edición, Edit. McGraw Hill. Date, C.J. (2001). Introducción a los Sistemas de Bases de Datos. México: Séptima Edición. Edit. Pearson Educación. Domínguez Coutiño, Luis A. (2012). Análisis de sistemas de información. Estado de México: Red Tercer Milenio. Elmasri, Ramez & Navathe Shamkant, B. (2000). Sistemas de Bases de Datos. México, D.F.: Segunda edición. Edit. Addison-Wesley Iberoamericana. Gauchat, Juan Diego (2012). El gran libro de HTML5, CSS3 y JavaScript. Primera edición. Edit. Marcombo. Gil Pechuán, Ignacio (1997). Sistemas y tecnologías de la información para la gestión. Edit. McGraw-Hill Jeffries, Ron. Anderson, Ann & Hendrickson, Chet (2001). Extreme Programming Installed. Tercera Edición. Edit. Addison-Wesley Kendall, Kenneth & Kendall, Julie E. (2005). Análisis y Diseño de Sistemas. México: Sexta Edición. Edit. Pearson Educación. 85
92 Laudon, P. J. & Laudon K. C. (2008). Sistemas de Información Gerencial: Administración de la empresa digital. México: Pearson Educación. Letelier, P. & Penadés M. C. (2008). Metodologías agiles para el desarrollo de software: extreme Programming. Valencia: Universidad Politécnica de Valencia. Mateu, Carlos (2004). Desarrollo de aplicaciones web. Barcelona: Primera Edición, Eureca Media, SL. Morales González, Edgar (2010). Sistema de Gestión de Recursos para la Facultad de Contaduría y Administración. (Tesina de Licenciatura). Universidad Veracruzana. Xalapa, Veracruz. Pilgrim, M. (2010). HTML5: up and running. Cambridge: O Reilly Media. Pressman Roger S. (2005). Ingeniería del Software. Un enfoque práctico. México: Quinta Edición. Edit. McGraw-Hill. Schafer, S. M. (2010). HTML, XHTML y CSS. Madrid: Anaya Multimedia. Segundo Jiménez, Eleazar (2008). Sistema de Reservación de Recursos para la Facultad de Contaduría y Administración. (Tesina de Licenciatura). Universidad Veracruzana. Xalapa, Veracruz. Senn, J. A. (2001). Análisis y Diseño de Sistemas de Información. Segunda Edición. México: Mc Graw Hill Stair, M. R. & Reynolds, W. G. (2000). Principios de sistemas de información: Enfoque administrativo. México: International Thomson. Welling, L. & Thomson, L. (2005). Desarrollo Web con Php y MySQL. Madrid: Anaya Multimedia. 86
93 FUENTES DE INFORMACIÓN ELECTRÓNICAS IBM (2013). Recuperado el 18 de Septiembre de 2013, de Manifiesto por el Desarrollo Ágil (2001). Consultado el 20 de Octubre de 2013, del sitio web Universidad Veracruzana, Xalapa, Veracruz. (2008). Estatuto de los alumnos. Recuperado el 16 de Octubre de 2013, del sitio web Universidad Veracruzana, Xalapa, Veracruz. (1996). Ley Orgánica de la Universidad Veracruzana. Recuperado el 16 de Octubre de 2013, del sitio web Universidad Veracruzana, Xalapa, Veracruz. Facultad de Contaduría y Administración. Consultado el 16 de Octubre de 2013, del sitio web Wikipedia. (1 de 12 de 2011). Wikipedia. Recuperado el 20 de 10 de 2011, de 87
94 ANEXO I
96 ANEXO 2
98 ANEXO 3
100 ANEXO 4
102 ANEXO 5
103 HISTORIA DE USUARIO Número: 4 Nombre: Manejo de Profesores dentro del sistema Usuario: Administrador Modificación de Historia: Iteración Asignada: 3 Prioridad: Alta Puntos Estimados: Riesgo de Desarrollo: Puntos Reales: El administrador podrá consultar y editar toda la información correspondiente a los profesores que se encuentra laborando dentro de la Facultad de Contaduría Descripción: y Administración y que además se encuentran apoyando a los alumnos en su proceso de titulación. También se podrá agregar a profesores que no se encuentren registrados anteriormente. Para agregar a un profesor será necesario tener toda su información básica, desde su número de personal hasta Observaciones: un número de teléfono con el que se puedan poner en contacto con él. HISTORIA DE USUARIO Número: 5 Nombre: Elaboración de parámetros Usuario: Administrador Modificación de Historia: Iteración Asignada: 3 Prioridad: Alta Puntos Estimados: Riesgo de Desarrollo: Puntos Reales: Para el correcto funcionamiento del sistema, se elaborará un módulo exclusivo para introducir los diferentes parámetros que se requieren, como lo son el periodo en el Descripción: que se está trabajando, los salones disponibles para los exámenes profesionales, las licenciaturas que participan dentro del proceso, etc. Observaciones: 97
104 HISTORIA DE USUARIO Número: 6 Nombre: Registro de sinodales Usuario: Administrador Modificación de Historia: Iteración Asignada: 4 Prioridad: Alta Puntos Estimados: Riesgo de Desarrollo: Puntos Reales: Cuando el alumno haya elegido a los profesores que formaran parte de su jurado, estos tendrán que ser registrados dentro del sistema, el cual validara que ellos Descripción: estén disponibles al tener menos del máximo establecido anteriormente, en caso de que no cumplan con este requisito el sistema enviara un mensaje para que se seleccionado otro profesor. El máximo de alumnos permitidos para cada jurado es establecido por los Jefes de Carrera, en caso de Observaciones: sobrepasar esté máximo tendrá que ser sometido a una autorización. HISTORIA DE USUARIO Número: 7 Nombre: Control de Autorizaciones Usuario: Administrador Modificación de Historia: Iteración Asignada: 5 Prioridad: Alta Puntos Estimados: Riesgo de Desarrollo: Puntos Reales: En caso de que al seleccionar un profesor como parte de un jurado y esté ya cuente con el máximo permito, se podrá enviar la solicitud para que sea aprobado y poder incrementar ese máximo, esta solicitud quedara pendiente Descripción: hasta que el Coordinador de Experiencia Recepcional, o en su caso los Jefes de Carrera, autoricen o rechacen esta solicitud. En caso de ser rechazada el alumno tendrá que elegir a otro profesor. 98
105 Observaciones: Las autorizaciones varían dependiendo del departamento que la solicite, todo esto quedara establecido por los Jefes de Carrera dentro de los parámetros. HISTORIA DE USUARIO Número: 8 Nombre: Registro de fechas de examen Usuario: Administrador Modificación de Historia: Iteración Asignada: 5 Prioridad: Alta Puntos Estimados: Riesgo de Desarrollo: Puntos Reales: Una vez que el alumno haya realizado todas sus entregas, esté solicitara al departamento la asignación de su fecha y hora de examen, dicha fecha podrá ser elegida por el Descripción: alumno, pero al registrarla en el sistema se validara que se encuentre disponible dicha fecha y horario, además de verificar que ninguno de los profesores participantes en su jurado se encuentren ocupados en esa fecha. La validación de horarios de los profesores solo se hara Observaciones: con otras fechas de examen, no se tomara en cuenta compromisos externos al departamento. HISTORIA DE USUARIO Número: 9 Nombre: Emisión de reportes Usuario: Administrador Modificación de Historia: Iteración Asignada: 6 Prioridad: Alta Puntos Estimados: Riesgo de Desarrollo: Puntos Reales: El administrador requiere que el sistema emita reportes cuando se le necesite, estos reportes incluirán a los Descripción: alumnos que se encuentran en el proceso de titulación, indicando su avance de las entregas, nombre de trabajo y profesores participantes en su jurado, con el fin de obtener 99
106 Observaciones: información que se solicita al departamento. Los reportes podrán ser generados por periodo de titulación que se requiera, por algún profesor en específico que requiera saber cuántos alumnos tiene asesorados en un periodo, y en general, mostrando un listado de todos los alumnos inscritos y toda la información correspondiente a su titulación. HISTORIA DE USUARIO Número: 10 Nombre: Gestión de usuarios Usuario: Administrador Modificación de Historia: Iteración Asignada: 7 Prioridad: Alta Puntos Estimados: Riesgo de Desarrollo: Puntos Reales: El administrador podrá registrar usuarios dentro del sistema, con el fin de apoyar a sus actividades, estos Descripción: usuarios podrán tener el rol de administrador o de servicio social. Observaciones: 100
107 ANEXO 6
108 Dentro de esté anexo se presentan capturas de pantalla del sistema en funcionamiento que se describen dentro del trabajo. Pantalla de listado de alumnos inscritos. (Fuente propia). Formulario principal del alumno, datos personales. (Fuente propia). 102
109 Formulario del alumno. Datos de titulación y fechas de entrega. (Fuente propia). Pantalla de menú de maestros. (Fuente propia). 103
110 Listado de maestros. (Fuente propia). Listado de autorizaciones pendientes. (Fuente propia). 104
111 Historial de autorizaciones. (Fuente propia). Pantalla de opciones de parámetros. (Fuente propia). 105

References: Artículo 78
 Artículo 79
 Artículo 80
 artículo 78
 Artículo 81
 Artículo 82