0% encontró este documento útil (0 votos)
11 vistas8 páginas

Diccionario Bilingüe: App Java POO

El documento detalla el diseño y desarrollo de una aplicación de escritorio en Java para facilitar el aprendizaje del inglés en instituciones educativas con recursos limitados, incluyendo un traductor Español-Inglés y gestión de usuarios. La aplicación funciona sin conexión a Internet, utiliza archivos de texto para almacenamiento y aplica principios de Programación Orientada a Objetos. Se implementan características como autenticación de usuarios, registro de búsquedas y generación de estadísticas, asegurando una solución modular y escalable.
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)
11 vistas8 páginas

Diccionario Bilingüe: App Java POO

El documento detalla el diseño y desarrollo de una aplicación de escritorio en Java para facilitar el aprendizaje del inglés en instituciones educativas con recursos limitados, incluyendo un traductor Español-Inglés y gestión de usuarios. La aplicación funciona sin conexión a Internet, utiliza archivos de texto para almacenamiento y aplica principios de Programación Orientada a Objetos. Se implementan características como autenticación de usuarios, registro de búsquedas y generación de estadísticas, asegurando una solución modular y escalable.
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

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.

También podría gustarte