Proyecto Agenda Estudiantil

Programación 3: Estructura de Archivos
Universidad de Cuenca
Noviembre de 2016
Semestre: Sep. 2016 – Feb. 2017

Jefferson Arias
jefferson.arias@ucuenca.ec

Temario
Introducción al Proyecto
Presentación
Objetivos
Contenido
2.1 Título del Proyecto
2.2 Introducción
2.3 Métodos
2.4 Diagramas
2.4.1 Diagrama de Clases
2.4.2 Diagrama de Casos de Uso
2.4.3 Diagrama de Secuencia
2.5 Resultados
2.6 Enlaces sobre el Proyecto
2.7 Conclusiones

1. Introducción al proyecto
1. Presentación
El presente proyecto se basa en la creación de una agenda estudiantil la cual nos
ayudara a llevar de mejor manera y a recordar las distintas tareas que tenemos
pendientes en cada una de nuestras materias que nos encontremos cursando para
que de esta manera para el estudiante sea más fácil poder realizar a tiempo cada
una de sus tareas sin olvidar ninguna de estas.

2. Objetivos

- Comprender el uso de las listas ligadas en java y su manera de
-

implementarlas.
Comprender el uso de pilas y sus diferentes funciones en java.
Comprender el uso de archivos ya sea la lectura y escritura de datos.

2. Contenido
2.1. Título del Proyecto: Agenda Estudiantil
2.2. Introducción
La tecnología con el pasar del tiempo se vuelve de vital importancia y con la necesidad
del ser humano van surgiendo nuevos proyectos tecnológicos y también informáticos
como programas de uso comercial o gratuito con el fin de ayudar a las personas a tener
un mejor desenvolvimiento en su ámbito de trabajo, además en el ámbito académico los
estudiantes muchas de las veces tendemos a olvidar ciertas tareas o lecciones que son
enviadas por los maestros ya sea porque tenemos muchas cosas por realizar o
simplemente tendemos a olvidar las cosas de manera rápida o no tenemos una
herramienta que nos facilite el recordar lo que debemos hacer.

2.3. Métodos
El proyecto se realizó por medio de los siguientes métodos:
1. El uso de diagramas: se utilizó tres diagramas que son los más conocidos para
realizar software dentro de java los cuales son:

- Diagrama de Clases: Para poder abstraer cada una de las distintas clases que
se deben tener para poder realizar la codificación del programa de una manera
mucho más sencilla y rápida.
- Diagrama de Secuencia: Se elaboró un diagrama de secuencia para el
funcionamiento más importante del programa el cual es el ingreso de datos y la
lectura y escritura de datos para facilitar la codificación dentro del IDE de
programación.

- Casos de Uso: Para ver que distintas funcionalidades que tiene el usuario que
va a utilizar el programa para de esta manera implementarlas sin necesidad de
poner funcionalidades que no tienen nada que ver con el programa a realizar.
2. El uso de las distintas estructuras de datos dentro de java las cuales fueron:
- Listas Ligadas: Se utilizara al momento de crear una materia, luego al agregar
una tarea a una de estas pasara a hacerse otra lista ligada en esa materia para así
mantener de una mejor manera organizado los datos.
- Pilas: Se utilizara los conceptos de estas cuando el usuario valla a ingresar
datos (Se realizara el ingreso como una Pila) o termine una de las tareas
correspondientes y requiera dar por terminada esta tarea y eliminarla entonces,
se aplicara el concepto de desenpilar.
- Archivos: Se utilizó archivos para guardar y leer la información que el usuario
valla ingresando y para no tener que volver a ingresarla a cada momento que se
inicie el programa, para que de esta manera sea mucho más eficiente el
programa.
3. El uso de programación por Capas:
Para mantener organizada cada una de las clases que se programaron y así no tener
problemas al momento de poder implementar todo el programa para lo cual se
necesitaron cuatro capas las cuales serán descritas a continuación:

- Capa de Datos: Esta capa contiene toda la información que es guardada y
recuperada mediante un documento de texto para que así el usuario no tenga
que volver a ingresar la información siempre que el programa inicie si no
con solo ir a esta funcionalidad recuperarla sin ingresar los datos
nuevamente.

- Capa Interfaz Gráfica: Esta capa contiene todo lo que tiene que ver con las
interfaces graficas las cuales va a interactuar el usuario así como también sus
distintas funcionalidades que darán cada una de estas clases para que el
programa funcione correctamente

- Capa de Negocios: Esta capa contiene el programa principal y a la vez la
clase Lista, esta implementa todo los métodos de agregación, lectura de datos
y demás métodos que el usuario realizar con el programa al momento de su
ejecución.

- Capa de Clases: Esta capa contiene las clases que fueron abstraídas para la
implementación del programa en este caso fueron dos: Materias y Tareas.

Todos estos métodos fueron de vital importancia para la realización de este proyecto ya
que cada uno complementaba al otro para volver la implementación mucho más sencilla
y fácil de entender.

2.4. Diagramas
2.4.1. Diagrama de Clases:

Figura 1. Diagrama de Clases.

2.4.2. Diagrama de Casos de Uso:

Figura 2 .Diagrama de casos de Uso.

2.4.3. Diagrama de Secuencia:

Figura 3 .Diagrama de Secuencia.

2.5. Resultados
Una vez realizado todo lo anterior dicho el resultado fue el siguiente:

Figura 4 .Interfaz Principal del Programa.

Este programa posee 2 opciones las cuales cada opción tiene un submenú de opciones
que el usuario puede realizar a lo largo de la ejecución del programa.
Opción menú: Nos provee de 3 opciones:
En el caso de Abrir nos sirve para abrir los datos que fueron guardados previamente al
finalizar el programa.
En el caso de Guardar nos sirve para guardar toda la información ingresada.
La opción Salir para Salir del programa.

Figura 5 .Menú de Opciones.

Opción Opciones: Nos provee de 2 opciones las cuales tienen 4 opciones
respectivamente.
Opción Materia: contiene cada uno de las funcionalidades que el usuario puede realizar
dentro del programa.

Opción Tarea: contiene cada uno de las funcionalidades que el usuario puede realizar
dentro del programa, teniendo en cuenta que esta opción no se habilita si no hay por lo
menos una materia ingresada previamente.

Figura 6 .Menú de Opciones Materia.

2.6. Enlaces sobre el Proyecto.
- Link de YouTube sobre el Proyecto:
https://youtu.be/lZ-EUedBz2w
-Link del Proyecto:
https://github.com/jeffer111/Agenda_Estudiantil

2.7. Conclusiones
Para finalizar podemos concluir lo siguiente:
- Java posee muchas herramientas las cuales pueden ser utilizadas para realizar
distintos programas como en este caso fue una agenda estudiantil
- Este programa pudo ser implementado de una manera más rápida si se recurría
a las distintas colecciones de java en este caso LinkedList la cual ya tenía todos
los métodos implementados, pero la finalidad de este proyecto no fue ese si no
entender cómo se implementaba estas estructuras de una manera manual sin
recurrir a las colecciones.
- Las interfaces graficas son mucho más sencillas de implementar en java ya que
si comparamos con otros lenguajes de programación en este caso C, se tenía que
realizar paso por paso cada una de las ventanas, botones, etc. Pero java nos
provee en el mismo IDE esta funcionalidad haciéndolo mucho más rápida la
implementación de una interfaz.
- El uso de programación orientada a objetos ayudo mucho para la
implementación del programa ya que solo se llamaba al objeto y luego se le daba
cada una de las funcionalidades ya implementadas dentro del programa.

- La programación por capas ayudo a mantener de una manera mucho más
organizada todas las clases y a comprender de una mejor manera como estaba
implementado el programa y a encontrar los errores de manera más rápida, ya
que al ser dividida por paquetes solo se debía ir al paquete que contenía errores y
arreglar su implementación.