Separating crosscutting concerns in agent oriented detailed design: the social patterns case - Taciana Lima Lourenço Silva, Carla (2007)
O desenvolvimento orientado a agentes é bastante recente, no entanto, este novo paradigma tem sido utilizado cada vez mais em aplicações industriais, tais como telecomunicações e comércio eletrônico. Entre as principais preocupações para a consolidação deste novo paradigma, destacamos a necessidade de técnicas, notações e ferramentas adequadas para suportar o desenvolvimento de sistemas orientados a agentes. Neste sentido, o projeto Tropos está desenvolvendo uma abordagem de desenvolvimento orientado a agentes centrada em requisitos que visa construir software orientado a agentes que opera dentro de um ambiente dinâmico. Dentre os desafios do desenvolvimento de sistemas multi-agentes (SMA), destaca-se a questão de desenvolver sistemas reusáveis, flexíveis, fáceis de entender e manter de forma a reduzir os custos de desenvolvimento. Para este fim, Tropos definiu um conjunto de padrões de projeto, chamados padrões sociais, focando em aspectos intencionais e sociais que são recorrentes em sistemas multi-agentes e cooperativos. Estes padrões podem ser chamados de interesses entrecortantes (do inglês, crosscutting concerns), já que eles entrecortam módulos funcionais em SMA, diminuindo a reusabilidade e manutenibilidade do sistema. Estes interesses entrecortantes podem ser mais bem endereçados pela adoção de técnicas do desenvolvimento de software orientado a aspectos. O objetivo desta nova tecnologia é encapsular interesses entrecortantes em módulos separados, os aspectos, evitando seu espalhamento e entrelaçamento através dos artefatos de software. Assim, aspectos podem ser usados como abstrações para capturar interesses de padrões sociais. Esta tese propõe uma técnica de descrição que visa promover a separação avançada de interesses de padrões sociais no projeto de SMA. Para alcançar este fim, nós: (i) especificamos um profile UML (Unified Modeling Language) que define um metamodelo que incorpora conceitos de agência; (ii) especializamos o metamodelo de agência usando o conceito de papéis de modelo (do inglês, model roles) para especificar quais elementos do modelo devem participar em um padrão; (iii) anexamos notas ao modelo estrutural do padrão social para capturar algumas abstrações da orientação a aspectos; e (iv) sugerimos diretrizes para mapear a notação proposta em construtores dos ambientes de implementação AspectJ e JADE. Em particular, nós usamos uma integração de JADE e AspectJ para implementar nossa abordagem. Além disso, nós descrevemos um processo, usando a notação SPEM (Software Process Engineering Metamodel), para guiar o projeto detalhado completo de um SMA usando os padrões sociais. Para ilustrar a viabilidade de nossa proposta, nós especificamos dois sistemas multi-agentes de diferentes domínios de aplicação e com diferentes graus de complexidade: um Sistema Gestor de Conteúdo, chamado e-News, e um Sistema Gestor de Conferência