• Nenhum resultado encontrado

Tiveit (2001) explica que o desenvolvimento orientado a agentes ainda apresenta problemas específicos da tecnologia. Wooldrige (2000) acrescenta que há

obstáculos que ainda devem ser superados para que a Engenharia de Software orientada a agentes se torne popular.

Na visão do autor, um dos obstáculos diz respeito à organização do relacionamento dos agentes com outros paradigmas. Não há muita clareza de como se dá o convívio de agentes com outras terminologias de programação tais como odesenvolvimento orientado aobjetos.

Outro entrave citado por Wooldridge compara as metodologias de desenvolvimento orientado a agentes descrevendo o pouco consenso que há entre elas e praticamente nenhum acordo entre suporte técnico que a metodologia é capaz fornecer, além dos conceitos do mundo real que tem competência para representar.

A escalabilidade também é outro obstáculo. Deve alcançar um entendimento de como fazer a engenharia segura e previsível de sistemas que possuem um grande número de agentes interagindo dinamicamente. A falta de reastreamento de requisitos também é considerada por Woodridge como um obstáculo, pois gerenciar as constantes mudanças nas funcionalidades por parte do cliente em todo processo de desenvolviemnto de SMAs.

Adicionalmente aos problemas específicos da tecnologia de agentes, tais como imprevisibilidade dos padrões e efeitos de suas interações, - que são decorrentes de sua característica autônoma - requisições que podem ser tanto simples quanto prolongadas, comportamento emergente e etc, há também desafios comuns que surgem quando uma nova tecnologia é utilizada. Segundo Tivet (2001) tais desafios são classificados em cinco categorias: Política, Conceitual, Análise e Projeto, Nível de Agente e Nível de Sociedade.

Na categoria Política ainda é preciso superar o excesso de entusiasmo ao se propor soluções baseadas em agentes. Normalmente, há um fracasso resultante de uma falta de entendimento da aplicação adequada dos agentes, principalmente por esta tecnologia revelar uma abordagem inovadora, apresentar uma importante maneira de se conceituar e implementar software o que em muitas situações não se dá importância às suas restrições.

Nessa categoria também está incluída a adoção dos agentes como um dogma o que, apesar de existirem diversas aplicações utilizando agentes, nem sempre se pode solucionar problemas com agentes. Há situações em que as terminologias convencionais de desenvolvimento são mais adequadas, como por exemplo, a orientação a objetos.

A categoria Conceitual destaca aspectos tais como métodos confiáveis de desenvolvimento e soluções padronizadas. É nesse sentido que as práticas de engenharia de software devem ser analisadas para que não haja falha do projeto como um todo, caso isso seja ignorado, já se sabe que a falha não foi originada por problemas específicos de agente.

Há também uma forte tendência de se esquecer que o sistema que está sendo desenvolvido pode conter várias linhas de execução, as chamadas threads, que permitem trabalhar com diferentes fluxos de controle em um único processo. Por essa característica, os SMAs são classificados como ambiente mutithreaded. Os problemas de programação concorrente continuam a existir. Portanto, o consumo de processador e memória e desempenho do sistema não devem ser ignorados.

A categoria Analise e Projeto descreve as dúvidas de uma solução orientada a agentes, pois não é perceptível como os agentes podem ser usados para trazer melhorias para um produto ou até mesmo como aqueles podem se tornar aptos para criar novas linhas de produtos. Pode haver também um mau entendimento sobre o planejamento de uma arquitetura genérica para uma família de aplicações que na realidade só atende um único problema.

Além disso, é importante frisar que o paradigma de agentes ainda não foi testado em sua essência e é comum equipes de desenvolvimento considerarem como solução única. A pesquisa sobre agentes é um tópico aberto e há bons argumentos que apontam essa tecnologia como solução para software complexo, mas quantitativamente falando, ainda não há comprovação suficiente.

Outro problema que normalmente pode ocorrer é o desenvolvimento de uma arquitetura própria de agentes. Segundo Tivet, (2001) este é um erro considerado gravíssimo, pois devem ser pesquisadas as várias arquiteturas de agentes existentes, bem como os padrões de projeto global e de unidade de agentes que

atendam os requisitos do sistema, cultivando a seleção, adaptação e composição de soluções de software que já foram testadas.

Na categoria Nível de Agente, problemas com o excesso de Inteligência Artificial podem sobrecarregar o framework, principalmente se a arquitetura for genuinamente deliberativa que geralmente apresentam técnicas de processamento de linguagem natural, planejadores, base de conhecimento e etc.

Por fim, a categoria Nível de Sociedade aborda a ausência de uma preocupação com a concorrência comentada nas categorias anteriores. Por exemplo, se o sistema apresenta um único fluxo de controle, portanto deve-se questionar: A solução baseada em agentes é realmente útil para este caso? Em contrapartida, deve-se evitar usar agentes para tudo?

É importante reconsiderar as outras categorias que demonstram possíveis falhas de projetos decorrentes de sobrecarga gerada para gerir os agentes e troca de mensagens entre eles o que, em muitos casos, tem mais impacto nos próprios benefícios que se pretende alcançar com uma solução baseada em agentes. Nesse sentido, é indispensável ter um projeto que explore suficientemente o potencial que os agentes oferecem sem que haja carga de agência e comunicação excessivas.

O estudo destes desafios tem como intuito, reconhecer as armadilhas que podem causar surpresas desagradáveis tanto no paradigma orientado a agentes quando no orientado a objetos. Portanto, não faz parte do escopo desta dissertação indicar que uma abordagem é mais propensa a erro do que a outra.

Documentos relacionados