Definición del problema

Estamos rodeado en un mundo donde el usuario puede llegar a utilizar mas de 1 dispositivo para el trabajo, ya sea el portátil, el computador de escritorio, el pc de la oficina, etc. Esto puede causar problemas en las versiones de archivo, donde el archivo creado desde una estación de trabajo, puede diferir de la versión no actualizada en el equipo portátil.

Análisis del problema

En este problema existen 3 entes que interactúan entre sí, por un lado tenemos a el Usuario y por el otro tenemos el programa y la base de datos, para el usuario la base de datos y el programa son el mismo ente, dado que el único propósito de la base de datos es interactuar con el programa y nadie más.

La interacción del sistema con el usuario se hace a través de una interfaz gráfica en el equipo de trabajo del usuario, el sistema no interactua con nadie mas aparte de el usuario.

El sistema le permite al usuario crear archivos, editar archivos y eliminar archivos, también le permite crear una cuenta que se utiliza durante la ejecución del programa, por supuesto si el usuario ya posee cuenta no necesita crear otra.

Casos de Uso

Caso 1

  • Nombre: Crear cuenta nueva.
  • Propósito: Se crea una cuenta nueva para el usuario.
  • Actores: El usuario.
  • Pre-condiciones: El software se está ejecutando.
  • Tipo: Manual.
Usuario Sistema
1) Usuario presiona el botón 'Login' 2) El sistema le muestra una ventana para que se conecte, o cree una cuenta nueva
3) Usuario presiona 'Crear cuenta' 4) El sistema el pide al usuario:
  • Su nombre
  • Su correo electrónico
  • Su apodo (Nickname)
  • Su contraseña
5) Usuario ingresa los datos pedidos
6) Tras finalizar, el usuario presiona el botón 'crear' 7) El sistema crea una cuenta nueva para el usuario con los datos ingresados

Caso 2

  • Nombre: Crear nuevo archivo.
  • Propósito: Crear un nuevo archivo asociado a la cuenta del usuario.
  • Actores: El usuario.
  • Pre-condiciones: El software se está ejecutando, el usuario ya posee una cuenta y está autenticado.
  • Tipo: Manual.
Usuario Sistema
1) Usuario presiona el menú 'File'. 2) El sistema le muestra una lista de acciones posibles:
  • New
  • Delete
  • Logout
3) Usuario selecciona 'New'. 4) El sistema le pide al usuario el nombre de el nuevo archivo.
5) Usuario ingresa el título en el campo de texto disponible.
6) Al finalizar, el usuario presiona el botón 'Ok'. 7) Sistema crea el nuevo archivo y lo abre para su edición.

Caso 3

  • Nombre: Borrar archivo.
  • Propósito: Borra un archivo asociado a la cuenta del usuario.
  • Actores: El usuario.
  • Pre-condiciones: El software se está ejecutando, el usuario ya posee una cuenta, está autenticado y tiene seleccionado un elemento para eliminar.
  • Tipo: Manual.
Usuario Sistema
1) Usuario presiona el menú 'File'. 2) El sistema le muestra una lista de acciones posibles:
  • New
  • Delete
  • Logout
3) Usuario selecciona 'Delete'. 4) El sistema cierra el archivo actualmente abierto y lo elimina.

Diagramas

La solución incluye un diagrama de secuencia para eliminar un archivo, un diagrama de clases y un modelo de la base de datos

Diagrama de secuencia UML


Diagrama de clases UML


Modelo de base de datos


Pruebas

Prueba 1

Para crear una cuenta nueva, se procede a realizar el paso a paso.

Primero, se hace click en 'Login'


Luego, hacer click en 'Crear Cuenta'


Luego, Rellenar los campos solicitados

Aqui podemos ver el resultado en la base de datos:



Resultado: Exitoso

Prueba 2

Para crear un nuevo archivo, se procede a realizar el paso a paso.

Primero, se hace click en 'File'


Luego, hacer click en 'New'


Luego, Llenar con un título

Aqui podemos ver el resultado en nuestro programa:



Resultado: Exitoso

Prueba 3

Para borrar un archivo ya seleccionado, se procede a realizar el paso a paso.

Primero, se hace click en 'File'


Luego, hacer click en 'Delete'


Finalmente, se observa que el archivo ha sido eliminado



Resultado: Exitoso

Problemas durante el transcurso del proyecto

  • La implementación de la interfaz gráfica era un problema, pero luego de usar la herramienta “JFormDesigner”, la implementación se agilizo bastante.
  • El cómo editar múltiples archivos de la base de datos en la aplicación fue un desafío, lo logramos utilizando archivos temporales para almacenar los archivos y así editarlos sin inconvenientes y luego subirlos a la base de datos.
  • La encriptación de los archivos fue un problema que no pudimos resolver, esto se debió a la falta de tiempo de ambos.
  • Es posible que el contenido de los archivos temporales no sea eliminado, esto ocurre si la aplicación se cierra de forma inesperada, esto no sería un problema si el contenido estuviera encriptado, pero como antes mencionado, implementar eso no fue posible.

Lista de bugs encontrados:

  • La aplicación emite errores si el usuario intenta eliminar un archivo cuando no tiene archivos que eliminar (la aplicación no se cae)

Implementación e instrucciones de uso

Para la implementación se trabajó bajo el Sistema Operativo Windows 7 y Windows 10, se utilizó el Software Eclipse Version: Mars Release (4.5.2), en conjunto con la herramienta JFormDesigner (5.2)

Para el funcionamiento correcto se requiere una base de datos, esta se encuentra levantada online y está configurada en el código fuente.

Para compilar el programa, se puede realizar con el siguiente comando:

~$ make

Una vez compilado, el programa se puede ejecutar con el siguiente comando:

~$ make run 

Para eliminar los archivos .class generados por Java, se puede ejecutar el siguiente comando:

~$ make clean 

Descarga

Para descargar el código fuente del programa, haga click aquí

Para poder compilar el archivo, se requiere una version de Java 1.8.0_73 o superior