A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Refinamento Motivação e Objetivos –Tornar especificações mais concretas (mais próximas de uma implementação) que as desenvolvidas inicialmente –Aumentar.

Apresentações semelhantes


Apresentação em tema: "Refinamento Motivação e Objetivos –Tornar especificações mais concretas (mais próximas de uma implementação) que as desenvolvidas inicialmente –Aumentar."— Transcrição da apresentação:

1 Refinamento Motivação e Objetivos –Tornar especificações mais concretas (mais próximas de uma implementação) que as desenvolvidas inicialmente –Aumentar a aplicabilidade das operações das especificações (enfraquecimento da pré-condição) –Reduzir o não-determinismo de especificações abstratas (fortalecimento da pós-condição)

2 Etapas de Refinamento: Uma Abordagem Especificação Abstrata Inicial (em Z) Especificação Concreta (em Z) Algoritmo (Descrição Lógica) Código Intermediário (Comandos com Guarda) Implementação (PASCAL, C, Java,...) Refinamento de Dados Traduz-se no “Cálculo de Refinamentos” Refinamento de Operações Traduz-se numa Linguagem Destino

3 Refinamento entre Especificações Refinar uma especificação até obter um programa usualmente envolve uma série de passos intermediários O refinamento é estabelecido como uma relação entre especificações A relação de refinamento permite que o refinamento seja feito passo a passo Especificação Inicial SD1D1 DnDn P... Etapas de Projeto Programa

4 Refinamento entre Especificações A relação de refinamento deve ser uma ordem parcial, possuindo as seguintes propriedades: 1.  S  S S(Reflexiva) 2.  S, T  S T  T S  S = T(Anti-Simétrica) 3.  S, T, U  S T  T U  S U(Transitiva) 4.  S, T  S T  C[S] C[T](Monotônica)

5 A propriedade de reflexividade é importante para o auto referenciamento das operações A propriedade de anti-simetria é importante para simplificar as provas necessárias: A propriedade de transitividade é importante para que o programa final seja um refinamento da especificação original (refinamento passo a passo) Refinamento entre Especificações STTSTS abbaba      

6 A propriedade monotonicidade nos permite realizar refinamentos por etapas Refinamento é usualmente dividido em: –Refinamento de operações –Refinamento de dados SRS SSP SSSS PS    3;2;1 3;2;1 11

7 Refinamento de Operações Programas e especificações formais podem ser vistos como dentro da mesma categoria –A diferença é que um executa num computador (código) e outro não (design). –Torna-se necessário então desenvolver uma maneira de, a partir de uma especificação abstrata, chegar numa especificação implementável –O número de etapas depende do tipo de especificação em questão

8 Refinamento de Operações Operações descritas como predicados na especificação deverão ser mapeadas para algoritmos na linguagem de programação escolhida O fundamental nisso tudo é que o resultado dessa alteração não modifique as propriedades da especificação original

9 Refinamento de Operações Seja COP uma operação concreta que refinada uma operação abstrata AOP –Para que isso seja verdade, precisamos provar que: A pré-condição de COP precisa ser mais flexível ou igual a pré de AOP. Isto é, COP estará habilitada ao menos sempre que AOP esteja (pré-condição mais fraca) COP precisa ser mais determinística ou igual a AOP. Isto é, o número de estados gerados por COP deve ser menor ou igual aos estados gerados por AOP (pós-condição mais forte) –Note que como conseqüência das hipóteses acima, temos que COP tem que terminar com sucesso sempre que AOP terminar com sucesso

10 Refinamento de Operações: Obrigações de Prova Expressemos então essas condições formalmente através do uso de predicados: A segunda obrigação de prova é análoga à seguinte fórmula do cálculo de refinamento AOPCOPpre AOP pre COPpre AOP   pos AOPpos COP 

11 Refinamento de Operações Temos que provar esses dois predicados como teoremas para todas as operações definidas –Um caso particular é o da inicialização do estado Referências –The Z notation. Capítulo 5 –Z/Eves User’s Guide. Capítulo 3


Carregar ppt "Refinamento Motivação e Objetivos –Tornar especificações mais concretas (mais próximas de uma implementação) que as desenvolvidas inicialmente –Aumentar."

Apresentações semelhantes


Anúncios Google