• Nenhum resultado encontrado

4.2 Instanciação da MDA-Veritas Através de Modelos Redes de Petri

4.2.3 Instanciação da Atividade iii: Descrever as equações semânticas

Contando com T r, Min e Mout, é requisitada uma investigação de uma maneira para que se possa

extrair automaticamente o significado dos modelos para um domínio que permita aplicar técnicas formais para verificação de equivalência entre os modelos.

Assumindo que M M Sin e M M Sout garantem que conceitos de redes de Petri apresentados

na Seção 2.3 podem ser formalizados na teoria das categorias de uma maneira genérica, M Sin

e M Sout serão as instâncias desses conceitos construídos através de EqSin e EqSout respectiva-

mente. Como um exemplo, podemos ver dois casos de modelos redes de Petri e IOPT descritos na Figura 27, onde o modelo na parte (a) da figura é Min, instância do metamodelo redes de Petri

como M Mine o da parte (b) é Mout, instância do metamodelo IOPT como M Mout, representando

uma rede de Petri particionada como um PIM ou um modelo para alguma plataforma específica de sistemas embarcados como um PSM. Sob o ponto de vista de M Sin e M Sout, esses modelos

podem ser representados como um grafo ordinário, cujo conjunto de nós é uma estrutura algébrica gerada pelo conjunto de lugares e os morfismos são produzidos pelas transições. Dado que temos uma marca em cada lugar (P1 e P2), EqSine EqSoutdevem especificar que M Sine M Soutsejam:

• MinT 1 : P 1 ⊕ P 2 → 20P 2

• Mout(Comp1T 1 : P 1)

;

(Comp2 T 1_copy : P 2) → (Comp2 20P 2).

Figura 27: Exemplo de dois modelos descritos em redes de Petri

Neste caso, EqSin e EqSout adaptam duas operações algébricas herdadas de

[Meseguer and Montanari, 1988]: ⊕ e

;

. O primeiro corresponde à união dos elementos e o último à concatenação de arcos como composição seqüencial. Isto significa que, na saída, as principais diferenças sintáticas observadas serão: existir dois componentes de rede fragmentados, onde não é permitida a operação de união de multiconjuntos sobre a marcação dos lugares P1 e P2 e existir uma composição seqüencial entre a transição T1 e a nova transição inserida T1_copy. A teoria das categorias é útil para explicar esses aspectos, usando uma notação algébrica formal.

Para guiar a construção de EqSine EqSout, temos em [Meseguer and Braga, 2004] idéias fun-

damentais de mapeamentos para a lógica de reescrita como equações semânticas, para que se faça uso de ferramentas como o Maude LTL Model-Checker, por exemplo.

Para incorporar EqSin e EqSout à arquitetura MDA-Veritas reusando padrões MDA, tivemos

que lidar com algumas questões pragmáticas e formais. As primeiras dizem respeito a requisitos relacionados às linguagens e ferramentas que irão representar essas equações semânticas, enquanto que as últimas lidam com aspectos teóricos para garantir composição e recursão.

Focando nos aspectos pragmáticos, há três requisitos que devem ser observados na linguagem usada para representar EqSine EqSout. O primeiro é que a linguagem deve permitir representar as

características implementadas no formalismo empregado pela semântica denotacional, como em nosso domínio, representando a categoria Petri. Além do mais, essa linguagem precisa representar características de linguagens declarativas corretamente, para que conceitos sintáticos sejam direta- mente mapeados em seus domínios semânticos. O segundo requisito indica que a linguagem deva suportar a representação de características reais da maioria dos modelos de programação. Nos concentramos nas características dos modelos simples em redes de Petri tratados anteriormente. Isto significa que a linguagem deva permitir representar aspectos de linguagens de programação e de modelagem como seqüencialidade, concorrência, não-determinismo e uma infra-estrutura para representar estados. Por último, o terceiro requisito se relaciona com a manipulação e execução dessas equações semânticas, permitindo sua integração com outras ferramentas de métodos for- mais.

Por outro lado, há dois aspectos da computação teórica que precisam ser revisitados. O primeiro é que a linguagem escolhida para representar EqSin e EqSout seja completamente (ou

parcialmente) composicional. O entendimento de expressões compostas como regras de transfor- mação torna mais fácil a prova de propriedades semânticas, permitindo a tradução de peças sintáti- cas para metalinguagens semânticas representadas como M M Sin e M M Sout. Isto representa um

desafio e uma melhora significativa porque geralmente há proposições, axiomas e teoremas que já foram desenvolvidos para essa metalinguagem. Encontrar essa linguagem composicional permite que raciocinemos usando indução sobre a gramática da linguagem de modelagem, desde que essa gramática seja descrita por um metamodelo. O segundo aspecto teórico é que a linguagem deva permitir recursão sobre a estrutura gramatical (novamente o metamodelo) da linguagem que essa estrutura interpreta, ou seja, ela deve permitir extrair o estado corrente do modelo em termos de uma representação significativa, ou seja, o modelo semântico através de M M Sin e M M Sout. Isto

é feito carregando-se a estrutura que representa o ambiente de um modelo. Quando Min é repas-

sado ao engenho que aplica EqSin e EqSout, a transformação explora esse modelo a um nível de

cima para baixo, criando contextos necessários para uma estrutura de ambiente, como ambientes de thread, memória, localizações e valores. Após isso, essa estrutura é repassada em uma chamada recursiva a cada um dos subtermos, e provê os termos prontos para serem analisados baseado no que se retorna do mapeamento que representa EqSine EqSout.

Como vimos, EqSin e EqSout, segundo a ótica desse trabalho, são essencialmente transfor-

satisfazer às questões pragmáticas e teóricas apresentadas. A linguagem ATL [Bezivin et al., 2003] emerge como a principal candidata para esta tarefa devido às características compatíveis com os paradigmas declarativo e imperativo e seu conjunto poderoso de ferramentas. Contudo, como base da recursão, apesar das técnicas formais escolhidas para representação dos domínios semânticos e dos cuidadosos mapeamentos que serão realizados a partir da sintaxe pelas equações semânticas, no momento não temos uma garantia que este caso de transformação seja estritamente preservadora de semântica.

4.2.4 Instanciação da Atividade iv: Especificar a representação dos modelos semânticos