You are on page 1of 9

http://www.devmedia.com.br/engenharia-de-software-orientada-a-agentes/29238 http://www.lbd.dcc.ufmg.br/colecoes/jai/2006/006.

pdf

Engenharia de Software Orientada a Agentes


Veja nesse artigo como funciona a Engenharia de Software Orientada a Agentes e os Sistemas Multiagentes.
24

Gostei (1) (0)


Sistemas multiagentes tambm precisam ser pensados, planejados, projetados e modelados para um desenvolvimento com tima qualidade em tempo estimado. Estes tem atrado a considervel ateno da indstria de software. As aplicaes industriais de software vm crescendo no tamanho e complexidade, onde o projeto e construo tem se tornado uma tarefa de gerenciamento mais difcil. Assim, pesquisadores buscam novos paradigmas para aumento da habilidade para modelagem, projeto e construo de sistemas complexos. Ao longo do tempo, a Engenharia de Software (ES) tem utilizado de vrios paradigmas para o desenvolvimento de software como programao estruturada, declarativa, imperativa, orientada a objetos, orientada a componentes e etc., para um melhor gerenciamento de software e permitir a construo de aplicaes

mais complexas. Um dos paradigmas, quem tem ganhado a ateno da indstria de software, e tem tido um desenvolvimento promissor o paradigma de orientao a agentes; vale ressaltar que um tpico de ativa pesquisa na comunidade cientfica e que ainda no foi solidificado para o mercado, mas que j existem tcnicas, metodologias, ferramentas e etc. validadas e disponveis para uso. A Engenharia de Software Orientada a Agentes (ESOA) trata do uso do paradigma de agentes para desenvolvimento de software para soluo de sistemas complexos. Estes sistemas complexos so descritos como sistemas que geralmente operam em ambientes abertos (ex. uma rede de computadores), no previsveis e de mudanas rpidas; onde estes sistemas devem ser capazes de decidir o que fazer em qualquer situao para alcanar objetivos. Esta no descarta o uso de tcnicas da ES j validadas como gerenciamento de projeto de software, ciclos de vida de projeto, mtodos e processos geis e etc.. Alm disso, pode haver projetos de software onde o paradigma de agentes pode ser mesclado com o paradigma de objetos, quando na existncia de estruturas de software que so mais simples de se resolver e o paradigma de objetos o suficiente para isto; neste caso, modelagens convencionais aplicados orientao a objetos so bem-vindos.

Motivao
O paradigma de objetos, mesmo sendo popular, sofreu extenses para, com menor esforo, realizar propriedades de um software de qualidade como suporte a sistemas distribudos (SUN, 2005), caractersticas transversais (KICZALES et al., 1997) e sistemas de tempo real (BIHARI et al., 1989). Os agentes so evolues naturais de objetos. Possuem memria e comportamento, mas no entidades passivas como objetos. Os objetos encapsulam o seu estado e comportamento, mas no podem

ativar o seu comportamento tendo que depender de outros objetos. J os agentes so autnomos em seu conhecimento desde a sua criao at na interao com o ambiente adquirindo experincia. Assim, os agentes so entidades continuamente ativas pela sua observao no ambiente, atualizao de estado interno e seleo e execuo de aes. J um objeto estrutura passiva na maioria do tempo, sendo ativado quando um dos seus mtodos invocado por outro objeto. O uso da abordagem de agentes baseado nos seguintes argumentos (JENNINGS E WOOLDRIDGE, 2001) (ODELL, 2000):

O conceito de sistemas de agentes adequado para construir solues de software para sistemas complexos; Representam um verdadeiro avano sobre o estado da arte na engenharia de sistemas complexos. Maneira efetiva de decomposio do espao do problema; A abstrao de agentes so um meio natural de modelar sistemas complexos; Organizam entidades colaborativas de maneira concorrente; Estrutura arquitetural dinmica;

Desenvolvimento de Sistemas Multiagentes


Segundo WOOLDRIDGE (2002) um agente um sistema computacional encapsulado que esta situado em um ambiente, a fim de alcanar seus objetivos de projeto. A Figura 1 ilustra a arquitetura genrica de um agente; como pode ser observado o agente possui sensores para coleta de dados do ambiente, atuadores para agir no ambiente e o quadrado com ponto de interrogao diz respeito a sua arquitetura interna, base de conhecimento e etc.

Figura 1: Arquitetura genrica de um Agente. De acordo com uma pesquisa de CASTRO et al. (2006), as seguintes propriedades de agentes devem ser consideradas no seu desenvolvimento:

Autonomia: agir independente de ao humana ou outros objetos; Deliberatividade: tomar decises por informaes vindo do ambiente ou de suas experincias; Reatividade: reagir a estmulos externos;

Organizao: grupo de agentes que trabalham para atingir um objetivo em comum; Socializao: interao com agentes e sistemas multiagente.

Entre as caractersticas de sistemas multiagente so as distribuies de dados e controle dos mesmos, encapsulamento de sistemas legados em agentes e construo de sistemas abertos, ou seja, que no tempo de projeto no existe uma total definio de todos os componentes que interagem com este sistema.

Aplicabilidade
Sistemas multiagente podem ser aplicados em diversas reas, inclusive uma tecnologia que deixa de ser exclusivamente acadmica e est passando a ser usada no mundo real. Entre as reas de aplicao de sistemas multiagente est (WOOLDRIDGE, 2002):

Aplicaes industriais: como sistemas de telecomunicaes, de trfego areo e de transporte; Aplicaes comerciais: presente em sistemas de comrcio eletrnico e gerenciamento de informao; Aplicaes mdicas: para monitoramento de pacientes e plano de sade.

Metodologias de Desenvolvimento
Existem vrias metodologias disponveis. Algumas so baseadas em tcnicas aplicadas a desenvolvimento orientado a objetos e outras, baseadas em Engenharia do Conhecimento. Vale salientar que todo o sistema de software projetado deve ser abstrado sob a tica do paradigma de agentes. As abstraes apresentadas aqui so a

descritas por GIRARDI (2004), segundo as metodologias existentes e como elas tratam o projeto de desenvolvimento de software multiagente; o sistema de software multiagente tratado como uma organizao formada por vrios funcionrios, que desempenham papis para executar aes para soluo dos servios e ou produtos oferecidos por esta organizao. Vale salientar que assim, como as metodologias tradicionais aplicadas a sistemas orientados a objetos, a ESOA tambm produz artefatos. Entre as metodologias orientadas a agentes esto: Tropos, MASCommonKADS, Gaia, Prometheus, PASSI, ADELFE, MESSAGE, INGENIAS, dentre outras. Existem livros disponveis no mercado que podem ser adquiridos nos sites da Biblioteca ACM, editora Elsevier e AMAZON. Quanto metodologia Tropos podem ser obtidas informaes no site www.troposproject.org.

Conhecimento dos Requisitos de Software


Nesta etapa so definidos os Modelos de Objetivos, Modelo de papis e Modelo de Interaes. No Modelo de Objetivos considerado o objetivo geral do sistema. Logo, este objetivo geral refinado em objetivos especficos repartindo o problema em subproblemas melhorando o processo de resoluo. No Modelo de Papis so identificados s responsabilidades dos papis para soluo dos objetivos especficos. Os papis podem ser externos ou internos ao sistema, onde os papis so funes que os agentes exercem dentro do sistema ou de entidades externas ao sistema. Para estes papis so definidos atividades que podem ser compartilhadas por vrios papis. Por ltimo so identificados os recursos que sero utilizados por estes papis. E no Modelo de Interao so definidos as interaes entre os papis internos ou externos e entidades externas.

Projeto Arquitetural e Detalhado


De acordo com o modelo de requisitos elaborado, projetado o software de acordo com o paradigma de desenvolvimento utilizado. A fase de projeto geralmente estruturada em: Projeto Arquitetural, onde so definidos os componentes do sistema e sua forma de cooperao; Projeto Detalhado, onde se define o comportamento e os atributos de dados de cada componente. No Projeto Arquitetural so elaborados o Modelo de Agentes, Modelo de Interaes, Modelo de Arquitetura de Sistema Multiagente. O Modelo de Agentes se identifica os agentes e quais os seus papis no sistema. Para cada agente existe um papel ou vrios papis, inclusive, um papel pode ser desempenhado por um ou vrios agentes. O Modelo de Interaes feito para definir como os agentes interagem entre si; feito um mapeamento das interaes dos papis para as interaes dos agentes. Na Modelagem de Arquitetura, definida a soluo computacional para o problema do especificado na anlise de requisitos; assim, so especificados os mecanismos de cooperao e coordenao entre agentes; nesta modelagem podem ser aplicados reuso de arquiteturas de agentes e padres de projeto orientado a agentes. No Projeto Detalhado feito o Modelo Detalhado de Agentes, onde as arquiteturas internas dos agentes so definidas, analisando o seus comportamentos e mecanismos de percepo e ao, estruturando em arquitetura deliberativa ou reativa.

Ferramentas para Implementao


Existem vrias ferramentas para implementao disponveis na web e algumas so gratuitas. Cada uma delas possui maneiras prprias para desenvolvimento dos agentes. Algumas ferramentas seguem um

modelo de arquitetura de agentes especfico. Ser descritos algumas das ferramentas mais conhecidas disponveis. A plataforma FIPA-OS baseada em componentes e com suporte a maioria das especificaes da FIPA (Foundation for Intelligent Physical Agents), uma fundao que fomenta a cultura do desenvolvimento de sistemas baseados em agentes. Esta ferramenta pode ser adquirida no site http://fipa-os.sourceforge.net/index.htm. O JADE (Java Agent Development Framework) um framework implementado em Java que, atravs de um middleware, facilita o desenvolvimento de agentes baseado nos padres FIPA. uma ferramenta que pode ser adquirida no site http://jade.tilab.com/. O Aglets uma ferramenta que facilita o desenvolvimento de aplicaes baseadas em agentes mveis; desenvolvida pelo laboratrio de pesquisas da IBM. Disponvel no site http://aglets.sourceforge.net/. O JACK um ambiente de desenvolvimento orientado a agentes que estende a tecnologia Java para suporte a modelo de agentes de arquitetura BDI. Disponvel no site http://aosgrp.com/products/jack/. necessrio licena para adquirir o software.

Ferramentas Case
Quanto a ferramentas CASE a nica ferramenta que foi possvel achar atravs de pesquisas foi ferramentas de suporte a metodologia Tropos, disponveis no site da mesma. Isto no quer dizer que as outras metodologias aqui citadas no disponham de ferramentas, contudo existem livros disponveis venda no mercado sobre as outras metodologias onde, provavelmente, se podem adquirir informaes sobre como obter ferramentas de suporte.

Concluso
Como pode ter sido observado neste artigo existem avanos sendo realizados para que o paradigma de orientao a agentes se torne uma tendncia popular. Isto no implica que sistemas orientados a objetos deixem de existir, pois os sistemas multiagentes so construdos para resolver problemas de sistemas complexos. Como toda tecnologia nova, esta vem sendo validada no ambiente acadmico e cientfico por algum tempo, mas ainda h muito a ser feito, pois necessrio avaliar sua coexistncia com outros paradigmas de software, amadurecimento das metodologias, melhoramento no projeto de sistemas abertos e escalabilidade, j que todo sistema de software tende a evolui. Apesar destes desafios que precisam ser solucionados pde ser observado, ao longo deste artigo e pelas citaes bibliogrficas que, as ferramentas e metodologias disponveis asseguram a construo com sucesso e segura de um sistema de software orientado a agentes. Espero que tenham gostado deste artigo e at o prximo.

Leia mais em: Engenharia de Software Orientada a Agentes http://www.devmedia.com.br/engenharia-de-software-orientada-aagentes/29238#ixzz2n0pauJSf

You might also like