Examination Timetabling Application. Sumário Enquadramento Objectivos Arquitectura Implementação...

22
Examination Timetabling Application

Transcript of Examination Timetabling Application. Sumário Enquadramento Objectivos Arquitectura Implementação...

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