• Nenhum resultado encontrado

Pergunta da Pesquisa

A solução MDA-Veritas, instanciada para o domínio de sistemas concorrentes, foi capaz de verificar equivalência entre modelos PIM e PSM de uma forma eficiente e eficaz para as linguagens de descrição redes de Petri e IOPTs e suas respectivas representações de semântica de execução?

Proposições de Estudo

Tendo por base a aplicação de um conjunto de estudos de caso, caracterizar:

1. A complexidade temporal de aplicação da solução; 2. A complexidade espacial de aplicação da solução;

3. As falhas de equivalência sintática encontradas pela aplicação da solução; 4. As falhas de equivalência semântica encontradas pela aplicação da solução.

Objetivos, Questões e Métricas

Objetivo 1. Medir a característica temporal de desempenho da solução em todo o processo de verificação de equivalência semântica nas transformações MDA.

• Propósito: medição;

• Questão: caracterização temporal;

• Objeto: desempenho da solução em todo o processo de verificação; • Ponto de vista: provedor da solução.

• Questão 1.1. Qual é o tempo necessário para aplicar cada uma das transformações MDA envolvidas no estudo de caso e sua respectiva construção da tabela sintática?

– Métrica 1.1.a. TT = TTout- TTin;

Onde TT = Tempo total para aplicação da transformação MDA, TTin = Tempo ini-

cial antes da aplicação da transformação e TTout = Tempo final após a aplicação da

transformação.

– Métrica 1.1.b. TTS = TTSout- TTSin;

Onde TTS = Tempo total para extração da tabela sintática, TTSin = Tempo inicial

antes da extração da tabela sintática e TTSout = Tempo final após a extração da tabela

sintática.

– Métrica 1.2.a. TEMS = TEMSout- TEMSin;

Onde TEMS = Tempo total para extração dos modelos semânticos, TEMSin= Tempo

inicial antes da extração do modelo semântico e TEMSout= Tempo final após a extração

do modelo semântico.

• Questão 1.3. Em que ordem de complexidade temporal está a função do tempo de execução das extrações de modelos semânticos?

– Métrica 1.3.a. f (TEMS) ∈ O(|M|).

Onde |M| é a função de tamanho do modelo e f (TEMS) é a função do tempo de exe- cução das extrações de modelos semânticos para todos os casos no experimento. • Questão 1.4. Qual é o tempo necessário para aplicação de todas as regras de verificação para

um modelo?

– Métrica 1.4.a. TAC =P

1..n TRn

Onde TAC = Tempo total para aplicação das regras de computação e TRn= Tempo de

aplicação de uma enésima regra de computação.

• Questão 1.5. Qual é o tempo necessário para decidir se um modelo satisfaz a uma fórmula temporal?

– Métrica 1.5.a. TV = TVf inal- TVinicial

Onde TV = Tempo de Verificação, TVinicial = Tempo inicial antes da verificação e

TVf inal= Tempo final após a verificação. Dado um modelo M e uma fórmula Φ, TV é

o tempo para decidir se M |= Φ.

• Questão 1.6. Em que ordem de complexidade temporal está a função de execução da verifi- cação?

– Métrica 1.6.a. f (TV) ∈ O(2|Φ|)O(|M|).

Onde |M| é a função de tamanho do modelo, |Φ| é a função de tamanho da fórmula e f (TV) é a função do tempo de verificação para todos os modelos envolvidos no experimento. O algoritmo utilizado na verificação necessita satisfazer essa métrica. • Questão 1.7. Qual é o tempo necessário para aplicação de verificações similares em um

– Métrica 1.7.a. TVSP IN = TVSP IN f inal- TVSP IN inicial

Onde TVSP IN= Tempo de Verificação no Spin, TVSP IN inicial= Tempo inicial antes da

verificação na ferramenta Spin e TVf inal= Tempo final após a verificação na ferramenta

Spin. Dado um modelo M e uma fórmula Φ, TV é o tempo para decidir se M |= Φ. Objetivo 2. Medir a capacidade da solução permitir verificação de sistemas de diferentes tamanhos.

• Propósito: medição;

• Questão: caracterização de capacidade espacial;

• Objeto: verificação de sistemas de diferentes tamanhos; • Ponto de vista: provedor da solução.

• Questão 2.1. Qual é o número máximo de elementos de um modelo que a solução permite lidar?

– Métrica 2.1.a. |M| =P

1..nComponenten. Onde |M| assume o valor máximo. A função

de tamanho do modelo é a soma dos elementos de um modelo. Dessa forma, seleciona- se o valor máximo desse resultado.

• Questão 2.2. Em que ordem de complexidade espacial está a extração através das equações semânticas?

– Métrica 2.2.a. f (|MS|) ∈ O(|M|). Onde MS = Modelo semântico, |MS| = Tamanho do modelo semântico, e f (|MS|) é a função de aplicação da extração a todos os modelos semânticos envolvidos no experimento.

• Questão 2.3. Qual é o custo que determina a complexidade espacial da aplicação da verifi- cação?

– Métrica 2.4.a. CV = f (|M|,|Φ|). Onde CV é o custo da verificação. Ela é uma função do tamanho do modelo em relação ao tamanho da fórmula.

– Métrica 2.3.a. f (|MΦ|) in 2O(|Φ|).

Onde Φ é uma fórmula LTL, MΦé um modelo que representa Φ e f (|MΦ|) é uma função

do tamanho do modelo para todas as aplicações no experimento. Verificando-se a partir de cada sub-fórmula até a fórmula total, temos que esse conjunto de fórmulas pode ser armazenado em espaço polinomial. O algoritmo utilizado na verificação necessita satisfazer a essa métrica.

Objetivo 3. Detectar problemas de equivalência ao nível sintático entre conceitos transforma- dos.

• Propósito: detecção;

• Questão: caracterização de falhas;

• Objeto: teste de equivalência sintática entre conceitos transformados; • Ponto de vista: cliente MDA.

• Questão 3.1. A quais regras estruturais uma tabela sintática correta deve satisfazer? – Métrica 3.1.a. TES =S

1..nLinen.

Onde TES = Tabela de equivalência sintática e Linen = linha de configuração para

regras da transformação MDA.

– Métrica 3.1.b. Linen = (Cellin, Cellout), com Cellin ⊆ Min.Componentes e Cellout ⊆

Mout.Componentes.

Onde Cellin = célula correspondente a uma linha na primeira parte da tupla e Cellout

= célula correspondente a uma linha na segunda parte da tupla, Min.Componentes =

componentes do modelo de entrada e Mout.Componentes = componentes do modelo de

saída.

Objetivo 4. Detectar falta de equivalência semântica entre conceitos transformados.

• Propósito: detecção;

• Questão: caracterização de problemas;

• Ponto de vista: cliente MDA.

• Questão 4.1. Qual é a forma que as propriedades semânticas precisam satisfazer? – Métrica 4.1.a. MS = (S, I, R, L).

Onde MS assume a forma de uma estrutura de Kripke. Tem S = conjunto finito de estados, I = conjunto de estados iniciais onde I ⊆ S, R é uma relação de transição onde R ⊆ S x S e L é uma função de nomes onde L : S -> 2AP, com AP = proposições atômicas definidas para o modelo.

• Questão 4.2. Como apresenta-se uma diferença de propriedade semântica?

– Métrica 4.2.a. Se (Min |= Φ) 6= (Mout |= Φ), temos falta de equivalência de uma pro-

priedade semântica. Caso contrário, ainda é necessário verificar se CE(Min |= Φ) ∼=

CE(Mout|= Φ).

• Questão 4.3. Quais são as classes de propriedades semânticas existentes para a transfor- mação analisada?

– Métrica 4.3.a. Repete-se a verificação da métrica 4.2.a, considerando Φ como cada um dos casos a seguir. Para o caso específico desta avaliação, espera-se um alto grau de poder de detecção nas seguintes categorias de propriedades:

* Propriedade Alcançabilidade (atingível): Φ = <>P.

* Propriedade Segurança (nada de errado ocorrerá): Φ = [] P. * Propriedade Vivacidade (certeza de resposta): Φ = [](P -> <>Q). * Propriedade Equidade (justiça): Φ = []<>P.

* Propriedade Liberdade de Deadlock (nunca trava): Φ = []X verdade.

Finalmente, os padrões de especificação para lógica temporal apresentados no Capítulo 2.4.5 também deverão ser utilizados para essa questão.

• Questão 4.4. Qual é a eficácia da solução na captura de falhas em diversas situações de aplicação em modelos?

solução continue detectando erros de preservação entre modelos. A técnica ado- tada foi a Mutação Restrita [Mathur and Wong, 1994], baseando-se nos resultados de [Fabbri et al., 1995] para redes de Petri, onde alguns operadores de mutação foram se- lecionados para a geração dos mutantes. Desta forma, utilizamos a métrica escore de mutação, que é um valor no intervalo (0..1) e fornece uma medida da adequação do conjunto de testes analisados:

Dada a solução S e o conjunto de casos de testes T, calcula-se o escore de mutação ms(T,P) como ms(T,P) = DM(P,T) / (M(P) - EM(P)), onde:

DM(P,T): número de mutantes mortos pelo caso de teste T. M(P): número total de mutantes gerados.

EM(P): número de mutantes equivalentes a P.

Desta forma, a equivalência entre mutantes a serem identificadas pelo experimento se dá pelo quão mais próximo o escore de mutação estiver de 1. Caso haja similaridade nos resultados do escore de mutação, inferimos que o operador de mutantes sob análise é preservador de semântica.