eliane martins - instituto de computação - unicamp estudo de caso sistema de elevador criação:...
TRANSCRIPT
Eliane Martins - Instituto de Computação - UNICAMP
Estudo de casoSistema de elevador
Criação: jun/2011
Eliane Martins - Instituto de Computação - UNICAMP
Projeto
Projeto
ProjetoArquitetural
Projeto Intermediário
ProjetoDetalhado
Eliane Martins - Instituto de Computação - UNICAMP
Projeto
Projeto
ProjetoArquitetural
Projeto Intermediário
ProjetoDetalhado
• Definir tarefas e threads
•Definir componentes e sua distribuição
• Aplicar padrões arquiteturais para:
- Tratamento de erros global
- Tratamento de inocuidade (safety)
- Tolerância a falhas
Eliane Martins - Instituto de Computação - UNICAMP
Projeto
Projeto
ProjetoArquitetural
Projeto Intermediário
ProjetoDetalhado
• Definir tarefas e threads
•Definir componentes e sua distribuição
• Aplicar padrões arquiteturais para:
- Tratamento de erros global
- Tratamento de inocuidade (safety)
- Tolerância a falhas
Eliane Martins - Instituto de Computação - UNICAMP
Exemplo de código multithread em Javaclass Controlador{
/*...*/
public void iniciarTrabalho(){
// cria objeto trabalhador para realizar tarefaTrabalhador trab = new Trabalhador(/*...*/);
Thread t = new Thread(trab);// inicia nova thread para realizar tarefat.start();
}}
Eliane Martins - Instituto de Computação - UNICAMP
Exemplo de código multithread em Java
class Trabalhador implements Runnable {/* … */
@Overridepublic void run() {
fazAlgumTrabalho();}
private void fazAlgumTrabalho() {// ...
}}
Eliane Martins - Instituto de Computação - UNICAMP
Exemplo de código multithread em Java
Eliane Martins - Instituto de Computação - UNICAMP
Diagrama de tarefas
Eliane Martins - Instituto de Computação - UNICAMP
Diagrama de atividades: Requisição do andar
Eliane Martins - Instituto de Computação - UNICAMP
Projeto
Projeto
ProjetoArquitetural
Projeto Intermediário
ProjetoDetalhado
• Definir tarefas e threads
•Definir componentes e sua distribuição
• Aplicar padrões arquiteturais para:
- Tratamento de erros global
- Tratamento de inocuidade (safety)
- Tolerância a falhas
Eliane Martins - Instituto de Computação - UNICAMP
Revisão das classes de análise
Interface com motores de elevador e porta Classe para interface com Motor
Informações persistentes sobre o sistema Número de elevadores Número de andares
Classe Prédio
Eliane Martins - Instituto de Computação - UNICAMP
Revisão dos casos de uso
Chamar elevador
Selecionar andar
Pararelevador no
andar
BotãoPainel
LampadaPainel
SensorChegada
BotãoAndar
Operador
LampadaAndar
Controlarelevador
Mover elevador
«include» «include»
Motor
Eliane Martins - Instituto de Computação - UNICAMP
Classes de fronteira (View)
Eliane Martins - Instituto de Computação - UNICAMP
Classes de controle (Control)
Eliane Martins - Instituto de Computação - UNICAMP
Classes de modelo (Model)
Eliane Martins - Instituto de Computação - UNICAMP
Classes de fronteira (View)
Eliane Martins - Instituto de Computação - UNICAMP
Eliane Martins - Instituto de Computação - UNICAMP
Arquitetura de camadas (MVC – Model View Control)
Eliane Martins - Instituto de Computação - UNICAMP
Componentes de interface (View)
Eliane Martins - Instituto de Computação - UNICAMP
Componente de controle (Control)
Eliane Martins - Instituto de Computação - UNICAMP
Componente de modelo (Model)
Eliane Martins - Instituto de Computação - UNICAMP
Diagrama de implementação
Eliane Martins - Instituto de Computação - UNICAMP
Projeto
Projeto
ProjetoArquitetural
Projeto Intermediário
ProjetoDetalhado
• Definir tarefas e threads
•Definir componentes e sua distribuição
• Aplicar padrões arquiteturais para:
- Tratamento de erros global
- Tratamento de inocuidade (safety)
- Tolerância a falhas
Eliane Martins - Instituto de Computação - UNICAMP
Watchdog Pattern Watchdog é implementado como um componente que
recebe sinais periódicos (heartbeats), ou em sequência determinada de outros componentes a serem monitorados
Se o componente monitorado envia os sinais muito cedo, muito tarde ou fora de sequência o watchdog inicia ações de correção (reiniciar o componente, enviar alertas para administradores, ou outros mecanismos mais elaborados de recuperação de erro)
Eliane Martins - Instituto de Computação - UNICAMP
Watchdog Pattern
Eliane Martins - Instituto de Computação - UNICAMP
Watchdog Pattern
Eliane Martins - Instituto de Computação - UNICAMP
Projeto
Projeto
ProjetoArquitetural
Projeto Intermediário
ProjetoDetalhado
• Detalhar as colaborações entre objetos
• Aplicar padrões de projeto
Eliane Martins - Instituto de Computação - UNICAMP
Projeto
Projeto
ProjetoArquitetural
Projeto Intermediário
ProjetoDetalhado
• Detalhar as colaborações entre objetos
• Aplicar padrões de projeto
Eliane Martins - Instituto de Computação - UNICAMP
Projeto
Projeto
ProjetoArquitetural
Projeto Intermediário
ProjetoDetalhado
• Definir implementação das relações entre objetos
• Definir contratos para as operações e para as classes
• Definir modelo de tratamento de exceções para as classes
• Definir precisamente os tipos e domínios de valores de atributos
• Definir algoritmos para operações mais complexas
Eliane Martins - Instituto de Computação - UNICAMP
Tradução
Tradução
• Definir implementação das relações entre objetos
• Definir contratos para as operações e para as classes
• Definir modelo de tratamento de exceções para as classes
• Definir precisamente os tipos e domínios de valores de atributos
• Definir algoritmos para operações mais complexas
• Preparar, projetar e executar os Testes de Unidade
Eliane Martins - Instituto de Computação - UNICAMP
Testes
Testes
• Criar planos de testes:
- Testes de Integração
- Testes Validação
• Projetar, implementar e executar os casos de teste