0% encontró este documento útil (0 votos)
106 vistas71 páginas

Reporte Final

Cargado por

demian7pc
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
106 vistas71 páginas

Reporte Final

Cargado por

demian7pc
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 71

TECNOLÓGICO NACIONAL DE MÉXICO

INGENIERÍA EN SISTEMAS COMPUTACIONALES

RESIDENCIAS PROFESIONALES

NOMBRE DEL PROYECTO: SISTEMA AUXILIAR DE PROCESO DE


TITULACIÓN

INSTITUCIÓN O EMPRESA: INSTITUTO TECNOLÓGICO DE VERACRUZ

ALUMNO: DEMIAN GUIOT PEÑA

NÚMERO DE CONTROL: E13021043

REPORTE FINAL

07 DE OCTUBRE DEL 2019


TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Agradecimientos
A mi madre.

Por darme su amor, su apoyo, su comprensión, su paciencia y, sobre todo, la vida.

A mi padre.

Por su amor, su apoyo, su perseverancia, su admiración y su esfuerzo.

A mi hermano.

Por compartir incontables experiencias conmigo.

A mis profesores a lo largo de los varios escalones de la educación académica.

Por brindarme tantos conocimientos que hoy forjan gran parte de mi futuro.

Y a tantas más personas…

… que necesitaría una enciclopedia completa para nombrar.

1
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Índice
Agradecimientos ................................................................................................................................. 1
Resumen.............................................................................................................................................. 3
Introducción ........................................................................................................................................ 4
Descripción de la empresa y área de trabajo ...................................................................................... 5
Problemas a resolver........................................................................................................................... 6
Objetivos ............................................................................................................................................. 7
Justificación ......................................................................................................................................... 8
Marco Teórico ..................................................................................................................................... 9
Análisis de requerimientos................................................................................................................ 16
Base de Datos, diccionario de datos: ................................................................................................ 22
Diseño de la interfaz.......................................................................................................................... 27
Desarrollo: ......................................................................................................................................... 40
Pruebas y resultados ......................................................................................................................... 63
Conclusiones ..................................................................................................................................... 68
Recomendaciones ............................................................................................................................. 69
Bibliografía ........................................................................................................................................ 70

2
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Resumen
El proyecto que ahora se presenta se realizó dentro del Instituto Tecnológico de
Veracruz, que consistió en el desarrollo de un sistema que facilita la gestión de
procesos de titulación para los estudiantes del mismo instituto. Este sistema
garantiza información confiable de la base de datos, ya que uno de sus principales
objetivos es validar los datos ingresados, además permite a los usuarios (o, en este
caso, un solo usuario quien se encarga de realizar estas operaciones) consultar una
variedad de catálogos basados en un mismo proceso base con el fin de facilitar y
mejorar su experiencia en sus tareas. La instalación del sistema requiere cumplir
antes ciertos aspectos para que funcione de manera eficiente y sea capaz de
cumplir con los objetivos planteados. Por lo tanto, el servidor en la cual se realizará
la instalación requiere lo siguiente: MySQL, que servirá como interface de base de
datos de almacenamiento de la información; el lenguaje de programación empleado
para el desarrollo de aplicaciones web en el servidor será PHP, siendo la plataforma
que se usará para la interpretación del sistema. Es de señalar que la
implementación de dicho sistema tendrá un impacto psicosocial positivo en la
Institución toda vez que será un soporte confiable y acorde a los avances de la era
tecnológica de la información.

Además, el sistema cuenta con la característica de ser sumamente versátil y, con


esto, adaptable a un vasto número de aplicaciones y procesos en caso de ser
requerido.

3
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Introducción
El presente informe pretende dar a conocer el avance realizado del proyecto
“Sistema Auxiliar de proceso de titulación” durante el periodo comprendido del 28
de enero al 7 de junio del presente año.

Aquí se especifica el objetivo del proyecto, así como el objetivo de la realización de


las residencias profesionales.

En este documento se abordan los aspectos referentes a los avances en las


actividades de análisis de requerimientos y diseño de la interfaz del sistema, las
cuales se vieron desfasadas debido a la modificación del sistema en cuestión.

4
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Descripción de la empresa y área de trabajo


El Instituto Tecnológico de Veracruz es una facultad universitaria donde se imparten
estudios superiores orientados especialmente a diferentes ramas de la ingeniería,
así como la realización de diferentes estudios, investigaciones y proyectos dentro y
fuera de la institución dados diversos convenios. Dentro de la institución, cada
ingeniería posee su propio departamento cada uno con diferentes proyectos y
propósitos que cumplen tanto de manera independiente, así como también ligados
a la dirección del instituto.

Mi área de trabajo como estudiante fue un proyecto dentro del departamento de


Ingeniería en Sistemas computacionales, carrera la cual cursé durante 10
semestres del año 2013 al año 2018, siendo asesorado por personal afiliado a dicho
departamento.

5
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Problemas a resolver
El problema original radicaba en que la jefatura del departamento de Ingeniería en
Sistemas Computacionales, por parte el proceso a seguir para el encargado del
proceso de titulación del mismo, solicitó, aunque sin inmediata prioridad, una
actualización para aligerar la carga de trabajo que conlleva este proceso.

El proceso de titulación requiere un número de transacciones, muchas de ellas a


manera presencial y con documentos físicos, entre las cuales se encuentran la
interacción del estudiante con el departamento de Desarrollo Académico y el
departamento de Gestión Tecnológica y Vinculación las cuales consisten en la
entrega de dichos documentos en un ciclo de ida y vuelta. Sin embargo, es común
en este proceso que los estudiantes y los administrativos de dichos departamentos
no coincidan en tiempo, así como que los documentos a entregar contengan errores
que requieren inmediata corrección, lo cual finaliza en tiempos muertos y
malentendidos. Además, estos documentos, los cuales son impresos y
posteriormente almacenados en carpetas, reducen el espacio en el área de trabajo
debido al volumen que logran acumular dada la cantidad de estudiantes que los
requieren, sin mencionar que estos documentos están sujetos a traspapelarse o
extraviarse. Cabe recalcar que esta información debe ser de fácil acceso, tanto para
los estudiantes como para los administrativos, y este sistema de almacenamiento
no es del todo óptimo para esta situación.

6
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Objetivos
Objetivo general

Agilizar la consulta y el registro de la información, así como automatizar la


generación de documentos requeridos para el proceso de titulación mediante el
diseño, desarrollo e implementación de un sistema de registro electrónico.

Objetivos específicos

 Comprender el proceso de titulación y el actual manejo de información


utilizado en el mismo.
 Realizar un análisis de la información obtenida.
 Diseñar una interfaz gráfica sutil y práctica, así como amigable, que permita
agilizar el proceso de registro y consulta de la información mediante páginas
que contengan catálogos y operaciones de uso dinámico.
 Diseñar un sistema de búsqueda de información de acuerdo al tipo que
pertenezca.
 Diseñar ventanas que presenten la información en forma de catálogos.
 Diseñar ventanas que permitan ingresar información.
 Diseñar el formato para generar un documento de tipo Excel con los datos
de los estudiantes utilizados en el proceso de titulación.
 Presentar prototipos para la evaluación del avance del proyecto.

Por otra parte, el objetivo principal de las residencias profesionales es facilitar la


práctica de conocimientos teóricos adquiridos en la formación académica dentro
del sector productivo y de servicios. Además, permite ampliar las perspectivas
del desarrollo profesional, acercando al alumno al medio laboral, permitiéndole
colaborar conjuntamente con las empresas del país para formar un adecuado
perfil de egresado de acuerdo a las verdaderas necesidades profesionales del
mundo actual.

7
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Justificación
El proyecto se origina por la posibilidad de facilitar el manejo de información a lo
largo del proceso de titulación de los estudiantes del Instituto Tecnológico de
Veracruz. Debido a que, como ya fue mencionado anteriormente, actualmente el
proceso requiere de un amplio número de documentos físicos los cuales son sujetos
a problemas como extravío o duplicados no intencionales cuando se desea llevar a
cabo el proceso de titulación de varios estudiantes al mismo tiempo.

Con este proyecto se pretende agilizar este proceso y facilitar el trabajo del
encargado del mismo facilitándole el acceso a la información, la generación y
almacenamiento de documentos de forma completamente digital, cuya información
se encontrará dentro de una base de datos segura.

Aunado a esto, existe la posibilidad de acceder a viejos documentos de estudiantes


de varias generaciones atrás de ser necesario.

El sistema beneficiará tanto al encargado del proceso como a los estudiantes al


facilitar el proceso completo, ahorrando tiempo requerido de diferentes operaciones
y transacciones y eliminando tiempos muertos.

8
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Marco Teórico
En esta sección del documento se mostrarán los temas y conceptos relevantes
utilizados para poder comprender y llevar a cabo el desarrollo del sistema, así como
las herramientas empleadas.

La información utilizada dentro de este proceso se almacena y puede ser requerida


en cualquier día y en cualquier momento, es por esto que el sistema que se
desarrolla cumple con la función de un sistema de información. Éste se puede definir
como “un conjunto de componentes interrelacionados que reúnen, procesan,
almacenan y distribuyen datos e información, proporcionando un mecanismo de
retroalimentación con el fin de cumplir un objetivo”. (Stair & Reynolds, 2010)

Sabemos que “las finalidades de los sistemas de información como las de cualquier
otro sistema dentro de una organización son: procesar entradas, mantener archivos
de datos relacionados con la organización, producir información, reportes y otras
salidas”. (Senn, 1997)

Una vez que se ha entendido qué es un sistema de información, es necesario definir


los componentes que formarán parte del mismo. Uno de los principales es una Base
de Datos, la cual es definida por distintos autores tal y como se muestra a
continuación:

“Colección de datos persistentes que pueden compartirse e interrelacionarse”.


(Mannino, 2007)

“La base de datos es una colección de información perteneciente a un mismo


contexto (o problema), que está almacenada de forma organizada en ficheros. Dicha
base de datos está organizada mediante tablas que almacenan información
concerniente a algún objeto o suceso. Estas tablas se relacionan entre si formando
vínculos que ayudan a mantener la información de los diversos objetos de forma
ordenada y coherente (sin contradicciones)”. (López & de Castro, 2014)

9
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

A pesar de la falta de una definición absoluta, la mayoría de las fuentes coinciden


en que una base de datos es una colección organizada en un formato estructurado
que es definido como metadatos que describe esa estructura.

En la actualidad, las bases de datos son el elemento fundamental en las áreas que
utilizan sistemas computarizados, debido a que permite operar información de
manera organizada, segura, confiable y en grandes cantidades. Las bases de datos
facilitan no solo el registro de gran cantidad de datos, sino que también son el
acceso a los mismos.

Como muchos usuarios de sistemas de bases de datos no están familiarizados con


equipos de cómputo, los desarrolladores esconden la complejidad de los mismos a
través de varios niveles de abstracción para simplificar la interacción de dichos
usuarios con el sistema:

 Nivel físico: Es el nivel más bajo de abstracción que describe cómo se


almacenan realmente los datos. En este tipo se describen detalladamente las
estructuras de datos complejas de bajo nivel.
 Nivel lógico: Este es el nivel más alto de abstracción el cual describe qué
datos se almacenan en la base, y qué relaciones existen entre dichos datos.
La base de datos completa se describe así en términos de un número
pequeño de estructuras relativamente simples. Aunque la implementación de
estructuras simples en el nivel lógico puede involucrar estructuras complejas
del nivel físico, los usuarios del primer nivel no necesitan preocuparse por
esta complejidad. Los administradores de bases de datos que deben decidir
la información que se mantiene en la base de datos, usan el nivel lógico de
abstracción.
 Nivel de vistas: El nivel más alto de abstracción describe sólo parte de la
base de datos completa. A pesar del uso de estructuras más simples en el
nivel lógico, queda algo de complejidad debido a la variedad de información
almacenada en una gran base de datos. Muchos usuarios del sistema de

10
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

base de datos no necesitan toda esta información. En su lugar, tales usuarios


necesitan acceder sólo a una parte de la base de datos para que su
interacción con el sistema se simplifique y se defina la abstracción del nivel
de vistas. El sistema puede proporcionar muchas vistas para la misma base
de datos. (Silberschatz, 2002)

Para llevar a cabo el manejo de la base de datos es necesario el uso de un lenguaje


llamado Structured Query Language, mejor conocido por sus siglas en inglés SQL
(Lenguaje Estructurado de Consultas) siendo actualmente el lenguaje estándar.
Este lenguaje permite al Sistema Gestor de Bases de Datos (SGBD) la creación de
una Base de Datos, así como usuarios para ella. También permite crear tablas,
ingresar nuevos datos o bien manipular los ya existentes.

El lenguaje SQL es una herramienta para organizar, gestionar y recuperar datos


almacenados en una base de datos relacional. Por tanto, permite la comunicación
con el sistema de gestión de la base de datos. Es tan conocido en bases de datos
relacionales que muchos lenguajes de programación incorporan líneas de SQL
como parte de su repertorio. Entre las principales características del SQL podemos
destacar las siguientes:

 Es un lenguaje para todo tipo de usuarios (administradores, desarrolladores


y usuarios normales).
 El usuario que emplea SQL especifica qué quiere. No dónde, ni cómo.
 Permite hacer cualquier consulta de datos.
 Es posible manejarlo para consultas, actualizaciones, definición de datos y
control.
Actualmente existen herramientas que facilitan la creación y administración de
bases de datos del tipo relacional, este tipo de software llamados Sistemas Gestores
de Bases de Datos (SGBD) permiten reducir el tiempo y esfuerzo durante la
elaboración y gestión bases de datos.

11
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Un SGBD consiste en una colección de datos interrelacionados y un conjunto de


programas para acceder a dichos datos. La colección de datos, normalmente
denominada base de datos, contiene información relevante para una empresa.

“El objetivo principal de un SGBD es proporcionar la forma de almacenar y recuperar


la información de una base de datos de manera que sea tanto práctica como
eficiente”. (Silberschatz, 2002)

Cada uno de los SGBD’s existentes ofrecen distintas características que les
permiten diferenciarse de los otros, aunque es cierto que comparten ciertas
funciones esenciales se diferencian también en aspectos como el tipo de licencia,
compatibilidad, disponibilidad, etc.

En este caso como sistema gestor de base datos usaremos MySQL el cual es un
sistema de gestión de bases de datos relacional desarrollado bajo licencia dual
GPL/Licencia comercial por Oracle Co. y está considerada como la base datos open
source (uso libre) más popular del mundo, y una de las más populares en general
junto a Oracle y Microsoft SQL Server sobre todo para entornos de desarrollo web,
es por esto que se eligió para el desarrollo de este sistema.

Es un sistema de gestión de bases de datos relacional, creado por la empresa sueca


MySQL, la cual tiene el copyright del código fuente del servidor SQL, así como
también de la marca. MySQL es un software de código abierto, licenciado bajo la
GPL de la GNU, aunque MySQL distribuye una versión comercial la cual se
diferencia de la versión libre en el soporte técnico que se ofrece y la posibilidad de
integrar este gestor en un software propietario ya que, de otra manera, se vulneraría
la licencia GPL.

Características:
 El principal objetivo de MySQL es velocidad y robustez.
 Soporta gran cantidad de tipos de datos para las columnas.
 Ofrece gran portabilidad entre diversos sistemas.

12
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

 Implementación multi-thread que permite aprovechar las capacidades de los


sistemas multiproceso.
 Flexible sistema de contraseñas (passwords) y gestión de usuarios, con un
muy buen nivel de seguridad en los datos.
 El servidor soporta mensajes de error en distintas lenguas
 Facilidad de uso.
 Es gratuito, puede obtener y modificar código fuente de MySQL.
 Capacidad de gestión de lenguajes de consulta SQL.
 Capacidad para conectar un gran número de clientes simultáneamente al
servidor.
 Disponibilidad para una amplia variedad de interfaces de programación para
lenguajes como C, Perl, Java, C#, PHP y Python.
 Dispone de control de acceso.

Por otra parte, para el lado de la interfaz se utilizará el lenguaje de marcado HTML
por sus siglas en inglés de HyperText Markup Language (lenguaje de marcas de
hipertexto), hace referencia al lenguaje de marcado para la elaboración de páginas
web. Es un estándar que sirve de referencia del software que conecta con la
elaboración de páginas web en sus diferentes versiones, define una estructura
básica y un código para la definición de contenido de una página web como texto,
imágenes, videos, juegos, entre otros.

“El lenguaje HTML es un estándar reconocido en todo el mundo y cuyas normas


define un organismo sin ánimo de lucro llamado World Wide Web Consortium, más
conocido como W3C. Como se trata de un estándar reconocido por todas las
empresas relacionadas con el mundo de Internet, una misma página HTML se
visualiza de forma muy similar en cualquier navegador de cualquier sistema
operativo”. (Eguiluz, 2017)

El propio W3C define el lenguaje HTML como "un lenguaje reconocido


universalmente y que permite publicar información de forma global".

13
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Incluir en una misma página HTML los contenidos, el diseño y la programación


complica en exceso su mantenimiento. Normalmente, los contenidos y el diseño de
la página web son responsabilidad de diferentes personas, por lo que es
conveniente separarlos.

CSS es el mecanismo que permite separar los contenidos y el aspecto que deben
presentar esos contenidos, definido como Hojas de Estilo en Cascada (Cascading
Style Sheets), es un mecanismo simple que describe cómo se va a mostrar un
documento en la pantalla, o cómo se va a imprimir, o incluso cómo va a ser
pronunciada la información presente en ese documento a través de un dispositivo
de lectura. Esta forma de descripción de estilos ofrece a los desarrolladores el
control total sobre estilo y formato de sus documentos.

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 y
XML. 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 afectará a todas las páginas vinculadas a esa CSS en las
que aparezca ese elemento.

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 o XML. La regla tiene dos partes: un selector y la
declaración. A su vez la declaración está compuesta por una propiedad y el valor
que se le asigne. El selector funciona como enlace entre el documento y el estilo,
especificando los elementos que se van a ver afectados por esa declaración. La
declaración es la parte de la regla que establece cuál será el efecto.

Por la parte de la funcionalidad del sistema se utilizará PHP (acrónimo recursivo de


PHP: Hypertext Preprocessor) el cual es un lenguaje de programación de uso
general de código del lado del servidor originalmente diseñado para el desarrollo
web de contenido dinámico. Fue uno de los primeros lenguajes de programación

14
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

del lado del servidor que se podían incorporar directamente en el documento HTML
en lugar de llamar a un archivo externo que procese los datos. El código es
interpretado por un servidor web con un módulo de procesador de PHP que genera
la página web resultante.

Lo que distingue a PHP de algo del lado del cliente como Javascript es que el código
es ejecutado en el servidor, generando HTML y enviándolo al cliente. El cliente
recibirá el resultado de ejecutar el script, aunque no se sabrá el código subyacente
que era. El servidor web puede ser configurado incluso para que procese todos los
ficheros HTML con PHP, por lo que no hay manera de que los usuarios puedan
saber qué se tiene debajo de la manga.

Lo mejor de utilizar PHP es su extrema simplicidad para el principiante, pero a su


vez ofrece muchas características avanzadas para los programadores
profesionales.

Para la realización de los bocetos se apoyará de la herramienta Sublime Text, la


cual es un editor de texto editado especialmente para ser usado como entorno de
desarrollo.

15
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Análisis de requerimientos
Lineamientos del proceso

La primera actividad del proyecto fue una recolección de información. Para poder
idear un plan de trabajo, lo primordial era conocer los lineamientos del proceso de
titulación integral pertinente al Tecnológico Nacional de México, que estipula lo
siguiente:

1. Propósito Establecer el Lineamiento para la Titulación Integral de los estudiantes


en los planes y programas de estudio 2009-2010 con un enfoque por competencias
profesionales.

2. Alcance El presente documento se aplicará en los Institutos Tecnológicos


Federales y Descentralizados del Sistema Nacional de Educación Superior
Tecnológica (SNEST).

3. Definición La Titulación integral es la validación de conocimientos, habilidades y


actitudes (competencias) que el estudiante adquirió y desarrolló durante su
formación profesional.

4. Políticas de operación

4.1. De los requisitos

4.1.1. Para la Titulación integral, el egresado debe cumplir con:

a) La acreditación del 100% de los créditos de su plan de estudios.

b) La acreditación de un programa de lengua extranjera, presentando un


certificado o constancia emitido por una Institución u Organismo Nacional o
Internacional con validez oficial, el cual debe validar las siguientes competencias:
habilidades de comprensión auditiva y de lectura, así como la expresión oral y
escrita de temas técnicocientíficos relacionados con el perfil profesional.

16
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

c) Constancia de no inconveniencia para la realización del acto protocolario


de la Titulación integral emitida por el Departamento de Servicios Escolares

d) Documento probatorio de no adeudo económico, material o equipo con las


oficinas, laboratorios y centro de información en la institución de la cual egresó, o
en cualquier otra por la cual haya transitado.

4.2. De la Academia

4.2.1. Propone revisores tomando en cuenta el perfil profesional requerido


por el enfoque y características del proyecto

4.3. Del Jefe de Departamento Académico o su equivalente en los Institutos


Tecnológicos Descentralizados

4.3.1. Asigna revisores para el proyecto.

4.3.2. Emite oficio de asignación como revisor del informe final. 4.3.3. Emite
liberación del informe final del proyecto y lo envía a la División de Estudios
Profesionales (Anexo III).

4.4. Del Asesor

4.4.1. Asesora al estudiante en el proyecto, a partir de que cursa la asignatura


de formulación y evaluación de proyectos (o su equivalente) o al ser asignado a una
tesis o tesina; hasta terminar el proceso de titulación integral.

4.4.2. Sugiere al estudiante mejoras del contenido y/o presentación del


proyecto.

4.4.3. Emite visto bueno del informe del proyecto, y lo envía al Departamento
Académico o su equivalente en los Institutos Tecnológicos Descentralizados para la
designación de los revisores.

4.4.4. Participa como presidente en el acto protocolario de la Titulación


integral.

17
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

4.4.5. Decide en colaboración con el estudiante la estructura y el contenido


del informe final considerando las características del tema. En caso de la Residencia
Profesional, deberá ser un tema acorde a su perfil profesional, en cuyo caso no se
deberá modificar el informe técnico para su Titulación integral (Anexo I).

4.5. De los Revisores

4.5.1. Revisa el informe del proyecto y comunica al estudiante de las


sugerencias para mejorar el contenido y/o presentación del mismo.

4.5.2. Emite visto bueno del informe del proyecto y lo entrega al


Departamento Académico o su equivalente en los Institutos Tecnológicos
Descentralizados, en un periodo no mayor a 10 días hábiles a partir de su
designación por el Jefe de Departamento Académico correspondiente.

4.5.3. Participa como sinodal en el acto protocolario de Titulación integral.

4.5.4. Su responsabilidad se inicia con su designación y se dan por


terminadas con el acto protocolario de la Titulación integral.

4.6. De la División de Estudios Profesionales

4.6.1. Recibe solicitud del estudiante (Anexo II) y turna el proyecto al Jefe de
Departamento Académico o su equivalente en los Institutos Tecnológicos
Descentralizados.

4.6.2. Recibe del Departamento de Servicios Escolares la carta de no


inconveniencia para la realización del acto protocolario de la Titulación integral.

4.6.3. Programa fecha del acto protocolario de Titulación integral e informa al


Jefe del Departamento Académico o su equivalente en los Institutos Tecnológicos
Descentralizados y al estudiante.

18
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

4.7. Del Departamento de Servicios Escolares

4.7.1. Integra el expediente del estudiante y emite a la División de Estudios


Profesionales la carta de no inconveniencia para la presentación del acto
protocolario de la Titulación integral.

4.7.2. Elabora mención honorífica al estudiante que la haya obtenido.

4.7.3. Tramita el título y la cédula profesional.

4.7.4. Mantiene en custodia los libros de actos protocolarios de la Titulación


integral.

4.8. Del Estudiante

4.8.1. Debe elaborar un proyecto acorde a su perfil profesional mediante el


informe técnico de residencia profesional, proyecto de innovación tecnológica,
proyecto de investigación, informe de estancia, tesis, tesina, entre otros.

4.8.2. Tiene derecho a cambiar de proyecto, investigación o asesor, por


causas justificadas. Previa solicitud por escrito a la División de Estudios
Profesionales, indicando los motivos.

4.8.3. Debe presentar solicitud a la División de Estudios Profesionales para


la sustentación del acto protocolario de Titulación integral. (Anexo II).

4.8.4. Debe exponer en forma oral los resultados únicamente de la tesis o


tesina, ante un jurado designado por el departamento académico correspondiente.

4.8.5. Si no presenta proyecto, puede obtener un Testimonio de Desempeño


Satisfactorio o Sobresaliente en el Examen General de Egreso de Licenciatura
(EGEL) del CENEVAL y cumple con los requisitos señalados en el numeral 4.1.1
del presente lineamiento, éste será considerado como Titulación integral. –

4.8.6. Para ser acreedor a la mención honorífica, el egresado deberá cumplir


con alguna de las siguientes alternativas: a) Alcanzar un desempeño excelente,

19
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

promedio general de 95 a 100 en su plan de estudios y presentar la exposición


verbal del informe técnico de su residencia profesional. b) Presentar y defender su
proyecto con un desempeño excelente, para que el jurado determine por
unanimidad si se le otorga la mención honorífica.

4.9. De los Sinodales

4.9.1. Las asignaciones de los sinodales se llevarán a cabo tomando los


siguientes criterios en orden prioritario:

a) Presidente. - El asesor del proyecto.

b) Secretario y Vocal. - Los revisores del informe del proyecto.

c) Suplente. - Un miembro de la academia.

4.9.2. Las funciones de los sinodales en el acto protocolario de Titulación


integral son:

a) Preside el desarrollo del acto protocolario de Titulación integral.

b) Es responsabilidad del secretario solicitar, llenar y resguardar el libro de


actas, durante el acto protocolario de Titulación integral, así como de reintegrarlo al
término del mismo al Departamento de Servicios Escolares.

c) Avala con su firma en el libro de actas, el acto protocolario de Titulación


integral.

d) En caso de ausencia del presidente, será sustituido en el acto protocolario


de la Titulación integral, por el secretario, y este último, por su ausencia será
sustituido por el suplente.

4.10. De las sanciones

4.10.1. La ausencia injustificada de cualquier integrante de los sinodales a un


acto protocolario de Titulación integral será motivo de extrañamiento por escrito por

20
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

parte de la Jefe del Departamento Académico, o su equivalente en los Institutos


Tecnológicos Descentralizados, con copia al Departamento de Recursos Humanos,
así como de su inhabilitación en los siguientes tres actos protocolarios en los que
pudiera participar.

5. Disposiciones generales Las situaciones no previstas en el presente Lineamiento


serán analizadas por el Comité Académico del Instituto Tecnológico y presentadas
como recomendaciones al Director del plantel para su autorización.

Una vez tomados en cuenta los lineamientos del proceso de titulación integral, se
procedió a recibir orientación por parte del encargado de llevar a cabo dicho proceso
en el departamento de Ingeniería en Sistemas Computacionales. Con base a los
lineamientos y a la dirección del encargado, se elaboró la base de datos y,
consecuentemente, el diseño del sistema de apoyo.

21
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Base de Datos, diccionario de datos:


Para describir la estructura de una base servir para describir la estructura de la
misma. A continuación, se mostrará una tabla que contiene cada una de las tablas
con sus respectivos datos.

Entidad Relación

Profesores (idProfesor, nombre, apellidos, teléfono, email, password,


statusProfesor, fchAlta, fchCambio, fchBaja RFC)

Estudiante (noControl, nombre, apellidos, teléfono, telefono2, email,


idPlan, idOpcion, statusAlumno, password)

Cedulas (cedula, idProfesor, idGrado, statusRegistro, clave)

Ciclos (idCiclo, idSemestre, nombre, nombreCorto, statusCiclo,


fchAlta, fchCambio, fchBaja)

Eventos (NOFEP, noControl, idPlan, idOpcion, indFechaEg,


fechaEg, fechaLim, idPA, idProyecto, numRes, indFecAct,
fecAct, idLugar, hora, fecha, statusRegistro, noControl)

Gradosacademicos (idGrado, gradoAcademico, abreviatura, statusGrado,


fchAlta, fchCambio, fchBaja)

Lugar (idLugar, nombreLugar, statusRegistro)

Noticias (idNoticia, noticia, fchNoticia, linkPdf, statusNoticia,


fchAlta, fchCambio, fchBaja, descripción, enlace)

Opciones (idOpcion, nombreOpcion, statusRegistro,


numeroOpcion, vigencia, nombreTecnico)

22
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Plan (idPlan, nombrePlan, statusRegistro, inicioPlan)

Proyecto (idProyecto, nombre, statusProyecto, resumen)

Solicitudes (idSolicitud, noControl, idProyecto, statusSolicitud)

Sugerencias (idSProyecto, noControl, nombre, resumen,


statusProyecto)

23
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

24
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Modelo de la base de datos.

En esta figura se muestra un modelo relacional de la base de datos, los puentes que contiene y la relación entre las tablas.

Figura 2.
1. Modelo de la Base de Datos

25
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Requerimientos funcionales
Identificación del usuario:

El sistema brindará la capacidad de acceso a diferentes niveles o roles, todos


sujetos a un número de control (o nombre de usuario) y una contraseña:

a) Administrador principal: Rol único que permite la consulta y manipulación de


todos los datos, así como el acceso a cualquier parte del sistema.
b) Docente: Permite el acceso a cierto sector del sistema, así como la
posibilidad de confirmar o negar diferentes operaciones en base a la
dirección del administrador principal.
c) Estudiante: Permite el acceso a una pequeña parte del sistema, con la única
posibilidad de leer información sin editarla.

Para todos los usuarios, si la revisión de credenciales es exitosa, se les llevará a


una nueva página con un mensaje de bienvenida.

Presentación de la información:

Dentro del sistema, la información se presentará a manera de listas contenidas


dentro de catálogos, las cuales podrán ser ordenadas o leídas de distintas maneras.

Los catálogos se encontrarán dentro de un menú localizado en todas las páginas


del sistema a medida de estándar, y podrán realizarse operaciones tales como
inserciones, borrado lógico, edición de registros, consultas, etc.

Procesos y generación de documentos:

En el sistema se encontrarán, de manera similar a los catálogos de información,


secciones que contendrán listas con las diferentes etapas de cada estudiante en el
proceso de titulación (visible únicamente por el administrador principal), donde se
podrán realizar diferentes operaciones y consultas para confirmar seguimiento.
Asimismo, una última sección del sistema estará dedicada a la generación de
documentos que sean menester en distintas etapas del proceso de titulación.

26
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Diseño de la interfaz
Para demostrar y dar una idea al solicitante de cómo iba a quedar el sistema, se
comenzó el proceso de diseño realizando los “bocetos” de las diferentes pantallas
contenidas en el sistema, comenzando por los siguientes ejemplos.

En la ventana de inicio de sesión (figura 2) el usuario deberá autenticarse con su


nombre de usuario y contraseña correspondiente.

Figura 2. Ventana de inicio de sesión (Módulo del Administrador)

Una vez autentificados, serán llevados a la siguiente pantalla, que contiene un


mensaje de bienvenida, así como una lista de noticias (también sujetas a edición
por el administrador). En esta pantalla puede también apreciarse la barra de menú
principal, donde se contienen las listas de catálogos y operaciones.

27
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Figura 3. Boceto de página de bienvenida

De aquí en adelante se tomará en cuenta solamente el seguimiento del rol de


administrador (puesto que los demás roles son idénticos, con la diferencia de no
poder editar la información y tener acceso a una menor librería de datos).
En la siguiente figura se muestra un ejemplo de la presentación de cada uno de los
catálogos (tomando en base el catálogo de las noticias) el cual contiene una lista de
todos los registros almacenados, así como las diferentes opciones de operaciones
disponibles.

28
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Figura 4. Ventana de catálogo de noticias

En cada catálogo se puede encontrar una opción de ordenamiento y/o búsqueda de


datos, ya sea por similitud de caracteres (filtrar por nombre) u otro tipo de orden,
dependiendo de los datos que estén contenidos en el catálogo. Asimismo, las
operaciones de borrado y recuperación (mostradas en el extremo derecho de cada
ítem en la lista) se realizan de manera automática, reflejado por el Status “BAJA” o
“ACTIVO”. Sin embargo, la inserción de datos será más compleja (razón por la que
la operación se encuentra ubicada en la parte superior dentro de la barra de menú),
como por ejemplo en las siguientes figuras (dependiendo del tipo de dato a insertar,
los campos de la ventana de inserción serán distintos):

29
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Figura 5. Ventana de inserción de noticias.

Figura 6. Ventana de catálogo de ciclos escolares

30
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Figura 7. Ventana de inserción de nuevo ciclo escolar

Figura 8. Ventana de catálogo de grados académicos

31
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Figura 9. Ventana de inserción de nuevo grado académico

Figura 10. Ventana de edición de grados académicos

Con las figuras anteriores se cubre la presentación de los catálogos y su


funcionamiento. A continuación, se presentarán las ventanas de las operaciones
posteriores que hacen uso de la información almacenada en los catálogos.

32
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Manejo de operaciones en el proceso de titulación


Las pantallas de las operaciones, aunque similares a las de los catálogos, funcionan
de manera distinta. Las operaciones no requieren ninguna inserción de datos, sino
que utilizan los registros contenidos dentro de los catálogos para realizar las
operaciones de inserción y edición. Las operaciones posibles a realizar dentro del
sistema son: Asignación de Proyectos, Asignación de Revisores, Programación de
Eventos y Generación de Documentos; las pantallas se mostrarán a continuación:

Figura 11. Ventana de lista de proyectos asignados.

La asignación de proyectos requiere únicamente de dos datos: un estudiante y un


proyecto. Si estos dos elementos cumplen los requisitos pertinentes para ser
añadidos (por ejemplo, un estudiante sin proyecto y un proyecto disponible),
entonces será posible realizar la operación y aparecerán como disponibles en las
listas mostradas en la figura 12:

33
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Figura 12. Ventana de asignación de proyectos.

A continuación, se muestra la operación de asignación de revisores. Como


operación en cascada, la asignación de revisores requiere antes que un proyecto
asignado a un estudiante se encuentre ya registrado en la operación anterior, y las
pantallas son las siguientes.

Figura 13. Ventana de proyectos con revisores asignados.

De igual manera que en la operación de asignación de proyectos, la asignación de


revisores contará con elementos a elegir de una lista de aquellos proyectos ya
asignados, así como docentes disponibles para ser seleccionados como revisores
de dichos proyectos. Cabe mencionar que no es posible elegir docentes inactivos

34
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

(por periodos sabáticos, inactividad o indisposición) así como elegir docentes


duplicados.

Figura 14. Ventana de asignación de revisores.

Consecuentemente, la siguiente operación a realizar es la programación del evento


de titulación del estudiante. Esto requiere, por supuesto, que se hayan realizado los
trámites correspondientes y que el proyecto cuente como terminado, operación que
puede verse reflejada mediante la inserción de elementos a esta siguiente lista.

35
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Figura 15. Ventana de lista de proyectos finalizados con eventos pendientes.

A diferencia de las operaciones anteriores, la inserción a esta lista sí requerirá de


información adicional, tal como el NOFEP, fecha, hora, opción de titulación, entre
otras, que podrán ser seleccionadas o ingresadas en la siguiente pantalla.

Figura 16. Ventana de inserción de nuevo evento de titulación.

Para finalizar, una vez que estas operaciones están finalizadas y reflejadas en el
sistema, se puede proceder a la generación de documentos.

36
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Al momento de finalizado este proyecto, el cliente solicitó únicamente la generación


de un documento tipo Excel que contiene información pertinente del estudiante,
ordenado de una forma específica como se mostrará a continuación.

Figura 17. Ventana de selección de generación de documentos.

De ser posible, en el futuro se podrán implementar nuevas opciones de documentos


a generar en esta misma ventana. Por lo pronto, la generación del documento de
Excel consiste en lo siguiente:

37
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Figura 18. Ventana de generación de documento de excel.

La pantalla contiene dos opciones: agregar un estudiante a la lista y obtener el


documento.
1) Agregar a la lista: Como se puede apreciar, en la parte superior a los botones
se encuentra una lista donde es posible seleccionar un estudiante. Los
elementos mostrados en esta lista son únicamente estudiantes que cuentan
con todas las operaciones de asignación de proyecto, revisores y
programación de evento de titulación satisfactoriamente terminadas con
todos los datos correspondientes. Una vez seleccionado el estudiante, al
presionar el botón de agregar a la lista se verá reflejado en la parte inferior
de la ventana (donde se encuentra una lista a manera de catálogo) que
contendrá todos los estudiantes ya seleccionados.
2) Obtener Documento: Al presionar este botón, se descargará un documento
de tipo Excel generado automáticamente con todos los datos de los
estudiantes que fueron seleccionados previamente.
Una vez generado el documento, se presentarán los datos de manera ordenada
(mas sin mayor formato, puesto que esto no se encuentra en el alcance del
software) como se muestra a continuación.

38
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Figuras 19 y 20. Ventana de generación de documento de Excel, parte II.

39
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Desarrollo:
En la parte del desarrollo se utilizaron los lenguajes HTML5, CSS3 y PHP, y por el
lado de la interfaz del sistema y para la base de datos se utilizó MySQL. El sistema
está orientado a cliente-servidor, y no utiliza ningún framework de terceros como
intermediario, puesto que todos los archivos están almacenados dentro de un
servidor privado. Además, el funcionamiento del sistema se basa en la metodología
de Modelo-Vista-Controlador (MVC).

Para fines demostrativos, se dará un ejemplo del funcionamiento interno del


sistema, que es el siguiente, comenzando por la conexión con la base de datos:

<?php
abstract class Conexion {
# Parametros de Configuracion
private static $db_host = "127.0.0.1";
private static $db_user = "root";
private static $db_pass = "";
private static $db_char = "utf8";

private $cn = "";

protected $query = "";


protected $query2 = "";
protected $rows = array();
protected $db_name = "";
protected $num_rows = "";

abstract protected function create();


abstract protected function read();
abstract protected function update();
abstract protected function delete();
abstract protected function undelete();

private function db_open(){


$this->cn = new mysqli(
self::$db_host,
self::$db_user,

40
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

self::$db_pass,
$this->db_name
);
$this->cn->set_charset(self::$db_char);
}

private function db_close(){


$this->cn->close();
}

// Lleva datos mediante un Insert, Update o Delete


protected function set_query(){

$this->db_open();
$this->cn->query($this->query);
$this->db_close();

// Regresa datos mediante un Select


protected function get_query(){

$this->db_open();
$resultSet = $this->cn->query($this->query);
while( $this->rows[] = $resultSet->fetch_assoc());
$resultSet->close();
$this->db_close();
return array_pop($this->rows);
}

## Esta función se utiliza para realizar consultas simultáneas


en caso de ser necesario
protected function get_query2(){

$this->db_open();
$resultSet = $this->cn->query($this->query2);
while( $this->rows[] = $resultSet->fetch_assoc());
$resultSet->close();
$this->db_close();
echo array_pop($this->rows);
return array_pop($this->rows);
} }

41
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

A continuación, se mostrará un ejemplo de una clase Modelo con todas las


operaciones pertinentes.
<?php
/*
CREATE TABLE `estudiante` (
`noControl` char(9) NOT NULL,
`nombre` char(20) DEFAULT NULL,
`apellidos` char(40) DEFAULT NULL,
`telefono` char(20) DEFAULT NULL,
`telefono2` char(20) DEFAULT NULL,
`email` char(40) DEFAULT NULL,
`idPlan` char(14) DEFAULT NULL,
`idOpcion` int(2) DEFAULT NULL,
PRIMARY KEY (`noControl`),
KEY `idPlan` (`idPlan`),
KEY `idOpcion` (`idOpcion`),
CONSTRAINT `estudiante_ibfk_1` FOREIGN KEY (`idPlan`) REFERENCES
`plan` (`idPlan`),
CONSTRAINT `estudiante_ibfk_2` FOREIGN KEY (`idOpcion`) REFERENCES
`opciones` (`idOpcion`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
*/

require_once 'Conexion.php';
class EstudianteModel extends Conexion {

public $noControl;
public $nombre;
public $apellidos;

42
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

public $telefono;
public $telefono2;
public $email;
public $idPlan;
public $idOpcion;
public $statusAlumno;
public $thisArray;

public function __construct(){


$this->db_name = "titulacion";
}

public function __destruct(){


unset($this);
}

public function loginEstudiante($noControl="", $password=""){

if(empty($noControl) and empty($password)){


return false;
}

$sqlRead = "
SELECT noControl, nombre, apellidos, telefono, telefono2,
email, idPlan, idOpcion, statusAlumno, password
FROM estudiante
WHERE noControl = '$noControl' and
password = '$password' ";

43
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

$this->query = $sqlRead;
//echo $sqlRead;
$this->get_query();
$this->num_rows = count($this->rows);

if($this->num_rows==1){
$this->actualizarPropiedades($sqlRead);
return true;
}else{
return false;
}

public function actualizarPropiedades($read = ""){


$data = array();

foreach ($this->rows as $key => $value) {


array_push($data, $value);
}

$this->noControl = $data[0]['noControl'];
$this->nombre = $data[0]['nombre'];
$this->apellidos = $data[0]['apellidos'];
$this->telefono = $data[0]['telefono'];
$this->telefono2 = $data[0]['telefono2'];

44
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

$this->email = $data[0]['email'];

public function create( $data = array() ){


foreach ($data as $key => $value) {
$$key = $value;
}
$sqlInsert =
"INSERT into estudiante(noControl, nombre, apellidos,
telefono, telefono2, email, idPlan, idOpcion, statusAlumno, password)
VALUES('$noControl', '$nombre', '$apellidos','$telefono',
'$telefono2', '$email', '$idPlan', $idOpcion,'$statusAlumno', '$password')";
echo $sqlInsert;
$this->query = $sqlInsert;
$this->set_query();

public function reed($data = array()){


foreach ($data as $key => $value) {
$$key = $value;
}
$sqlRead = "
SELECT noControl, nombre, apellidos, telefono,
telefono2, email, plan.nombrePlan as idPlan, opciones.nombreOpcion as
idOpcion, statusAlumno, password
FROM estudiante, plan, opciones
WHERE noControl = '".$noControl."' AND
estudiante.idPlan = plan.idPlan AND opciones.idOpcion=estudiante.idOpcion";

45
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

$this->query = $sqlRead;
$this->get_query();
$this->num_rows = count($this->rows);
$data = array();

foreach ($this->rows as $key => $value) {


array_push($data, $value);
}
return $data;
}

public function readAllFilter($filter){


$sqlRead = "
SELECT noControl, nombre, apellidos, telefono,
telefono2, email, plan.nombrePlan as idPlan, opciones.nombreOpcion as
idOpcion, statusAlumno, password
FROM estudiante, plan, opciones
WHERE estudiante.noControl LIKE '%".$filter."%' AND
estudiante.idOpcion=opciones.idOpcion AND estudiante.idPlan=plan.idPlan";
$this->rows = array();
//echo $sqlRead;
$this->query = $sqlRead;
$this->rows = array();
$this->get_query();
$this->num_rows = count($this->rows);
$data = array();

foreach ($this->rows as $key => $value) {


array_push($data, $value);
}

46
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

return $data;
}

public function readDups($x){


$sqlRead = "
SELECT *
FROM estudiante
WHERE noControl ='$x'";
$this->num_rows = array();
$this->query = $sqlRead;
$this->get_query();
$this->num_rows = count($this->rows);
$data = array();
$bools = true;
if ($this->num_rows >= 1){
$bools = false;
}
else{

}
return $bools;

public function read($noControl = 0){


if($noControl!=0){
$sqlRead = "

47
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

SELECT noControl, nombre, apellidos, telefono,


telefono2, email, plan.nombrePlan as idPlan, opciones.nombreOpcion as
idOpcion, statusAlumno, password
FROM estudiante, plan, opciones
WHERE noControl = ".$noControl." AND
estudiante.idPlan = plan.idPlan AND opciones.idOpcion=estudiante.idOpcion";

} else {
$sqlRead = "
SELECT noControl, nombre, apellidos, telefono,
telefono2, email, plan.nombrePlan as idPlan, opciones.nombreOpcion as
idOpcion, statusAlumno, password
FROM estudiante, plan, opciones
WHERE estudiante.idPlan = plan.idPlan AND
opciones.idOpcion=estudiante.idOpcion";
}

$this->query = $sqlRead;
$this->get_query();
$this->num_rows = count($this->rows);
$data = array();

foreach ($this->rows as $key => $value) {


array_push($data, $value);
}
return $data;
}

public function readAll(){


$sqlRead = "

48
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

SELECT noControl, nombre, apellidos, telefono,


telefono2, email, plan.nombrePlan as idPlan, opciones.nombreOpcion as
idOpcion, statusAlumno, password
FROM estudiante, plan, opciones
WHERE estudiante.idPlan = plan.idPlan AND
opciones.idOpcion=estudiante.idOpcion";
$this->query = $sqlRead;
$this->rows = array();
$this->get_query();
$this->num_rows = count($this->rows);
$data = array();

foreach ($this->rows as $key => $value) {


array_push($data, $value);
}
$this->thisArray = $data;
// echo $this->thisArray[0]['noControl'];
return $data;
}

public function readProyects(){


$sqlRead = "
SELECT estudiante.noControl, estudiante.nombre,
apellidos, telefono, telefono2, email, plan.nombrePlan as idPlan,
opciones.nombreOpcion as idOpcion, statusAlumno, password
FROM estudiante, plan, opciones, asignacion
WHERE estudiante.idPlan = plan.idPlan AND
opciones.idOpcion=estudiante.idOpcion AND
estudiante.noControl=asignacion.noControl";
echo $sqlRead;

49
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

$this->query = $sqlRead;
$this->get_query();
$this->num_rows = count($this->rows);
$data = array();

foreach ($this->rows as $key => $value) {


array_push($data, $value);
}
$this->thisArray = $data;

return $data;
}

public function readPlan($noControl){


$sqlRead= "SELECT plan.idPlan
FROM estudiante,plan
WHERE estudiante.idPlan=plan.idPlan AND
estudiante.noControl='$noControl'";
$this->query = $sqlRead;
$this->get_query();
$this->num_rows = count($this->rows);
$data = array();

foreach ($this->rows as $key => $value) {


array_push($data, $value);
}

return $data[0]['idPlan'];
}

50
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

public function readOpcion($noControl){


$sqlRead= "SELECT opciones.idOpcion
FROM estudiante,opciones
WHERE estudiante.idOpcion=opciones.idOpcion AND
estudiante.noControl='$noControl'";
$this->query = $sqlRead;
$this->get_query();
$this->num_rows = count($this->rows);
$data = array();

foreach ($this->rows as $key => $value) {


array_push($data, $value);
}

return $data[1]['idOpcion'];
}

public function update( $data = array() ){


foreach ($data as $key => $value) {
$$key = $value;
}
/*
$sqlUpdate = "
UPDATE
estudiante
SET
nombre = '$nombre',
apellidos = '$apellidos',

51
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

telefono = '$telefono',
telefono2 = '$telefono2',
email = '$email',
idPlan = '$idPlan',
idOpcion = '$idOpcion',
statusAlumno = $statusAlumno
WHERE
noControl = '$noControl'";*/
$sqlUpdate = "
UPDATE
estudiante
SET
nombre = '$nombre',
apellidos = '$apellidos',
telefono = '$telefono',
telefono2 = '$telefono2',
email = '$email',
idPlan = '$idPlan',
idOpcion = $idOpcion,
password = '$password'
WHERE
noControl = '$noControl'";

echo $sqlUpdate;

$this->query = $sqlUpdate;
$this->set_query();
}

public function delete($data = array()){

52
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

foreach ($data as $key => $value) {


$$key = $value;
}

$sqlUpdate = "
UPDATE
estudiante
SET
statusAlumno = 0
WHERE
noControl = '".$noControl."'";

$this->query = $sqlUpdate;
$this->set_query();

echo $sqlUpdate;

public function undelete($data = array()){

foreach ($data as $key => $value) {


$$key = $value;
}

$sqlUpdate = "
UPDATE

53
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

estudiante
SET
statusAlumno = 1
WHERE
noControl = '".$noControl."'";

$this->query = $sqlUpdate;
$this->set_query();
echo $sqlUpdate;

public function optionSelect(){


$options = "";
if($this->num_rows>0){
foreach($this->rows as $row => $value){
if($this->rows[$row]['statusAlumno'] == 1){
$options .= "<option value=".$this-
>rows[$row]['noControl'].">".$this->rows[$row]['nombre']." ".$this-
>rows[$row]['apellidos']."</option>";
}
}

}
return $options;

public function htmlTable(){

54
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

$tabla = "<table id='myTable' class='table table-striped table-


bordered nowrap' width='100%' data-page-length='25' cellspacing='0'>
<thead>
<tr>
<td>N° CONTROL</td>
<td>NOMBRE COMPLETO</td>
<td>TELÉFONO</td>
<td>TELÉFONO 2</td>
<td>EMAIL</td>
<td>PLAN</td>
<td>OPCIÓN</td>
<td>STATUS</td>
<td>OPERACIONES</td>
</tr>
</thead>
<tbody>";
if($this->num_rows>0) {
foreach ($this->rows as $row => $value) {
$tabla .= "<tr>";
$tabla .= "<td>".
$this->rows[$row]['noControl']."</td>";
$tabla .= "<td>".
$this->rows[$row]['nombre']." ".
$this->rows[$row]['apellidos']."</td>";
$tabla .= "<td>".$this->rows[$row]['telefono']."</td>";
$tabla .= "<td>".$this->rows[$row]['telefono2']."</td>";
$tabla .= "<td>".$this->rows[$row]['email']."</td>";
$tabla .= "<td>".$this->rows[$row]['idPlan']."</td>";
$tabla .= "<td>".$this->rows[$row]['idOpcion']."</td>";

55
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

$tabla .= "<td>".(($this-
>rows[$row]['statusAlumno'])?"ACTIVO":"BAJA")."</td>";
$tabla .= "<td>
<a href='editar.php?noControl=".$this-
>rows[$row]['noControl']."&nombre=".$this-
>rows[$row]['nombre']."&apellidos=".$this-
>rows[$row]['apellidos']."&telefono=".$this-
>rows[$row]['telefono']."&telefono2=".$this-
>rows[$row]['telefono2']."&email=".$this->rows[$row]['email']."'>Editar</a>
<a href='borrar.php?noControl=".$this-
>rows[$row]['noControl']."'>Borrar</a>
<a href='recuperar.php?noControl=".$this-
>rows[$row]['noControl']."'>Recuperar</a>
</td></tr>";
//$tabla .=$this->thisArray[0]['noControl'];
}

} else {
$tabla .= "<tr><td colspan='3'> NO HAY DATOS </td></tr>";
}

$tabla .= "</tbody></table>";
return $tabla;
}

public function htmlTableTres(){


$tabla = "<table id='myTable' class='table table-striped table-
bordered nowrap' width='100%' data-page-length='25' cellspacing='0'>
<thead>
<tr>

56
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

<td>N° CONTROL</td>
<td>NOMBRE COMPLETO</td>
<td>TELÉFONO</td>
<td>TELÉFONO 2</td>
<td>EMAIL</td>
<td>PLAN</td>
<td>OPCIÓN</td>
<td>STATUS</td>
</tr>
</thead>
<tbody>";
if($this->num_rows>0) {
foreach ($this->rows as $row => $value) {
$tabla .= "<tr>";
$tabla .= "<td>".
$this->rows[$row]['noControl']."</td>";
$tabla .= "<td>".
$this->rows[$row]['nombre']." ".
$this->rows[$row]['apellidos']."</td>";
$tabla .= "<td>".$this->rows[$row]['telefono']."</td>";
$tabla .= "<td>".$this->rows[$row]['telefono2']."</td>";
$tabla .= "<td>".$this->rows[$row]['email']."</td>";
$tabla .= "<td>".$this->rows[$row]['idPlan']."</td>";
$tabla .= "<td>".$this->rows[$row]['idOpcion']."</td>";
$tabla .= "<td>".(($this-
>rows[$row]['statusAlumno'])?"ACTIVO":"BAJA")."</td></tr>";

} else {

57
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

$tabla .= "<tr><td colspan='3'> NO HAY DATOS </td></tr>";


}

$tabla .= "</tbody></table>";
return $tabla;
}

public function htmlTablePublica(){


$tabla = "<table id='myTable' class='table table-striped table-
bordered nowrap' width='100%' data-page-length='25' cellspacing='0'>
<thead>
<tr>
<td>N° CONTROL</td>
<td>NOMBRE COMPLETO</td>
<td>TELÉFONO</td>
<td>TELÉFONO 2</td>
<td>EMAIL</td>
<td>PLAN</td>
<td>OPCIÓN</td>
<td>STATUS</td>
</tr>
</thead>
<tbody>";
if($this->num_rows>0) {
foreach ($this->rows as $row => $value) {
$tabla .= "<tr>";
$tabla .= "<td>".
$this->rows[$row]['noControl']."</td>";
$tabla .= "<td>".
$this->rows[$row]['nombre']." ".

58
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

$this->rows[$row]['apellidos']."</td>";
$tabla .= "<td>".$this->rows[$row]['telefono']."</td>";
$tabla .= "<td>".$this->rows[$row]['telefono2']."</td>";
$tabla .= "<td>".$this->rows[$row]['email']."</td>";
$tabla .= "<td>".$this->rows[$row]['plan']."</td>";
$tabla .= "<td>".$this-
>rows[$row]['opcion']."</td></tr>";
}

} else {
$tabla .= "<tr><td colspan='3'> NO HAY DATOS </td></tr>";
}

$tabla .= "</tbody></table>";
return $tabla;
}

}
Absolutamente todas las clases de tipo modelo se comportarán de manera similar,
cada una con las mismas operaciones, mas distintas maneras de llevarlas a cabo.
Finalmente, un ejemplo de un controlador es el siguiente:
<?php

include '../models/EstudianteModel.php';

class EstudianteController {

private $model;
public $noControl = "";
public $nombre= "";
public $apellidos= "";
public $telefono= "";
public $telefono2= "";

59
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

public $email= "";


public $idPlan= 0;
public $idOpcion= 0;
public $thisArray = array();

public function __construct(){


$this->model = new EstudianteModel();
}

public function readAllFilter($f){


$this->model->readAllFilter($f);
}

public function readDups($x){


return $this->model->readDups($x);
}

public function create( $data = array() ){


return $this->model->create($data);
}

public function read($nocontrol = ''){


return $this->model->read($data);
}

public function reed($data = array()){


return $this->model->reed($data);
}

public function loginEstudiante($noControl="", $password=""){


if(empty($noControl) and empty($password)){
return false;
}
$this->model->loginEstudiante($noControl, $password);

$this->noControl = $this->model->noControl;
$this->nombre = $this->model->nombre;
$this->apellidos = $this->model->apellidos;

60
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

return true;
}

public function actualizarPropiedades(){


return $this->model->actualizarPropiedades();
}

public function readAll(){


return $this->model->readAll();
}

public function readProyects(){


return $this->model->readProyects();
}

public function readPlan($noControl){


return $this->model->readPlan($noControl);
}

public function readOpcion($noControl){


return $this->model->readOpcion($noControl);
}

public function updateThis(){


$this->thisArray = $this->model->thisArray;
}

public function optionSelect($nocontrol = ''){


return $this->model->optionSelect($data);
}

public function update( $data = array() ){


return $this->model->update($data);
}

public function delete($data = array()){


return $this->model->delete($data);
}

61
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

public function undelete($data = array()){


return $this->model->undelete($data);
}

public function htmlTable(){


return $this->model->htmlTable();
}

public function htmlTableTres(){


return $this->model->htmlTableTres();
}

public function __destruct(){


unset($this);
}

}
El controlador contendrá todas las operaciones definidas dentro del modelo, y
fungirá como intermediario entre el mismo y la vista.

62
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Pruebas y resultados
En esta parte se comentan las pruebas hechas al Sistema Auxiliar de Proceso de
Titulación que validan a este proyecto como resultado del problema antes definido
y, finalmente, se comentan los resultados y conclusiones de dicho proyecto, así
como el trabajo futuro que se puede elaborar.

Las pruebas realizadas sobre el sistema consistieron en evaluaciones periódicas


por el encargado del proceso de titulación dentro del departamento de Ingeniería en
Sistemas Computacionales del Instituto Tecnológico de Veracruz, quienes
evaluaron el funcionamiento del sistema y proporcionaron críticas constructivas
acerca del comportamiento del mismo y cómo enriquecerlo para hacerlo más
completo y robusto.

Entre las pruebas realizadas, se encuentran las siguientes:

63
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Figuras 21 y 22. Iniciar sesión


Si el usuario no existe o la contraseña no es correcta, se mostrará un mensaje de
error como se observa en la figura 22 y regresará al usuario a la ventana de inicio
de sesión para que vuelva a ingresar sus datos.

La siguiente prueba se enfocó en los catálogos, probando que la búsqueda de


datos, inserción y edición funcionasen de manera correcta. Esto incluye, cabe
mencionar, la validación de distintos datos dependiendo del catálogo a manejar, así
como verificación contra duplicados.

64
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

65
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

66
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Figuras 23, 24, 25, 26, 27 ,28. Realizando pruebas en el catálogo de Opciones de Titulación.
Se realizaron también pruebas hacia las operaciones y generación de
documentos, las cuales se ven reflejadas de las figuras 11 a 20 en la página 33.

67
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Conclusiones
Una vez concluido el tiempo asignado a las residencias profesionales se puede decir
que este proyecto cumplió con los objetivos propuestos inicialmente, ya que la meta
principal del proyecto, que es aligerar la carga de trabajo del encargado del proceso
de titulación, resultó exitosa y se cubrieron todas las peticiones del usuario.

En cuanto a la experiencia recibida, puedo concluir que la realización de residencias


profesionales es sumamente útil, ya que acerca al alumno al campo laboral y a tener
una visión más realista de lo que es un verdadero trabajo. La manera de trabajar en
un proyecto que no está sujeto a los mismos estándares a los que se acostumbran
durante el curso de cualquier carrera de educación superior es un cambio drástico
por el que todo ingeniero debe caminar y lograr acostumbrarse.

Lamentablemente, el proyecto no alcanzó algunas demandas presentadas


posteriormente debido a que el lapso de tiempo excedía aquél definido en el
estándar de las residencias profesionales. Sin embargo, el sistema es lo bastante
flexible como para poder ser continuado en el futuro si así se desea.

68
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Recomendaciones
Este proyecto resultó completo y funcional; sin embargo, en un futuro se podrían
implementar mejoras al sistema. En primera instancia, realizar las adecuaciones
conforme al avance y evolución del Modelo de Competencias, puesto que éste es
actualizado cada cierto tiempo por la institución, además se propone como trabajo
a futuro:

 Implementar nuevas maneras de ordenar los catálogos, así como una purga
de datos.
 Implementar nuevas opciones de documentos a generar, como se mencionó
durante la documentación del proyecto.
 De ser necesario, implementar nuevas operaciones así como nuevas
adiciones a la base de datos.

69
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Veracruz

Bibliografía
Alarcón, V. F. (2026). Desarrollo de sistemas de información : una metodología
basada en el modelado. México: Edicions UPC.

Coordinación de Modernización y Competitividad. (2016). Norma que establece las


disposiciones para la implementación y mantenimiento del modelo
institucional para la competitividad "MC". México: Instituto Mexicano del
Seguro Social.

Eguiluz, J. (4 de Marzo de 2017). LIBROSWEB. Obtenido de


http://librosweb.es/libro/xhtml/

López, I., & de Castro, M. (2014). Gestión de bases de datos. Madrid: Garceta grupo
editorial.

Mannino, M. (2007). Administración de bases de datos: Diseño y desarrollo de


aplicaciones 3 ed. México, D.F.: McGRAW-HILL.

Senn, J. (1997). Análisis y diseño de sistemas de información 2 ed. México:


McGRAW-HILL.

Silberschatz, A. (2002). Fundamentos de bases de datos 4ta edición. España:


McGraw-Hill.

Sommerville, I. (2005). Ingeniería de software. México: Addison-Wesley.

Stair, R., & Reynolds, G. (2010). Principios de sistemas de información: Un enfoque


administrativo 9 ed. México, D.F.: Cengage Learning.

70

También podría gustarte