Está en la página 1de 7

PROGRAMACIÓN ORIENTADA A OBJETOS

UNIVERSIDAD NACIONAL DE
COLOMBIA
SEDE MEDELLÍN
FACULTAD DE MINAS

DEPARTAMENTO DE CIENCIAS DE LA
COMPUTACIÓN Y DE LA DECISIÓN

Travel World:

EQUIPO # 12
Eladio Salazar Suarez
Cristian David Quinchia Ramirez
Sebastian Pulgarin Velez
Yesid Alejandro Pelaez

2018-II
PROGRAMACIÓN ORIENTADA A OBJETOS

Tabla de Contenido

1. MODELO VERBAL DEFINITIVO


2. DIAGRAMA DE CLASES
3. DIAGRAMA DE OBJETOS
4. LISTA DE FUNCIONALIDADES
5. IMPLEMENTACIÓN EN JAVA
PROGRAMACIÓN ORIENTADA A OBJETOS

1. Modelo Verbal Definitivo

En este proyecto queremos crear una aplicación en la cual se podrá comprar vuelos nacionales
en la cual contamos con diferentes empresas y lugares de destino que podrán elegir y comprar
sus boletos
Explique en este espacio en que consiste el proyecto que pretende realizar, defina el alcance
del proyecto, los actores involucrados y el beneficio de la propuesta que se presentará.

2. Diagrama de Clases
Espacio para el diagrama de clases.

Nota: cree un directorio llamado “diagramas” en la carpeta compartida en Google Drive y utilice
el complemento de google drive llamado Draw.io para la elaboración de los diagramas.

3. Diagrama de Objetos
Espacio para el diagrama de objetos.

Nota: cree un directorio llamado “diagramas” en la carpeta compartida en Google Drive y utilice
el complemento de google drive llamado Draw.io para la elaboración de los diagramas.

4. Lista de Funcionalidades
Describa cada una de las funcionalidades que implementa el proyecto.
PROGRAMACIÓN ORIENTADA A OBJETOS

5. Implementación en Python
Cree un proyecto en Pyhton sobre el cual se definan e implementen todas las funcionalidades
listadas anteriormente, teniendo en cuenta las siguientes observaciones:

● El proyecto no tendrá interfaz gráfica (ventanas, iconos, botones, etc.) El proyecto


estará compuesto únicamente de un menú principal el cual consta con diferentes
opciones numéricas (tal cual lo visto en los talleres en clase). Sugerencia agrupe las
opciones del menú por categorías para que no quede una lista muy larga de opciones
desplegada inicialmente.
● Cree una opción de “generar datos ficticios”, la cual pobla la aplicación con datos
ficticios y permitirá ejecutar las diferentes opciones del programa sin necesidad de
agregar uno a uno objetos de cada clase.
● Cree una opción de “generar datos ficticios desde un txt”. Esta opción pobla los datos
de UNA SOLA de las clases de la aplicación extrayendo la información de un archivo
.txt.
● La función “guardar” o “crear” de la clase seleccionada en el punto anterior, deberá
almacenar los datos ingresados por teclado, en el mismo .txt usado para generar los
datos ficticios anteriores.
● La aplicación deberá contener por lo menos “7 funcionalidades interesantes” diferentes
a las tradicionales: crear, editar, borrar y leer.
● Debe existir por lo menos una clase que herede de otra clase.
● En el caso de que alguna funcionalidad requiera verificar el rol de un usuario, por
ejemplo: que solo administradores pueden ver un reporte. Se sugiere:
○ Desplegar en el principal una opción que diga “ingrese el tipo de usuario” y que
con base en esa información despliegue las opciones correspondientes a ese
tipo de usuario.
○ Adicionar un parámetro “password” a cada funcionalidad, que verifique que la
contraseña es correcta y pueda ejecutar la funcionalidad.
○ Entre otras.
● Debe mantener un estilo de codificación (“Coding style”) en todo el programa. Para este
caso será OBLIGATORIO seguir este estilo de codificación:
https://www.python.org/dev/peps/pep-0008/
● Cree un archivo README.TXT donde explique cómo ejecutar el programa, cual es el
archivo principal que se debe invocar, entre otros.
● Comprima en un .rar todo el proyecto de Python, incluyendo el README.TXT y subalo
a minaslap (Plazo máximo 23 de octubre a las 20:00
https://minaslap.net/mod/assign/view.php?id=10275). Solo se tendrá en cuenta el
proyecto cargado a esa dirección, sin excepciones.
PROGRAMACIÓN ORIENTADA A OBJETOS

● Por ningún motivo agregue comandos PRINT dentro de las clases del diagrama de
clases.
● Se debe utilizar una clase mensaje, para almacenar los mensajes de la aplicación (se
sugiere se almacenen en un diccionario). Solo se deben almacenar textos, en esta clase
no se pueden ejecutar funciones PRINT, ni ciclos, ni ifs, etc.
● La aplicación debe soportar el uso de 2 idiomas. Por lo tanto, al iniciar la aplicación lo
primero que se le pregunta al usuario es el idioma que quiere escoger. Esto solo se le
pregunta una vez durante toda la ejecución de la aplicación.
● Haga una tabla en excel, con 3 columnas. Columna 1 nombre de la funcionalidad,
Columna 2 nombre del archivo donde está implementada la funcionalidad, Columna 3
línea desde la cual inicia la implementación de la funcionalidad. Agregue el archivo a la
carpeta compartida de Google Drive. Liste las funcionalidades interesantes al final.
● Tome un pantallazo de la sección inicial de la aplicación (cuando se esté ejecutando) y
guárdelo en la carpeta compartida de Google Drive.

Sugerencia: aproveche el espacio en semana universitaria para solucionar dudas. Finalmente


aproveche la clase del 10 de octubre para llevar dudas puntuales. Se espera que para esa
clase todos los equipos ya tengan implementado el 90% o más de su respectivo proyecto.
PROGRAMACIÓN ORIENTADA A OBJETOS

Entregable No. 2

6. IMPLEMENTACIÓN EN JAVA WEB


Cree un proyecto en Java sobre el cual se definan e implementen todas las funcionalidades
desarrolladas en el Entregable 1, teniendo en cuenta las siguientes observaciones:

● El proyecto TENDRÁ interfaz gráfica, la cual será desarrollada en HTML - JSP - JSTL -
CSS - JavaScript.
● El proyecto deberá tener un header y un footer.
● El proyecto deberá tener una página inicial donde aparecerán todas las opciones de la
aplicación (con sus enlaces respectivos) y un login en caso de ser necesario.
● Cree una opción de “generar datos ficticios”, la cual pobla la aplicación con datos
ficticios y permitirá ejecutar las diferentes opciones del programa sin necesidad de
agregar uno a uno objetos de cada clase. Para esto se sugiere almacenar los datos en
Session según los ejercicios vistos en clase y en los talleres.
● Cree una opción de “generar datos ficticios desde un txt”. Esta opción pobla los datos
de SOLO UNA de las clases de la aplicación extrayendo la información de un archivo
.txt.
● La aplicación deberá contener por lo menos “7 funcionalidades interesantes” diferentes
a las tradicionales: crear, editar, borrar y leer.
● Debe existir por lo menos una clase que herede de otra clase.
● En el caso de que alguna funcionalidad requiera verificar el rol de un usuario, por
ejemplo: que solo administradores pueden ver un reporte. Se sugiere, desarrollar un
formulario en la página de inicio y si los datos son válidos almacenar el tipo de usuario
en Session y desplegar las opciones correspondientes al tipo de rol con el cual se
conectó al sistema.
● Debe mantener un estilo de codificación (“Coding style”) en todo el programa.
● Cree un archivo README.TXT donde explique cómo ejecutar el programa, cual es el
archivo principal que se debe invocar, entre otros.
● Comprima en un .rar todo el proyecto de Java, incluyendo el README.TXT y subalo a
https://minaslap.net/mod/assign/view.php?id=10350 (Plazo máximo 4 de diciembre a las
23:00). Solo se tendrá en cuenta el proyecto cargado a esa dirección, sin excepciones.
En caso de que no pueda adjuntar el proyecto por problemas en moodle, envielo a
unal@danielgara.com en los plazos establecidos.
PROGRAMACIÓN ORIENTADA A OBJETOS

● Recordar utilizar una clase mensaje, para almacenar los mensajes de la aplicación.
● Recuerde permitir manejar 2 idiomas diferentes.
● Tome 3 pantallazos de la secciones más representativas de la aplicación (cuando se
esté ejecutando) y guárdelo en la carpeta compartida de Google Drive (utilizar la
extensión de Chrome “Full Page Screen Capture”).

Nota: recuerde tener en cuenta las recomendaciones realizadas al entregable I. Se deberán


ver reflejadas en el código del nuevo proyecto.

También podría gustarte