22
Examination Timetabling Application

Examination Timetabling Application. Sumário Enquadramento Objectivos Arquitectura Implementação Conclusões Desenvolvimentos Futuros

Embed Size (px)

Citation preview

Page 1: Examination Timetabling Application. Sumário Enquadramento Objectivos Arquitectura Implementação Conclusões Desenvolvimentos Futuros

Examination Timetabling Application

Page 2: Examination Timetabling Application. Sumário Enquadramento Objectivos Arquitectura Implementação Conclusões Desenvolvimentos Futuros

Sumário

• Enquadramento• Objectivos• Arquitectura• Implementação• Conclusões• Desenvolvimentos Futuros

Page 3: Examination Timetabling Application. Sumário Enquadramento Objectivos Arquitectura Implementação Conclusões Desenvolvimentos Futuros

Enquadramento

• Elaboração de um calendários de exames– Processo moroso e complicado;– Resultado dependente de várias variáveis;– Dependendo dessas variáveis, poderá ser

difícil/impossível elaborar um calendário que seja do agrado de todos.

Page 4: Examination Timetabling Application. Sumário Enquadramento Objectivos Arquitectura Implementação Conclusões Desenvolvimentos Futuros

Objectivos

• Aplicação extensível ;• Interface gráfico para criação de calendário de

exames com apresentação dinâmica de conflitos;

• Suportar algoritmos para elaboração de calendários de forma automática.

Page 5: Examination Timetabling Application. Sumário Enquadramento Objectivos Arquitectura Implementação Conclusões Desenvolvimentos Futuros

Arquitectura

Page 6: Examination Timetabling Application. Sumário Enquadramento Objectivos Arquitectura Implementação Conclusões Desenvolvimentos Futuros

Objectos de domínio

• Garantir que é disponibilizada toda a informação relevante.

• Menos dependências nos módulos

Page 7: Examination Timetabling Application. Sumário Enquadramento Objectivos Arquitectura Implementação Conclusões Desenvolvimentos Futuros

DataAccess

• Padrão UnitOfWork• Permite mudar o repositório de dados sem

comprometer a implementação dos outros módulos

Page 8: Examination Timetabling Application. Sumário Enquadramento Objectivos Arquitectura Implementação Conclusões Desenvolvimentos Futuros

UnitOfWork

• Connection• UnitOfWork• ClassDataMappers• IDomainObject• IEntityMapperForUpdates• IEntityMapper

Page 9: Examination Timetabling Application. Sumário Enquadramento Objectivos Arquitectura Implementação Conclusões Desenvolvimentos Futuros

UnitOfWork

• AbstractDataMapper – Implementa métodos de IEntityMapper– Contem métodos abstractos que devem ser implementados

pelos tipo concretos que conhecem as tabelas da base de dados

• DomainObject– Sabe o estado em que se encontra– Contem ID– Disponibiliza métodos que devem ser chamados quando o

objecto sofre alterações– Insere-se num IEntityMapper

Page 10: Examination Timetabling Application. Sumário Enquadramento Objectivos Arquitectura Implementação Conclusões Desenvolvimentos Futuros

Carregamento de Dados (ILoader)

• Carregamento dos dados de uma instituição de ensino;

• Disponibiliza uma API para implementar o módulo

• Carregados na aplicação em tempo de execução

Page 11: Examination Timetabling Application. Sumário Enquadramento Objectivos Arquitectura Implementação Conclusões Desenvolvimentos Futuros

ILoader (Implementação)

• External data types• Metodos get e datasource• Get name

Page 12: Examination Timetabling Application. Sumário Enquadramento Objectivos Arquitectura Implementação Conclusões Desenvolvimentos Futuros

Regras (IRule)

• Regras das instituições de ensino• Compara dois exames• Carregadas em tempo de execução• Pode ser activadas/desactivadas

Page 13: Examination Timetabling Application. Sumário Enquadramento Objectivos Arquitectura Implementação Conclusões Desenvolvimentos Futuros

IRule (Implementaçao)

• Interface IRule– Método EnforceRule

• Interface IConflict– Indica a gravidade do conflito– Descreve o conflito– Alunos Afectados

• Enumerado ConflictWeight

Page 14: Examination Timetabling Application. Sumário Enquadramento Objectivos Arquitectura Implementação Conclusões Desenvolvimentos Futuros

Algoritmo (IAlgorithm)

• Problema estudado desde os anos 60• Elaboração de calendários de forma

automática• Carregados em tempo de execução

Page 15: Examination Timetabling Application. Sumário Enquadramento Objectivos Arquitectura Implementação Conclusões Desenvolvimentos Futuros

IAlgorithm (Implementação)

• Interface Ialgorithm– Metodos Set para parametrizar o algoritmo– Metodo Run retorna exames marcados

Page 16: Examination Timetabling Application. Sumário Enquadramento Objectivos Arquitectura Implementação Conclusões Desenvolvimentos Futuros

IAlgorithm (Implementação)

Page 17: Examination Timetabling Application. Sumário Enquadramento Objectivos Arquitectura Implementação Conclusões Desenvolvimentos Futuros

IOutputGenerator

• Publicação do calendário de exames• Carregado em tempo de execução

Page 18: Examination Timetabling Application. Sumário Enquadramento Objectivos Arquitectura Implementação Conclusões Desenvolvimentos Futuros

IOutputGenerator

• Interface IOutputGenerator– Getname– Setdata– GenerateOutput

Page 19: Examination Timetabling Application. Sumário Enquadramento Objectivos Arquitectura Implementação Conclusões Desenvolvimentos Futuros

Host

• Núcleo da aplicação• Responsável por carregar os módulos• Disponibiliza uma API para elaborar calendários

de exames• Devem ser utilizados os objectos

disponibilizados pela Host• Caminhos dos módulos passiveis de serem

carregados definidos através de ficheiro de configuração

Page 20: Examination Timetabling Application. Sumário Enquadramento Objectivos Arquitectura Implementação Conclusões Desenvolvimentos Futuros

Interacção da UI com a Host

• Marcação de um exame• Problemas:– Pode levar algum tempo até obter resultados– A UI deve estar sempre disponível na marcação de exames

• Solução– Uma thread é responsável por verificar os conflitos na

marcação de um exame– Recurso a BackgroudWorker Thread para chamar o

método de marcação de exames e disponibilizar os resultados na UI

Page 21: Examination Timetabling Application. Sumário Enquadramento Objectivos Arquitectura Implementação Conclusões Desenvolvimentos Futuros

Conclusão

• Disponibilizar informação ao utilizador sobre as consequências da marcação de cada exame

• Adaptação a qualquer instituição de ensino• Suporte de algoritmos para elaboração de

calendários de forma automática

Page 22: Examination Timetabling Application. Sumário Enquadramento Objectivos Arquitectura Implementação Conclusões Desenvolvimentos Futuros

Desenvolvimentos Futuros

• Implementação de assistente de criação de regras

• Completar a implementação do MVC• Integrar internacionalização• Controlo de marcação de salas• Controlar a concorrência a nível do acesso a

dados