• Nenhum resultado encontrado

4 MODELAGEM DA PROPOST PROJECT PORTFOLIO SUPPORT TOOL

4.5 Implementação da Ferramenta PROPOST

Na fase de Implementação da Aplicação, conforme definido na metodologia MAAEM, o principal produto resultante é o Modelo de Implementação da Aplicação, o qual é resultante das seguintes atividades:

• Modelagem de Agentes e Comportamento

• Modelagem de Atos de Comunicação entre Agentes

4.5.1 Modelagem de Agentes e Comportamento

A Figura 57 mostra o Modelo de Agentes e Comportamentos da

PROPOST, o qual relaciona instâncias das classes agentes e comportamento da plataforma JADE - Java Agent DEvelopment framework (Bellifemine, 2003), a tecnologia de implementação adotada, identificadas a partir dos agentes e responsabilidades projeto, respectivamente.

Assim, foram instanciados os agentes interfaceador, modelador, aquisitor, minerador e analisador. E, de acordo com as responsabilidades por eles assumidas, procedeu-se a instanciação dos comportamentos de cada um, os quais apresentam diversos tipos, conforme detalhado a seguir.

O agente interfaceador desempenha os seguintes comportamentos: monitorar uso dos sistemas, que é cíclico, pois permanece em constante estado de captura das informações sobre as utilizações de sistemas; representar consultas, que é que é atômico, porque é executado uma única vez quando o usuário expressa sob a forma de uma consulta a sua necessidade pontual sobre informações de soluções de software; representação e indexação de soluções de software, que é cíclico, pois permanece em constante estado de captura de definições de soluções de software, a serem representadas e indexadas; comparação e recuperação, que é seqüencial, pois ocorre em seqüência a uma representação de consulta; e recomendação de solução, que é simples, uma vez que é disparado quando há uma requisição de recomendação pelo usuário.

O agente modelador fica encarregado dos seguintes comportamentos: modelar área corrente, que é simples, já que é executado cada vez que sejam repassadas informações sobre escolhas; e construir modelo de recomendação, que também é simples, uma vez que entra em execução sempre que um grupo esteja disponível.

O agente aquisitor cuida dos seguintes comportamentos: manter dados de uso, que é simples, porque é executado uma única vez, quando um usuário acessa um sistema, para que sejam armazenados no repositório os dados referentes ao uso; manter dados de solução de software, que é simples, porque é executado uma única vez quando uma determinada solução de software é definida, para que sejam armazenados no repositório os dados referentes à solução; manter dados de recursos, que é simples, porque é executado uma única vez quando um determinado recurso é alocado em um projeto, para que sejam armazenados no repositório os dados referentes à alocação do recurso.

O agente minerador executa os seguintes comportamentos: descobrir padrões de consumo, que é seqüencial, tendo como sub- comportamentos extrair modelos de área, que é cíclico, pois é executado dentro de intervalos de tempos pré-definidos, e aplicar algoritmos de mineração, que é simples, já que é executado sempre que modelos de área são extraídos; e classificar a área corrente, que é simples, pois é executado cada vez que um modelo de área corrente esteja disponível.

O agente analisador executa os seguintes comportamentos: elaboração de estimativas de projeto, que é atômico, pois é executado uma única vez para cada projeto a ser estimado; elaborar priorização de projetos, que é atômico, pois é executado uma única vez para cada projeto a ser priorizado; elaboração de análise de status, que é atômico, pois é executado uma única vez para cada projeto a ser analisado; e elaboração de análise de sistemas, que é atômico, pois é executado uma única vez para cada sistema a ser analisado.

Figura 57 Modelo de Agentes e Comportamento da PROPOST

4.5.2 Modelagem de Atos de Comunicação entre Agentes

A Figura 58 mostra o Modelo de Atos de Comunicação entre Agentes

da PROPOST, que exibe a forma como o conhecimento da sociedade multiagente é realizado entre os agentes, por meio das mensagens que uns enviam para outros.

Após capturar a informação de uso do sistema por um usuário o agente interfaceador envia uma mensagem “1-INFORM_REF (informações sobre os usos de sistemas)” para o Modelador. Tendo em vista que cada usuário está lotado em apenas uma área, é possível construir o modelo da área corrente, o qual será usado para classificação desta área. Posteriormente, caso haja outras áreas modeladas, a aplicação já poderá classificar a área, o que faz após o agente minerador receber uma mensagem “2-INFORM-REF (modelo da área corrente)” do modelador.

Em seguida, o agente minerador requer ao aquisitor, através de uma mensagem “3-QUERY_REF (repositório de dados de uso)”, os dados de uso a partir dos quais são extraídos os modelos da área para formação de grupos em que se classifica a área corrente, por meio da mineração de uso. E após isso, o o agente minerador remete ao modelador uma mensagem “4-INFORM_REF (grupo de áreas com perfil similar ‘a área corrente)” contendo o grupo em que se enquadra a área corrente, na qual é baseado o processo de recomendação de soluções de software.

O próximo passo consiste no modelador repassar ao interfaceador a mensagem “5-INFORM_REF (modelo de recomendação)” para que ele possa providenciar, com base em tal modelo, a efetiva oferta à área de soluções de software recomendadas, recebendo em seguida uma confirmação de que as “recomendações de solução de software foram entregues”, indicando que a operação foi bem sucedida.

Além dos eventos acima descritos, pode também estar ocorrendo em paralelo, a notificação de que um “usuário saiu do sistema”, repassada ao agente interfaceador, originando outra mensagem “6-INFORM_REF (informações sobre usos de sistemas)” dele para o modelador e, por fim, uma “7-INFORM-REF (modelo da área corrente)” ao aquisitor, o que possibilita o armazenamento dos dados da presente sessão de uso, os quais, juntamente com os outras sessões passadas e futuras, constituem outra parte do subsídio demandado pela classificação.

Pode ainda estar ocorrendo uma interação entre o usuário e o sistema, relativa à busca por soluções de software, a partir de palavras-chaves contidas na descrição das mesmas. Neste caso, ocorre uma necessidade de informação pontual, cuja especificação é realizada pelo usuário via interface e, reconhecida pelo agente interfaceador. Este agente se encarrega de enviar ao aquisitor, através de uma mensagem “8-QUERY_REF (representação da consulta)”, na qual ele recupera as soluções de software relevantes à necessidade de informação e as entrega ao usuário.

Outras interações que podem ainda ocorrer são referentes às informações sobre análise de status de projetos e análise de uso de sistemas de informação, as quais são carregadas automaticamente pelo sistema sempre que um usuário acessa o mesmo. Essas análises são realizadas a partir das requisições “9-QUERY_REF (busca no repositório de dados de uso)” e “10- QUERY_REF (busca no repositório de dados de projetos)”, ambas enviadas do agente analisador para o agente aquisitor.

Figura 58 Modelo de Atos de Comunicação entre Agentes da PROPOST