Академический Документы
Профессиональный Документы
Культура Документы
São Carlos - SP
1
Sistema para alocação de horários de aulas nos
cursos do ICMC
i
Agradecimentos
A meus pais, pela compreensão e apoio.
A Paula Marcondes, por ter sido, mesmo distante, o real motivo do meu esforço.
ii
Resumo
A alocação de horários nos diversos cursos do ICMC é um processo que exige alto
demanda grande esforço e tempo e tem baixo grau de padronização. Nesse contexto, um
sistema computacional que auxilie tal alocação será de grande valor para melhor elaborar a
propõe uma modelagem Orientada a Objetos para um sistema de informação que auxilie os
Bacharelado em Informática que, por ser noturno, apresenta restrições adicionais que tornam
a alocação das disciplinas ainda mais complexa. Entretanto, com pequenas alterações, o
sistema proposto poderá atender a diferentes cursos, com vários graus de complexidade.
iii
Sumário
CAPÍTULO 1: INTRODUÇÃO .................................................................................. 1
v
Lista de Figuras
vi
CAPÍTULO 1: INTRODUÇÃO
1
Além do curso de Bacharelado em Informática, outros cursos apresentam suas
peculiaridades. Por exemplo, o curso de Bacharelado em Ciências de Computação possui
dificuldades como o fato de possuir duas ou mais turmas de cada disciplina. No curso de
Engenharia de Computação, o horário consecutivo das aulas deve levar em conta se a
disciplina é ministrada no campus I ou II, para haver tempo hábil do aluno chegar à sala de
aula.
1.2. Objetivos
2
1.3. Organização do Trabalho
3
CAPÍTULO 2: REVISÃO BIBLIOGRÁFICA
4
2.2. Trabalhos Relacionados
5
CAPÍTULO 3: DESENVOLVIMENTO DO
TRABALHO
Neste capitulo são apresentados o projeto proposto, as atividades realizadas,
juntamente com os diagramas produzidos e os resultados obtidos.
3.1. Projeto
Desde o início, foi decidido que o projeto seguiria os métodos de análise e projeto
do paradigma de Orientação a Objetos, por apresentar vantagens quanto à abstração de
dados, a facilidade de estender o software futuramente devido à existência de herança e ao
acoplamento fraco mas, principalmente devido à maior dedicação à fase de análise
[PRESMAN, R. S. (2002) – pág. 266].
6
os artefatos e as setas pontilhadas indicam em quais fases os artefatos são produzidos ou
utilizados.
Ainda na etapa inicial, foram determinadas muitas das ferramentas que seriam
utilizadas para auxiliar o processo produtivo do projeto: como o software Rational Rose
[IBM Rational Software™] para a modelagem Linguagem de Modelagem Unificada (do
inglês Unified Modeling Language [Unified Modeling Language™]) (UML), que
possibilita a geração do código inicial das classes de software, e o software Eclipse [The
Eclipse Foundation™] para o desenvolvimento do protótipo do sistema, que é um
Ambiente de Desenvolvimento Integrado (do inglês Integrated Development Enviroment)
completo e gratuito que interpreta os dados exportados pelo Rational Rose.
7
chegou-se a uma versão mais completa e aprimorada da Descrição dos Casos de Uso
(APÊNDICE B). Como resultado, foi produzido um Modelo Conceitual (Figura 3), no qual
são representados os conceitos importantes no domínio do sistema e as associações entre
esses. Nas várias etapas de Projeto, com base nos Casos de Uso e no Modelo Conceitual
determinados anteriormente, os conceitos e associações mais importantes foram modelados
em Diagramas de Sequência do Sistema (Figura 4). Nas várias etapas de Implementação,
foram implementados protótipos de segmentos do sistema, com base nas especificações
dos artefatos anteriormente produzidos.
8
etapas de projeto e implementação foram divididas em 7 iterações, cada uma delas tratando
um caso de uso diferente.
O projeto teve início com a primeira e única etapa de Modelagem de Negócio, que
envolve a modelagem de objetos do domínio e a modelagem dos processos de negócio
envolvidos. Foram realizadas várias entrevistas com coordenadores de cursos do ICMC a
fim de identificar de forma mais clara possível como atualmente é feita a distribuição da
carga horária em cada curso e, assim, compreender melhor o domínio do problema,
funcionalidades e processos, para possibilitar uma especificação correta e completa das
regras de negócio. Métodos, técnicas e procedimentos utilizados pelos responsáveis pela
alocação da carga horária em cada curso foram identificados, buscando-se explicitar os
pontos onde há maior dificuldade, lentidão e ambiguidade no processo como um todo.
Nesse ponto, averiguou-se que, entre os cursos ministrados no ICMC, o de Bacharelado em
Informática possui grandes dificuldades para a alocação da carga horária, por apresentar
disponibilidade de alocação somente no período noturno, juntamente com restrições de
disponibilidade de professores, particularidades nos horários ou nas disciplinas. Por esse
motivo, no desenvolvimento de todo o projeto, o curso de Bacharelado em Informática foi
utilizado como padrão para a modelagem. Além das entrevistas com a coordenação do
curso, foram também analisadas as planilhas utilizadas para auxiliar a elaboração de
horários desse curso, na qual os alunos informam as disciplinas que desejam cursar e a
carga horária é então alocada manualmente e os conflitos encontrados são exibidos. Nesta
planilha é possível perceber algumas dificuldades que precisam ser tratadas pelo sistema,
como o processo manual de alocação de horários e a ausência de formalização do método
utilizado.
9
1. Uma disciplina específica não deve ser alocada em um ou mais dias da semana
ou horários previamente determinados. Por exemplo: a disciplina SEP-584:
Contabilidade para Computação, que não pode ser ministradas às sextas-feiras.
3. Uma disciplina específica deve ser alocada em dois ou mais dias consecutivos.
Por exemplo: disciplina do último ano em que muitos alunos realizam estágio
em outras cidades e, por isso, precisam concentrar as disciplinas para terem
mais dias livres.
4. Uma disciplina específica deve ter todos seus créditos oferecidos em horários
coincidentes na semana. Por exemplo: todas as aulas no último horário, das
21:00 as 22:40.
5. Uma disciplina específica deve ter todos seus créditos oferecidos em horários
alternados na semana. Por exemplo: se uma das aulas for alocada no último
horário, das 21:00 as 22:40, a outra deverá ser alocada no primeiro horário, das
19:00 as 20:40.
6. Uma disciplina específica deve ter todos seus créditos oferecidos em um mesmo
dia da semana. Por exemplo, a disciplina Laboratório de Banco de Dados que
deve ter seus 4 créditos ministrados em um só dia.
7. Uma disciplina específica deve ter todos seus créditos oferecidos em horários
consecutivos. Por exemplo, disciplina que precisam de aulas duplas, que é o
caso das disciplinas essencialmente práticas.
10
10. Certos alunos possuem disponibilidade de cursar disciplinas apenas no período
noturno. Por ser um curso noturno, muitos alunos trabalham durante o dia.
12. Um aluno formando tem preferência sobre outros alunos na alocação das
disciplinas de seu interesse, pois aos alunos formandos normalmente resta
apenas uma quantidade reduzida de créditos por cursar.
11
Figura 2: Diagrama de Casos de Uso.
13
terminologia do domínio envolvido. O Modelo Conceitual passou por diversas correções e
validações até que se atingisse a proposta da Figura 3, que foi a forma mais completa e
coesa de representar as relações entre os conceitos do sistema, para possibilitar o
entendimento destes e seus relacionamentos.
14
Prioridades Gerais refletem a importância atribuída pelos coordenadores de
curso, com base em conhecimentos prévios sobre quais critérios são de maior
relevância para a alocação da carga horária, como: disciplinas que apresentam
maior índice de aproveitamento quando ministradas em determinados horários;
a importância da média do aluno para o seu aproveitamento; a importância em
atender os interesses de alunos fora do perfil; a importância em atender os
interesses de alunos formandos entre outros. Tais fatores, em sua maioria, são
determinados de forma subjetiva, com procedimentos não formalizados ou
estruturados; e
15
Figura 4: Diagrama de Sequência do Sistema da operação Alterar Disciplina.
16
Figura 5: Protótipo da visualização de alunos.
17
trabalho manual para catalogar todas as disciplinas, e de otimização matemática para
calibrar os pesos de modo a representar melhor a realidade de cada curso.
18
3.3. Resultados Obtidos
19
CAPÍTULO 4: CONCLUSÃO
4.2. Contribuições
Como principais trabalhos futuros espera-se que as regras das diversas disciplinas
ministradas no ICMC sejam amplamente estudadas, analisadas e descritas a fim de que
possam ser modeladas e utilizadas pelo sistema proposto neste projeto da forma mais
completa possível. A lista de prioridades, com que a cargas horárias são atualmente
determinadas, precisam também ser extensivamente estudadas, analisadas e modeladas
para que, futuramente, uma melhor calibragem dos pesos, mais condizente com a realidade
de cada curso e com os interesses de alunos e docentes envolvidos, possa ser determinada.
Tal calibragem envolverá grande esforço de otimização matemática dos pesos atribuídos às
20
diversas prioridades envolvidas juntamente com a relevância de cada prioridade para a
confecção de uma sugestão de horário.
21
REFERÊNCIAS
ABRAMSON, D. (1991), “Constructing School Timetables Using Simulated
Annealing: Sequential and Parallel Algorithms”, Management Science, 37:98-113.
Disponível em: <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.17.302>.
Acessado em: 29/04/2009.
22
SOUZA, M. J. F.; GUIMARÃES, I. F.; COSTA, F. P (2002), "Um Algoritmo
Evolutivo Híbrido para o Problema de Programação de Horários em Escolas." -
Disponível em: < http://www.decom.ufop.br/prof/marcone/Publicacoes/ENEGEP-2002-
PHE.pdf>. Acessado em 05/05/2009.
23
APÊNDICE A – Documento de Requisitos
B) REQUISITOS FUNCIONAIS
Dados do Sistema
Impressão de Relatórios
R5) O sistema deve permitir imprimir a lista dos ALUNOs cadastrados, que pode ou
não ter suas respectivas listas de Interesses anexada.
R6) O sistema deve permitir imprimir as listas de INTERESSEs cadastrados.
24
R7) O sistema deve permitir imprimir o HORÁRIO SUGERIDO após o
processamento, tendo alocado em cada horário de cada período a uma
disciplina do período correspondente.
R8) O sistema deve permitir imprimir a lista de CONFLITOS resultantes do
HORÁRIO SUGERIDO em questão, que pode ou não estar anexado, mediante
escolha do usuário.
Usabilidade
25
As DISCIPLINAs do perfil têm maior PRIORIDADE de alocação.
Os ALUNOs possuem disponibilidade de cursar DISCIPLINAs apenas no período
noturno.
Um ALUNO específico pode declarar ter disponibilidade de cursar DISCIPLINAs
específica em outras turmas, unidades ou horários.
Um ALUNO formando tem maior PRIORIDADE na alocação das DISCIPLINAs de
seu INTERESSE.
Glossário
Termo Descrição
grade horária Tabela que mostra quais disciplinas são oferecidas em cada
horário, de cada período.
26
arquivo (possivelmente texto ou XML).
HORÁRIO SUGERIDO Grade horária produzida pelo sistema após processamento dos
INTERESSEs e DISCIPLINAs, submetidos às PRIORIDADES.
27
APÊNDICE B – Descrição de Casos de Uso
Visão Geral: o usuário deseja incluir manualmente uma nova disciplina. Ele acessa
a lista de disciplinas cadastradas e escolhe a opção de incluir uma nova. Uma nova tela é
exibida, com os campos correspondentes às informações da nova disciplina, para que seja
preenchida. Após ter preenchido as informações da nova disciplina, ele aprova a operação.
A nova disciplina é incluída na lista de disciplinas cadastradas.
28
2. O sistema exibe as operações que podem ser realizadas.
3. O usuário escolhe a opção referente à alteração de dados.
4. O sistema exibe uma planilha preenchida com as informações atualmente cadastradas e
estas podem ser livremente alteradas, adicionadas ou excluídas.
5. O usuário altera, adiciona ou exclui as informações desejadas.
6. O usuário seleciona a opção de salvar as modificações feitas.
7. O sistema avisa que as modificações são irreversíveis e confirma o desejo de salvar as
novas informações.
8. O usuário confirma a intenção de salvar as novas informações.
Fluxos Alternativos:
Visão Geral: o usuário deseja excluir uma disciplina já cadastrada. Ele acessa a lista
de disciplinas cadastradas, escolhe qual disciplina deseja excluir e aprova a operação. Ele é
informado que a exclusão é irreversíveis e confirma a aprovação da exclusão. A disciplina
escolhida é removida da lista de disciplinas cadastradas.
29
Caso de Uso: “Excluir aluno”
Visão Geral: o usuário deseja excluir um aluno já cadastrado. Ele acessa a lista de
alunos cadastrados, seleciona o aluno desejado, escolhe a opção de excluir e aprova a
exclusão. Ele é informado que a exclusão é irreversível e confirma a aprovação da
exclusão. O aluno escolhido é excluído da lista de alunos cadastrados e da tabela de
prioridades juntamente com seus interesses.
30
Fluxos Alternativos:
5.1 O sistema avisa que alunos sem interesses são automaticamente removidos
da lista de alunos cadastrados e oferece a possibilidade de restaurar o último item
excluído.
31
2. O sistema exibe uma planilha preenchida com as prioridades atuais e estas podem ser
livremente alteradas.
3. O usuário altera ou exclui as informações desejadas.
4. O usuário seleciona a opção de salvar as modificações feitas.
5. O sistema avisa que as modificações são irreversíveis e confirma o desejo de salvar as
novas informações.
6. O usuário confirma a intenção de salvar as novas informações.
Fluxos Alternativos:
Visão Geral: o usuário deseja exportar uma disciplina atualmente cadastrada. Ele
informa qual disciplina cadastrada deseja exportar, o local para onde deseja exportá-la, o
nome do arquivo que será criado com as informações da disciplina e aprova a operação.
Um arquivo é criado, com as informações da disciplina escolhida, no local especificado.
Visão Geral: o usuário deseja exportar a tabela de prioridades atual. Ele informa o
local para onde deseja exportá-la, o nome do arquivo que será criado com as informações e
32
aprova a operação. Um arquivo é criado, com as informações atuais das prioridades, no
local especificado.
Visão Geral: o usuário deseja importar alunos de arquivo. Ele informa onde se
encontram os arquivos que deseja importar, escolhe os arquivos desejados e aprova a
operação. As informações dos alunos nos arquivos escolhidos são adicionadas à lista de
alunos cadastrados.
Visão Geral: o usuário deseja importar disciplinas de arquivo. Ele informa onde se
encontram os arquivos que deseja importar, escolhe os arquivos desejados e aprova a
operação. As informações das disciplinas nos arquivos escolhidos são adicionadas à lista
de disciplinas cadastradas.
Visão Geral: o usuário deseja obter uma sugestão de horário para as disciplinas e
interesses cadastrados. Tendo preenchido os pesos da tabela de prioridades, o usuário
33
escolhe a opção de sugerir horário. Uma sugestão de horário é apresentada após o
processamento.
Visão Geral: o usuário deseja imprimir a lista de alunos cadastrados. Ele escolhe
visualizar a lista de alunos cadastrados e, então, escolhe a opção de imprimi-la. Se ele
desejar, pode também adicionar à impressão as listas de Interesses dos alunos. Ele aprova a
operação de impressão e a lista de alunos (com ou sem os respectivos interesses) é
impressa.
Visão Geral: o usuário deseja imprimir a lista geral de interesses. Ele escolhe
visualizar a lista geral de interesses e, então, escolhe a opção de imprimi-la. Ele aprova a
operação de impressão e a lista geral de interesses é impressa.
Visão Geral: o usuário deseja imprimir o horário sugerido atual. Ele escolhe
visualizar o horário sugerido e, então, escolhe a opção de imprimí-lo. Ele aprova a
operação de impressão e horário sugerido atual é impresso.
Visão Geral: o usuário deseja imprimir a lista de conflitos para o horário sugerido atual.
Ele escolhe visualizar a lista de conflitos e, então, escolhe a opção de imprimi-la. Se ele
desejar, pode também adicionar à impressão o horário sugerido que gerou a lista de
34
conflitos atual. Ele aprova a operação de impressão e a lista de conflitos (com ou sem o
horário sugerido) é impressa.
35