Universidade Federal do Espírito Santo
Inteligência Artificial
Profinder
Grupo:
Carlos Frederico S. da F. Mendes
Diego Barcelos Rodrigues
Diego Rocha Tristão
João Olavo Baião de Vasconcelos
Vitória
2007/02
Profinder
Relatório Final apresentado como requisito
para a conclusão da Disciplina Inteligência
Artificial, ministrada aos alunos dos cursos de
Ciência e Engenharia da Computação e do
Mestrado em Informática da UFES, por Prof.
Dr. Giancarlo Guizzardi e Profa. Dra. Renata
Silva Souza Guizzardi.
Sistemas Multiagentes
Análise e Projeto usando ARKnowD
Sumário
1 Descrição do problema....................................................................................................4
2 Metodologia Tropos........................................................................................................5
2.1 Requisitos iniciais........................................................................................................5
2.2 Requisitos finais..........................................................................................................6
2.3 Projeto arquitetural......................................................................................................7
3 AORML – Projeto detalhado...........................................................................................9
3.1 Diagrama de agentes....................................................................................................9
3.2 Detalhes da tarefa “Procurar por vagas”..................................................................10
3.3 Detalhes da tarefa “Encontrar candidatos”.................................................................15
4 Avaliação da experiência...............................................................................................22
4.1 Uso da metodologia ARKnowD (Tropos + AORML)..............................................22
4.2 Uso das ferramentas de modelagem..........................................................................23
Índice de ilustrações
Figura 1: Requisitos iniciais: diagrama de dependência estratégica.......................................5
Figura 2: Requisitos iniciais: diagrama de razão estratégica..................................................5
Figura 3: Requisitos finais: diagrama de dependência estratégica.........................................6
Figura 4: Requisitos finais: diagrama de razão estratégica.....................................................6
Figura 5: Projeto arquitetural: diagrama de dependência estratégica.....................................7
Figura 6: Projeto arquitetural: diagrama de razão estratégica.................................................8
Figura 7: Diagrama de agentes................................................................................................9
Figura 8: Diagrama ISD para o caso "Procurar por vagas"...................................................10
Figura 9: Diagrama ISD para o caso "Procurar por vagas": nenhuma vaga encontrada.......11
Figura 10: Diagrama ISD para o caso "Procurar por vagas": nenhuma vaga compatível
encontrada.............................................................................................................................12
Figura 11: Diagrama IFD para o caso "Procurar por vagas": Profissional e Agente de
emprego.................................................................................................................................12
Figura 12: Diagrama IFD para o caso "Procurar por vagas": Agente de emprego e Agente
RH.........................................................................................................................................13
Figura 13: Diagrama IPD para o caso "Procurar por vagas".................................................13
Figura 14: Diagrama ISD para o caso "Encontrar candidatos".............................................16
Figura 15: Diagrama ISD para o caso "Encontrar candidatos": nenhum currículo encontrado
...............................................................................................................................................17
Figura 16: Diagrama ISD para o caso "Encontrar candidatos": nenhum currículo compatível
encontrado.............................................................................................................................18
Figura 17: Diagrama IFD para o caso "Encontrar candidatos": Empresa e Agente RH.......19
Figura 18: Diagrama IFD para o caso "Encontrar candidatos": Agente RH e Agente de
emprego.................................................................................................................................19
Figura 19: Diagrama IPD para o caso "Encontrar candidatos".............................................20
1 Descrição do problema
Estamos propondo um sistema para facilitar a vida dos profissionais na
busca por emprego, e das empresas em busca de profissionais competentes para
assumir uma determinada vaga.
Hoje em dia, quando um profissional procura por um emprego, ele busca
em classificados, agências de emprego ou em sites de empresas, tentando
encontrar algo que lhe seja interessante e que ele seja capaz de realizar, de
acordo com o seu currículo e com os requisitos da vaga. Ao encontrar uma vaga
compatível com suas capacidades, o profissional envia (e.g., via email) seu
currículo para a empresa, indicando em qual vaga está interessado. Acontece
também das pessoas disponibilizarem seus currículos em algum local onde as
empresas possam consultar (agências de emprego, por exemplo) e entrar em
contato caso se interessem.
Já as empresas, quando na busca de um profissional para ocupar uma
vaga de emprego em aberto, podem disponibilizar as vagas com seus requisitos
em agências de emprego, sites ou algum outro local de acesso público, ou podem
optar por não disponibilizá-las, mas ir atrás de currículos que satisfazem os
requisitos necessários, convidando quem as interessar para uma entrevista.
Nossa proposta é automatizar essas tarefas, desde a publicação de
currículos ou vagas de emprego, até a avaliação de currículos e convocação para
entrevista. Dessa maneira, as empresas somente terão que entrevistar os
melhores candidatos às vagas, poupando tempo e dinheiro e sem necessitar de
intermediação de uma agência de empregos. Os profissionais, por sua vez, terão
um novo canal de comunicação com o mercado de trabalho, também poupando o
tempo de buscar por um emprego ideal.
Apresentamos neste relatório o Profinder, um sistema inteligente orientado
a agentes que irá buscar pela Internet páginas que disponibilizam currículos
(páginas de profissionais) ou vagas de emprego (páginas de empresas). Cada
profissional terá o seu agente de emprego, que buscará por vagas de emprego
compatíveis com suas habilidades e disponibilizará o currículo do profissional para
os agentes RH. Estes são os agentes que o Profinder disponibilizará para as
empresas, que buscarão por profissionais que se adeqüem aos cargos em aberto
e disponibilizarão as vagas de emprego existentes para que os agentes de
emprego possam acessá-las.
A análise deste sistema será apresentada utilizando duas metodologias: a
Tropos e a AORML, que utilizadas em conjunto formam a metodologia ARKnowD.
2 Metodologia Tropos
2.1 Requisitos iniciais
O diagrama de dependência estratégica da fase de requisitos iniciais
mostra que as únicas dependências entre o profissional e a empresa são o
currículo do profissional e as vagas de emprego da empresa.
Pode ser observado também os objetivos de cada um. Alguns objetivos não
são mensuráveis (soft goals), como trabalhar pouco e encontrar melhor candidato
para a vaga. A empresa e o profissional podem optar também por não tornar
público os seus dados – o profissional pode não querer ser incomodado a
qualquer momento, com empresas lhe oferecendo emprego, e a empresa, por
alguma razão estratégica, pode não querer apresentar as vagas de emprego
existentes.
Figura 1: Requisitos iniciais: diagrama de dependência estratégica
No diagrama de razão estratégica, vê-se as tarefas executadas por um
profissional quando deseja encontrar uma vaga de emprego, como comparar o
seu currículo com os requisitos das vagas e enviar um email para a empresa caso
se interesse por algum cargo.
Observa-se também as formas que uma empresa utiliza para disponibilizar
as vagas de emprego, como colocá-las em seu site corporativo ou cadastrá-las em
uma agência de emprego.
Figura 2: Requisitos iniciais: diagrama de razão estratégica
2.2 Requisitos finais
Na fase de requisitos finais da metodologia Tropos, o sistema Profinder é
inserido como um agente, e se responsabiliza em atingir os objetivos das
empresas e dos profissionais.
Figura 3: Requisitos finais: diagrama de dependência estratégica
No diagrama de razão estratégica dos requisitos finais, observa-se o porquê
do objetivo Não disponibilizar curriculo ser designado para o Profinder: o
profissional não deseja receber ofertas de emprego, e do mesmo modo que é do
Profinder a responsabilidade de disponibilizar o currículo, também é deste a
responsabilidade de não divulgá-lo.
Figura 4: Requisitos finais: diagrama de razão estratégica
2.3 Projeto arquitetural
É na fase de projeto arquitetural que são inseridos os agentes existentes no
sistema: o agente de emprego, responsável por atingir os objetivos dos
profissionais, e o agente RH, responsável pelos objetivos das empresas.
Os objetivos que antes eram de responsabilidade de um único agente
(Profinder), agora foram realocados para seus respectivos responsáveis.
Figura 5: Projeto arquitetural: diagrama de dependência estratégica
O diagrama de razão estratégica do projeto arquitetural mostra as tarefas
sendo alocadas para o agente responsável. Por exemplo, o agente de emprego
disponibiliza o currículo do profissional e o agente RH avisa o profissional sobre o
interesse da empresa por ele.
Foram adicionadas as tarefas Encontrar candidatos e Procurar por vagas
para encapsular as tarefas responsáveis por atingirem, respectivamente, os
objetivos Encontrar candidatos para vagas e Encontrar vagas de emprego.
Observa-se também que o objetivo Encontrar melhor vaga para profissional
não é um soft goal, visto que tal qualidade será mensurável a partir de cálculos
executados na tarefa Confrontar curriculo com vaga.
Figura 6: Projeto arquitetural: diagrama de razão estratégica
3 AORML – Projeto detalhado
3.1 Diagrama de agentes
O diagrama de agentes foi obtido observando a Figura 5, a princípio a partir
de um processo de transformação mecânico apresentado durante o curso, e
depois refinando o modelo obtido, renomeando, adicionando e removendo
algumas relações.
Este diagrama foi mudado após a etapa do IPD, a ser vista mais adiante.
Foram acrescentadas crenças aos agentes artificiais, como a lista de vagas
encontradas para o agente artificial e a lista de candidatos sugeridos para o
agente RH.
Figura 7: Diagrama de agentes
3.2 Detalhes da tarefa “Procurar por vagas”
A tarefa “Procurar por vagas”, observada na Figura 6, é decomposta em
tarefas que buscam as vagas de emprego com os agentes RH e comparam os
requisitos das vagas encontradas com o currículo do profissional agenciado.
Dessa comparação, é obtida uma lista com as vagas que se encaixam com o
currículo, enviando-a para o profissional. Também é enviado para as empresas
responsáveis por cada vaga o currículo e a vaga que está sendo pleiteada.
ISD
Foram três casos utilizados para mostrar o fluxo das mensagens trocadas.
Na figura abaixo, o profissional requisita ao seu agente de emprego que
procure vagas de emprego compatíveis com seu currículo, dando um prazo de 5
dias para o retorno dos resultados. É criado então um compromisso entre o dois,
com o agente de emprego devendo retornar a lista das vagas compatíveis
encontradas, ou uma mensagem informando que nenhuma compatível foi
encontrada.
Após o término do prazo de busca por vagas, o agente de emprego realiza
uma ação de verificação da compatibilidade das vagas encontradas com o
currículo do agenciado, retornando para este o resultado e encaminhando o
currículo para as empresas cujas vagas foram consideradas compatíveis com o
profissional.
Figura 8: Diagrama ISD para o caso "Procurar por
vagas"
Neste outro caso apresentado na Figura 9, nenhuma vaga foi encontrada
(os agentes RH encontrados não retornaram nada), enviando então para o
profissional uma mensagem indicando que nada foi encontrado.
Figura 9: Diagrama ISD para o caso "Procurar por vagas":
nenhuma vaga encontrada
Neste último caso, foram encontradas algumas vagas de emprego, mas ao
analisar a compatibilidade das vagas com o currículo do profissional, verificou-se
que nenhuma era interessante para ele. Assim, a mensagem indicando que
nenhuma vaga foi encontrada é retornada para o profissional.
Figura 10: Diagrama ISD para o caso "Procurar por
vagas": nenhuma vaga compatível encontrada
IFD
O diagrama IFD mostra uma generalização das mensagens trocadas nos
diagramas ISD apresentados anteriormente.
Na figura a seguir, vemos quais são as mensagens trocadas entre os
agentes Profissional e Agente de emprego.
Figura 11: Diagrama IFD para
o caso "Procurar por vagas":
Profissional e Agente de
emprego
Nesta outra, vemos as mensagens trocadas entre o Agente de emprego e o
Agente RH.
Figura 12: Diagrama IFD para o caso
"Procurar por vagas": Agente de emprego
e Agente RH
IPD
No diagrama IPD, podemos observar as decisões que são tomadas de
acordo com certas condições.
Como exemplo, vemos que a decisão do agente de emprego enviar uma
mensagem para o profissional para avisá-lo sobre a existência ou não de vagas de
emprego depende do resultado da análise das vagas encontradas: caso não seja
encontrada nenhuma vaga compatível, o aviso que vagas não foram encontradas
é enviado; caso contrário, as vagas encontradas são enviadas e o currículo do
profissional é encaminhado para as empresas que disponibilizaram as vagas.
Figura 13: Diagrama IPD para o caso "Procurar por vagas"
Todas as condições e as ações executadas podem ser vistas nas tabelas
seguintes:
- R1
ON
Event
RECEIVE FindJob(?Timeout) FROM ?Profissional
DO
Action
SEND Há vagas de emprego() TO ?Ag. RH
- R2
ON
Event
RECEIVE SendVagas(?Vagas) FROM ?Ag. RH
DO
Action
STORE ?Vagas IN ?Lista de vagas
- R3
ON
Event
PERCEIVE Timeout
IF
Condition AnalisarVagas(?curriculo, ?Lista de vagas) <> NULL
THEN Action
Action
SEND ListOfJobs(?Vagas sugeridas) TO ?Profissional
SEND EnviarCurriculo(?curriculo, ?Vaga) TO ?Ag. RH
ELSE Action
SEND VagaNaoEncontr() TO ?Profissional
3.3 Detalhes da tarefa “Encontrar candidatos”
A tarefa “Encontrar candidatos”, observada na Figura 6, é decomposta em
tarefas que buscam currículos com os agentes de emprego e comparam os
currículos encontrados com os requisitos das vagas. Dessa comparação, é obtida
uma lista com os currículos que se encaixam com os requisitos das vagas, e
esses candidatos são enviados para as empresas. Também é enviado para os
profissionais uma mensagem indicando que a empresa está interessada em seus
serviços.
ISD
Nesta tarefa, também foram três casos utilizados para mostrar o fluxo das
mensagens trocadas.
Na figura abaixo, a empresa requisita ao seu agente RH que procure
currículos compatíveis com as vagas de emprego da primeira, dando um prazo de
5 dias para o retorno dos resultados. É criado então um compromisso entre o dois,
com o agente RH devendo retornar a lista dos candidatos encontrados
compatíveis com alguma vaga, ou uma mensagem informando que nenhum
compatível foi encontrado.
Após o término do prazo de busca por vagas, o agente RH realiza uma
ação de verificação da compatibilidade das vagas com os currículos encontrados,
retornando para a empresa o resultado, e encaminhando para os profissionais
aprovados uma mensagem convidando-os para uma entrevista de emprego.
Figura 14: Diagrama ISD para o caso "Encontrar candidatos"
Neste outro caso, nenhum currículo foi encontrado (os agentes de emprego
encontrados não retornaram nada), enviando então para a empresa uma
mensagem indicando que nada foi encontrado.
Figura 15: Diagrama ISD para o caso "Encontrar candidatos":
nenhum currículo encontrado
Neste último caso, foram encontrados alguns currículos, mas ao analisar a
compatibilidade das vagas com os currículos, verificou-se que nenhum era
interessante. Assim, a mensagem indicando que nenhum currículo foi encontrado
é retornada para a empresa.
Figura 16: Diagrama ISD para o caso "Encontrar candidatos":
nenhum currículo compatível encontrado
IFD
No diagrama IFD a seguir, vemos quais são as mensagens trocadas entre
os agentes Empresa e Agente RH.
Figura 17: Diagrama IFD para o caso
"Encontrar candidatos": Empresa e
Agente RH
Neste diagrama IFD abaixo, as mensagens trocadas entre o agentes RH e
o agente de emprego são mostradas.
Figura 18: Diagrama IFD para o caso
"Encontrar candidatos": Agente RH e
Agente de emprego
IPD
O diagrama IPD da tarefa “Encontrar candidatos” pode ser visto na Figura
19.
Vemos que a decisão do agente RH enviar uma mensagem para a empresa
para avisá-la sobre a existência ou não de currículos compatíveis com as vagas
de emprego disponibilizadas depende do resultado da análise dos currículos
encontrados: caso não seja encontrado nenhum currículo compatível, o aviso que
currículos não foram encontrados é enviado; caso contrário, os currículos são
enviados, informando a que vagas eles estão destinados, e uma mensagem é
encaminhada para os profissionais selecionados informando-os do interesse da
empresa pelos seus serviços.
Figura 19: Diagrama IPD para o caso "Encontrar candidatos"
Todas as condições e as ações executadas podem ser vistas nas tabelas
seguintes:
- R1
ON
Event
RECEIVE FindCand(?Timeout) FROM ?Empresa
DO
Action
SEND Quer enviar curriculo() TO ?Ag. de emprego
- R2
ON
Event
RECEIVE SendCurriculo(?curriculo) FROM ?Ag. de emprego
DO
Action
STORE ?curriculo IN ?Lista_Curriculos
ON
Event
PERCEIVE Timeout
IF
Condition
AnalisarCurriculos(?Lista curriculos, ?Vagas) <> NULL
- R3
THEN Action
Action
SEND ListOfCand(?Candidatos sugeridos) TO ?Empresa
SEND Convidar entrevista(?vaga) TO ?Ag. de emprego
ELSE
SEND CandNaoEncontr() TO ?Empresa
Action
4 Avaliação da experiência
4.1 Uso da metodologia ARKnowD (Tropos + AORML)
A mudança de paradigma de análise de sistema de orientado a objeto para
orientado a agente foi bem assimilada pelo grupo. Ficou clara a distinção entre os
dois paradigmas durante a modelagem do sistema, como a expressividade que
cada um tem.
A dependência entre agentes é uma característica marcante da metologia
Tropos, enquanto que a cardinalidade e a troca de mensagens caracteriza a
AORML, formando juntas uma metodologia nova que se utiliza do melhor das
outras duas.
Foram duas grandes dificuldades encontradas: o uso das ferramentas e a
falta de uma especificação mais completa da linguagem. Baseamos-nos
praticamente nos exemplos mostrados nos slides apresentados em aula e
disponibilizados no site da disciplina, e lendo-os – e consultando a professora –
entendemos a sintaxe e conhecemos os componentes da linguagem. Entretanto,
como os exemplos não mostravam todas as possibilidades de combinação dos
componentes (nem todos os componentes), podemos ter cometido erros sintáticos
ou semânticos. Quanto ao uso das ferramentas, comentaremos em 4.2.
De uma maneira geral, a modelagem com Tropos é interessante, porém
algumas definições são um pouco abstratas para um iniciante, sendo complicado
decidir o modelo do sistema e surgindo diversas dúvidas, como “Vou modelar isso
como um único plano ou vou decompô-lo em vários outros”?, “Esse softgoal é
realmente necessário?” e “Isso é uma dependência de objetivo ou de recurso?”.
Entretanto, durante o desenvolvimento do trabalho, fomos assimilando esses
conceitos e tais dúvidas foram sendo esclarecidas.
Com relação a AORML, consideramos a migração de um projeto
arquitetural para o diagrama de agentes muito simples e de maneira praticamente
mecânica. Já em relação aos diagramas de interação, tivemos muita dificuldade
em modelá-los, principalmente pela ausência de uma especificação completa da
linguagem, com a sintaxe e todos os elementos léxicos existentes.
A idéia de mostrar as trocas de mensagens entre os agentes é muito
interessante, permitindo uma análise geral da comunicação entre eles, bem como
quais recursos são necessários e quais mensagens são trocadas quando o fluxo
normal da comunicação é quebrado.
As etapas seguidas para construir cada diagrama foi considerada muito
boa, pois permite a modelagem de casos específicos a fim de observarmos todos
os caminhos possíveis na comunicação, e nos preparando para modelar um caso
“genérico” de troca de mensagens (diagrama IFD).
Consideramos como vantagem da ARKnowD o fato de os mesmos
elementos léxicos estarem presentes em todas as fases do Tropos, e algo
semelhante também ocorre nos diagramas de interação do AORML (exceção feita
a alguns elementos do IPD).
4.2 Uso das ferramentas de modelagem
A) TAOM4E
A ferramenta TAOM4E facilita bastante a modelagem Tropos. A verificação
sintática que ela apresenta funcionou perfeitamente, evitando que erros de
modelagem ocorressem.
Entretanto, ressaltamos a grande quantidade de bug que encontramos e
que nos fez perder muitas horas de trabalho. Atividades como copiar e colar e
gerar as figuras nos trouxeram muitas dores de cabeça. Ao colar um comentário
dentro da bolha de um agente, ele era colado em uma área bem distante do
agente, não ficando visível, e, por estar distante mas dentro da bolha, esta ficava
enorme, sendo uma dificuldade imensa encontrá-lo.
Gerar figuras no formato PNG travavam quase sempre o Eclipse, e
aconteceu do arquivo tropos não abrir mais após isso, tendo que refazê-lo.
Gerando figuras no formato BMP, isso não acontecia.
As operações de desfazer e refazer ações também não funcionavam
sempre, aparecendo mensagens de exceção.
Renomear os elementos também era uma dificuldade. Não era permitido
apagar o nome todo dos elementos (agente1, por exemplo) para pode escrever o
nome desejado. Era necessário escrever primeiro, para só depois apagar o nome
antigo. A falta de um atalho de teclado para renomear também foi notada (e.g., a
tecla F2).
A exceção dos problemas citados, consideramos uma excelente
ferramenta, com um visual muito bom.
A modelagem foi feita em um ambiente com as seguintes ferramentas:
 Sistema operacional: Ubuntu 7.10
 Eclipse: 3.2.2
 TAOM4E: 0.5.0
 JDK: 6
 EMF: 2.1.1
 GEF: 3.1.1
B) MS Visio com Template AORML
A experiência de criar modelos AORML no Visio não foi agradável. A
ferramenta não apresentou nenhum bug, mas a sua usabilidade para construir tais
modelos é sofrível.
Ocorreu um grande desânimo nesta etapa por não existir uma ferramenta
especialista na sintaxe da linguagem, pois o Visio não proporciona uma forma de
integrar facilmente os elementos léxicos, nem faz verificação sintática, e
consideramos inviável a modelagem no Visio de um projeto mais complexo, visto a
dificuldade de utilizar o AORML neste programa e o tempo que será perdido
utilizando-a. Consideramos que dispersão dessa metodologia tem um gargalo
muito grande, que é a falta de uma ferramenta especialista.
Poderiam ser desenvolvidos templates para ferramentas de modelagens
livres e multiplataformas, com a modelagem não ficando restrita a somente um
sistema operacional nem a uma ferramenta paga. Tal fato levou os alunos a
piratearem o software para que pudessem fazer este trabalho, prática criminosa e
mal vista por nós mesmos, visto que somos desenvolvedores de softwares e os
temos como sustento.
A ferramenta Dia é sugerida como uma outra opção para modelagem
AORML.
Download

Profinder - Informática