Estilos de Especificação

13
1 Estilos de Especificação Orientados a Propriedades (Algébricas) Baseados em Modelos Concorrente

description

Estilos de Especificação. Orientados a Propriedades (Algébricas) Baseados em Modelos Concorrente. Especificação Algébrica. Uma Especificação consiste de Um conjunto de nomes de tipos (sorts) Um conjunto de funções Um conjunto de axiomas (semântica). Um Exemplo Clássico: pilhas. - PowerPoint PPT Presentation

Transcript of Estilos de Especificação

Page 1: Estilos de Especificação

1

Estilos de Especificação

Orientados a Propriedades (Algébricas)

Baseados em Modelos

Concorrente

Page 2: Estilos de Especificação

2

Especificação Algébrica

Uma Especificação consiste de

– Um conjunto de nomes de tipos (sorts)

– Um conjunto de funções

– Um conjunto de axiomas (semântica)

Page 3: Estilos de Especificação

3

Um Exemplo Clássico: pilhas Tipo: pilha-int Funções

vazia: -> pilha-int

push: int pilha-int -> pilha-int

pop: pilha-int -> pilha-int

top: pilha-int -> int

e_vazia: pilha-int -> bool

Axiomaspop (push (i, p)) = p

top (push (i, p)) = i

e_vazia (p) = (p = vazia)

Page 4: Estilos de Especificação

4

Métodos Baseados em Modelos

Componentes de uma Especificação

Um Modelo matemático é usado para descrever o estado do sistema.

Page 5: Estilos de Especificação

5

Um Modelo Matemático para Pilhas

var

pilha, pilha' : seq[Int]

operações (procedimentos, métodos)

vazia = (pilha' = [])

push(i? : Int) = pilha'=[i?]^pilha

pop() = (pilha []) => pilha'= tail pilha

top(i! : Int) = (pilha []) => i! = head pilha

e_vazia (b! : Bool) = b! <=> (pilha = [])

Page 6: Estilos de Especificação

6

Especificação de sistemas concorrentes

Modelos - Exemplos – CSP (Communicating Sequential Processes)– CCS (Calculus of Communicating Systems)

Um sistema é uma rede de processos independentes e comunicantes

Rigor matemático permite especificações, provas e transformações

Algumas diferenças: – notação

– conceito de equivalência

Page 7: Estilos de Especificação

7

Um Exemplo Simples Relógio de parede com cuco

– Modelado por dois componentes:• Contador de 1 a 60• Cuco: aparece a cada 60 minutos

– A interação entre esses componentes se dá a cada 60 minutos

Cookoo

0102030405060

Page 8: Estilos de Especificação

8

Um Exemplo Simples

Contador(min) = tick Contador(min + 1)

Contador(60) = sincroniza Contador(0)

Passaro = sincroniza cuco Passaro

Relogio = Contador(0) || Passaro {sincroniza}

Page 9: Estilos de Especificação

9

Especificação de Sistemas Concorrentes

Tanto CCS como CSP influenciaram

trabalhos futuros. Exemplos:

– CSP: occam, trasputer

– LOTOS foi influenciada por CCS + ACT

ONE

Page 10: Estilos de Especificação

10

Uso Prático de Métodos Formais

Escolha a notação apropriada Estime os custos/benefícios Não abandone métodos tradicionais (use

métodos semi-formais em conjunto com métodos formais). Ex. UML + Z (OCL)

Documente Não esqueça as medidas usuais de

qualidade Teste Reuse

Page 11: Estilos de Especificação

11

Considerações Finais

Um aspecto unificador de estilos: evitar tradução entre linguagens sempre que possível.– Cálculo de Refinamentos [Morgan]– Extendend ML [Sannella]

Na prática, nem sempre é possível usar uma única liguagem. Mas deve haver uma unificação semântica.– Exemplo: De CSP-Z para Java (CTJ)

Page 12: Estilos de Especificação

12

Considerações Finais

Integração de formalismos– Z + CSP – Z + Timed CSP – Object-Z, MooZ – UML + Z (OCL)

Aplicações práticas podem ser citadas– CICS (IBM) – TRANSPUTER (INMOS)– Protocolos – Sistemas de aviação, ...

Page 13: Estilos de Especificação

13

Considerações Finais Mas podemos fazer muito mais

– Padrões: Z, LOTOS, etc. – Literatura – Formação de pessoal– Ambiente de apoio

Formalização de práticas informais