Documentos de Académico
Documentos de Profesional
Documentos de Cultura
de Sistemas y Computación.
Modulo: Móvil.
N. de control: 18070564
El papel de “cliente” en el desarrollo de este proyecto será fungido por la profesora Martha Laura
Chuey Rubio, por parte del Departamento de Sistemas y Computación.
Se tiene como objetivo el entregar el módulo móvil del sistema funcional al cliente al final del
curso de este semestre.
1
2
3
4
5
1.8.2 Externo
• Moderniza la imagen del tecnológico con respecto a las tecnologías que usa para la
administración de las tareas asignadas a los alumnos
• Hace más transparente el acceso a la información por parte del alumnado
• Reduce la carga burocrática de la institución.
1.9 Objetivo General
Diseñar una aplicación móvil para el control y administración de Proyectos Integradores por
parte del departamento de Sistemas del Instituto Tecnológico de Ciudad de México.
• Construir una aplicación Funcional con una interfaz intuitiva y fácil de navegar.
• Construir una base de datos modificable que almacene toda la información necesaria y
relacionada a proyectos pasados y presentes.
• Crear una plataforma que permita el acceso a toda la información relacionada con los
Proyectos Activos y Proyectos Terminados.
• Remover la necesidad de utilizar intermediarios para hacer cambios a registros de
proyectos, dando permiso a usuarios especiales de modificar la información que
requieran.
• Permitir consultas de información abiertas, aunque limitadas para el público general sin
autorización.
1.11 Alcances
1.12 Limitaciones
• Los colaboradores serán casi únicamente docentes del ITCM, si hay algún docente de una
institución diferente, este deberá ser añadido como excepción.
• Se deberá informar a los docentes que requieran del uso del sistema sobre como acceder
a él, y se necesitará capacitación básica sobre su funcionamiento.
• El acceso a este módulo solo será posible a través de dispositivos con sistema operativo
Android.
• Se requerirá de un usuario administrador para resolver cualquier disputa sobre algún
cambio no aprobado o brechas de seguridad.
1.13 Justificación
El desempeño académico de los alumnos muchas veces se ve afectado por las herramientas
puestas a disposición por la institución, no solo para el uso del alumnado, sino también para el
uso de sus docentes. Al utilizar tecnologías más eficientes, se logrará una reducción en la carga
burocrática que existe sobre el docente, haciendo que ya no dependa de intermediarios para
consultar o modificar información sobre proyectos que se estén llevando a cabo, y facilitando el
acceso a la información y registros que estos requieren para evaluar algo tan importante como
lo es un proyecto integrador. También, se logrará generar un estándar o plantilla que servirá para
hacer más uniforme el desarrollo y documentación de estos proyectos por parte del personal
encargado.
El 2 de septiembre de 1954 iniciaron los cursos a las 7:00 horas con un total de 211 alumnos, uniformados
de blanco y guinda, fungiendo como director el Ing. Luis Hidalgo y Castro.
Los programas educativos que se ofrecieron al iniciar funciones fueron los siguientes:
PREPARACIÓN TÉCNICA:
•Electricistas Reparadores
•Carpinteros Ebanistas
RAMA SUBPROFESIONAL:
•Técnico Mecánico
•Técnico Electricista
ESCUELA VOCACIONAL:
•Mecánica
•Eléctrica
•Química
•Civil
•Arquitectura
En septiembre de 1956 iniciaron las carreras de nivel licenciatura con las especialidades de Ingeniería
Química, Ingeniería Mecánica e Ingeniería Eléctrica. En el año 1957 se integró el Bachillerato Tecnológico.
Un año más tarde en 1958 se oferta la especialidad de Técnico en Combustión Interna y para 1961 inicia
la carrera de Ingeniería Industrial.
En 1968 inicia la especialidad de Técnico en Electrónica mientras que la de Técnico Laboratorista arranca
en 1972.
Para el año 1974 incorpora a sus planes de estudio el Sistema de Educación Abierta en dos niveles. La
oferta educativa se amplía en 1975 con nuevas carreras, la de Ingeniería Geológica y la de Ingeniería
Geofísica.
El desarrollo regional acelerado motivó que para el año 1976 se iniciaran los Programas de Posgrado con
la Maestría en Sistemas Administrativos y la Maestría en Tecnología del Petróleo y Petroquímica.
El año 1986 fue importante en el crecimiento de la institución pues a nivel licenciatura se ofertan las
carreras de Ingeniería Electrónica e Ingeniería en Sistemas Computacionales y a nivel Posgrado inicia la
Maestría en Ciencias en Ingeniería Eléctrica, la Maestría en Matemática Educativa (mediante convenio
con CINVESTAV), además se oferta por primera vez el Doctorado iniciando con Petroquímica, cuyo
programa nació por el continuo crecimiento de esta industria en la zona. También en estas especialidades
se firman convenios de colaboración con el Instituto Mexicano del Petróleo (IMP) y con la Agencia
Internacional de Cooperación del Japón (JICA).
En 1993 inicia la carrera de Ingeniería en Geociencias, liquidando las de Ingeniería Geológica y Geofísica.
Ese mismo año de 1993 se oferta la Maestría en Ciencias en Ingeniería Administrativa. En 1995 arranca la
carrera de Licenciatura en Informática. En 1996 inicia la Maestría en Ciencias en Ingeniería Química como
una respuesta a la modificación de las tendencias nacionales respecto al desarrollo petrolero. También
esta modificación obedeció a las recomendaciones hechas por el Comité de Evaluación del Padrón
Nacional de Posgrado del CONACYT. Este mismo año de 1996 surgió el Doctorado en Ciencias en Ingeniería
Química sustituyendo al de Petroquímica.
En agosto del 2000 inició la Maestría en Ciencias de la Computación y seis años más tarde fue registrada
en el Padrón Nacional de Posgrado del CONACYT junto con la Maestría en Ciencias en Ingeniería Química
lo cual las posiciona entre los mejores Programas de Posgrado en estas disciplinas.
Para el año 2001 empieza la Maestría en Gestión Administrativa, sustituyendo la Maestría en Ciencias en
Ingeniería Administrativa; mientras que en enero de 2004 dieron inicio los cursos del doctorado en
Ciencias en ingeniería Química hasta enero de 2012. En el 2006 arrancó el programa de la carrera de
Ingeniería Ambiental y en 2008 otro Posgrado con la Maestría en Ingeniería Eléctrica que sustituye la
Maestría en Ciencias en Ingeniería Eléctrica. Poco después en agosto de 2009 el programa de Doctorado
en Ciencias en Computación estaba listo para comenzar clases e investigaciones.
Como resultado de una investigación de la oferta educativa en nuestra zona conurbada, se autorizó la
implantación de nuevas licenciaturas y posgrados en la institución, por lo que en agosto de 2010 da inicio
el programa de Ingeniería en Gestión Empresarial, y de agosto de 2012 a junio de 2019 el programa de
Ingeniería en Tecnologías de la Información y Comunicaciones como una respuesta a las necesidades
detectadas en nuestro entorno.
Pero no fue el único programa estrenado durante el mismo periodo, comenzó la oferta de dos posgrados:
la Maestría en Ingeniería Mecánica y el Doctorado en Ciencias en Materiales, este último, con
reconocimiento de posgrados de calidad.
Para enero del 2017 se dio a conocer un nuevo posgrado en el instituto: Ingeniería y Doctorado en Ciencias
de la Ingeniería y un año después la Maestría en Ciencias de la Ingeniería con la que nuestra institución se
colocaría en una de las mejores opciones para realizar un posgrado de impacto en la misma zona de
impartición.
Todo este crecimiento académico e histórico ha consolidado al Instituto Tecnológico de Ciudad Madero
como una institución, de prestigio que responde a las necesidades de las diferentes organizaciones,
empresas y asociaciones del país, especialmente de la zona norte. Hoy el Instituto Tecnológico de Ciudad
Madero es reconocido internacionalmente, avalado por la calidad de sus egresados y considerado uno de
los máximos centros de estudio del país, ofertando diez programas de ingeniería y nueve de posgrado.
Es por ello que celebramos nuestro aniversario la última semana de cada mes de noviembre para
conmemorar el inicio de actividades de nuestro Instituto.
2.4 Misión
Formar profesionales de nivel licenciatura y posgrado altamente competitivos, a través de programas
educativos reconocidos por su calidad; impulsar el desarrollo del sector productivo regional y nacional, a
través de la investigación, el desarrollo tecnológico y la innovación.
2.5 Visión
Ser una Institución líder en educación superior tecnológica que, como parte del Tecnológico Nacional de
México, contribuya significativamente en la formación de capital humano altamente calificado bajo
estándares internacionales, generando y aplicando nuevo conocimiento, para fortalecer la productividad
y competitividad del país.
2.6 Valores
Los valores que subyacen y promueven el desarrollo laboral, el clima organizacional y en general para el
desarrollo de los procesos y procedimientos cotidianos, se refieren a valores que lejos de ser acepciones
definidas en forma aislada, son valores que interactúan de acuerdo a la complejidad humana y forman
parte de su esencia:
•Respeto
•Servicio
•Honestidad
•Lealtad
2.7 Objetivos empresariales
El Instituto Tecnológico de Ciudad Madero tiene como objetivo ofrecer a los sectores productivos y
educativos una amplia gama de servicios en las esferas de la investigación y el desarrollo científico y
tecnológico, de organización del trabajo, destacando los de formación, capacitación y actualización
profesional; la innovación, la diversificación, la adaptación, la adquisición y la difusión.
Así como promover el desarrollo integral y armónico del educando en la relación con los demás, consigo
mismo y con su entorno, mediante una formación intelectual que los capacite en el manejo de los
métodos y lenguajes, sustentados en los principios de identidad nacional, justicia, democracia,
independencia, soberanía y solidaridad; y en la recreación, el deporte y la cultura que le permitan una
mente y cuerpo sanos.
Atender la demanda de educación superior y de posgrado, con alta calidad, a nivel nacional e
internacional, como forma de auspiciar el desarrollo regional. Hacer del ITCM un instrumento de
desarrollo, mediante una estrecha y permanente retroalimentación con la comunidad, en especial entre
los sectores productivos de bienes y servicios, sociales, públicos y privados.
Compartir con la comunidad la cultura científica, técnica, tecnológica y humanística, así como la
recreación y el deporte, mediante los diversos foros y medios con que cuenta el sistema. Ofrecer perfiles
profesionales que integren las necesidades específicas regionales, para que el egresado contribuya de
manera satisfactoria al desarrollo de cada comunidad, en especial de la planta productiva.
2.8 Logo.
2.8.1 Eslogan
“Por mi patria y por mi bien”
En este método se observan los hechos bajo una meta concreta (objetivo), previamente definida, y si es
necesario se modifica la forma de recopilar la información, interpretar, comprobar y analizar el fenómeno. El
propósito es llegar a cumplir con el objetivo que se definió en la propuesta de investigación, pudiendo
modificarse las condiciones tantas veces como sea necesario.
Para cumplir con los objetivos marcados en este proyecto, se utilizaron dos métodos de recolección de
información.
El primero, fue una revisión documental, se recolectó información de fuentes públicas, principalmente el
internet, posteriormente se organizaron los datos adquiridos, para al final hacer un análisis de esta
información, y obtener conclusiones basadas en esta revisión documental. Se realizó una revisión documental.
Este método fue utilizado mayoritariamente en la fase de investigación de requisitos del proyecto.
El segundo, fue una entrevista, se realizó una entrevista al docente encargado del proyecto para afinar
cualquier tipo de detalle o duda que existiera sobre los requerimientos para el desarrollo del sistema
Cuando se trata de desarrollar productos o soluciones para un cliente o mercado concreto, es necesario tener
en cuenta factores como los costes, la planificación, la dificultad, el equipo de trabajo disponible, los lenguajes
utilizados, etc. Todos ellos se engloban en una metodología de desarrollo que permite organizar el trabajo de
la forma más ordenada posible.
El diseño rápido se centra en una representación de aquellos aspectos del software que serán visibles para el
cliente o el usuario final. Este diseño conduce a la construcción de un prototipo, el cual es evaluado por el
cliente para una retroalimentación; gracias a ésta se refinan los requisitos del software que se desarrollará. La
interacción ocurre cuando el prototipo se ajusta para satisfacer las necesidades del cliente. Esto permite que
al mismo tiempo el desarrollador entienda mejor lo que se debe hacer y el cliente vea resultados a corto plazo.
Dada la naturaleza de este proyecto, estará sujeto a cambios y revisiones constantes, por ende, tener un
prototipo como modelo base lo más pronto posible nos permitirá aprovechar de manera óptima el tiempo.
Al hablar de una aplicación móvil, existen múltiples tecnologías disponibles para su desarrollo, tomando en
cuenta los recursos con los que contará el usuario objetivo de esta aplicación, se decidió que Android será el
Sistema Operativo a utilizar.
Android.
A febrero de 2022, Android acapara el 70.97% del mercado en cuanto a sistemas operativos móviles
(https://gs.statcounter.com/os-market-share/mobile/worldwide), es por esto que el desarrollo móvil en
Android es una de las áreas más cubiertas en la actualidad, y en la cual constantemente se utilizan nuevas
tecnologías.
• Núcleo basado en el de Linux para el manejo de memoria, procesos y hardware. (Se trata de un branch, de
manera que las mejoras introducidas no se incorporan en el desarrollo del núcleo de GNU/Linux).
• Bibliotecas open source para el desarrollo de aplicaciones, incluyendo SQLite, WebKit, OpenGL y manejador
de medios.
• Entorno de ejecución para las aplicaciones Android. La máquina virtual Dalvik y las bibliotecas específicas dan
a las aplicaciones funcionalidades específicas de Android.
• Un framework de desarrollo que pone a disposición de las aplicaciones los servicios del sistema como el
manejador de ventanas, de localización, proveedores de contenidos, sensores y telefonía.
• SDK (kit de desarrollo de software) que incluye herramientas, plug-in para Eclipse, emulador, ejemplos y
documentación.
• Interfaz de usuario útil para pantallas táctiles y otros tipos de dispositivos de entrada, como, por ejemplo,
teclado y TrackBall.
• Aplicaciones preinstaladas que hacen que el sistema operativo sea útil para el usuario desde el primer
momento. Cabe destacar que cuenta con las últimas versiones de Flash Player.
• Muy importante es la existencia del Android Marlet, y más todavía la presencia de una comunidad de
desarrolladores que suben ahí aplicaciones, tanto de pago como gratuitas. De cara al usuario, el verdadero
valor del sistema operativo está en las aplicaciones que se puede instalar. El SKD de Android incluye numerosas
y completas API's para facilitar el desarrollo.
Kotlin.
Kotlin se ha ido convirtiendo en el nuevo estándar de desarrollo móvil en dispositivos Android, es por esto que
será el lenguaje utilizado para el desarrollo del back-end del proyecto.
Kotlin es un lenguaje de programación estático de código abierto que admite la programación funcional y
orientada a objetos. Proporciona una sintaxis y conceptos similares a los de otros lenguajes, como C#, Java y
Scala, entre muchos otros. No pretende ser único, sino que se inspira en décadas de desarrollo del lenguaje.
Cuenta con variantes que se orientan a la JVM (Kotlin/JVM), JavaScript (Kotlin/JS) y el código nativo
(Kotlin/Native).
Kotlin es administrado por Kotlin Foundation, un grupo creado por JetBrains y Google, que se ocupa de
continuar el desarrollo del lenguaje. Google admite oficialmente Kotlin para el desarrollo de Android, lo cual
significa que la documentación y las herramientas de Android están diseñadas para ser compatibles con Kotlin.
¿Cuáles son las características de las bases de datos documentales? ¿Para qué se suelen emplear?
Las bases de datos documentales son capaces de almacenar información en diferentes formatos sin una
estructura definida. En cualquier caso, lo habitual es que los documentos empleen un formato de archivo,
mientras que los datos contenidos sí utilicen una estructura fija.
A pesar de que su estructura es completamente distinta, estas bases de datos permiten realizar las mismas
operaciones básicas que las bases de datos relacionales, esto es, añadir, actualizar o eliminar información,
además de realizar las pertinentes consultas por parte del usuario.
A diferencia de las bases de datos relacionales, en las bases de datos orientadas a documentos no es necesario
recorren todas las columnas de una tabla a la hora de realizar una consulta. En lugar de ello se asigna un
identificador único a cada documento, de manera que a la hora de hacer una consulta se comprueba el mismo
documento. Este identificador puede ser de diferentes tipos, por ejemplo, una ruta completa o una cadena de
caracteres.
Gracias a este funcionamiento, las bases de datos documentales se emplean para el almacenamiento y consulta
de datos semiestructurados, los cuáles no tienen un esquema previamente definido y que serían difíciles (o
incluso imposibles) de gestionar en las tradicionales bases relacionales.
Software utilizado.
En cuanto a software utilizado, el IDE Android Studio tomará el rol principal como herramienta de desarrollo,
así como DBeaver como herramienta de manejo de bases de datos.
Android Studio.
Android Studio es el entorno de desarrollo integrado oficial para la plataforma Android. Fue anunciado el 16
de mayo de 2013 en la conferencia Google I/O, y reemplazó a Eclipse como el IDE oficial para el desarrollo de
aplicaciones para Android. La primera versión estable fue publicada en diciembre de 2014.
Está basado en el software IntelliJ IDEA de JetBrains y ha sido publicado de forma gratuita a través de la Licencia
Apache 2.0. Está disponible para las plataformas GNU/Linux, macOS, Microsoft Windows y Chrome OS. Ha sido
diseñado específicamente para el desarrollo de Android.
Estuvo en etapa de vista previa de acceso temprano a partir de la versión 0.1, en mayo de 2013, y luego entró
en etapa beta a partir de la versión 0.8, lanzada en junio de 2014. La primera compilación estable, la versión
1.0, fue lanzada en diciembre de 2014.
Desde el 7 de mayo de 2019, Kotlin es el lenguaje preferido de Google para el desarrollo de aplicaciones de
Android. Aun así, Android Studio admite otros lenguajes de programación, como Java y C ++.
Firebase.
Cloud Firestore es una base de datos flexible y escalable para el desarrollo móvil, web y de servidor de Firebase
y Google Cloud. Al igual que Firebase Realtime Database, mantiene sus datos sincronizados entre las
aplicaciones de los clientes a través de oyentes en tiempo real y ofrece soporte sin conexión para dispositivos
móviles y web para que pueda crear aplicaciones receptivas que funcionen independientemente de la latencia
de la red o la conectividad a Internet. Cloud Firestore también ofrece una integración perfecta con otros
productos de Firebase y Google Cloud, incluidas Cloud Functions.
Hoy en día el mercado de desarrollo móvil es bastante solicitado alrededor del mundo, existen muchas
empresas cuya única misión es el desarrollo de software para sus clientes de acuerdo a los requisitos
específicos que aquel le solicita.
“Somos una empresa dedicada al Desarrollo de aplicaciones móviles en la que nos enfocamos en los
requerimientos únicos de cada proyecto, es por eso que podemos brindar un servicio totalmente
personalizado. Desarrollo de apps móviles México, somos una empresa especializada en el desarrollo de apps
IOS y Android. La creciente demanda en dispositivos móviles abrió una nueva plataforma de ventas gracias a
la cual el vínculo entre empresa y clientes se mantiene de la interacción.
Las apps y su utilización han ido en constante crecimiento, ahora los clientes esperan más de usted como líder
empresarial. Hoy el desarrollo de apps para móviles representa no solo la innovación de un negocio, también
consolida su presencia online utilizando las nuevas tecnologías.”
Los servicios que ofrecen con respecto a desarrollo de apps móviles son de Diseño de Interfaz, y Desarrollo y
Programación.
También se encargan del desarrollo de juegos móviles, ofreciendo el diseño de personajes y escenarios.
Y, por último, ofrecen desarrollo de apps móviles para empresas. “El desarrollo de apps móviles para
empresas tiene el objetivo de aumentar la productividad de su negocio. Estas apps están orientadas a realizar
diferentes tareas, desde mejorar el control, la distribución y almacenaje de sus productos hasta eliminar
reprocesos de producción.”
IngenieríaPixel ofrece el desarrollo del Sistema Web, así como el mantenimiento de la app para ser utilizada
por los clientes 24/7.
3.7 Factores.
3.7.1 Geográfico
Tomando en cuenta la escala del proyecto actual, las limitaciones geográficas solo estarán presentes de la
misma forma que lo estarían para un miembro de la comunidad docente del ITCM, solo dependerá del acceso
que tengan a una terminal conectada a internet y de las credenciales de acceso que les sean proporcionadas
por los administradores del departamento que administre el sistema.
3.7.2 Sociales
Dado que se necesita de contacto constante con el cliente, el factor social más importante será el tiempo y la
manera en la que se maneja el contacto con dicho cliente.
3.7.3 Ecológicos
Este proyecto tiene como uno de sus objetivos la digitalización de una gran parte de la documentación
relacionada con los proyectos integradores, al hacer esto se reduce la necesidad de impresiones en papel físico.
Aunque la utilización de energía por parte del manejo de un servidor remoto para hostear una página web es
bastante pequeño, ciertamente es un factor a tomar en cuenta.
3.8 Descripción del impacto del proyecto en el proceso educativo (que obtiene
al hacer el proyecto).
El desarrollo de un proyecto donde el alumno rinde cuentas ante un cliente ayuda a condicionar al alumno a
las realidades involucradas con el manejo de un proyecto de software más allá del nivel de desarrollo y código,
haciéndolo tratar con lo que el cliente demanda y llevar a cabo todo el proceso de especificaciones, planeación,
gestión y desarrollo de una solución de software.
• Capacidad de investigación.
• Habilidades para buscar, procesar y analizar información procedente de diversas fuentes.
• Capacidad de organizar y planificar.
• Capacidad de aplicar los conocimientos en la práctica.
• Diseño y gestión de proyectos.
• Habilidad para hablar en público.
• Capacidad de comunicación oral y escrita.
• Habilidades interpersonales.
• Compromiso ético.
Capítulo 4. Métrica IEEE830 (Métrica de especificación de
requerimientos de software).
La parte de la interfaz gráfica está relacionada con todo aquello que el usuario final va poder observar
durante un flujo de trabajo normal con el módulo móvil, este componente solo mostrará información. El
subsistema API será responsable de funcionar como intermediario entre la interfaz y el lugar donde se
almacena toda la información, es decir, la API expone una serie de métodos que permiten la manipulación
y la comunicación de información atreves de uno o más usuarios. Por último, el componente de base de
datos se encarga de almacenar y mantener segura la información y sobre todo mantener los datos
disponibles para cualquier momento.
En el módulo de alumno se pueden ver los proyectos que le han sido asignados al usuario, se despliegan
miniaturas a forma de “cards” que incluyen el nombre, coordinador, y el cliente, al tapear la miniatura se
accede a una nueva pantalla con el resto de detalles del proyecto.
El módulo de maestro incluye un menú con dos opciones, la pantalla por default al hacer iniciar sesión será la
pantalla información, en la que se captura el registro de un nuevo proyecto. Pero al hacer tap en el menú,
podremos escoger entre esta y la segunda opción, llamada proyectos, donde se podrán ver todos los proyectos
asignados al usuario.
● Consultas de información
● Modificación de información ya existente en registros de proyectos.
● Creación de nuevos registros de proyectos.
● Eliminación de registros existentes.
● Permitir al usuario descargar el informe de un proyecto como PDF.
• El sistema deberá ser accedido a través de un inicio de sesión solo permitido para usuarios del
tecnológico.
• Para el módulo de alumno, el sistema permitirá visualizar proyectos asignados, detalles del proyecto,
y documentos asociados al proyecto.
• Para el módulo del profesor, el sistema permitirá lo anterior, pero también permitirá añadir nuevos
registros de proyectos, modificar proyectos existentes, y también eliminarlos.
• Nuevos usuarios serán dados de alta solo por un usuario administrador.
• Compatible con Android 5.0 en adelante.
• El sistema permitirá al usuario descargar en formato de archivo PDF el reporte del proyecto
seleccionado.
• El sistema permitirá al usuario cargar archivos pertinentes en ciertos campos relacionados con el
reporte del proyecto, aunque esta función se limitará al profesor.
• La instalación del sistema deberá ser simple
4.3.7.1 Acceso
● Los usuarios autorizados por el sistema tendrán acceso total a la información.
● Cualquier usuario no puede eliminar los registros solo ocultarlos.
● La información modificada será actualizada en un nuevo registro.
● Solo se podrá modificar un registro a la vez.
4.3.7.4 Encriptación
● Los documentos generados por el sistema deberán contar con alguna validación digital.
4.3.7.5 Interoperabilidad
● El sistema compartirá el uso del clúster de base de datos con el módulo Web
• Portabilidad.
El sistema permite ser ejecutado en diferentes dispositivos, siempre y cuando estos cuenten con Android 5.0
o superior. El server-side estará almacenado en la nube, por lo tanto, no será necesario un desplazamiento
físico del servidor.
• Facilidad de uso.
La interfaz tiene como propósito ser intuitiva y eficiente. El sistema contara con las pantallas necesarias para
mostrar y explicar cualquier error que surja, con el fin de que el usuario pueda identificar si fue causado por él
mismo, o si debe contactar a un administrador. Al ser un programa diseñado para ser utilizado por el alumnado
y comunidad docente en general, no requiere gran proficiencia técnica por parte del usuario.
• Funcionalidad.
El sistema tiene un propósito puramente administrativo, contando con operaciones CRUD básicas y manejo de
archivos PDF e imágenes.
• Compatibilidad.
Las limitaciones de compatibilidad del sistema al nivel del usuario radican en el sistema operativo del
dispositivo a utilizar. El sistema también comparte su base de datos con el módulo web del mismo.
• Eficiencia.
Al ser una aplicación que no demanda demasiados recursos, cualquier dispositivo móvil de gama baja actual
debería de ser capaz de correrla, la velocidad de esta dependiendo en su mayoría de la velocidad del servicio
de internet del usuario.
• Extensibilidad
Al ser desarrollado como un proyecto abierto y con fines de desarrollo académico, el código del
sistema estará abierto a cualquier modificación con fines de extensión. La adición de cualquier módulo
extra es posible, y para facilitar este trabajo a posibles futuros desarrolladores que trabajen en el
proyecto, este será documentado a fondo.
• Reutilización
Los módulos del sistema y las herramientas con las que se desarrollaron se basan en la reutilización de
componentes para facilitar añadir características similares.
• Corrección
El usuario administrador (en este caso alguien encargado de este proyecto en el departamento de
sistemas) tendrá control sobre el sistema y quedará abierto a posibles correcciones.
• Robustez
Debido al tamaño del proyecto ya se tiene contemplada una serie de escenarios que pueden ser
perjudiciales al flujo del trabajo, lo que disminuye casi en su totalidad situaciones no anticipadas, sin
embargo, se comunicara al usuario cualquier error y como solucionarlo.
• Oportunidad.
En caso de encontrarse áreas de oportunidad para mejorar la funcionalidad del sistema, el usuario
puede contactarse con el administrador para hacer cualquier tipo de sugerencia.
4.5 Diagramación
Inicio
APK
funcional
Lógica
5.2.3 Ambiente/infraestructura
• Deficiencia del proveedor de servicio en la nube por fallas en su equipo
5.2.5 Cliente
• El cliente solicita cambios grandes a los requerimientos, originando un
retraso en la entrega.
• El cliente no cuenta con el capital para financiar los requisitos del hardwaredel
proyecto.
5.2.6 Requisitos
• Toma de requisititos insuficiente para entregar un proyecto completo.
• Falta de personal capacitado para resolver los requisitos solicitados.
• Escases de entendimiento por los requisitos debido al uso excesivo de
tecnicismos.
• La empresa no está dispuesta a organizarse para la toma de requisitos.
5.2.7 Producto
• Requerimientos no verificables causan rechazo en usuarios.
• El servicio de hosting no soporta el volumen de transacciones.
• Cambio excesivo de requerimientos origina mala funcionalidad.
• Las tecnologías usadas para el desarrollo no trabajan adecuadamente.
5.2.8 Fuerzas Mayores
• La presencia de un fenómeno ambiental que cause inundación y fuerte lluvia en
la zona de tampico o madero puede ocasionar fallos en la red eléctrica o sistema
de internet inhabilitando el producto.
• Un desastre natural o fallas dentro de las instalaciones del servicio de hosting
puede ocasionar una respuesta en las peticiones más lenta de lo normal.
5.2.9 Personal
• Ausencia de los participantes a lo largo del desarrollo del proyecto.
• Parte del personal no cuenta con las competencias suficientes para el
correcto desarrollo del proyecto.
• Mal cumplimiento de las tareas otorgada a un miembro del equipo.
5.2.11 proceso
• Incompatibilidad de las tecnologías utilizadas.
• Perdida de archivos por daños eléctricos y/o base de datos.
5.3 Análisis y Evaluación de riesgos que afectan los resultados
• Verificar si la empresa proveedora del servicio tiene planeado suspender elservicio en cuestión.
• Contar con un dispositivo que le sea posible usar una batería (teléfonocelular, Laptop, Tablet).
• Durante la ausencia de los servicios hacer uso del dispositivo inalámbrico y los datos de la
compañía telefónica.
• En caso de que el problema sea a nivel local, asignar el personal correspondiente para dar solución
al problema. Si no se cuenta con el personal hacer la contratación del mismo.
• En caso de que el problema no sea a nivel local, reportar la ausencia del servicio para que la
empresa tome acción.
5.7.1 Defectivo
Para el mantenimiento defectivo o búsquedas de fallas del sistema bastara con iniciar sesión en el sistema
y hacer una consulta en alguno de los módulos, si todofunciona de acuerdo a parámetros normales, está
comprobado que el sistema sigue en operación correcta. Si se dé desea realizar un análisis más profundo
habrá que interactuar con cada una de las funciones del sistema.
5.7.2 Preventivo
Para prevenir problemas con el sistema será necesario verificar el estado de la conexión a internet y la
integridad del sistema por parte del usuario administrador.Para prevenir problemas a la hora de estar
utilizando el software será necesario:
• Verificar la información en los formularios antes de mandarlos.
• Verificar los filtros y el texto a la hora de hacer búsquedas en las consultas.
• Siempre que ya no se planee usar el sistema cerrar la sesión.
5.7.3 Correctivo
Cualquier corrección a un error causado por mal uso del usuario o por equivocación del sistema deberá
de ser manejado por el usuario administrador.
Capítulo 6. Marco Operativo.
Cuando el Sistema ya pueda ser entregable al cliente, este podrá acceder a la aplicación a través de
cualquier dispositivo Android, siendo esta el principal consumible. También se le dará acceso al usuario
de Firebase que contiene el proyecto con la base de datos.
6.2 Factibilidad.
Técnica
Para el desarrollo del Sistema Administrador de Proyectos Integradores, es necesario el uso de
herramientas que en su mayoría son de uso libre, dando lugar a no generar costos innecesarios puesto
que se usa software de licencia libre.
Por el lado del hardware, el cliente no necesita de adquirir equipo nuevo par a consumir el producto, pero
sí requerirá de la disposición de un equipo de cómputo para un usuario administrador, quien tendrá
acceso a la base de datos de Firestore en caso de ser necesario un ajuste.
Operativa
El personal administrativo del departamento de sistemas se encargará de asignar un usuario
administrador que pueda acceder a la base de datos de Firestore. La disposición de los profesores y
alumnos a usar esta aplicación es un factor importante en la propuesta de este proyecto en primer lugar.
Económica
El deseo por escalabilidad de este proyecto por parte de la administración determinará los costos del
producto, una vez excedido el límite de consultas, el servicio de Cloudbase Firestore ofrece las siguientes
tasas de precios:
Siendo el volumen de operaciones requerido por la institución, no mayor a 20,000 operaciones de escritura
por día, 50,000 operaciones de lectura, ni 20,000 eliminaciones de documentos por día, el costo de
mantenimiento del back-end de la aplicación es NULO.
6.3 Análisis Costo-beneficio (Costo y esfuerzo aplicado, así como las líneas de
código producidas, la velocidad de ejecución, tamaño de memoria, los defectos
observados, etc.)
Costos de recursos:
La aplicación no excederá el consumo de 300 Mb de RAM durante su uso, y su tamaño en almacenamiento
no excederá los 70mb.
Cualquier dispositivo Android con 2gb de RAM y 100 Mb de espacio libre podrá correr esta aplicación.
Costos monetarios:
No se requirió de contratar ningún servicio o pagar por utilidades para el desarrollo del proyecto.
Beneficios Intangibles:
● Se permitirá el acceso a la información desde distintos dispositivos.
● Se disminuirá la probabilidad de la filtración de un intruso a la información.
● Se reducirá la carga de trabajo al automatizar algunos procesos.
● Obtendrán los documentos pertinentes cuando sea necesario de forma inmediata.
● Se disminuirá el tiempo necesario en el proceso de generación reportes.
● La información permanecerá más segura y limpia.
● Habrá una mayor facilidad para consultas de información.
● Se digitalizarán documentos para su resguardo y rápido acceso.
Desarrollo. - Esta aplicación fue desarrollada utilizando Kotlin y XML a través del IDE Android Studio,
también haciendo uso de la herramienta Firebase de Google para la base de datos NoSQL.
Pruebas. - La aplicación fue constantemente testeada a lo largo de su desarrollo para comprobar que cada
función fuera correctamente implementada.
Capacitación. - Tras capacitar al personal en la instalación de la aplicación, realmente no hay necesidad
de capacitar al usuario de la función, siendo que el interfaz es bastante intuitivo y contiene explicaciones
dentro del mismo.
Implementación. - Tras ser subida para acceso público, la aplicación se implementa para el uso en un
dispositivo móvil Android
Cloud Firestore fungiendo como el gestor principal de nuestra base de datos, basada en colecciones en vez
de tablas, ya que esta es una BD documental, cada registro es un “documento” que tiene atributos
individuales. Firebase Storage sirviendo la función de almacenamiento de archivos (en este caso PDF).
Y por último Firebase Authentication, el cual provee un servicio de autenticación de usuarios aplicado en el
Login del proyecto, que provee mayor seguridad de información.
Firebase no cuenta con gestión de bases de datos de tipo relacional, tomando un modelo de base de datos
documental que nos permite mayor flexibilidad en el diseño de la base de datos, a costa del mayor sentido
de integridad que proporciona una base de datos con SQL. Debido a que la escala del proyecto no dará paso a
un escalamiento en la complejidad de la base de datos, no se tomó la integridad de la base de datos una
prioridad sobre la facilidad de uso y flexibilidad proporcionados por Firebase.
Siendo esta una base de datos documental, consiste en colecciones de documentos en vez de
tablas como lo sería en una relacional, a continuación, se muestran las colecciones ya creadas
con sus respectivos atributos:
• Alumnos.
• Profesores.
• Proyectos.
Nota: Firebase requiere de al menos un documento existente (siendo este el
equivalente a un registro en una table de una BD relacional) al crear la base de datos, se
utilizó este proyecto como referencia en el primer documento ejemplo.
La declaración de los atributos de la colección “Proyectos” es la siguiente:
departamentos: Array
dep:String ("Sistemas")
plan: String ("ISIC-2010-224")
materias: Array
_id: String
nombre: String
semestre: String
compPrevia: String
compDes: String
producto: Array
institución: String
profResp: "Carlos Arturo Aguilar"
alumnos: Array
_id: ObjectID
ncontrol: Int
nombre: String
semestre: Int
apellidos: String
departamento: String
títuloProyecto: String
colab: String
Cliente: String
materiaEje: String
periodo: Object
inicio: Date
fin: Date
areaConoc: String
tipoEjec: String
tipoProyecto: String
planteamiento: "String
justificacion: String
alcances: String
limitesyRest: String
asignaturas: Array
cronograma: Array
impactoProy: String
Un ejemplo de creación de una nueva colección en el mismo proyecto de Firestore sería el siguiente:
En este ejemplo se crea una nueva colección con la id Materias, donde el primer documento tiene por id
GPS, y sus campos son “profesor” de tipo string y “horario” de tipo map, el cual funciona como tipo
Object, permitiéndonos añadir un equivalente a una subcolección.
El propósito de Firebase es que las altas, bajas y consultas de la información puedan ser llamadas
directamente en el código de Kotlin a forma de funciones y objetos, sin tener que requerir de parsear
consultas a través de SQL, un alta por lo general tomaría la siguiente forma:
En el código anterior se representa una función que guarda datos en la colección de Firestore, en este
ejemplo se buscan guardar dos variables, firstName y lastName en la colección users. Para referenciar la
base de datos de Firestore, se declara una variable de referencia que toma la instancia de la base de
datos, y la información a subir se guarda creando un Hashmap con los datos del usuario, en este caso su
nombre y apellido, y simplemente se añade a la colección “users” a través del método .add
Altas y Bajas:
A continuación, se muestra un ejemplo de un alta en la colección Alumnos:
A continuación, un ejemplo de una baja:
6.6.6. Tipos o clasificación de usuarios y sus privilegios correspondientes; además presentar
una propuesta de control de acceso de los usuarios a la aplicación y/o plataforma.
Dada la naturaleza del modelo no relacional de Firestore y la baja escala del proyecto, el único control
de concurrencia de transacciones se da en los límites de reglas.
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write
allow write: if request.auth != null
}
}
}
Donde la sentencia allow write: if request.auth 1=null hace que toda operación en la BD sea manejada
como una transacción atómica.
Firestore permite consultas concurrentes de información, a continuación, se muestran las tasas que
puede manejar en la versión gratuita utilizada en este proyecto:
Capítulo 7. Manuales.
7.1 Manual Técnico
7.1.1 Introducción
Este manual proporciona información técnica sobra la aplicación.
Android Studio.
Android Studio es el entorno de desarrollo integrado (IDE) oficial para el desarrollo de apps para Android y está
basado en IntelliJ IDEA. Además del potente editor de códigos y las herramientas para desarrolladores de
IntelliJ, Android Studio ofrece incluso más funciones que aumentan tu productividad cuando desarrollas apps
para Android, como las siguientes:
• Un sistema de compilación flexible basado en Gradle
• Un emulador rápido y cargado de funciones
• Un entorno unificado donde puedes desarrollar para todos los dispositivos Android
• Aplicación de cambios para insertar cambios de código y recursos a la app en ejecución sin
reiniciarla
• Integración con GitHub y plantillas de código para ayudarte a compilar funciones de apps comunes
y también importar código de muestra
• Variedad de marcos de trabajo y herramientas de prueba
• Herramientas de Lint para identificar problemas de rendimiento, usabilidad y compatibilidad de
versiones, entre otros
• Compatibilidad con C++ y NDK
• Compatibilidad integrada con Google Cloud Platform, que facilita la integración con
Google Cloud Messaging y App Engine
Firebase.
Cloud Firestore es una base de datos flexible y escalable para el desarrollo en servidores, dispositivos móviles
y la Web desde Firebase y Google Cloud. Al igual que Firebase Realtime Database, mantiene tus datos
sincronizados entre apps cliente a través de objetos de escucha en tiempo real y ofrece soporte sin conexión
para dispositivos móviles y la Web, por lo que puedes compilar apps con capacidad de respuesta que funcionan
sin importar la latencia de la red ni la conectividad a Internet. Cloud Firestore también ofrece una integración
sin interrupciones con otros productos de Firebase y Google Cloud, incluido Cloud Functions.
2. Vaya a la configuración del teléfono y seleccione la configuración de seguridad. Habilite la opción que
dice Instalar desde recursos desconocidos.
3. Vaya al explorador de archivos y haga clic en la carpeta descargada. Toque el archivo APK de la
aplicación para comenzar a instalarla.
7.2.3 Login
Al iniciar la aplicación, la primera pantalla que se nos mostrará es el Login, la cual consta de dos campos
de texto donde se pide al usuario que introduzca su e-mail y contraseña, y de un dropdown menu con
las opciones “Alumno” y “Profesor”.
Al introducir las credenciales de usuario y tocar el botón de Iniciar Sesión, accederemos al módulo
seleccionado en el dropdown menu.
Al iniciar sesión en el módulo de Alumno, se muestra al usuario la pantalla de sus proyectos asignados.
Miniaturas de cada proyecto con su título e información básica son desplegados de manera scrolleable, al tocar
cualquier miniatura, el usuario será llevado a la pantalla con los detalles del proyecto.
7.2.5 Módulo Profesor
Si el usuario tiene credenciales como Profesor y seleccionó este módulo, la pantalla de inicio al hacer login
será la siguiente:
Se muestran miniaturas de los proyectos asignados al usuario en las cuales es posible hacer tap para ir a la vista
detallada.
También existe la opción de crear un nuevo proyecto haciendo click en el botón con este nombre. Si el usuario
hace esto, se le llevará a una pantalla donde podrá hacer el alta de un proyecto.
Una vez introducidos los datos en los campos correspondientes, puede hacer tap en el botón confirmar y se
habrá generado el alta de un nuevo Proyecto y se le llevará de vuelta a la vista de proyectos asignados,
mostrando el nuevo registro añadido.
7.2.5.3 Modificar Proyecto Existente.
Al hacer tap en la opción de modificar un proyecto existente, el usuario será llevado a la siguiente pantalla:
Para realizar un cambio en cualquier campo, simplemente se debe seleccionar el campo a modificar, reescribir
la información dentro de este, y seleccionar el botón confirmar.
CONCLUSIONES
La digitalización de la información es una necesidad en la actualidad, en especial en el ámbito educativo, es por
esto que el desarrollo de nuevas herramientas que hagan del acceso a la información académica algo más
sencillo siempre serán un gran avance.
RECOMENDACIONES
Se recomienda al usuario dar un uso correcto al sistema y no intentar abusar de cualquier debilidad en la
construcción del mismo, este proyecto tiene como único propósito el facilitar a la comunidad estudiantil la
información referente a sus proyectos Integradores.
APORTACIONES
El mayor reto a continuación será unificar ambos módulos, ya que el desarrollo del módulo móvil no comparte
base de datos con el módulo web, aunque esta fue estructurada de la forma más similar posible, pero con
distintas herramientas.
Bibliografías