propriedades rose, roze, z-eves
description
Transcript of propriedades rose, roze, z-eves
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()Debitar()CreditarDebitar()CreditarV1V2()
exemplo
Criar um diagrama de classes no Rose para a classe Conta, inserindo as operações especificadas no diagrama anterior.
pré, pós-condições
Creditarpós saldo' = saldo + val?
Debitarpré saldo val?pós saldo' = saldo – val?
exemplo
Inserir as pré e pós condições para as operações de Conta.
propriedades
InversoCreditar ; Debitar saldo' = saldo
ComutativoCreditar[v1/val?] ; Creditar[v2/val?]
Creditar[v2/val?] ; Creditar[v1/val?]
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
usando o Roze
Mapeamento de UML anotado para especificações Z
Selecionar uma classe, selecionar no menu: tools -> roze -> Z property checker
Salvar arquivo
usando Z-Eves
Verificador de sintaxe, teoremas, modelos.
Abrir arquivo criado anteriormente: File -> import
Checar especificação Command -> check all paragraphs
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
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.