Especificação de Sistemas Distribuídos Modelo CSPm - Estacionamento

Slides:



Advertisements
Apresentações semelhantes
DFD - Diagrama de Fluxo de Dados
Advertisements

Marca Ponto WEB.
Diagrama de Máquina de Estados
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Modelagem Orientada a Objetos
SISTEMA É UMA ENTIDADE QUE MANTEM SUA EXISTÊNCIA ATRAVÉS DA INTERAÇÃO DE SUAS PARTES ( Bertalanffy ) Interação Mútua Diferente duma simples.
Professora: Aline Vasconcelos IF Fluminense
Carolina Fonseca Neumar Ribeiro
1 Modelos Fundamentais -> Falhas Segurança. 2 Falhas. É o modelo que define os modos nos quais uma falha pode ocorrer de forma a disponibilizar o entendimento.
Máquina de Estados Uma máquina de estados finitos ou autômato finito é uma modelagem de um comportamento composto por estados, transições e ações Um estado.
Sistema de Controle de Motel
TIPOS DE TESTES APLICÁVEIS E NÃO APLICÁVEIS AO PROJETO
EVITE OS ERROS MAIS COMUNS NO ATENDIMENTO
Fórum Digital análise e projeto de sistemas – IF718
Fórum Digital análise e projeto de sistemas – IF718
Tópicos em Sistemas Distribuídos
Patrícia Muniz Ferreira Sidney Nogueira
Antonyus Pyetro Infra-estrutura de Hardware – IF674
VUML Rafael Borges motivação estudar algumas ferramentas desenvolvedores só entendem uml uml não tem semântica bem definida.
Diogo Peixoto Projetar Arquitetura Diogo Peixoto
Análise Estruturada.
Linguagem de Programação IV
Alexandre Mota/Augusto Sampaio {acm,
Alexandre Mota Introdução a CSP Alexandre Mota
Adalberto Farias Alexandre Mota
CSP: Semântica e Refinamento
Pet computação UFPE Aula de apoio aos feras: Arquitetura de Computadores.
2005 Cin - Centro de Informática - Universidade Federal de Pernambuco – UFPE Iniciação Científica Visual # Tool Bolsista: Rodrigo Cavalcante Mendes Orientadores:
Especificação de um Mecanismo Autonômico em CSP Adalberto R. Sampaio Junior Doutorado – Cin/UFPE.
CSP-Z Disciplina: Especificação de Sistemas Distribuídos Mestrado em Ciências da Computação Aleciano Jr. Leonilson Barbosa
PROGRAMAÇÃO DISTRIBUÍDA Aula 01 Prof. Henrique Mongelli
DESENVOLVIMENTO WEB II Estruturas de Decisão – IF..ELSE.
Processos.
Programação I CH: 60h Créditos: 3 Prof Me. Tiago Araujo.
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
Introdução a Teste de Software
Introdução a Banco de Dados Aula 04
Zeque - Grad. CC1 Sistemas Operacionais Curso de Ciência da Computação da UFPE Prof. José Queiroz - ZEQUE.
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Especificação de Sistemas Distribuídos.
Laboratório de Programação
PROGRAMAÇÃO DISTRIBUÍDA Aula 02 Prof. Henrique Mongelli
Sistemas Operacionais
Roteiro Rodando FDR e Probe Dicas de uso das ferramentas.
Aula Prática de ESD ( Usando FDR e Probe Sidney Nogueira Última atualização: 01/05/10.
Diagrama de Colaboração. Diagramas de Interação Expressam informações bastante similares porém de maneira diferente Diagrama de seqüência: – Interação.
Retaguarda – Relatório do Caixa IdentificaçãoRET_008 Data Revisão23/10/2013.
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Operadores De Escolha e Leis Algébricas.
Aula Prática de ESD (
Sistema de Automação do Estacionamento do Shopping Center Recife
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Composição Paralela Síncrona e Alfabetizada.
Sistema Estacionamento Programação concorrente e distribuída Hallan Cosmo Graduação em Engenharia da Computação.
SISTEMAS OPERACIONAIS
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Operadores Básicos.
PCS - Departamento de Engenharia de Computação e Sistemas Digitais Projeto de Formatura – Turmas 2008 Engenharia Elétrica – Ênfase Computação Integrantes:
Sistemas Propriedades de Sistemas SITP – Módulo 3.
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Entrelaçamento e Composição Paralela Generalizada.
Paralelismo Alexandre Mota Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes.
Introdução à Computação Componentes Básicos dos Computadores
Análise e Projeto de Sistemas
Análise e Projeto de Sistemas
Trabalho elaborado por: -Daniel Nº26 -André Nº3. * A camada de rede do modelo OSI é responsável por controlar a operação da rede de um modo geral. As.
Retaguarda – Relatório do Caixa
Ronda Acesso e Segurança
Berilhes Borges Garcia Algoritmos Uma ferramenta para resolver um problema de computação bem- especificado (O espírito da computação) Exemplo: ordenação.
Interações entre objetos
Fundamentos de Engenharia de SW Diagramas da UML Usados no Projeto de Software.
Retaguarda - Relatório do Caixa. Objetivo Relacionar toda e qualquer movimentação efetuada antes do fechamento de um caixa. Visa totalizar e relacionar.
Segurança em Comércio Eletrônico Comércio tradicional realizado de maneira centralizada cercado de restrições legais Comércio eletrônico realização de.
PROBE – CSP Animator FDR – CSP Model Checker Adalberto Farias Alexandre Mota Augusto Sampaio.
FLUXO DE CAIXA É um instrumento de controle que tem por objetivo auxiliar na tomada de decisões sobre a situação financeira da empresa. Consiste em um.
Transcrição da apresentação:

Especificação de Sistemas Distribuídos Modelo CSPm - Estacionamento Equipe: Rafael Araújo (rpa4@cin.ufpe.br) Ingridd Brito (imlb@cin.ufpe.br)

Sistema Sistema de estacionamento de um local genérico; Possui possibilidade de pagamento tanto em um Caixa quanto na Cancela de Saída (caso o pagamento seja necessário); O pagamento pode ser realizado utilizando cartão de crédito ou dinheiro se realizado no Caixa; Se realizado na Cancela de Saída, o único meio aceito é via cartão de crédito.

Sistema Os veículos poderão entrar por uma das Cancelas de Entrada disponíveis; Os mesmos poderão realizar o pagamento no caixa, dadas as devidas sincronizações; Ou podem realizar o mesmo na Cancela de Saída; O Servidor é responsável por armazenar e gerenciar a sequência de tuplas (placa, hora) dos carros que entram no estacionamento através da Cancela de Entrada.

Componentes O sistema é composto por: Datatypes, conjuntos e sequências; Funções. Canais e eventos; Processos;

Datatypes, Conjuntos e Sequências datatype PLACAS = KGC3920 | KHJ2103 | KLA9123 | KFL1984 Representam as placas dos veículos;

Datatypes, Conjuntos e Sequências datatype MENSAGEM= RetireTicket | PlacaExistente| BemVindo| TempoEsgotado| Obrigado Representam as mensagens que são exibidas para o usuário/veículo durante algumas das operações;

Datatypes, Conjuntos e Sequências Alguns dos conjuntos presentes no sistema: RANGE = {1..3} //Capacidade de determinados processos. HORA = {1200, 1300, 1400, 1500} -- Simulam um horário de entrada de um veículo. VEICULOS = {1..2} // Quantidade de veículos. Representam as mensagens que são exibidas para o usuário/veículo durante algumas das operações;

Datatypes, Conjuntos e Sequências Sequência utilizada no Sistema: TICKETS = <> Esta sequência armazena pares de placas e horas (i.e. (KGC3920, 1200)) de modo a representar os horários os quais as placas (veículos) entraram no estabelecimento.

Funções Funções utilizadas no sistema (assinaturas): placaJaCadastrada(p, <>) placaJaCadastrada(p, <(placa, hora)> ^ ticketsRestantes) Utilizada para determinar se uma placa já existe na sequência para que não haja veículos com a mesma placa em horários diferentes.

Funções Funções utilizadas no sistema (assinaturas): GetHora(p, t) = { h | h <- HORA, elem((p, h), t) } Utilizada para retornar um horário de entrada (h) relacionado a uma determinada placa (representada por p).

Funções Funções utilizadas no sistema (assinaturas): RemovePlaca(placa, <>) = <> RemovePlaca(p, <(placa, hora)> ^ placasRestantes) Utilizada para remover a placa de uma sequência, onde a entrada é dada por uma própria sequência que é dividida em head e tail através da concatenação de elementos e é analisada separadamente até que a placa desejada seja encontrada, então, a concatenação dos elementos previamente analisados e os restantes serão retornados como uma única sequência.

Canais e Eventos Alguns dos Canais de Dados e Eventos presentes no sistema: channel levantaCancela, baixaCancela Representam ações de um processo que não recebem dados, normalmente utilizadas como alfabeto de sincronização ou operações únicas;

Canais e Eventos Alguns dos Canais de Dados e Eventos presentes no sistema: channel enviaDados: RANGE.PLACAS.HORA Representam ações de um processo que recebem dados, onde há a comunicação (output) de um processo X para a entrada (input) de um processo Y. Estas representam operações que operam sobre dados ou que irão gerar eventos baseados em valores transientes (calculados) sobre tais dados;

Processos Exemplo de Processo encontrado no sistema: CancelaEntrada(n) = recebeDados!n?p -> leHora!n?hora -> enviaDados!n!p!hora -> entregaTicket.n -> abrirCancela.n -> display!BemVindo-> fecharCancela.n -> CancelaEntrada(n) Representam um conjunto de ações (eventos) com trasmissão de dados ou não, estes denotam o comportamento do processo de maneira contínua;

Processos Exemplo de Processo encontrado no sistema: Servidor(T) = (enviaDados?n?placa?hora -> if (not placaJaCadastrada(placa, T)) then Servidor(T ^ <(placa, hora)>) else display!PlacaExistente -> Servidor(T)) Neste caso, faz-se o uso da sequência presente no sistema, estruturas de controle if-then-else e avaliação de expressões provenientes de funções.

Avaliações Para determinar algumas propriedades do sistema são utilizadas algumas asserções, tais como: assert CancelaEntrada(1) :[deterministic] assert CancelaEntrada(1) :[deadlock free] assert CancelaEntrada(1) :[livelock free] Estas representam, respectivamente, a presença de determinismo em um processo (ou composições, escolhas, etc. entre eles), a presença de deadlock e livelock, dada a análise unitária ou em conjunto com outros processos.

Avaliações Exemplo de asserções relativas a interação entre processos: CancelaEntradaANDVeiculo = CancelaEntrada(1) [|{|recebeDados|}|] Veiculo(1) assert CancelaEntradaANDVeiculo :[deterministic] assert CancelaEntradaANDVeiculo :[deadlock free] assert CancelaEntradaANDVeiculo :[livelock free] Mesmos conceitos presentes na análise de um único processo, a diferença é a avaliação como um todo para quaisquer processos envolvidos e suas operações, havendo sincronização ou não.

Refinamento Para availiar se um processo "melhora" o outro em determinado modelo (Traces, Falhas, Falhas-Divergências) foram utilizadas as seguintes asserções: assert TotalVeiculos_UNREF [T= TotalVeiculos_REF assert TotalVeiculos_UNREF [F= TotalVeiculos_REF assert TotalVeiculos_UNREF [FD= TotalVeiculos_REF

Refinamento Para esta avaliação, foram utilizados os seguintes processos: TotalVeiculos_UNREF = |~| x: VEICULOS @ Veiculo(x) -- Processo com não-determinismo proposital, proveniente da escolha interna TotalVeiculos_REF = [] x: VEICULOS @ Veiculo(x) -- Processo que refinará o anterior, utilizando escolha externa

Melhorias no Modelo Interação entre Processos da Cancela de Saída e Veículo; Utilização do servidor ao sincronizar dados com o Caixa, ao invés de utilizar uma função como filtro de valores.

Considerações Finais Todos os processos foram avaliados nas 3 proposições de asserção; Deadlocks esperados estão marcados no modelo (.csp); Operações de dados foram realizadas utiizando índices para indicar qual o evento e qual o processo que originou este evento, durante a sincronização / paralelismo.