propriedades rose, roze, z-eves

13
propriedades rose, roze, z-eves

description

propriedades rose, roze, z-eves. introdução. propriedades em diagramas UML Roze, Z-Eves. Propriedades. Características desejáveis do sistemas Úteis para geração de casos de teste Não se sabe a priori se a propriedade é satisfeita. classe Conta. Conta. saldo : \nat = 0. Creditar(). - PowerPoint PPT Presentation

Transcript of propriedades rose, roze, z-eves

Page 1: propriedades  rose, roze, z-eves

propriedades rose, roze, z-eves

Page 2: propriedades  rose, roze, z-eves

introdução

propriedades em diagramas UML Roze, Z-Eves

Page 3: propriedades  rose, roze, z-eves

Propriedades

Características desejáveis do sistemas Úteis para geração de casos de teste Não se sabe a priori se a propriedade é

satisfeita

Page 4: propriedades  rose, roze, z-eves

classe Conta

Conta

saldo : \nat = 0

Creditar()Debitar()CreditarDebitar()CreditarV1V2()

Page 5: propriedades  rose, roze, z-eves

exemplo

Criar um diagrama de classes no Rose para a classe Conta, inserindo as operações especificadas no diagrama anterior.

Page 6: propriedades  rose, roze, z-eves

pré, pós-condições

Creditarpós saldo' = saldo + val?

Debitarpré saldo val?pós saldo' = saldo – val?

Page 7: propriedades  rose, roze, z-eves

exemplo

Inserir as pré e pós condições para as operações de Conta.

Page 8: propriedades  rose, roze, z-eves

propriedades

InversoCreditar ; Debitar saldo' = saldo

ComutativoCreditar[v1/val?] ; Creditar[v2/val?]

Creditar[v2/val?] ; Creditar[v1/val?]

Page 9: propriedades  rose, roze, z-eves

exemplo

Inserir as propriedades Inverso e Comutativo para a classe Conta.

Abrir especificação da classe, clicar na aba “Roze” e escrever a propriedade no campo “properties”

Lembre-se de especificar que as operações creditarDebitar e creditarV1V2 são operações auxiliares aba “Roze” -> “isDefinition”’ = true

Page 10: propriedades  rose, roze, z-eves

usando o Roze

Mapeamento de UML anotado para especificações Z

Selecionar uma classe, selecionar no menu: tools -> roze -> Z property checker

Salvar arquivo

Page 11: propriedades  rose, roze, z-eves

usando Z-Eves

Verificador de sintaxe, teoremas, modelos.

Abrir arquivo criado anteriormente: File -> import

Checar especificação Command -> check all paragraphs

Page 12: propriedades  rose, roze, z-eves

Provando propriedades com o Z-Eves

Provar propriedade Clicar com botão direito na

propriedade e selecionar “show proof” Reduction -> prove by reduce Nem sempre se consegue provar as

propriedades na primeira tentativa, por isso há algumas opções para se reescrever a propriedade e tentar novamente

Page 13: propriedades  rose, roze, z-eves

exercícios

Crie uma classe coleção de contas que possua os métodos: removerConta(Conta c) adicionarConta(Conta c)

Escreva as pré e pós condições das operações. Escreva e teste uma propriedade que diga

que: duas inserções do mesmo elemento seguido de sua remoção implica que o elemento não pertence à coleção.

Escreva uma propriedade desejada para o seu sistema.