Nothing Special   »   [go: up one dir, main page]

TCC de DSW

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 34

Universidad de Cartagena

Centro tutorial San Juan Nepo.

Shedule Time (SMC)


Ingeniería de Software

Autores:

Carlos Guette Colon

Alvaro Novoa Ávila

Luisa Buelvas Arias

Ángel Trujillo Leiva

Documentación del desarrollo de la


página (SMC)

SMC
2024
Índice

1. Título del proyecto


2. Descripción del problema
3. Justificación
4. Objetivos
4.1 Objetivos Generales
4.2 Objetivos específicos
5. Recursos del proyecto
6. Estimación del proyecto
6.1 Story Points
6.2 Estimación por tiempo
6.3 Planning Poker
6.4 Gestor de proyectos
7. Conceptos y Análisis
7.1 Identificación de necesidades
7.1.1 Estudio de viabilidad
7.1.2 Modelado de la arquitectura del sistema
7.1.3 Especificaciones del sistema
8. Selección de un escenario de aplicación
8.1 Product Backlog
8.1.1 Inicio de sesión
8.1.2 Generación de horarios
8.1.3 Consulta de horarios
8.1.4 Administración de horarios
8.1.5 Notificaciones
8.1.6 Interfaz de usuario
8.1.7 Seguridad
9. Conceptos y principios
9.1 Calidad de software
9.2 Requisitos
9.3 Diseño del software
9.4 Desarrollo del software
9.5 Pruebas y mantenimiento
9.6 Ciclo de vida del software
9.7 Documentación
10. Análisis de requisitos
10.1 Requisitos funcionales
10.2 Requisitos no funcionales
11. Diseño de la base de datos
12. Diseño de interacciones con la base de datos:
13. Diagramas de secuencias
14. Modelo o ciclo de vida
15. Diseño arquitectónico
16. Diseño de las interfaces
1. SMC – SHEDULE TIME
2. Descripción del problema
La Universidad de Cartagena, específicamente en su Centro Tutorial San
Juan Nepomuceno, enfrenta una serie de desafíos relacionados con la
comunicación efectiva de los horarios académicos, lo que resulta en una
falta de orientación para los estudiantes. Esta situación motiva la búsqueda
de una solución a través de la aplicación de conocimientos de Ingeniería en
Software. Antes de abordar la propuesta de solución, es esencial identificar
claramente los problemas principales que impulsan este proyecto.
El problema fundamental radica en la desorientación experimentada por los
estudiantes al intentar acceder a sus horarios de clases al comienzo de
cada semestre. Aunque se distribuyen estos horarios a través de grupos de
WhatsApp en formato pdf o excel, muchos estudiantes pueden no estar
incluidos en estos grupos, y no solo se pierden de información relacionada
a los horarios sino también a cualquier otra novedad importante que algún
docente quiera proporcionar, lo que resulta en una falta de recepción de la
información necesaria. Esta situación conduce a una dependencia excesiva
de compañeros para obtener los horarios, lo que puede ocasionar pérdida o
extravío de los mismos, especialmente al tenerlos en formatos no
adecuados para una referencia rápida y constante, lo mismo ocurre con las
fechas importantes a lo largo del semestre, como entregas de unidades,
trabajos finales, exámenes y actividades de recuperación. Además, la
plataforma SMA, aunque tiene este tipo de información, no ofrece una
experiencia óptima de navegación desde dispositivos móviles, lo que
dificulta aún más el acceso a la información esencial. La accesibilidad a la
plataforma SIMA desde dispositivos móviles también representa un desafío,
especialmente para aquellos estudiantes que no tienen acceso constante a
una computadora. La experiencia de usuario es deficiente en dispositivos
móviles, lo que obliga a los estudiantes a depender de computadoras para
acceder a la plataforma, lo cual no siempre es viable, ya que no se puede
estar accediendo las 24 horas del día para estar pendiente en si se hizo
apertura de alguna actividad. Además, las notificaciones generadas por la
plataforma pueden no ser efectivas, ya que no distinguen entre actividades
ya completadas y aquellas pendientes de realización, lo que contribuye a la
confusión generalizada. Por último, la falta de comunicación efectiva sobre
cambios en los horarios de tutorías, en las fechas importantes de todo el
semestre, y de cuando un docente no puede asistir a la clase, puede
generar inconvenientes para nosotros los estudiantes, especialmente para
aquellos que viajan desde fuera de la ciudad y terminan gastando recursos
en transporte sin recibir la enseñanza correspondiente.
En resumen, la Universidad de Cartagena enfrenta una serie de desafíos en
la comunicación y accesibilidad de información académica vital para sus
estudiantes, lo que justifica la necesidad de una solución innovadora y
eficaz.

3. Justificación
El proyecto propuesto busca abordar los desafíos principales que enfrenta
la Universidad de Cartagena, específicamente en su centro tutorial San
Juan Nepomuceno. Para ello, se presenta una solución innovadora en
forma de una aplicación web denominada SMC, diseñada para garantizar
una mayor accesibilidad desde dispositivos móviles. El objetivo fundamental
de esta iniciativa es eliminar las problemáticas que aquejan a esta
institución educativa.
La aplicación SMC tiene como propósito central proporcionar a los
estudiantes un acceso sencillo y rápido a su horario académico. Antes
incluso de que comience el semestre, los usuarios podrán consultar su
horario, conocer las horas de inicio de clase, los nombres de las materias,
los números de aula asignados y los nombres de los tutores
correspondientes. Esta funcionalidad tiene como fin principal orientar al
estudiante de manera efectiva, evitando así la dependencia de compañeros
o de medios no idóneos para acceder a esta información crucial. Además
de facilitar el acceso al horario, la aplicación también se encargará de
mantener informados a los estudiantes sobre fechas importantes durante el
semestre. Mediante alertas, se notificará a los usuarios sobre cualquier
cambio en las fechas clave, la reducción del horario por actividades de
tutoría, así como la ausencia de algún profesor en clase. Para fomentar la
comunicación efectiva entre estudiantes y docentes en caso de ausencia,
se ha integrado un sistema de chat individual con cada profesor, simulando
la experiencia de mensajería instantánea similar a WhatsApp.
La implementación de esta aplicación no solo beneficiará a los estudiantes,
sino que también proporcionará un mayor orden y organización para los
docentes. Al evitar la confusión y el desorden inherentes a los grupos de
WhatsApp, los profesores podrán gestionar de manera más eficiente sus
cursos.
Por otro lado, se busca establecer una conexión entre la aplicación y la
plataforma SIMA, permitiendo así a los estudiantes recibir notificaciones
sobre la apertura de actividades de cada unidad. Estas notificaciones
incluirán recordatorios para aquellos estudiantes que no hayan enviado las
tareas asignadas, lo que evitará que pasen por alto fechas límites
importantes. Esta integración con SIMA no solo beneficiará a los
estudiantes al mantenerlos informados sobre las actividades académicas,
sino que también reducirá la carga administrativa para los tutores al evitar la
necesidad de reabrir actividades debido a retrasos en la entrega.
En resumen, la aplicación SMC representa una solución integral para
mejorar la experiencia académica tanto para estudiantes como para
docentes en la Universidad de Cartagena. Al proporcionar una herramienta
centralizada para acceder a información relevante y gestionar actividades
académicas, se espera promover una mayor organización, eficiencia y
comunicación dentro de la comunidad educativa.

4. Objetivos
Objetivo General:
Desarrollar una página web denominada SMC que aborde las problemáticas de la
Universidad de Cartagena, centro tutorial San Juan Nepomuceno, proporcionando
a estudiantes y docentes una herramienta accesible desde dispositivos móviles
para gestionar horarios, recibir notificaciones importantes y facilitar la
comunicación, con el fin de mejorar la organización y eficiencia en la institución
educativa.

Objetivos Específicos:

 Diseñar la aplicación web SMC con una interfaz intuitiva y compatible con
dispositivos móviles, garantizando su accesibilidad para estudiantes y
docentes.
 Implementar un sistema de gestión de horarios que permita a los
estudiantes consultar sus clases, incluyendo información detallada sobre
materias, horarios de clase, números de aula y nombres de tutores.
 Integrar un sistema de notificaciones que alerte a los usuarios sobre fechas
importantes, cambios en el horario académico y ausencia de profesores,
proporcionando así una comunicación proactiva y eficiente.
 Establecer un sistema de chat individual entre estudiantes y docentes
dentro de la aplicación, simulando la experiencia de mensajería instantánea
para facilitar la comunicación en caso de ausencias o información adicional.
 Conectar la aplicación SMC con la plataforma SIMA para recibir
notificaciones sobre la apertura de actividades de cada unidad académica,
y enviar recordatorios a los estudiantes sobre tareas pendientes, con el
objetivo de mejorar la gestión de actividades académicas y reducir la carga
administrativa para los tutores.
 Evaluar la eficacia y la aceptación de la aplicación SMC mediante
encuestas y análisis de retroalimentación de usuarios, con el fin de
identificar áreas de mejora y realizar ajustes necesarios para optimizar su
funcionamiento y satisfacer las necesidades de la comunidad educativa.
5. Recursos del proyecto

 Recursos Humanos: Se contará dos Back - End encargados del desarrollo


del software y dos Front - End encargado del diseño.

 Componentes de Software Reutilizables: incluir bibliotecas de código


abierto o módulos desarrollados previamente que se pueden utilizar para
acelerar el proceso de desarrollo y mejorar la calidad del software.

 Recursos de Entorno: Incluyen el hardware y software necesarios para el


desarrollo, como computadoras, servidores, sistemas operativos, herramientas
de desarrollo, bases de datos, etc.

 Recursos Tecnológicos:

Para crear el proyecto se usará el stack MERN, el cual contiene las siguientes
tecnologías:

1. Front-end: Html, Css, Javascript y React.

2. Back-end: Nodejs para el servidor, MySQL como gestor de una base


de datos SQL, Java como lenguaje principal y su framework
SpringBoot.

6. Estimación del Proyecto:

Para estimar el proyectó el equipo se basará en el marco de trabajo ágil Scrum, el


cual permitirá al equipo presentar resultados en tiempos cortos llamados sprint y
para poder lograr eso, se realizan las siguientes prácticas:
 Story Points: Técnica usada en Scrum para para estimar las tareas o
historias de usuario, los Story Points hacen referencia a la complejidad y el
esfuerzo que se necesita para poder finalizar la tarea o historia de usuario.
El objetivo es que el equipo de desarrollo realice una estimación del
esfuerzo que les tomará realizar cada historia de usuario y tarea.

 Estimación por tiempo: Esta técnica es usada en Scrum y Kanban, se trata


de estimar directamente por tiempo aquellas historias de usuario que se
encuentran en el Product Backlog. Se buscará estimar las tareas e historias
de usuarios propuestas por el equipo de desarrollo en el product backlog, el
objetivo es que el responsable de cada tarea realice una estimación del
tiempo que le tomará finalizar la historia de usuario completa, aplicando el
análisis, diseño, codificación y prueba.

 Planning Poker: Técnica de estimación grupal y participativa donde los


desarrolladores analizan y opinan sobre las historias de usuario que plantea
el usuario final. Se usan cartas con valores de la secuencia Fibonacci,
cuyos valores representan Story Points donde también se trata de estimar
el esfuerzo y complejidad de una tarea en comparación de otra.

 Gestor de proyectos:

Jira: Es una herramienta en desarrollo de software utilizada para gestionar


tareas, historias de usuario o requerimientos. Tiene la funcionalidad de que
los responsables de las tareas puedan estimar la tarea o responsabilidad
asociada con story points que se usan para estimar el esfuerzo necesario
para completar la tarea. Para crear ClassCrafter se usará Jira como gestor
de proyecto, asignando tareas a cada participante del equipo.

7. Conceptos y Análisis:
 Identificación de Necesidades: En este proyecto se realizará el desarrollo de
una aplicación que satisfaga las necesidades tanto de los estudiantes, como
de los profesores de la universidad de Cartagena, brindándoles así un acceso
fácil y conveniente a sus horarios de clases y fechas estipuladas para todo el
semestre.

 Estudio de Viabilidad: Se analiza la viabilidad técnica para crear la


aplicación, la viabilidad económica para determinar su rentabilidad, la
viabilidad operativa para asegurar su correcto funcionamiento y la viabilidad
legal y de seguridad para proteger la privacidad de los usuarios y prevenir
suplantaciones.

 Modelado de la Arquitectura del Sistema: Se utiliza la notación UML


(Lenguaje de Modelado Unificado) para modelar la arquitectura del sistema,
así mismo, definir cómo los diferentes módulos interactúan entre sí para
lograr las funcionalidades deseadas, cómo se gestionan los datos de
horarios y salones, cómo se integra el sistema de alertas y cómo se
implementa la seguridad.

 Especificaciones del Sistema: Se define la interfaz de usuario, cómo se


mostrarán los horarios y salones, cómo se activarán las alertas y cómo se
llevará a cabo la autenticación biométrica. Además, las especificaciones
abordarán aspectos técnicos como la compatibilidad con dispositivos, la
velocidad de respuesta y los requisitos de almacenamiento de datos.

8. Selección de un escenario de aplicación:

SMC – SHEDULE TIME ha sido creado para facilitarles la vida a estudiantes,


profesores y administradores mediante un sistema de gestión del cronograma
académico.
 Product Backlog:

Inicio de sesión:

 Los usuarios podrán iniciar sesión con su rol específico, usuarios,


profesores, coordinadores y administradores.

 Configuración de permisos para cada usuario.

 Cada usuario podrá cambiar su contraseña en caso de olvido.

Generación de horarios:

 Los coordinadores y administrativos podrán crear horarios para una carrera


en un semestre específico. Configuración de permisos para cada usuario.

 Asignar profesores a un horario.

Consulta de horarios:

 Mostrar horarios de estudiantes (dependiendo de su carrera y semestre) y


profesores.

 Mostrar horarios para roles de coordinadores y administrativos.

Administración de horarios:

 Los administradores podrán crear, editar y eliminar horarios.


 Asignación de horarios para profesores y estudiantes.

Notificaciones:

 Implementar un sistema de notificaciones en tiempo real.

 Los profesores, coordinadores y administradores tendrán permisos para


enviar notificaciones.

Interfaz de usuario:

 Implementar una interfaz de usuario donde se facilite la navegación para los


diferentes usuarios, además, debe ser responsiva para que se pueda
adaptar a dispositivos móviles.

 Interfaz de usuario para inicio de sesión.

 Interfaz de usuario para consultar horarios.

 Los usuarios administrativos podrán consultar el registro de actividad de


cada usuario.

Seguridad:

 La aplicación debe permitir proteger los datos de todos los usuarios.

 La aplicación debe implementar control de acceso para proteger las


cuentas, como una autenticación de identidad por huella o por mensaje
SMS.

9. Conceptos y principios:
Calidad del Software: La calidad del software es un aspecto fundamental en
nuestro proyecto, ya que influirá directamente en la satisfacción de los usuarios,
en este caso, los estudiantes, profesores y coordinadores universitarios.
Buscamos garantizar que nuestro software sea de alta calidad en términos de
corrección de errores, fiabilidad, eficiencia, mantenibilidad y usabilidad.

 Corrección de errores: Nos comprometemos a realizar pruebas exhaustivas


para identificar y corregir cualquier error que pueda surgir en el software.
Además, implementaremos un sistema de seguimiento de errores para
abordar rápidamente cualquier problema que los usuarios puedan encontrar.
 Fiabilidad: Nuestro objetivo es que el software funcione de manera
confiable en todo momento. Implementaremos redundancias y medidas de
seguridad para minimizar los posibles fallos del sistema.
 Eficiencia: Trabajaremos en la optimización de la velocidad y el rendimiento
del software para garantizar una respuesta rápida a las consultas de los
usuarios.
 Mantenibilidad: Diseñaremos el código de manera modular y
documentaremos adecuadamente para facilitar futuras actualizaciones y
modificaciones. Esto asegurará que el software pueda mantenerse y
evolucionar con facilidad.
 Usabilidad: La interfaz de usuario será intuitiva y fácil de usar para que los
estudiantes, profesores y coordinadores puedan acceder a la información
que necesitan de manera rápida y sencilla.

Requisitos: La definición y gestión adecuada de los requisitos es esencial para el


éxito de nuestro proyecto. Esto implica una comunicación efectiva con todas las
partes interesadas, incluyendo estudiantes, profesores y coordinadores, para
comprender completamente sus necesidades y expectativas.
 Realizaremos reuniones regulares con las partes interesadas para recopilar
y validar requisitos. Esto garantizará que no haya ambigüedades en la
comprensión de lo que se espera del software.

 Utilizaremos herramientas de documentación de requisitos para registrar


y mantener un seguimiento de los requisitos a lo largo del ciclo de vida del
proyecto.

 Realizaremos pruebas de validación con usuarios reales para asegurarnos


de que el software cumple con los requisitos y expectativas establecidos.

Diseño del Software: El diseño del software es otro concepto crucial que
impactará en su arquitectura y funcionalidad.

 Implementaremos una arquitectura modular que permita la escalabilidad y


la fácil incorporación de nuevas funcionalidades en el futuro.

 Se prestará especial atención al diseño de la interfaz de usuario para


garantizar que sea atractiva y fácil de usar.

Desarrollo del Software: El proceso de desarrollo se llevará a cabo siguiendo


metodologías ágiles, lo que nos permitirá adaptarnos rápidamente a los cambios y
retroalimentación de los usuarios. Además, promoveremos prácticas de desarrollo
colaborativo y revisión de código para garantizar la calidad y consistencia en todo
el proyecto.

Pruebas y Mantenimiento: Las pruebas son procesos preparados y controlados


que se le hacen al software para comprobar su funcionamiento y evaluar su
calidad. El mantenimiento de software son las actividades que se le hacen al
software para corregir errores, hacer actualizaciones, mejorar el rendimiento y
seguridad. Al momento de desarrollar ClassCrafter se harán todas las pruebas
necesarias para poner aprueba el funcionamiento de cada una de las
funcionalidades y se hará cada uno de los mantenimientos necesarios para el que
software sea funcional y seguro.

Ciclo de vida del software: El ciclo de vida del software se refiere a todas las
etapas por las que pasa el proyecto de software, desde su inicio en los
requerimientos hasta posibles retiros de software obsoletos. Para construir el
producto de software planteado por los desarrolladores, se seguirá la ruta del ciclo
de vida pasando por las etapas de, requerimientos, análisis, desarrollo, pruebas,
despliegue, mantenimiento y retiro.

Documentación: Se refiere a la información escrita sobre el software,


proporcionando detalles para usuarios, desarrolladores, etc. Se usa para facilitar la
comprensión del software, su funcionamiento y su mantenimiento. Existen
diferentes tipos de documentación que servirá al equipo de desarrollo, como las
siguientes:

 Documentación Técnica: Contiene todos los escritos sobre el software y su


arquitectura, incluye diagramas y explicaciones para los desarrolladores.
También contiene comentarios en el código fuente que explican cada parte
del código.

 Documentación de usuario: Construida para usuarios finales, contiene


instrucciones del uso, funcionamiento del producto y guías de ayuda.

 Documentación de pruebas: Contiene toda la información de las pruebas


que se le hicieron al software, que parte se probó y cuál fue el resultado.
Además, contiene errores y problemas encontrados durante las pruebas.
 Documentación de versiones: Enumera todas versiones por las cuales ha
pasado el proyecto de software, contando los cambios y mejoras
implementadas.

10. Análisis de los requisitos

Requisitos Funcionales:

RF—01: Inicio de Sesión


Descripción: EL sistema de permitir el inicio de sesión de los usuarios existentes
en la base de datos, requiriendo su número de documento de identidad y
contraseña.
Criterios de verificación: El sistema tomará la información enviada desde el cliente
y verificará si el usuario existe, si su contraseña es correcta y generará un token
de acceso con su rol.

RF—02: Gestión de horarios


Descripción: EL sistema de permitir a los usuarios con roles de coordinador y
administrador crear, consultar, eliminar y editar los horarios.
Criterios de verificación: El sistema verifica si el usuario que hace la acción tiene
los roles de permiso y después tomará la información enviada desde el cliente y
verificará si no existe el horario para luego crearla.

RF—03: Gestión de usuarios


Descripción: EL sistema de permitir a los usuarios con roles de administrador crear
usuarios, consultarlos, editarlos y eliminarlos.
Criterios de verificación: El sistema verificará si el usuario quien hace la acción
tiene el rol permitido, luego ejecuta lo que el cliente desea.

RF—04: Consulta de horarios


Descripción: EL sistema de permitir los usuarios con rol de estudiante y profesor
consultar los horarios asignados.
Criterios de verificación: El sistema verificará el rol en token para después mostrar
la información dependiendo del usuario que hace la consulta.

RF—05: Interfaz de usuario


Descripción: EL sistema de permitir al usuario interactuar en una interfaz de
usuario dependiendo de su rol, los estudiantes y profesores podrán consultar sus
horarios, los coordinadores y administradores podrán gestionar horarios y solo los
administradores podrán gestionar usuarios.
Criterios de verificación: El sistema tomará la información enviada desde el cliente
y verificará si el usuario existe, si su contraseña es correcta y generará un token
de acceso con su rol.

Requisitos No Funcionales:

RNF—01: Seguridad
Descripción: EL sistema debe implementar la seguridad de los datos de los
usuarios, también debe implementar la seguridad de las rutas en base a los roles
para asignarles los métodos que pueden usar los usuarios dependiendo de su rol.
Criterios de verificación: El sistema debe implementar medidas de seguridad como
autorización y autenticación de usuarios en cada consulta que se hace al servidor,
esto para verificar si el usuario tiene acceso, tiene su rol, etc.

RNF—02: Usabilidad
Descripción: EL sistema de contar con una interfaz de usuario intuitiva, sencilla y
fácil de usar; el inicio de sesión es el mismo para cada usuario, pero dependiendo
del rol del usuario su dashboard cambiará según sus permisos.
Criterios de verificación: Se complementará con un tutorial de primera vez que
indicará al usuario lo que puede y no puede hacer en la aplicación.
RNF—03: Escalabilidad
Descripción: EL sistema debe estar organizado, ser escalable y contar con
software creado con los mejores estándares de programación, esto es para tomar
medidas contra el crecimiento de la aplicación y sus usuarios.
Criterios de verificación: La arquitectura del software debe estar creada para
escalar en posibles nuevos recursos que se desean añadir, como el inicio de
sesión por huella digital.

RNF—04: Documentación
Descripción: Se requiere una documentación clara y completa del sistema para
facilitar su comprensión y mantenimiento.
Criterios de verificación:
Manual de usuario: Debe existir un manual de usuario que explique de manera
sencilla cómo utilizar el sistema.
Documentación de código: Se debe proporcionar documentación en el código
fuente para que los desarrolladores puedan entender y mantener el software.
Guía de ejecución: Debe haber una guía de ejecución paso a paso para facilitar
la implementación del sistema.
11. Diseño de la base de datos

12. Diseño de interacciones con la base de datos:


13. Diagramas de secuencias
14. Modelo o ciclo de vida
15. Diseño arquitectónico

De manera detallada se presenta un modelo de arquitectónico donde mostramos


como se analizan los datos que provienen de estudiantes, profesor, coordinador y
administrador en los diferentes módulos del sistema para el correcto
funcionamiento de software y la asignación de clases de cada estudiante.

16. Diseño de las interfaces

Login

Desktop
Móvil
Dashboard

Desktop
Móvil

También podría gustarte