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