+ SADAAM + Equipe Alessandro Lima Leila Soriano Vinícius Ottoni + Conteúdo Introdução Trabalhos Relacionados Metodologia Fase de Design Test-Driven Implementation (TDI) Release e Revisão Conclusão Referências + Introdução O QUE É SADAAM ? AOSE Agent-Oriented Software Engineer AOSE Agent-Oriented Software Engineer flexible iteractive incremental Agile Agile Development AOSE Agent-Oriented Software Engineer Agile Agile Development + SADAAM Metodologia de desenvolvimento de agentes Utiliza técnicas de uma variedade de métodos ágeis SCRUM XP TDD + Trabalhos relacionados + Mase Permite identificar o que deverá ser desenvolvido quais e como os agentes se comportarão na sociedade. Propõe uma seqüência de modelos que mapearão desde os objetivos gerais até a definição dos casos de usos, papéis, classes e diálogos entre os agentes. + Mase + MAS-Commonkads Extensão da metodologia CommonKads Referência na Europa no desenvolvimento de sistemas baseados em conhecimento(SBC). + MAS-Commonkads Divide o conhecimento da aplicação em três subníveis: nível do domínio nível de inferência conhecimento declarativo sobre o domínio uma biblioteca de estruturas genéricas de inferência nível de tarefa ordem das inferências + Metodologia + Metodologia Central ao SADAAM está o Agent Development Process (ADP) Núcleo ágil do processo de desenvolvimento de agentes Implementa o Integrated Development Process (IDP) com 4 fases chave + Fases Release e Review TDD Design Refactor e enhacement + Metodologia O ADP suporta uma abordagem bottom up Aumenta a flexibilidade Permite ao time focar na entrega rápida Responder rapidamente a mundanças nos requisitos + Fase de Design + Fase de Design Processo interativo e incremental para análise e design de agentes autônomos. Identifica comportamentos do sistema e papéis desempenhados por agentes + Fase de Design Define agentes Seus relacionamentos Interações Atividades Define classes de agentes e métodos que compõem a solução Estes atributos são concebidos através de um conjunto mínimo de artefatos de design que se baseam em AgentUML3. + Fase de Design SADAAM adapta o Agile Model Driven Development Process para a fase de design Funcionalidades significantes Análise de Escopo de Requisitos Modelo Inicial de Requisitos Expansão de Modelos Iniciais SADAAM Model Storming + Análise de Escopo e Requisitos Auxilia a determinação de requisitos + Modelo Inicial de Requisitos Esclarece qualquer ambiguidade na especificaçao de requisitos Base para dividir a implementação em passos gerenciáveis Estabelece conhecimentos para compor o Modelo de Comportamento do Sistema inicial Provê informações do que o sistema faz Como as entidades são definidas Interações entre essas entidades + Model Storming Sessions Invocam o mínimo esforço inicial para transformar requisitos em modelos Sessões irão surgir sempre que requisitos devam ser olhados em grande detalhe Pode envolver: Reavaliação dos requisitos Refinamento dos diagramas iniciais + Expansão de Modelos Iniciais Descrevem os o comportamento do sistema em maiores detalhes. A abordagem SADAAM de Modelagem de Requisitos emprega o Modelo de Comportamento do sistema Auxilia a identificação de entidades envolvidas Como os participantes operam no sistema + Expansão de Modelos Iniciais Requer o desenvolvimento de Diagramas Organizacionais e Comportamento do Sistema Identificam as entidades básicas e seus relacionamentos + Fase de Design Permite que o time de desenvolvimento trabalhe iterativamente através do processo de design entregando modelos em pequenos incrementos suportando o rápido desenvolvimento e entrega de código para release e review Oferece flexibilidade de design Racionaliza o esforço de desenvolvimento Permite o time de desenvolvimento a adaptar mundanças em requisitos eficientemente. + Fase de Design Step 2 Step 1 Create / Refactor System Behaviour Mode Step 4 Select System Behaviour (s) Step 3 Expand/ Define Interaction Diagrams Expand/ Refine Activity Diagrams + Passo 1: Criar/ Refatorar o Modelo do Comportamento do Sistema O Modelo de Comportamento do Sistema indetifica comportamentos chave do sistema para o dado cenário. Comportamentos do sistema são conjuntos de atividades e/ou interações que ocorre em algum estágio da operação do sistema é representado por um diagrama de Casos de Uso UML modificado onde atores são esteriotipados como agentes e casos de uso são esteriotipados como comportamentos do sistema. + Passo 1: Criar/ Refatorar o Modelo do Comportamento do Sistema SADAAM também inclui a noção de estrutura organizacional que está por trás de cada dado cenário. O Modelo de Comportamentos consiste Num Diagrama Organizacional Unitário (DOU) que descreve a estrutura organizacional para o sistema alvo um conjunto de Diagramas de Comportamentos do Sistema que descrevem os comportamentos chave do sistema. + Passo 1: Criar/ Refatorar o Modelo do Comportamento do Sistema A Estrutura organizacional quebra o cenário de negócios num modelo organizacional hierárquico. O DOU define organizações: Raiz Suborganizações unitárias E é responsável pela atribuição dos agentes para unidades para unidades organizacionais específicas (UO) + Passo 1: Criar/ Refatorar o Modelo do Comportamento do Sistema A definição do DOU é um processo de 3 etapas que definem ambos agentes e UOs no cenário. Exemplo: Cadeias de Fornecimento + Revisão dos requisitos do sistema e cenário de negócios Varejista adquire mercadorias do fornecedor, que posteriormente são entregues através de uma empresa de transportes indepedente. O cenário inicia com o comprador solicitando cotações ao fornecedor Uma vez que os preços são recebidos, o comprador pede as mercadorias + Revisão dos requisitos do sistema e cenário de negócios O Fornecedor contacta a empresa de Transportes A empresa de Transportes recolhe as mercadorias e entrega ao varejista + Definir a Estrutura Organizacional e UOs no ambiente em que você está tentando modelar A DOU vê nosso cenário como um ambiente estruturado onde três UOs individuais operarem e cooperaram sistematicamente para conduzir uma transação. + Definir a Estrutura Organizacional e UOs no ambiente em que você está tentando modelar A DOU vê nosso cenário como um ambiente estruturado onde três UOs individuais operarem e cooperaram sistematicamente para conduzir uma transação. + Passo 1: Criar/ Refatorar o Modelo do Comportamento do Sistema + Atribuir agentes dentro da estrutura organizacional Esta etapa associa agentes a OUs específicos, permitindo a clara identificação dos agentes necessários ao cenário dado. SADAAM associa um SBD a cada unidade DOU permitindo cada SBD indentificar todos os comportamentos do sistema assumidos pelos agentes que são parte de uma unidade particular ou uma de suas subunidades. + Passo 2: Selecionar comportamentos do sistema Envolve selecionar um subconjunto de todos os comportamentos do sistema para uma análise minunciosa. Trata-se de uma definição do escopo Identifica quais partes do sistema o time irá trabalhar + Passo 3: Expandir/Definir Modelos de Interações O Modelo de Interações (IM) define interações que ocorrem entre agentes desempenhando papéis durante um comporatmento específico do sistema. O IM consiste em um conjunto de Agent UML Protocol Diagrams, que são associados a comportamentos individuais do sistema. + Passo 3: Expandir/Definir Modelos de Interações Um dado comportamento do sistema pode ter zero, um, ou múltiplos diagramas de protocolos associados. Tipicamente, um diagrama de protocolo inclui as interações esperadas relacionadas ao comportamento (normalmente o caso de sucesso); e todas (conhecidas) interações variantes (i.e.: casos de insucesso). + Passo 3: Expandir/Definir Modelos de Interações + Passo 4: Expansão do IM com Modelo de Atividade O Modelo de Atividades identifica o conjunto de atividades realizadas pelos agentes no sentido de entender um dado comportamento do sistema. Emprega Diagramas de Atividades UML customizados onde: Caixas representam atividades individuais Associações colocam ordem na performance de atividades Setas rotuladas são introduzidas para associar agentes com atividades. + Conclusões A fase de Design constrói técnicas ágeis para prover um processo de design iterativo e incremental Dá suporte ao envolvimento do cliente Melhora a flexibilidade Facilita análises contínuas e feedback + Conclusões Adaptação a situações de mudanças. Permite ao desenvolvedor aprender e melhorar a versão anterior através da iteração contínua e melhoria de design. Facilita priorização de tarefas e alocação eficiente de recursos. Finalmente, pode ser incorporado por qualquer framework de desenvolvimento de agentes. + Test-Driven Implementation Implementação conduzida pelos Testes + Test-Driven Implementation Projetado para ajudar a gerenciar e controlar o desenvolvimento de um agente. Conceitos Chave: Test Agent e Application Agent under Test. TA Codifica um conjunto de Casos de Teste que devem ser satisfeitos pela AAUT correspondente. AAUT Representa o agente cujo comportamento está em teste, realizando os testes descritos no TA. + Test-Driven Implementation Arquitetura + TDI Phase Fase dividida em cinco etapas, que tem como objetivo, implementar, integrar e debugar os códigos necessários para os testes dos agentes. + TestSuite Application Structure Local onde os Agentes de Teste serão executados e validados. + TestSuite Application Structure Local onde os Agentes de Teste serão executados e validados. Criação e validação dos Agentes de Teste. + TestSuite Application Structure Local onde os Agentes de Teste serão executados e validados. Criação e validação dos Agentes de Teste. Criação e execução dos Agentes de Aplicação. + TestSuite Application Structure Local onde os Agentes de Teste serão executados e validados. Criação e validação dos Agentes de Teste. Criação e execução dos Agentes de Aplicação. Integração necessária para implantação de um SMA. + AF Agent Plataform Scripts Suporte de configuração para a TestSuite através da plataforma de servições da TestSuite e a classe base TestAgent. TestAgent class: Fornece a implementação genérica de um TA. + AF Agent Plataform Scripts Test.aps: Prevê a criação dos agentes de teste, a associação entre eles e armazena suas informações. Por exemplo, a criação dos TAs chamados testTransportManager e testHauler. + AF Agent Plataform Scripts Test.aps: Prevê a criação dos agentes de teste, a associação entre eles e armazena suas informações. Por exemplo, a criação dos TAs chamados testTransportManager e testHauler. Implementation.aps: Associa cada AAUT com o seu TA e armazena suas informações. Por exemplo, o Hauler é associdado ao testHauler. + AF Agent Plataform Scripts Test.aps: Prevê a criação dos agentes de teste, a associação entre eles e armazena suas informações. Por exemplo, a criação dos TAs chamados testTransportManager e testHauler. Implementation.aps: Associa cada AAUT com o seu TA e armazena suas informações. Por exemplo, o Hauler é associdado ao testHauler. Integration.aps: Registra os testes feitos com os AAUT. + TDI Phase Fase dividida em cinco etapas, que tem como objetivo, implementar, integrar e debugar os códigos necessários para os testes dos agentes. + TDI Phase Análise da Fase de projeto para determinar os AAUTs. Exemplo: TransportManager e Hauler. Os requisitos para cada TA são definidos através dos casos de Teste. Criado os arquivos que definem cada agente. Testada a implantação dos agentes através do arquivo test.aps. + TDI Phase Revisar o projeto para verificar os requisitos dos AAUTs. Registrar os AAUTs criados e suas associações com seus respectivos TAs no arquivo implementation.aps. + TDI Phase Testar os AAUTs antes de implementá-los no SMA. Revisar, refatorar e iniciar o ciclo novamente. + TDI Phase Integrar e depurar os AAUTs para implantar no SMA. Registrar os testes de integração no arquivo integration.aps. Realizar os testes de integração com os AAUTs dentro da aplicação. + TDI Phase Revisar, refatorar e iniciar o ciclo novamente se for necessário. + Visão geral da Aplicação Após todos os passos citados anteriormente, temos a seguinte visão geral da aplicação SADAAM. + Arquitetura Revisada Após todos os passos citados anteriormente, temos a seguinte arquitetura. Monitor SADAAM TestSuite Application Structure TDI Phase AF Agent Plataform Script + Release e Revisão Entregando o Projeto + Release e Revisão Analisar geral após cada Release. Entrega do projeto para o cliente para Revisão. Colocar o aplicativo em um ambiente real. Pode aparecer melhorias necessárias, para preencher todos os requisitos do cliente. + Conclusão + Conclusão Sadaam apresenta uma metodologia ágil para o desenvolvimento de sistemas multi-agente. + Conclusão Permite ciclos de interações que geram: Flexibilidade no projeto Avanço incremental Eficácia na entrega Redução no tempo desenvolvimento Resuo de código (Test Agents) + Conclusão Permite ciclos de interações que geram: Flexibilidade no projeto Avanço incremental Eficácia na entrega Redução no tempo desenvolvimento Reuso de código (Test Agents) + Referências + Referências Agile Alliance., ”What is Agile Software Development?”, web: http://www.agilealliance.org/ 2. AGILE Manifesto available at http://agilemanifesto.org 3. Ambler, S., ”Agile Modeling: The Official Agile Modelling (AM) Site.” Agile Modelling Home Page: http://www.agilemodeling.com/ 4. Amor, M., Fuentes, L. and Vallecillo, A., ”Bridging the Gap between AO Design and Implementation Using MDA” , AOSE 2004. LNCS 3382, pp 93-108. + Referências 5. Bauer, B., Mueller, J., and Odell, J., ”Agent UML: A Formalisation for Specifying Multi-Agent Software Systems.”, In P. Ciancarini and M. Wooldridge, ed, 1st Int. Workshop on Agent-Oriented Software Eng. (AOSE-2000), Limerick, Eire, 2000. 6. Beck, K., ”Extreme Programming Explained: Embrace Change.”, AW Pub. 1999. 7. Beck, K., ”Test-Driven Development by Example.”, Addison Wesley, 2003. 8. Bergenti, F. and Poggi, A., ”Exploiting UML in the design of Multi-Agent Systems.”, In Proc. of the ECOOP Workshop on Engineering Societies in the Agents’ World 2000 (ESAW’00), pages 96-103, 2000. Boehm, B. and Turner, R., ”Balancing Agility and Discipline: A Guide for the Perplexed.”, Boston, MA: Addison-Wesley, 2004, ISBN 0-321-18612-5, pp 165-194. + Referências 9. Boehm, B. and Turner, R., ”Balancing Agility and Discipline: A Guide for the Perplexed.”, Boston, MA: Addison-Wesley, 2004, ISBN 0-321-18612-5, pp 165-194. 10. Bresciani, P., Giorgini, P., Giunchiglia, F. Mylopoulos, J. and Perini, A., ”TROPOS: An Agent-Oriented Software Development Methodology.”, JAAMAS, 2003 11. Cernuzzi, L., Cossentino, M., Zambonelli, F., Process Models for Agent-based Development, Journal. Eng. Applications of AI, 18(2), 2005. 12. Chella, A. Cossentino, M., Sabatucci, L., and Seidita, V., ”Agile PASSI: An Agile Process for Designing Agents”, International Journal of Computer Science and Eng. Special Issue on ”Software Eng. for Multi-Agent Systems”, May 2006 + Referências 13. Coelho, R., Kulesza, U., von Staa, A., and Lucena, C., ”Unit testing in multiagent systems using mock agents and aspects, Procs of the 2006 Int. workshop on Software engineering for large-scale multi-agent systems, Shanghai, China 14. Collier, R.W. ”Agent Factory: A Framework for the Engineering of Agent-Oriented Applications.”, PhD thesis, Dept. of Computer Science, UCD, Dublin, 2002. 15. Collier, R.W., O’Hare, G.M.P., Lowen, T.D. and Rooney, C.F.B., ”Beyond Prototyping in the Factory of Agents.”, 3rd Int. Central and Eastern European Conf. on Multi-Agent Systems, CEEMAS 2003, Prague, Czech Republic, 16-18th June, Lecture Notes in Computer Science (LNCS), Springer Verlag, 2003. + Referências 16. Collier, R. W., Rooney, C. and O’Hare, G. M. P., ”A UMLbased Software Engineering Methodology for Agent Factory.”, Proceeding of the 16th International Conference on Software Engineering and Knowledge Engineering (SEKE2004), Banff, Alberta, Canada, 20-25th June, 2004. 17. Fowler, M., ”Refactoring: Improving the Design of Existing Code.”, Addison Wesley Longman, 1999. 18. P. Giorgini, eds, ”Agent-Oriented Methodologies”, IdeaGroup, B. Henderson - Sellers 2005. 19. Huget, M-P, Bauer, B., Odell, J., Levy, R., Turci, P., Cervenka, R., Zhu, Hong, Interaction Diagram Specification, FIPA AUML Website, http://www.auml.org + Referências 20. Iglesias, C., Garijo, M., Gonzalez, J., Velasco, J., ”Analysis and Design of MultiAgent Systems using MASCommonKADS.”, Springer,LNCS 1365, p489, 2004 21. Jennings, N.R., ”Building Complex Software Systems: The Case for an Agent-Oriented Approach.”, Communications of the ACM, 2001. 22. Jennings, N.R. and Wooldridge, M.; ”Agent-Oriented Software Engineering.” in Handbook of Agent Technology, (ed. J. Bradshaw), AAAI/MIT Press, 2000. 23. Knublauch, H., Koeth, H, and Rose, T., ”Agile Development of a Multi-Agent System: An Extreme Programming Case Study.”, Appears in: Proc of the 3rd Int. Conf. On Extreme Programming and Agile Processes in Software Engineering (XP2002), Alghero, Sardinia, Italy. + Referências 24. Rooney, C F.B., Collier, R.W., O’Hare, G.P., ”VIPER: VIsual Protocol EditoR”, in 6th Int. Conf. on Coordination Languages and Models (Coordination 2004), Pisa, February 24-27, 2004. 25. Schwaber, K., and Beedle, M., ”Agile Software Development with Scrum.”, Prentice Hall, 2001. 26. Sommerville, I., ”Software Engineering.”, Addison-Wesley 6th Ed., 2000. 27. Tveit, A., ”A survey of Agent-Oriented Software Engineering.” In Proceedings of the First NTNU Computer Science Graduate Student Conference, Norwegian University of Science and Technology, May 2001. + Referências 28. Wood, M.F. and DeLoach, S.A., ”An Overview of MultiAgent Systems Engineer ing Methodology.” AOSE-2000, 1st Int. Workshop on AOSE, Limerick, Eire, 2000. 29. Zambonelli, F., Jennings, N.R., Omicini, A., and Wooldridge, M., ”Coordination of Internet Agents: Models, Technologies and Applications”, Agent-Oriented Software Engineering for Internet Applications, Springer-verlag, 2000