You are on page 1of 3

Escuela de Ingeniería Electrónica y Computación

Ingeniería Civil en Computación e Informática


Programación Avanzada

Laboratorio

Actualmente en todas las casas de estudio existe un problema


que afecta directamente en la calidad de vida de todos los
estudiantes, que es la asignación de horarios de clases y la
asignación de salas para dichos horarios. A pesar de que a simple
vista parece un problema trivial, este pertenece a los problemas
de scheduling estudiados por años tanto en el ámbito informático
como de investigación de operaciones.

El problema debe atender a diversas restricciones que se dan en


el dominio del problema, como son:
• Las asignaturas del mismo nivel y la misma carrera, no
pueden tener el mismo horario (restricción dura), esto quiere
decir, que el sistema no debe permitir el ingreso de una
asignatura con tope de este tipo con asignaturas ya
ingresadas.
• Una asignatura de un nivel n y carrera C, idealmente no
puede tener el mismo horario que una asignatura de la
misma carrera y nivel n-1 o n+1 (restricción blanda), esto
quiere decir, que el sistema debe permitir el ingreso de
asignaturas con tope de este tipo con asignaturas ya
ingresadas, pero debe dar una advertencia.
• Una asignatura que es dictada por un profesor P, no puede
ser asignada a un horario que no se encuentre dentro de la
disponibilidad del dicho profesor ni en el mismo horario que
alguna asignatura ya ingresada que sea dictada por el
profesor P, esta es también una restricción dura.
• Las salas no pueden ser utilizadas más de una vez en el
mismo horario.

PROGRAMACION AVANZADA
1/3
El sistema debe cumplir ciertos requisitos de implementación y
funcionalidad
• El sistema debe contar con una interfaz de usuario Swing de
Java (podrá manejar las herramientas gráficas de Netbeans).
• El sistema debe permitir la persistencia de los datos
ingresados, usted debe seleccionar la forma que considere
adecuada, siempre que cumpla con las reglas descritas en
clase de laboratorio (en general, use archivos de texto).
• El sistema debe permitir ingresar, modificar y eliminar los
datos correspondientes a profesores (incluida su
disponibilidad) y cursos que dicta, además del ingreso de la
asignación horaria propiamente tal, que el sistema debe
verificar.
• El sistema debe permitir ingresar, modificar y eliminar los
datos correspondientes a cursos y carreras (asuma que un
curso sólo se dicta para una carrera, no tome en cuenta
cursos comunes).
• El sistema debe permitir ver listados de cursos, carreras y
profesores, cursos por profesor, cursos por carrera,
profesores por carrera, búsqueda de un profesor, búsqueda
de un curso, búsqueda de una carrera.
• El sistema debe poder mostrar el horario de un profesor y el
horario de un alumno modelo en un nivel y en una carrera
(alumno modelo es aquel que cursa todos los ramos del
mismo nivel para una carrera determinada).

El manual de uso debe ser totalmente fiel a la versión entregada


del sistema, el cual será revisado siguiendo dicho manual, esto
significa que si algo no está explicado en el manual de uso, no
será revisado en el sistema, cabe mencionar que de ninguna
manera significa que no se intentará interactuar con el sistema de
una manera diferente a lo mencionado en el manual, por ejemplo,
si el manual indica ingresar sólo números, no significa que no se
intentará ingresar letras.

PROGRAMACION AVANZADA
2/3
Piense en el usuario, de qué manera le presentará la información,
que servicios le ofrecerá y de qué manera le será más fácil usar
su programa.

El trabajo se realizará en grupos de 3 personas.

Partes del sistema:


Administración de profesores
Administración de cursos y carreras
Interfaz de usuario
Manejo de archivos
Control de los servicios ofrecidos (programador cliente).

PROGRAMACION AVANZADA
3/3

You might also like