Estudo do caso da colocação de professores

Propaganda
MEI / LEIC
Engenharia de Requisitos de
Sistemas de Software
Estudo de Casos - Caso da
Colocação de Professores
João Pascoal Faria
Novembro de 2004
ERSS, Estudo do Caso da Colocação de Professores, João Pascoal Faria, 2004
1
Modelação de requisitos – modelo de
domínio (UML)
atributo identificador, isto
é, não há dois professores
com o mesmo ranking
~100.000
Professor
ranking: Integer {I}
pressupõe-se que a posição
inicial é sempre acrescentada no
fim da lista de preferências
~30.000
professor inicial
0..1
{subset}
Posição
preferências
candidatos
*
{subset}
/professor final
0..1
posição inicial
0..1
1..*
{ordered}
/posição final
/Colocação Final
associação derivada, a
determinar pelo sistema!
0..1
*
1
Escola
ERSS, Estudo do Caso da Colocação de Professores, João Pascoal Faria, 2004
2
Formulação como problema de matching num grafo
bipartido pesado (ou problema de afectação)
Professores
grau de preferência (custo)
1
2
P1
P2
2
.
.
.
Pn
V1
V2
1
ranking
Posições ou Vagas
.
.
.
1
Vm
Um matching num grafo é um conjunto de arestas disjuntas, isto é, sem vértices comuns
Mas não é um problema standard de matching ou afectação, por causa das restrições a seguir!
ERSS, Estudo do Caso da Colocação de Professores, João Pascoal Faria, 2004
3
Modelação de requisitos – restrições
Para além das restrições já traduzidas no diagrama de classes, uma
colocação tem de garantir a satisfação das seguintes restrições, que
garantem a justiça da colocação na perspectiva de cada candidato:
R1) Um professor que tinha colocação no início tem de ter colocação no fim.
Formalmente, em OCL:
context Professor inv ColocaçãoObrigatória:
posição_inicial->notEmpty() implies posição_final->notEmpty()
ERSS, Estudo do Caso da Colocação de Professores, João Pascoal Faria, 2004
4
Modelação de requisitos – restrições
R2) Para cada professor e para cada posição por ele preferida em relação àquela em
que foi colocado (inclui todas as posições no caso de não ter sido colocado), essa
posição tem de estar ocupada por um professor com melhor ranking ou pelo
professor que aí estava anteriormente colocado (*)
(*) sem esta última cláusula o problema é impossível – ver exemplo do slide 11
Formalmente, em OCL:
context Professor inv OcuparVagasEObedecerRanking:
preferências->forAll( pos |
(posição_final->isEmpty()
or preferências->indexOf(pos) < preferências->indexOf(posição_final))
implies
(pos.professor_final->notEmpty()
and (pos.professor_final.ranking < p1.ranking
or pos.professor_final = pos.professor_inicial)))
ERSS, Estudo do Caso da Colocação de Professores, João Pascoal Faria, 2004
5
Análise de requisitos

Será que as restrições indicadas são suficientes para determinar
uma e uma só solução/colocação (ainda que de forma implícita)?
• Não é razoável deixar ao cuidado do implementador a escolha de uma entre
várias soluções possíveis, nem faz sentido especificar algo que não pode ser
realizado
• Pode ser necessária a contribuição de um designer de algoritmos ou
matemático durante a análise de requisitos!

É fácil convencermo-nos que existe pelo menos uma solução
• Algoritmo pessimista simples baseado na recuperação de vagas encontra
sempre uma solução com estas características – ver slide 7

Mas o exemplo do slide 9 mostra que pode existir mais do que
uma solução!
• O algoritmo pessimista baseado na recuperação de vagas não dá a "melhor"
solução nesse exemplo!
ERSS, Estudo do Caso da Colocação de Professores, João Pascoal Faria, 2004
6
Algoritmo de colocação pessimista
1) Consideram-se inicialmente ocupadas as posições iniciais dos professores
que pretendem mudar de posição
2) Colocam-se os professores pela ordem do ranking:
2.1) Coloca-se o professor na sua melhor preferência que está ainda
livre
2.2) Se o professor estava inicialmente colocado e é colocado agora
numa nova posição, gera uma vaga que tem de ser recuperada:
2.3.1) Procura-se o professor já colocado de melhor ranking que
pode beneficiar dessa vaga
2.3.2) Se não se encontrar nenhum professor nessas condições, a
recuperação da vaga fica concluída
2.3.3) Se se encontrar um professor nessas condições, muda-se a
colocação desse professor (melhorando-a), o que origina uma
nova vaga que tem de ser recuperada da mesma forma
ERSS, Estudo do Caso da Colocação de Professores, João Pascoal Faria, 2004
7
Análise do algoritmo de colocação
pessimista

Uma vez que a recuperação de uma vaga corresponde à melhoria
de posição de um professor, o nº máximo de movimentos de
recuperação de vagas ao longo de toda a execução do algoritmo é
o nº total de preferências indicadas pelos professores.

Isto também garante que o algoritmo termina sempre

É fácil (?) de ver que ambas as restrições (R1 e R2) são satisfeitas
ERSS, Estudo do Caso da Colocação de Professores, João Pascoal Faria, 2004
8
Análise de requisitos - multiplicidade
de soluções
preferência
Situação inicial:
V1
posição
(ou vaga)
P1
P2
V2
professor
algoritmo pessimista
só consegue encontrar
Soluções possíveis válidas
(obedecendo às restrições):
V1
P1
P2
V2
solução
pior
V1
P2
P1
V2
solução
melhor
algoritmo optimista
consegue encontrar
ERSS, Estudo do Caso da Colocação de Professores, João Pascoal Faria, 2004
9
Refinamento de requisitos


Que o critério para escolher a "melhor" solução?
Como se comparam duas soluções válidas (que obedecem às
restrições já indicadas)?
• PROPOSTA: Dá-se prioridade à satisfação do professor com melhor
ranking, isto é, procura-se o professor de melhor ranking em que as
soluções divergem, e escolhe-se a solução que coloca melhor esse
professor
• Este critério impõe uma ordenação total das soluções válidas.

O sistema deve encontrar a solução "óptima", isto é, a
solução válida que é melhor do que todas as outras
• Obviamente, existe só uma solução óptima pelo critério anterior.

Como se formaliza esta regra?
• Invariante em OCL não trivial ....
ERSS, Estudo do Caso da Colocação de Professores, João Pascoal Faria, 2004
10
Análise de requisitos – estranhezas
da lei

Ao melhorar a posição de alguns professores mantendo a posição dos
restantes, pode-se violar a restrição de justiça relativa entre dois
candidatos à mesma vaga!
professor
com
melhor
ranking, mas
sem posição
inicial

não é colocação
P1 válida (segundo
regras anteriores)
P1
P2
P3
colocação inicial é
colocação final válida
(segundo regras
anteriores)
P3
P2
melhorar situação
de P2 e P3,
mantendo situação
de P1
Por isso é que o critério de comparação indicado no slide anterior refere
soluções válidas, e não soluções em geral
ERSS, Estudo do Caso da Colocação de Professores, João Pascoal Faria, 2004
11
Análise de requisitos

A solução pode ser determinada em tempo útil?
• Não faz sentido especificar algo que não pode ser realizado

CONJECTURA: o algoritmo optimista desenvolvido pela ATX
Software – ver slide 13 – determina a solução óptima no
sentido do critério apresentado
• FALTA PROVAR!
• Pode ser necessária a contribuição de um designer de algoritmos ou
matemático durante a análise de requisitos!
• Esse algoritmo corre em tempo polinomial (demorou cerca de 30
minutos com os dados de 2004)
ERSS, Estudo do Caso da Colocação de Professores, João Pascoal Faria, 2004
12
Algoritmo de colocação optimista (*)
1) Consideram-se inicialmente livres as posições iniciais dos
professores que pretendem mudar de posição
2) Colocam-se os professores pela ordem do ranking, na melhor
preferência ainda livre de cada professor (alguns professores
podem ficar por colocar)
3) Se os professores que estavam inicialmente colocados ficaram
todos colocados, o processo termina.
4) Senão,
4.1) Os professores que estavam inicialmente colocados e ficaram por
colocar são colocados definitivamente nas suas posições iniciais, que
deixam de estar livres
4.2) Repete-se a colocação com menos estes lugares livres
(*) Desenvolvido pela
ERSS, Estudo do Caso da Colocação de Professores, João Pascoal Faria, 2004
13
Análise do algoritmo de colocação
optimista



O nº máximo de iterações externas é limitado pelo número de
professores que estavam inicialmente colocados. Isto também
garante que o algoritmo termina sempre
Intuitivamente faz sentido, mas não é trivial mostrar que
encontra a melhor solução!!
Ver demonstração da correcção do algoritmo nas referências.
ERSS, Estudo do Caso da Colocação de Professores, João Pascoal Faria, 2004
14
Modelação de requisitos - formalização

Especificação formal do objectivo de optimização
em OCL
a fazer
ERSS, Estudo do Caso da Colocação de Professores, João Pascoal Faria, 2004
15
Especificação por pós-condições


Em vez de invariantes sobre o estado, podem-se
definir pós-condições sobre a operação que
efectua a colocação
O algoritmo pode ser expresso no corpo da
operação por uma linguagem de acções de alto
nível
ERSS, Estudo do Caso da Colocação de Professores, João Pascoal Faria, 2004
16
Lições



Uma coisa é especificar o problema a resolver
(nível dos requisitos) e outra coisa é especificar o
algoritmo para resolver o problema (nível da
solução)
Neste caso, é difícil separar as duas coisas
Não vale a pena comparar a eficiência de
algoritmos que resolvem problemas diferentes
(ou, o mesmo é dizer, dão resultados diferentes)
ERSS, Estudo do Caso da Colocação de Professores, João Pascoal Faria, 2004
17
Referências

Algoritmo de colocação de professores

www.uml.org
ERSS, Estudo do Caso da Colocação de Professores, João Pascoal Faria, 2004
18
Agradecimentos

Agrade-se ao Dr. Luis Andrade e à ATX Software
(www.atxsoftware.com) toda a informação
disponibilizada sobre o problema e o algoritmo
desenvolvido
ERSS, Estudo do Caso da Colocação de Professores, João Pascoal Faria, 2004
19
Download