DOCUMENTACIÓN DEL PROYECTO — DICCIONARIO BILINGÜE
(ESPAÑOL–INGLÉS)
Violeta Vinasco López - 30000138376
Samuel Mejía Chavarriaga - 30000139842
Juan Felipe Rodriguez Castro - 30000140797
Estudiantes
Carlos Mario Paredes
Profesor
Universidad de San Buenaventura
Facultad de Ingeniería
Ingeniería en Sistemas
Programación Orientada a Objetos
Santiago de Cali
Noviembre 14 de 2025
1. Introducción
El presente documento describe el diseño, desarrollo e implementación
de una aplicación de escritorio en Java orientada a apoyar el proceso de
aprendizaje del idioma inglés en instituciones educativas con recursos
limitados.
El sistema proporciona un traductor Español–Inglés, gestión de usuarios
(estudiantes, docentes y administradores), registro de búsquedas y estadísticas
de uso.
El proyecto se desarrolló bajo los principios de Programación Orientada
a Objetos (POO), aplicando conceptos como abstracción, herencia,
polimorfismo, encapsulación, manejo de excepciones, persistencia en archivos
y diseño modular a través de interfaces.
2. Descripción General del Sistema
El sistema es una aplicación de escritorio desarrollada con Java Swing,
diseñada para funcionar sin conexión a Internet y sin uso de bases de datos,
utilizando archivos de texto como mecanismo de almacenamiento persistente.
El programa permite:
Autenticación de usuarios.
Gestión de un diccionario bilingüe.
Búsqueda y traducción de palabras.
Traducción literal de frases completas.
Registro automático de búsquedas de estudiantes.
Generación de estadísticas globales y por usuario.
Los archivos de datos se almacenan en la carpeta TXT/ y se cargan en
memoria al iniciar el sistema.
3. Estructura del Proyecto
src/main/java
├── GUI/ # Interfaces gráficas (Swing)
└── Traductor/ # Lógica de dominio y servicios
TXT/ # Almacenamiento en archivos de texto
3.1 Paquete Traductor
Contiene la lógica del sistema, modelos, servicios y control del flujo general.
Clase / Interfaz Descripción
Punto de entrada del sistema; inicializa
Main
servicios y muestra la primera vista.
Singleton que provee acceso a
Servicios
diccionario, usuarios e historial.
API e implementación para agregar,
IDiccionario / Diccionario
buscar, traducir y contar palabras.
IGestorUsuario / GestorUsuario CRUD de usuarios del sistema.
IRegistroBusquedas / Registro y consulta del historial de
RegistroBusquedasManager búsquedas.
Jerarquía de usuarios (Estudiante,
IUsuario / Usuario y subclases
Docente, Administrador).
Modelo de palabra español–inglés con
Palabra
validación y contador de uso.
Modelo para representar cada
RegistroBusqueda
búsqueda realizada con fecha y hora.
Herencia y polimorfismo
La herencia se aplica sobre el modelo de usuario:
IUsuario
└── Usuario (abstracta)
├── Estudiante
├── Docente
└── Administrador
Esto permite que cada tipo de usuario tenga permisos y comportamientos
diferenciados dentro del sistema.
3.2 Paquete GUI
Contiene las interfaces gráficas del sistema, implementadas con Java Swing
(JFrame + componentes).
Principales ventanas:
Ventana Función
LoginPrincipal Permite ingresar credenciales de acceso.
MenuEstudiante /
Menús adaptados según tipo de usuario.
MenuDocente
BuscarPalabra Búsqueda puntual de palabras y traducción.
Traducción literal de frases preservando
TraducirFrase
estructura.
Diccionario /
Gestión de palabras: alta, baja y listado.
GestionDiccionario
RegistroUsuarios /
CRUD de usuarios.
ListaUsuarios
HistorialBusqueda Muestra historial global.
Reportes por estudiante (palabras más
EstadisticaEstudiante
buscadas, totales, no encontradas).
Todas las ventanas secundarias incluyen:
Botón Volver
DISPOSE_ON_CLOSE para no cerrar la aplicación principal
4. Almacenamiento (TXT/)
El sistema utiliza archivos de texto para persistir la información:
4.1 Archivos
Archivo Contenido Formato
Lista del
[Link] espanol;ingles;contador
diccionario
Usuarios
[Link] nombre;tipoDoc;numDoc;tipoUsuario;contrasena
registrados
Búsquedas de
[Link] documento;palabra;encontrada;fechaHora
estudiantes
4.2 Funcionamiento
Al iniciar, los servicios cargan los archivos en memoria.
Cualquier actualización sobrescribe el archivo completo.
El formato debe mantenerse intacto para evitar errores.
5. Diseño y Decisiones Técnicas
5.1 Uso de Interfaces
Se implementaron interfaces para desacoplar la lógica de negocio:
IDiccionario
IGestorUsuario
IRegistroBusquedas
IUsuario
Esto facilita la extensibilidad del sistema y el mantenimiento.
5.2 Algoritmos implementados
Para cumplir con las restricciones del curso:
Búsqueda secuencial para localizar palabras y usuarios.
Ordenamiento burbuja para ordenar el historial por fecha o número de
búsquedas.
Selección del máximo para determinar palabras más consultadas.
5.3 Traducción de frases
Implementación personalizada sin uso de librerías externas:
Tokenización manual iterando punto por punto Unicode.
Preservación de:
o Espacios
o Signos de puntuación
o Números
Adaptación de capitalización del texto original.
5.4 Validación
Palabras solo pueden contener letras.
Se rechazan números y símbolos.
Se manejan excepciones en la UI mostrando mensajes al usuario.
5.5 Manejo de errores
Uso de try/catch en todas las operaciones críticas.
Mensajes claros en ventanas emergentes.
La aplicación no se cierra inesperadamente.
5.6 Persistencia
Métodos guardar() y cargar() en cada servicio.
Escritura controlada evitando corrupción de datos.
6. Flujo General de Uso
1. El usuario inicia el sistema mediante [Link].
2. Se muestra la pantalla de inicio de sesión.
3. Según el rol:
o Estudiante: puede buscar palabras, traducir frases y ver su
historial.
o Docente/Administrador: accede a todas las funciones,
incluyendo gestión de usuarios y diccionario.
4. Las búsquedas se registran automáticamente si el usuario es estudiante.
5. Las estadísticas pueden consultarse por usuario o globalmente.
7. Ejecución del Programa
Desde IDE (NetBeans, IntelliJ, VS Code)
Ejecutar la clase [Link].
Estructura necesaria
Proyecto/
│── src/main/java/...
└── TXT/
├── [Link]
├── [Link]
└── [Link]
Los archivos se crean si no existen.
8. Buenas Prácticas Aplicadas
Separación estricta entre lógica (Traductor) e interfaz (GUI).
Nombres descriptivos en clases, métodos y variables.
Comentarios en código según necesidad.
Manejo cuidadoso de archivos y excepciones.
Interfaces para minimizar acoplamiento.
10. Conclusiones
El sistema cumple con los requerimientos funcionales y no funcionales
establecidos al inicio del proyecto.
A través del uso de POO, se construyó una solución modular, robusta y
mantenible, adecuada para escenarios educativos sin recursos tecnológicos
avanzados.
El proyecto integra con éxito:
Persistencia en archivos,
Herencia y polimorfismo,
Manejo manual de algoritmos,
Interfaz gráfica,
Registro y análisis de datos en tiempo real.
Se trata de una solución escalable que puede ampliarse sin dificultad para
futuros requerimientos.