Blackboard Alunos: Eduardo Akira Yonekura Rogério Esteves Salustiano Tópicos abordados Histórico Introdução Notação Decomposição modular Ferramentas Aplicação ao Estudo de Caso Conclusões Referências Bibliográficas Eduardo Akira Yonekura (025989) - Rogério Esteves Salustiano(982094) MO409 Histórico Introduzido por Newell e Simon em 1972 inicialmente na teoria de IA. HEARSAY II - primeiro sistema blackboard conhecido (sistema de reconhecimento de voz). Eduardo Akira Yonekura (025989) - Rogério Esteves Salustiano(982094) MO409 Introdução Coleção de módulos (ou agentes) independentes que trabalham de maneira cooperada em uma estrutura de dados única (blackboard). Cada módulo é especializado em resolver uma parte específica do processamento. Todos os módulos trabalham em conjunto na solução do problema, mas são independentes entre si (não possuem comunicação direta entre eles). Uma central de controle determina o estado do processamento e coordena os módulos. O módulo mais adequado para a tarefa a ser realizada é chamado pelo controle. Eduardo Akira Yonekura (025989) - Rogério Esteves Salustiano(982094) MO409 Notação Blackboard dados lê/escreve KS1 lê KS2 KSn escreve Controlador Eduardo Akira Yonekura (025989) - Rogério Esteves Salustiano(982094) MO409 Decomposição Modular Não suporta orientação a objetos (somente com variante - shared blackboard). Suporta modelo de fluxo de dados (módulos funcionais). Eduardo Akira Yonekura (025989) - Rogério Esteves Salustiano(982094) MO409 Ferramentas Flow for Windows para o estudo de caso. Não existe ferramenta para validar a arquitetura blackboard. Eduardo Akira Yonekura (025989) - Rogério Esteves Salustiano(982094) MO409 Passos para implementação em Blackboard Definir o problema; Definir o espaço de soluções para o problema; Dividir a solução em passos; Dividir a solução em classes e suas tarefas específicas; Definir o vocabulário do Blackboard; Especificar o controle do sistema; Implementar as classes Knowledge Sources. Eduardo Akira Yonekura (025989) - Rogério Esteves Salustiano(982094) MO409 Estudo de Caso Botão Elevador diagrama das classes Elevador Botão Andar lê/escreve escreve Blackboard lê Eduardo Akira Yonekura (025989) - Rogério Esteves Salustiano(982094) Controlador MO409 Estudo de Caso Classe Blackboard arquitetura das classes Colaboradores - Responsabilidade • Controlar os dados centrais Eduardo Akira Yonekura (025989) - Rogério Esteves Salustiano(982094) Classe Controlador Responsabilidade • Monitorar o Blackboard • Escalonar a ativação dos KS Colaboradores • Blackboard • Botão Elevador • Botão Andar • Elevador MO409 Estudo de Caso Classe Botão Elevador Colaboradores • Blackboard Responsabilidade • Atualizar o status do botão do andar/elevador no Blackboard. • Acender/apagar a luz do botão. arquitetura das classes Classe Botão Andar Colaboradores • Blackboard Responsabilidade • Atualizar o status do botão andar no Blackboard. • Acender/apagar a luz do botão. Classe Elevador Colaboradores • Blackboard Responsabilidade • Atualizar o status do elevador no Blackboard (parado, subindo, descendo). • Ler o sensor de presença na porta. • Abrir/fechar porta. • ligar/desligar o motor com sentido apropriado (sobe/desce). Eduardo Akira Yonekura (025989) - Rogério Esteves Salustiano(982094) MO409 Estudo de caso Cenário Painel_Elevador Botão_EA1 Botão_EA2 (BOTÃO ELEVADOR) Botão_EAn Botão_Emergência status(A,ON/OFF) botão_e(ON/OFF) Eduardo Akira Yonekura (025989) - Rogério Esteves Salustiano(982094) MO409 Estudo de caso Cenário Painel_Andar (BOTÃO ANDAR) Botão_Sobe Botão_Desce status(A,ON/OFF) Eduardo Akira Yonekura (025989) - Rogério Esteves Salustiano(982094) MO409 Estudo de caso Cenário Porta (ELEVADOR) Sensor Motor move() pára() abre_porta() verifica() fecha_porta() Eduardo Akira Yonekura (025989) - Rogério Esteves Salustiano(982094) MO409 Conclusões Domínio de aplicação mais adequado: Sistemas não-determinísticos onde podem existir várias hipóteses. Vantagens Alta modularidade. KS reusáveis. Tolerante a falhas. Desvantagens Concentração de dados em um único módulo (blackboard). Não suporta concorrência. Dificuldade para testes. Eduardo Akira Yonekura (025989) - Rogério Esteves Salustiano(982094) MO409 Referências Bibliográficas Software Architecture: a Roadmap. David Garlan. 22º International Conference on Software Engineering, 2000. A brief survey of software architecture. Rikard Land. Technical Report, Departamento de Engenharia de Computação, Mälardalen University, Fevereiro 2002. Pattern-Oriented Software Architecture, Vol. 1: A System of Patterns. Frank Buschmann et. al. Wiley and Sons, 1996. Extending UML for modeling and design of multi-agent systems. Krishna Kavi, et. al. Eduardo Akira Yonekura (025989) - Rogério Esteves Salustiano(982094) MO409 Referências Bibliográficas The reflective blackboard architectural pattern. Otavio R. da Silva, Alessandro F. Garcia, Carlos J.P. de Lucena. Software Engineering for Large-Scale Multi-Agent Systems, Springer-Verlag, LNCS 2603, Abril 2003. Eduardo Akira Yonekura (025989) - Rogério Esteves Salustiano(982094) MO409