Especificação do Modelo da Aplicação <A NAME=especmodapl> </A>



next up previous contents
Next: Arquitectura do GAMA-X Up: O Sistema GAMA-X Previous: Especificação do Modelo

Especificação do Modelo da Aplicação  

A informação necessária para especificar o Modelo da Aplicação consiste na definição dos tipos da aplicação em termos de modelos e a indicação dos respectivos invariantes; na associação das variáveis da aplicação referidas nos Guiões a operações que devolvam o seu valor; dos identificadores das operações também utilizadas nos Guiões às operações da componente computacional.

Para especificar o Modelo da Aplicação do Dicionário poderíamos escrever:

DefType
  Pal = STR;
  Sig = STR
EndType
DefOp
  INIT = INIT;
  INSPAL = INSPAL;
  REMPAL = REMPAL;
  CONSPAL = CONSPAL;
  EMPTYDIC = EMPTYDIC;
  EXISTPAL = EXISTPAL
EndOp

Neste caso, como não é acedida nenhuma variável da aplicação, essa componente não aparece na especificação, será da forma:

DefVar
  nomevar = nomeop
EndVar

Não é, também, definido nenhum invariante; tal seria feito conforme o esquema-tipo:

DefType
  nome = def WITH invariante 
EndType

A notação da associação dos identificadores de operações utilizados no Controlador de Diálogo a operações da camada computacional pode parecer um pouco estranha e inconsequente. Para a perceber é necessário ter em atenção que do lado direito estão strings que são identificadores e do lado esquerdo estão os nomes das operações reais, que, dependendo da linguagem em que a aplicação está implementada, terão diferentes interpretações. Assim, por exemplo, em XMetoo serão os símbolos referentes às operações, em C serão apontadores para essas operações.

Toda esta informação poderá ser obtida da especificação CAMILA, com a ressalva de que em CAMILA os invariantes não são explicitamente associados aos tipos respectivos. Se esta característica não vier a ser incluída em versões futuras da linguagem, ter-se-á que encontrar um esquema alternativo, fazendo, por exemplo, uma associação por nomegif.



Jose Franscisco Creissac Campos
Wed Jan 31 20:30:35 MET 1996