Se quiere desarrollar una aplicación para diseñar, implementar y

Anuncio
Universidad de los Andes
Ingeniería de Sistemas y Computación
ISIS-4209 Diseño de Lenguajes
Proyecto Final
Individual o por parejas: En ningún caso se autorizarán grupos de más
de 2 personas.
Se quiere desarrollar una aplicación para diseñar, implementar y simular sistemas de atención con filas y puntos de atención. La aplicación debe permitir definir estos sistemas a partir de un archivo de texto o por comandos en una consola. También debe proveer servicios para hacer una simulación sobre el sistema que se ha definido. El lenguaje que ustedes definan debe ser más complejo que el que se ha usado en los exámenes parciales. La idea es que su lenguaje permita la definición y luego la simulación de los sistemas de atención. Para la definición •
•
•
•
•
El sistema tiene puntos de atención y filas donde llegan clientes para ser atendidos. Se pueden diseñar sistemas con una fila por punto de atención o por una fila correspondiente a más de un punto de atención. Se pueden diseñar distintas formas de atender: atender al de la fila correspondiente, al de la fila más larga, a la fila prioritaria. Los clientes pueden tener niveles de prioridad. Se deben poder diseñar flujos de acciones que deben realizar los clientes. Por ejemplo primero pasar a revisión de documentos y dependiendo de la acción que deseen realizar pasar a algún punto de atención que tiene su(s) fila(s). Para la simulación Deben permitir la definición de los comandos que se van a permitir. Es decir es un lenguaje dentro de su lenguaje: para cada sistema que se defina, debe haber un lenguaje para su simulación. Para desarrollar el proyecto se deben realizar las siguientes actividades 1.
2.
3.
4.
5.
Defina el alcance de su lenguaje. Decida qué patrones de diseño sería útil usar para este problema. Defina el enfoque de desarrollo que usará para el desarrollo del proyecto Aplique el enfoque propuesto Para la implementación debe implemente un compilador de su leguaje debe diseñar el modelo de los sistemas de atención, un lenguaje de alto nivel que se traducirá a este modelo, y un lenguaje para los comandos. El lenguaje de los comandos debe ser muy sencillo: palabras claves con uno o dos argumentos. El trabajo se evaluará de acuerdo a la completitud del diseño, la facilidad de uso y la forma de presentar el trabajo. Recuerden que si usan un API ya implementado deben referenciarlo correctamente. Recuerde lo que ustedes van a diseñar es un lenguaje que le permita a un usuario, definir puntos de atención y lenguajes para su simulación. 
Descargar