AUML Maíra Gatti 2007.2
Agenda AUML AUML-BP AUML 2-Tool © LES/PUC-Rio
Motivação Por que não utilizar uma linguagem de modelagem já existente para modelar SMA? UML é linguagem de modelagem padrão para modelar sistemas OO UML não dá suporte para a modelagem de SMA Agentes e objetos possuem características / propriedades diferentes Por que não estender UML para modelar SMA? © LES/PUC-Rio
AUML – Agent UML Primeiro objetivo era especificar protocolos de interação entre agentes (AIP) 1o passo foi estender diagrama de seqüência de UML para modelar as interações entre agentes Extensões para UML 1.3 (2001/2002) e UML 2.0 (2005) © LES/PUC-Rio
Diagrama de use case de UML caso de uso usuário do sistema sistema © LES/PUC-Rio
Diagramas de Casos de Uso AUML Capturam interações orientadas a objetivos entre os agentes com seus papéis especificados e o sistema. Descrevem o conjunto de caminhos que os agentes podem executar ao longo do sistema, cada um com um objetivo discreto. © LES/PUC-Rio
Exemplos de Diagramas de Casos de Uso AUML © LES/PUC-Rio
Diagrama de Classes de Agente Descreve os tipos de agentes do sistema e seus relacionamentos estáticos © LES/PUC-Rio
Diagrama de classe em UML Nome_da_classe atributo1 atributo2 ... metodo1 metodo2 metodo3 nome da classe atributos métodos © LES/PUC-Rio
Diagrama de classes de AUML agente communication act © LES/PUC-Rio
Diagrama de classes de AUML visão de agente Representação de belief, desire e intentation como atributos visão de organização visão da organização visão de ambiente visão de interação © LES/PUC-Rio
Exemplo de Diagrama de Classe de Agente e Detalhamento da Classe Agente © LES/PUC-Rio
Representando Organizações © LES/PUC-Rio
Organizações, papéis e agentes © LES/PUC-Rio
Diagrama de classe organização papel © LES/PUC-Rio
Organizações UML 2.0 v. extendida © LES/PUC-Rio
Organizações UML 2.0 v. extendida © LES/PUC-Rio
Diagrama de seqüência de UML condição de guarda Tempo (top-down) ObjetoA mensagem síncrona [se novo] <<create>> ObjetoB objeto mensagem mensagem (auto delegação) (caixa de)ativação valor de retorno <<destroy>> símbolo de destruição linha de vida © LES/PUC-Rio
Indica o protocolo sendo modelado Indica se este diagrama representa um template Indica as possibilidades de comunicação dependendo da condição © LES/PUC-Rio
Diagrama de seqüência de AUML © LES/PUC-Rio
Diagrama de seqüência de AUML object : Class :: Package UML forma de identificar o agente e o papel communication act ou mensagens (não é chamada de métodos) paralelismo OU inclusivo OU exclusivo © LES/PUC-Rio
Diagrama de seqüência de AUML © LES/PUC-Rio
Diagrama de seqüência de AUML (Exemplo) Agente A desempenhando o papel customer Agente A desempe-nhando o papel negotiator representação de troca de papel © LES/PUC-Rio
AUML -> UML 2.0 extendida © LES/PUC-Rio
AUML -> UML 2.0 extendida Interaction Overview Diagram © LES/PUC-Rio
Diagrama de colaboração de AUML (Exemplo) © LES/PUC-Rio
Diagrama de atividades de UML Usado para representar as atividades, ações e as transições entre as atividades/ações Cliente Página partição Pegando idioma origem e idioma destino fork Pegando Texto Pegando Figuras atividade Montando Tabela Texto Montando Tabela Figuras join Exibindo para o usuário Montando Arquivo HTML © LES/PUC-Rio
Diagrama de atividade de AUML Usado para representar as atividades associadas a um protocolo ou só as atividades de um papel papel © LES/PUC-Rio
Diagrama de atividade de AUML UML 2.0 © LES/PUC-Rio
Diagrama de atividade de AUML UML 2.0 © LES/PUC-Rio
Diagrama de atividade de AUML UML 2.0 © LES/PUC-Rio
Diagrama de estado de UML transições © LES/PUC-Rio
Diagrama de estado de AUML Usado para representar os estados e as transições associados a um protocolo ou só os estados e as transições de um papel estado agente ou papel © LES/PUC-Rio
Diagrama de componentes de UML © LES/PUC-Rio
Diagrama de componentes de AUML © LES/PUC-Rio
Diagrama de componentes de AUML UML 2.0 © LES/PUC-Rio
Diagrama de deployment de UML © LES/PUC-Rio
Diagrama de deployment de AUML © LES/PUC-Rio
Diagrama de deployment de AUML UML 2.0 © LES/PUC-Rio
Aspectos temporais de papéis © LES/PUC-Rio
Aspectos temporais de papéis © LES/PUC-Rio
Aspectos temporais de papéis © LES/PUC-Rio
AUML-BP
Processos de Desenvolvimento de Software OA Como modelar e analisar processos de desenvolvimento de software OA? Métodos controlados, bem documentados e replicáveis para produção de software Levantamento de um conjunto de “boas práticas” para o desenvolvimento orientado a agentes © LES/PUC-Rio
Cenário Atual Muitas linguagens de modelagem e metodologias (MAS-ML, AUML, Message, Prometheus, Tropos, MASE, ...) ..... Pouco consenso PASSI, Agile PASSI © LES/PUC-Rio
Processos de software Processo de software é uma seqüência coerente de práticas que objetiva o desenvolvimento ou evolução de sistemas de software Frameworks de processo existentes Definem uma estrutura geral São customizados para definições de processos específicos São oriundos da experiência de profissionais e empresa © LES/PUC-Rio
Classificação das Metodologias © LES/PUC-Rio
AUML-BP: Um Processo Básico utilizando AUML OpenUp/Basic + AUML Abordagem Ágil Iterativo Mínimo, completo e extensível Requisitos - > Estórias de agentes TDD © LES/PUC-Rio
UP – Visão Geral Pode ser dividido em duas dimensões © LES/PUC-Rio
AUML-BP Fase 1 Fase 2 Especificação de Casos de Uso Analisar Caso de Uso Analista de Sistema gera gera Diagramas de Classes Doc. Requisitos Mod. Casos de Uso Diagramas de Interação Fase 2 usa usa Analista de Sistema Especificação de Casos de Uso AUML Especificação de Estórias de Agentes Analisar Caso de Uso AUML e Estórias de Agentes Mod. Casos de Uso AUML Diagramas de Classes de Agentes Diagramas de Colaboração Diagramas de Interação de Protocolos de Agentes Estórias de agentes e Cartões de índices © LES/PUC-Rio
TDD AUML-BP Diagramas de Classes da Arquitetura Projetar Arquitetura Arquiteto TDD Mod. Casos de Uso e Casos de Uso AUML Desenvolvedor Teste de Unidade Teste de Integração Diagramas de Interação e de Interação de Protocolos de Agentes Refinados Diagramas de Classes e de Classes de Agentes Detalhados Estórias de agentes e Cartões de índices Diagramas de Colaboração Refinados Código-Fonte © LES/PUC-Rio
Diagramas de Classes e Interação Uma iteração OO Requisitos Análise & Projeto Implementação Testes Mod. Casos de Uso Planilhas de Teste Código-Fonte Diagramas de Classes e Interação Doc. Requisitos Analista de Sistemas Testadores Arquiteto Programadores Projetistas CADA FASE PODE SER DECOMPOSTA EM ITERAÇÕES © LES/PUC-Rio
Uma iteração AO - AUML-BP Implementação & Testes Requisitos Análise & Projeto Testes Fase I Fase I Fase I Fase 2 Fase I Fase 2 Código-Fonte Mod. Casos de Uso Mod. Casos de Uso AUML Diagramas de Colaboração Planilhas de Teste Doc. Requisitos Diagramas de Interação de Protocolos de Agentes Estórias de agentes e Cartões de índices Diagramas Refinados e Detalhados Diagramas de Classes e Interação Diagramas de Classes de Agentes Programadores Analista de Sistemas Testadores Arquiteto Projetistas CADA FASE PODE SER DECOMPOSTA EM ITERAÇÕES © LES/PUC-Rio
Descrição de Casos de Uso AUML Objetivo envolvendo vários papéis Descrição geral © LES/PUC-Rio
Estórias de Agentes Visão de um agente/ papel que o agente desempenha para atingir o objetivo Especificação das mensagens © LES/PUC-Rio
Cartão de Índice de Agente Define a ordem em que cada estória de agente deve ser implementada © LES/PUC-Rio
EPF Composer Eclipse Framework para Definição de Processos Flexível Customizável Plugins © LES/PUC-Rio
EPF Composer © LES/PUC-Rio
EPF Composer © LES/PUC-Rio
Avaliação Vitor Pelegrino -> iniciação científica Questionários © LES/PUC-Rio
Interaction Diagram / AUML-2 Tool Textual notation for describing interaction diagrams and interaction protocols in a (subset of) AUML-2 http://www.cs.rmit.edu.au/~winikoff/auml
AUML2 Tool Rough prototype tool! Takes text and generates .eps generating layout automatically .eps can be converted to other formats (jpg,png,…) Does both AUML-2 subset and interaction diagrams Requires perl and tcl/tk (probably easiest on unix, but should also work under windows) Requires available $DISPLAY (unix) start FIPA query protocol agent I Initiator agent P Participant box alt message I P query-if … auml.pl Tcl/tk program wish .eps file © LES/PUC-Rio
Leave these out for interaction diagrams Input Format One command per line. Commands: agent shortname longname (also invis and role) start protocol name finish message from to message description box type next end type backup agent T Tutor agent L Lecturer agent S Student message S L Question message L S Answer backup message L T Answer CC Leave these out for interaction diagrams © LES/PUC-Rio
Example start FIPA query protocol agent I Initiator agent P Participant box alt message I P query-if next message I P query-ref end alt message P I not-understood message P I refuse message P I failure message P I inform finish © LES/PUC-Rio
Book Store Example message s c Payment details? start Book Order box alt message c s Cancel next message c s Credit card info message s b Credit Check Request message b s Not understood message b s Not approved message b s Approval message s w Order backup message s c Thanks end alt finish start Book Order agent c Customer agent s Sales ass. agent w Warehouse man. agent d Delivery manager agent b Bank message c s Request Book message s w Price+availability message w s response message s c response box alt message c s Cancel next message c s Buy Book message s w Delivery Options? message w s Delivery info message s c Delivery info message c s Delivery Choice © LES/PUC-Rio
© LES/PUC-Rio
Bibliografia B. Bauer and J. Odell, UML 2.0 and agents: how to build agent-based systems with the new UML standard, Engineering Applications of Artificial Intelligence, Volume 18, Issue 2, Agent-oriented Software Development, March 2005, Pages 141-157. Gatti, M., von Staa, A., Lucena, C.; AUML-BP: A Basic Agent Oriented Software Development Process Model Using AUML; Monografias em Ciência da Computação, Departamento de Informática, PUC-Rio, No. 21/07, 25 pg., 2007. Michael Winikoff. Towards Making Agent UML Practical: A Textual Notation and a Tool. First international workshop on Integration of Software Engineering and Agent Technology (ISEAT 2005). September 2005, Melbourne, Australia. © LES/PUC-Rio
Obrigada! Maíra Gatti 2007.2