Anda di halaman 1dari 14

Informe de desarrollo de Aula (App para Agendar disponibilidad en los horarios de las aulas)

Programacin III

Informe de Desarrollo.

Proyecto: Aula (App para Agendar disponibilidad en los


horarios de las aulas).

Miguel ngel Macas.

UNIVERSIDAD ESTATAL DE CUENCA


Semestre sep/2016 feb/2016

DESARROLLADO POR: MIGUEL NGEL MACAS

Informe de desarrollo de Aula (App para Agendar disponibilidad en los horarios de las aulas)
Programacin III

Tabla de contenido
1.

2.

3.

4.

5.

INTRODUCCIN .................................................................................................................... 3
1.1.

Formulacin del problema. ........................................................................................... 3

1.2.

Presentacin del proyecto. ........................................................................................... 3

DISEO DEL SISTEMA. .......................................................................................................... 4


2.1.

Diagrama de casos de uso. ............................................................................................ 4

2.2.

Diagrama de clases. ....................................................................................................... 5

2.3.

Interfaz grfica. ............................................................................................................. 6

2.3.1.

Ventana principal: Home....................................................................................... 6

2.3.2.

Ventana de formulario: form. ............................................................................... 7

2.3.3.

Ventana de horario: horario.................................................................................. 8

2.3.4.

Ventana de consulta: infoAula. ............................................................................. 9

2.3.5.

Ventana de seleccin: libres................................................................................ 10

ESTRUCTURA DE DATOS. .................................................................................................... 11


3.1.

ArrayList. ..................................................................................................................... 11

3.2.

JList. ............................................................................................................................. 11

3.3.

Matriz 7x5.................................................................................................................... 11

3.4.

Tablas en SQLite. ......................................................................................................... 11

PROGRAMACIN POR CAPAS. ........................................................................................... 12


4.1.

Capa de Presentacin. ................................................................................................. 12

4.2.

Capa de Negocios. ....................................................................................................... 13

4.3.

Capa de Datos. ............................................................................................................ 14

CONCLUSIONES. .................................................................................................................. 14

DESARROLLADO POR: MIGUEL NGEL MACAS

Informe de desarrollo de Aula (App para Agendar disponibilidad en los horarios de las aulas)
Programacin III

1. INTRODUCCIN
Se propuso como trabajo de interciclo de la asignatura Programacin III, la elaboracin de un
proyecto de software. Este proyecto debe ser desarrollado en el lenguaje de programacin
Java, el cual debe cubrir con los objetivos planteados en clase:
Agrupar los diferentes mdulos de software en conjuntos con el mismo o similar fin.
Distinguir en qu situaciones no sera una ventaja utilizar programacin en capas.
Utilizar tecnologa de implementacin para desarrollar un sistema utilizando la
programacin en capas.

1.1.

Formulacin del problema.

Para la elaboracin del proyecto, primeramente se deba encontrar un problema al cual poder
darle solucin.
Como desarrollador del proyecto, deb fijarme en problemas que se encuentren a m
alrededor. Rpidamente pens en el horario de las aulas, pero a un mbito ms especfico. El
problema surge debido a la falta de control sobre la disponibilidad de ciertas aulas y
laboratorios en horarios especficos. El problema se encuentra en los laboratorios de la
Facultad de Ingeniera de la Universidad de Cuenca.
Un alumno desea saber en qu momento del da un aula/laboratorio en particular se
encuentra libre (no se est dando clases), para esto se recure usualmente a revisar la cartelera
del lobby, en la cual se encuentra un horario con las materias y asignaturas de los laboratorios.
En algunos casos el estudiante opta por ir tocando de puerta en puerta si un aula se encuentra
libre para poder realizar la actividad de su inters.
Teniendo en cuenta todos estos aspectos se propone como solucin al problema, desarrollar
una aplicacin que permita agendar el horario y disponibilidad de las aulas de inters para el
estudiante. De esta manera basta con solo revisar la agenda personal y saber oportunamente
qu aulas o laboratorios se encuentran disponibles para el estudiante.

1.2.

Presentacin del proyecto.

Aula Project se presenta como una aplicacin que permite agendar la disponibilidad de las
aulas segn sus horarios. La aulas que se agenden dentro de la aplicacin sern aulas de
inters para el usuario. Permitir llevar el control de asignaturas y horarios en los das hbiles
de la semana, brindando tambin opciones que permitan al usuario saber qu
aulas/laboratorios se encuentra disponibles para usos prcticos o de estudio. En los siguientes
enlaces puede encontrar ms informacin acerca del proyecto.
Video explicativo: https://www.youtube.com/watch?v=8DjXeTtYvKY&feature=youtu.be
Source Code: https://github.com/TheWorstOne/AULA-Project

DESARROLLADO POR: MIGUEL NGEL MACAS

Informe de desarrollo de Aula (App para Agendar disponibilidad en los horarios de las aulas)
Programacin III

2. DISEO DEL SISTEMA.


2.1.

Diagrama de casos de uso.

DESARROLLADO POR: MIGUEL NGEL MACAS

Informe de desarrollo de Aula (App para Agendar disponibilidad en los horarios de las aulas)
Programacin III

2.2.

Diagrama de clases.

DESARROLLADO POR: MIGUEL NGEL MACAS

Informe de desarrollo de Aula (App para Agendar disponibilidad en los horarios de las aulas)
Programacin III

2.3.

Interfaz grfica.

2.3.1. Ventana principal: Home.


Esta ventana es un objeto de la clase home, ubicada en la capa de presentacin. En el paquete
aulaview.

Desde esta ventana el usuario puede crear ms aulas o laboratorios, de la misma manera
haciendo clic sobre ellos puede ingresar a sus caractersticas para consultar informacin o
modificarla.
Cuenta con un botn Limpiar, el cual se encarga vaciar todos los componentes almacenados en
la base de datos. Y un botn cerrar para salir de la aplicacin.
La ventana tambin permite al usuario elegir como mostrar los datos que el necesita visualizar.
El ComboBox, tiene las opciones: Todo, Aulas, Laboratorios, Libres, Ocupados. Las cuales
muestran en pantalla una lista de los componentes ordenados por la categora elegida.

DESARROLLADO POR: MIGUEL NGEL MACAS

Informe de desarrollo de Aula (App para Agendar disponibilidad en los horarios de las aulas)
Programacin III

2.3.2. Ventana de formulario: form.


Esta ventana es un objeto de clase form, ubicada en la capa de presentacin. Se encuentra en
el paquete aulaview. Se accede a esta ventana luego de hacer clic en Nuevo de la ventana
principal.

En esta ventana el usuario puede ingresar los atributos de su componente. Se muestra el id del
componente, el cual se crea automticamente segn la cantidad de componentes que posee
en su base de datos. El usuario puede ingresar el nombre del componente, as como tambin
especificar el tipo del componente (Aula o Laboratorio).
Cuenta con un botn Horario, el cual abre una nueva ventana para definir las franjas horarias
de las materias de inters para el alumno.
Por ltimo se presenta el botn Crear que guarda todos los datos ingresados y los almacena
como un nuevo componente en la base de datos, retornando nuevamente a la ventana
principal.

DESARROLLADO POR: MIGUEL NGEL MACAS

Informe de desarrollo de Aula (App para Agendar disponibilidad en los horarios de las aulas)
Programacin III

2.3.3. Ventana de horario: horario.


Esta ventana es un objeto de clase horario, ubicada en la capa de presentacin. Se encuentra
en el paquete aulaview. Se accede a esta ventana luego de hacer clic en Horario de la ventana
formulario.

La ventana cuenta con una pequea ayuda al usuario, en la cual se indica el estado de las
casillas. El color verde significa Libre y el rojo significa Ocupado. Se muestra una pequea
matriz, en la cual las filas representan los horarios y las columnas lo das hbiles.
Cuando el usuario haga clic en una de las casillas aparecer un cuadro de dilogo donde le
pedir que ingrese el nombre de la asignatura a la cual va a asignar a ese horario. Una vez que
se ingrese el nombre de la asignatura, la casilla respectiva se pintar de color rojo indicando
que el aula o laboratorio se encuentra ocupado a esa hora del da.
El botn Crear guarda los cambios en la matriz y regresa a la ventana de formulario.

DESARROLLADO POR: MIGUEL NGEL MACAS

Informe de desarrollo de Aula (App para Agendar disponibilidad en los horarios de las aulas)
Programacin III

2.3.4. Ventana de consulta: infoAula.


Esta ventana es un objeto de clase infoAula, ubicada en la capa de presentacin. Se encuentra
en el paquete aulaview. Se accede a esta ventana luego de hacer clic en algn tem de la lista
de la ventana formulario.

La funcin de esta ventana es visualizar las caractersticas del componente que el usuario
escogi desde la ventana principal. Se muestra el nmero id del componente, el nombre, y el
tipo. Cuenta con una matriz de 7x5 en la cual se ir mostrando el horario asignado a esa aula
con sus respectivas materias.
Si el usuario desea modificar algn dato del componente, basta con sobrescribir los valores
que se encuentran en los campos de texto.
Para modificar el horario, el usuario simplemente debe hacer clic en una de las casillas que
desea modificar. Una vez seleccionada una casilla aparecer el nombre de la asignatura a lado
de la etiqueta Nombre de la Asignatura. As el usuario puede modificar su horario segn le
parezca. Para guardar los cambios en el horario el usuario har clic en el botn con el check de
color verde. Para guardar todos los cambios en el componente, se debe hacer clic en el botn
Update, el cual est en la parte superior derecha de la ventana. A su lado tambin se
encuentra el botn Delete, donde el usuario puede decidir si eliminar algn elemento de la
lista.

DESARROLLADO POR: MIGUEL NGEL MACAS

Informe de desarrollo de Aula (App para Agendar disponibilidad en los horarios de las aulas)
Programacin III

2.3.5. Ventana de seleccin: libres.


Esta ventana es un objeto de clase libres, ubicada en la capa de presentacin. Se encuentra en
el paquete aulaview. Se accede a esta ventana luego de hacer clic en la opcin de Libres,
Ocupados, que se muestra en el ComboBox de la ventana principal.

Se muestra una ventana con una pequea ayuda para el usuario, indicando la forma de usar la
bsqueda por Libres/Ocupados.
La ventana cuenta con dos ComboBox, uno destinado a la hora y otro al da. Una vez que el
usuario haya escogido la franja horaria de inters, se mostrar en pantalla una lista con todos
los componentes que cumplan con la restriccin especificada.
Si el usuario desea puede hacer clic en alguno de los tems de la lista, el cual lo llevar a una
ventana de informacin que contendr todas las caractersticas del mismo para ser
consultadas o modificadas posteriormente.
La ventana posee un botn Retroceso, ubicado en la parte superior izquierda de la ventana.
Cuando se hace clic en este botn se regresa a la ventana principal.

DESARROLLADO POR: MIGUEL NGEL MACAS

10

Informe de desarrollo de Aula (App para Agendar disponibilidad en los horarios de las aulas)
Programacin III

3. ESTRUCTURA DE DATOS.
3.1.

ArrayList.

Se utiliz un ArrayList como estructura de datos para la elaboracin del proyecto AULA. El
ArrayList contiene en memoria todos los componentes que se carguen desde la base de datos.
Se utiliz este tipo de estructura debido a la cantidad de componentes que se manejan, ya que
no son muchos se puede optar por un ArrayList para trabajarlos mientras se ejecuta la
aplicacin.
Los componentes cargados en el ArrayList no necesitan ser ordenados ni tratados de alguna
manera, simplemente se requiere de una estructura capaz de permitir un acceso a los
elementos de manera rpida y sencilla.

3.2.

JList.

Para la visualizacin de estos componentes se opt por utilizar un JList. El JList permite que los
datos puedan ser ordenados en pantalla y mostrar sus caractersticas al usuario de la manera
ms clara posible.
Adems de solo presentar los datos en pantalla, el JList permite crear subconjuntos de
componentes guiados por un orden o categora. De esta manera se puede trabajar con
subconjuntos de los elementos cargados en ArrayList sin alterar a los mismos.
Se puede presentar los datos por su tipo y su estado, permitiendo visualizar al usuario una lista
de sus componentes segn sea Aula o Laboratorio, de la misma manera para visualizar los
componentes que se encuentren Libres u Ocupados a cierta hora de un determinado da.

3.3.

Matriz 7x5.

Para disponer de los datos de una manera que el usuario pueda manejar y comprender el uso
de la aplicacin sin dificultad alguna, se decidi disponer de una matriz de 7x5 de botones.
Estos botones dispuestos de esta manera estn relacionados con otras dos matrices de 7x5,
una para los estados Libre, Ocupado (matriz de tipo EstadoComponente) y otra matriz para las
asignaturas (matriz de tipo String). De esta manera si el usuario desea acceder a una posicin
(i, j) de la matriz de botones, estar accediendo a la misma posicin en la matriz de estados y
asignaturas.
Esto permite una mayor claridad y manejo de la informacin al momento de ser procesada y
luego mostrada al usuario.

3.4.

Tablas en SQLite.

Como se explic al comienzo del documento, AULA Project cuenta con una pequea base de
datos implementada en SQLite.
Esta base de datos llamada AULA, cuenta con 3 tablas. Estas tablas se muestran a
continuacin.

DESARROLLADO POR: MIGUEL NGEL MACAS

11

Informe de desarrollo de Aula (App para Agendar disponibilidad en los horarios de las aulas)
Programacin III

La tabla Asignaturas y estadoHorario cuentan con 35 elementos, esto se debe a la cantidad de


elementos que deben almacenar, pues un registro contar con 35 elementos. Estos elementos
provienen de las matrices de 7x5 anteriormente mensionadas.

4. PROGRAMACIN POR CAPAS.


4.1.

Capa de Presentacin.

La capa de presentacin est formada por el paquete aulaview, el cual contiene a las clases:
home, form, horario, infoAula, libres.
El propsito de esta capa es interactuar de la manera ms amigable con el usuario por medio
de interfaces que permiten un uso fcil de la aplicacin.

DESARROLLADO POR: MIGUEL NGEL MACAS

12

Informe de desarrollo de Aula (App para Agendar disponibilidad en los horarios de las aulas)
Programacin III

4.2.

Capa de Negocios.

Esta capa est formada por dos paquetes, el paquete aularesources y el paquete aulaprocess.

Se decidi utilizar dos paquetes en esta capa de negocios con el fin de separar an ms los
procesos de sus componentes. Dando como resultado se obtiene la abstraccin del problema a
un nivel ms fcil de comprender. El paquete aularesources es el encargado de contener los
elementos base del sistema, esto quiere decir, disponer de objetos que representen el estado
y las caractersticas de nuestros componentes (aulas/laboratorios). Mientras que el paquete
aulaprocess se encarga de abstraer el comportamiento de estos componentes, de esta manera
se puede trabajar componentes y su comportamiento por separado.
Cabe decir que los mtodos de las clases ComponentProcess y HorarioProcess son de tipo
esttico (static). Esto facilita el uso de los mtodos en diferentes partes del programa sin tener
que instanciar objetos, as se evita un mayor uso de memoria y permite que el flujo del
programa no se vea entorpecido.

DESARROLLADO POR: MIGUEL NGEL MACAS

13

Informe de desarrollo de Aula (App para Agendar disponibilidad en los horarios de las aulas)
Programacin III

4.3.

Capa de Datos.

La capa de datos est representada por el paquete aulaserver.

El paquete aulaserver solo contiene una clase. Esta clase ConexionSQLite es la encargada de
establecer la conexin con la base de datos, as mismo cerrar la conexin y dems operaciones
como: guardar componentes, modificar componentes y eliminarlos.
Solo existe un objeto de tipo ConexionSQLite, el cual se encuentra dentro de la clase home.
Esto permite que la interfaz pueda mostrar en pantalla los componentes almacenados, as
como manipularlos.

5. CONCLUSIONES.
La programacin por capas puede ser muy til al momento de implementarla en
proyectos de este tipo, orientados al desarrollo acadmico del estudiante. Puesto que
al ser un proyecto por as decirlo mediano, se comprendi el uso de las capas y su
finalidad dentro del diseo del proyecto.
Usar capas facilita la abstraccin del problema, permitiendo que el cdigo sea
entendible y flexible al momento de cambios o darle mantenimiento a la aplicacin.
AULA Project es una herramienta til al momento de gestionar la disponibilidad de los
salones dentro de un centro educativo. Su entorno y alcance pueden ser llevados a
otros campos, por ejemplo Hospitales, Residencias, incluso Hoteles, donde se necesita
saber con exactitud qu elementos se encuentran disponibles en ciertas horas de un
determinado da.
El uso de la aplicacin significa un ahorro en esfuerzo y tiempo por parte del
estudiante al querer encontrar aulas de inters en determinados horarios, ya sea para
usos acadmicos o puntos de encuentro con grupos de compaeros.

DESARROLLADO POR: MIGUEL NGEL MACAS

14

Anda mungkin juga menyukai