Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação:...
-
Upload
luiz-eduardo-ramalho-amado -
Category
Documents
-
view
218 -
download
2
Transcript of Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação:...
![Page 1: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/1.jpg)
Eliane Martins - Instituto de Computação - UNICAMP
Estudo de casoSistema de elevador
Criação: jun/2011
![Page 2: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/2.jpg)
Eliane Martins - Instituto de Computação - UNICAMP
Projeto
Projeto
ProjetoArquitetural
Projeto Intermediário
ProjetoDetalhado
![Page 3: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/3.jpg)
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
![Page 4: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/4.jpg)
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
![Page 5: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/5.jpg)
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();
}}
![Page 6: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/6.jpg)
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() {// ...
}}
![Page 7: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/7.jpg)
Eliane Martins - Instituto de Computação - UNICAMP
Exemplo de código multithread em Java
![Page 8: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/8.jpg)
Eliane Martins - Instituto de Computação - UNICAMP
Diagrama de tarefas
![Page 9: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/9.jpg)
Eliane Martins - Instituto de Computação - UNICAMP
Diagrama de atividades: Requisição do andar
![Page 10: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/10.jpg)
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
![Page 11: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/11.jpg)
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
![Page 12: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/12.jpg)
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
![Page 13: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/13.jpg)
Eliane Martins - Instituto de Computação - UNICAMP
Classes de fronteira (View)
![Page 14: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/14.jpg)
Eliane Martins - Instituto de Computação - UNICAMP
Classes de controle (Control)
![Page 15: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/15.jpg)
Eliane Martins - Instituto de Computação - UNICAMP
Classes de modelo (Model)
![Page 16: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/16.jpg)
Eliane Martins - Instituto de Computação - UNICAMP
Classes de fronteira (View)
![Page 17: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/17.jpg)
Eliane Martins - Instituto de Computação - UNICAMP
![Page 18: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/18.jpg)
Eliane Martins - Instituto de Computação - UNICAMP
Arquitetura de camadas (MVC – Model View Control)
![Page 19: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/19.jpg)
Eliane Martins - Instituto de Computação - UNICAMP
Componentes de interface (View)
![Page 20: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/20.jpg)
Eliane Martins - Instituto de Computação - UNICAMP
Componente de controle (Control)
![Page 21: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/21.jpg)
Eliane Martins - Instituto de Computação - UNICAMP
Componente de modelo (Model)
![Page 22: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/22.jpg)
Eliane Martins - Instituto de Computação - UNICAMP
Diagrama de implementação
![Page 23: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/23.jpg)
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
![Page 24: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/24.jpg)
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)
![Page 25: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/25.jpg)
Eliane Martins - Instituto de Computação - UNICAMP
Watchdog Pattern
![Page 26: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/26.jpg)
Eliane Martins - Instituto de Computação - UNICAMP
Watchdog Pattern
![Page 27: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/27.jpg)
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
![Page 28: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/28.jpg)
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
![Page 29: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/29.jpg)
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
![Page 30: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/30.jpg)
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
![Page 31: Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.](https://reader036.fdocuments.net/reader036/viewer/2022062819/570638581a28abb8238fc536/html5/thumbnails/31.jpg)
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