Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco Especificação de Sistemas Distribuídos Parte 2.

Slides:



Advertisements
Apresentações semelhantes
Curso de aprofundamento na linguagem C
Advertisements

Recursividade Inhaúma Neves Ferraz
Sistemas Concorrentes com CSP e Java
Paulo Marques Hernâni Pedroso
UML Modelando um sistema.
UML – Visões Parte 1 Modelando um sistema.
Identificando requisitos
Interação entre objetos
Algoritmos e Programação Linguagens de Programação Teoria Aula (09/06)
PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA APLICADA DISCIPLINA DE SISTEMA ORIENTADOS A OBJETOS PROGRAMAÇÃO ORIENTADA.
Recursividade Inhaúma Neves Ferraz
Descrição de hardware em SystemC
Orientação a Objetos Classes
Estilos de Especificação
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
Prof. Alfredo Parteli Gomes
Universidade do Vale do Rio dos Sinos - São Leopoldo -
Programação Orientada a Objetos com Java
JAVA Linguagem Ambiente de Desenvolvimento
Fase de Elaboração: Fluxo de Análise Análise de Sistemas de Software Prof. Rodrigo Ribeiro.
Estudo dos Conceitos e Paradigmas de Programação
Detalhes sobre o curso
Paradigmas de Linguagens de Programação Linguagem Imperativa 2
DI UFPE Semântica de Java Java and the Java Virtual Machine - Definition, Verification, Validation Robert Stark, Joachim Schmid, and Egon Borger Wolfram.
Alexandre Mota/Augusto Sampaio {acm,
Adalberto Farias Alexandre Mota
CSP: Semântica e Refinamento
1 C# O tipo System.String Sharp Shooters.NET Universidade Federal de Pernambuco Centro de Informática Recife, 05/09/2002 Autor: Marden Menezes Costa.
Orientação a Objetos e Java Graduação em Ciência da Computação
Paulo Borba Centro de Informática Universidade Federal de Pernambuco
CSP-Z Disciplina: Especificação de Sistemas Distribuídos Mestrado em Ciências da Computação Aleciano Jr. Leonilson Barbosa
Implementação Orientada a Objetos – Aula 03
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota (com material da Qualiti Software Process)
Funções Matemáticas e de String
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Especificação de Sistemas Distribuídos.
Classes Abstratas e Interface
Métodos Formais.
Utilizando UML e Padrões Prof. Fábio Botelho, MSc Redes e Sistemas Distribuídos Recife, Março de 2010.
JAVA Sintaxe.
Refinamento Motivação e Objetivos –Tornar especificações mais concretas (mais próximas de uma implementação) que as desenvolvidas inicialmente –Aumentar.
A Linguagem Formal de Especificação VDM-SL
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
TRABALHO DE GRADUAÇÃO Model Checkers: Uma análise de ferramentas para a linguagem de programação C TRABALHO DE GRADUAÇÃO Pedro Montenegro
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
CIn.ufpe.br CSP-Z Disciplina: Especificação de Sistemas Distribuídos Mestrado em Ciências da Computação Aleciano Jr. Leonilson Barbosa.
Modelo de Análise e Projeto
Copyright 2000, Departamento de Informática, UFPE. Todos os direitos reservados sob a legislação em vigor. Orientação a Objetos e Java.
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Operadores Básicos.
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Modelos Semânticos e Noções de Refinamento.
CSP-Z e sua Verificação
Engenharia de Software
Métodos Formais Juan Andrés Mussini.
Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco Especificação Usando Conjuntos.
1 Hiding, Renomeação, Composição Seqüencial e Refinamento Alexandre Mota
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Aula /08/2012 Professor Leomir J. Borba-
Desenvolvimento Empresarial Aula 5 – Business Process Modeling Notation – Parte 2 Prof.: Guilherme Amorim Data: 26/03/2014.
A linguagem unificada de modelagem
Adalberto Farias Alexandre Mota Augusto Sampaio
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Engenharia de Requisitos Prof. Fábio Botelho, MSc Redes e Sistemas Distribuídos Recife, Agosto de 2012.
CIn-UFPE1 UML Uma linguagem unificada de modelagem Visão Geral.
CIn.ufpe.br CSP-Z Disciplina: Especificação de Sistemas Distribuídos Mestrado em Ciências da Computação Aleciano Jr. Leonilson Barbosa.
Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin/ Marcia Bissaco Universidade de Mogi das Cruzes
Implementação Orientada a Objetos – Aula 04 Métodos, parâmetros e retorno Prof. Danielle Martin/Marcia Bissaco Universidade de Mogi das Cruzes
Abstração de Processos Infinitos em CSP Z : Tratando Comunicação e Instabilidade Aluno: Adalberto Cajueiro de Farias Orientador: Alexandre Mota Co-Orientador:
1 Especificação de Sistemas de Software e a UML. 2 Modelagem de sistema A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema.
Uma Extensão do Fluxo de Análise e Projeto do RUP com suporte a Desenvolvimento Baseado em Componentes Eduardo Almeida
PROBE – CSP Animator FDR – CSP Model Checker Adalberto Farias Alexandre Mota Augusto Sampaio.
Ambientação com a Sintaxe de Java: parte 2 Prof. Gustavo Wagner Slides Originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB  Centro de.
Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB.
Transcrição da apresentação:

Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco Especificação de Sistemas Distribuídos Parte 2

Detalhes sobre o curso

Revisando a motivação A modelagem de aplicações reais pode exigir o uso de vários paradigmas/linguagens/formalismos –Exemplo: sistemas embarcados “Linking Theories and Tools” é uma tendência –Convergência e complementaridade de abordagens Verificação de modelos (model-checking) – verificação totalmente automática é largamente aceita, na prática, pela indústria

Contexto e escopo Uma modelagem pode incluir vários aspectos ortogonais: –controle (possivelmente envolvendo concorrência) –dados –tempo real –probabilidade O curso aborda controle (CSP), dados (Z) e a integração destes (CSP-Z)

Z Especificação dos aspectos sequencias Quais são as operações e o que elas fazem? Implementação detalha como a operação é realizada Especificação Formal CSP Especificação dos aspectos concorrentes Quando as operações podem ser executadas e em que ordem? Implementação garante que a ordem de execução é satisfeita

Integação (CSP-Z) Extensão conservativa de CSP e (parcial) de Z –sintaxe –semântica –refinamento Ferramentas –Z-Eves verificação sintática e prova de propriedades e refinamento da parte em Z –FDR com extensão da estratégia de verificação para CSP-Z

Uma especificação pode ser vista como uma classe, com atributos (componentes de estado) e métodos (operações) –Z é Baseada em teoria de conjuntos e lógica de primeira ordem (cálculo de predicados) –Modelos (tipos) como conjuntos, relações, funções e seqüências permitem capturar entidades de forma abstrata e concisa –A descrição de operações usando predicados permite foco nas propriedades –Mas não há como capturar aspectos de controle (ordem de execução das operações) Z

Qual o fluxo de controle (em que ordem as operações são executadas)? CSP Qual o estado (atributos e tipos) e qual o efeito de cada operação no estado? Z Especificação Relógio tictac() cuco()

Especificação em CSP A cada minuto, o relógio faz tictac e, a cada 60 minutos, o cuco aparece Relogio (60) = cuco -> Relogio (0) Relogio (min) = tictac -> Relogio (min + 1) Mas nem sempre a estrutura de dados é tão trivial assim e CSP dispõe de tipos de dados muito restritos

Especificação em CSP Uma possível estratégia é especificar apenas a parte de controle em CSP Relogio = tictac -> Relogio [] cuco -> Relogio Mas como escolher entre os eventos tictac e cuco baseado no valor da hora (minutos)?

Implementação A estrutura de dados do exemplo pode ser implementada, por exemplo, como uma classe em Java... class Relogio { int min; void tictac() {if (min < 60) min = min + 1;} void cuco() {if (min == 60) min = 0;} Relogio() {min = 0}; }

Especificação em Z... Ou especificada em uma linguagem como Z Relogio min: Z tictac  Relogio min < 60 min’ = min + 1 cuco  Relogio min = 60 min’ = 0 init Relogio’ min’ = 0

Especificação em CSP-Z Combina controle (CSP) com dados (Z) com-tictac  State min < 60 min’ = min + 1 com-cuco  State min = 60 min’ = 0 init State’ min’ = 0 State min: N spec Relogio channel tictac, cuco: [] main = tictac -> main [] cuco -> main end_spec Relogio

Qual o fluxo de controle (em que ordem as operações são executadas)? CSP Qual o estado (atributos e tipos) e qual o efeito de cada operação no estado? Z Especificação

class Conta { private double saldo; private String numero; Conta (String n) {numero = n; saldo = 0;} void credito(double valor) {saldo = saldo + valor;} void debito(double valor) {saldo = saldo - valor;} String numero() {return numero;} double saldo() {return saldo;} } Implementação

Exercício Especifique Conta primeiro em CSP, considerando tanto controle quanto dado Em seguida, ignore a parte de dados e refaça a especificação em CSP A partir da implementação dada em Java, especifique a parte de dados em Z Combine as duas partes em uma especificação CSP-Z

Bibliografia Todas disponíveis na WEB, veja: The Z Notation, A Reference Manual, J. M. Spivey, Prentice Hall Using Standard Z: Specification, Refinement and Proof, J. Woodcock & J. Davies, Prentice Hall The Z/Eves Reference Manual, M. Saaltink, Ora Canada Combining CSP and Z, C. Fischer, University of Oldenburg Model-Checking CSP-Z, A. Mota & A. Sampaio homepage do curso da graduação –