Análisis
En esta sección se desarrolla y explica los elementos o entes que participan en el problema que se aborda en el proyecto de notas y estudiantes. El objetivo es comprender el sistema y sus interacciones con el medio externo.
El problema identificado es la presencia de una aplicación monolítica que concentra todas las funcionalidades y servicios en una única entidad. Esta arquitectura presenta desafíos en términos de mantenibilidad, escalabilidad y separación de responsabilidades. Por lo tanto, se propone una solución basada en una arquitectura orientada a servicios, con el objetivo de separar el frontend del backend.
El sistema en cuestión se centra en el desarrollo de una aplicación de notas y estudiantes, que simula una plataforma educativa. El objetivo principal es desacoplar las responsabilidades del frontend y el backend, mejorando así la modularidad, la flexibilidad y la mantenibilidad del sistema. Además, se busca resguardar y visibilizar las notas de los estudiantes, permitiendo consultar y administrar la información de manera eficiente y segura.
Para abordar este problema, se aplican conceptos y principios de ingeniería de software. La programación orientada a objetos, estudiada en el curso ELO329 de Programación Orientada a Objetos, resulta fundamental en este contexto. Mediante la creación de clases y el uso de un ORM (Mapeo Objeto-Relacional) para interactuar con la base de datos, se logra una estructura más organizada y reutilizable. Además, se enfatiza la importancia de la investigación y consulta de fuentes confiables para aplicar las mejores prácticas y enfoques en el diseño y desarrollo del sistema.
Además de los aspectos técnicos, se considera una arquitectura basada en servicios, donde se define una API REST como interfaz de comunicación entre el frontend y el backend. Esta arquitectura permite una comunicación flexible y desacoplada entre los componentes del sistema, facilitando la escalabilidad y la interoperabilidad.
El sistema interactúa con el medio externo a través de una base de datos, en la cual se almacenan y consultan los datos de estudiantes, profesores y notas. También se contempla la integración con otras aplicaciones que puedan consumir la API REST, ampliando así las posibilidades de uso y brindando una mayor versatilidad.