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
Download

Blackboard