• Sonuç bulunamadı

Na abordagem FOMDA, a organização de transformações na terceira etapa serve para compor transformações e também para executá-las. A composição de transformações pode ser realizada das seguintes formas: adicionando dependências de um parâmetro de um transformador pelo resultado/retorno da execução de outro transformador; adicionando dependências de um parâmetro de um transformador por uma variável compartilhada por outro; adicionando cláusulas nos transformadores, que executam transformações relacionadas com as cláusulas. A execução ocorre somente se as características que as cláusulas testam estão selecionadas no PDM. Além disso, o mapeamento de um elemento de um modelo de sistema para parâmetros de transformadores (disponibilizados em uma das características do PDM) e a execução destes por parte do projetista de aplicação, fazem parte da organização de transformações de terceiro nível.

A ferramenta FOMDA Toolkit oferece recursos para a terceira etapa de organização de transformações (apresentadas na Figura 31). A Figura 29(b) destaca no PDM a característica MVC. Para efetuar as transformações internas em MVC, é necessário selecionar, em um pop-up que aparece na tela quando um clique com o botão direito do mouse é feito sobre uma característica do modelo, a opção “Abrir Visão Interna da Característica”. Isto determina a abertura da tela de “visão interna de uma característica do PDM” (apresentada na Figura 31) pelo protótipo FOMDA.

O protótipo FOMDA Toolkit não oferece recursos para a definição dos parâmetros de entrada e de saída das características. No entanto, o mesmo possibilita a abertura de um modelo de sistema e a manipulação dos elementos deste último. Na Figura 31 (a) é possível visualizar uma aba denominada “Input 1”. Esta aba apresenta um modelo de um sistema estruturado em árvore. Input 1 é um parâmetro da característica MVC, que é representado como uma aba na tela de visão interna desta característica.

Figura 31 - Tela do Protótipo para Terceira Etapa da FOMDA

É possível adicionar mais de um parâmetro nas características do PDM. Para isto, é necessário abrir no protótipo a tela de visão interna das características. Para adicionar um parâmetro de entrada em MVC, por exemplo, é necessário selecionar (na interface mostrada na Figura 31) o menu “File” e neste a opção “Abrir Modelo Fonte”. Para adicionar um modelo de um sistema em um parâmetro de uma característica, este modelo precisa ser um documento no formato XMI ou XMILight (UMT 2006). Em breve, o protótipo deve ser

estendido para a especificação dos parâmetros de entrada e de saída das características do PDM.

A Figura 31 (b) apresenta os descritores de transformações da característica MVC. Cada descritor de transformação é representado como um botão na tela, que representa a visão interna da característica que o contém. Estes botões servem para adicionar no Diagrama de Composição de Transformações DCT (Figura 31(c)) um novo transformador idêntico ao transformador representado pelo botão. Quando o mouse é posicionado sobre estes botões, as informações do nome e a descrição do transformador são mostradas. Os transformadores podem ser adicionados no DCT, com o objetivo de compor novos transformadores e de utilizar um transformador para executar uma transformação.

A Figura 31 (d) identifica recursos oferecidos para a execução de transformações. Um parâmetro de um transformador pode ser selecionado no DCT. Os elementos de um modelo, que estão em uma das entradas da característica (identificada pela Figura 31), podem ser selecionados e arrastados para o Diagrama de Composição e Transformação. Isto determina a adição deste elemento no parâmetro de transformação selecionado no DCT. O transformador é executado quando o projetista de aplicação seleciona a opção “execute” no pop-up menu. O

pop-up menu é mostrado quando um clique com o botão direito do mouse é feito sobre um

descritor de transformação (este último deve estar representado no DCT).

A Figura 32 apresenta um exemplo de composição de transformações, utilizando o DCT do protótipo. Este exemplo não tem relação com os exemplos anteriores, porque ele tem o objetivo de mostrar o que pode ser realizado para compor transformações utilizando o protótipo FOMDA Toolkit. Neste exemplo, o transformador identificado como Schedulable

Transformer contém um parâmetro de transformação de nome object e uma variável

compartilhada identificada com o mesmo nome. Além disso, o mesmo transformador contém duas cláusulas “If”. Uma destas cláusulas testa se a característica “RTSJ” está selecionada no PDM e a outra testa se a característica “FemtoAPI” está selecionada no PDM. A primeira delas determina a execução do transformador identificado como Schedulable RTSJ

Transformer e a segunda determina a execução do Shedulable FemtoAPI Transformer.

Ambos os transformadores dependem do valor contido na variável compartilhada por

Se o transformador Schedulable Transformer for executado, então a sua variável compartilhada recebe um elemento do modelo do sistema que é adicionado por este transformador. No algoritmo de transformação deste transformador, o elemento que é adicionado em sua variável compartilhada (denominada object) é o mesmo objeto recebido como parâmetro pelo transformador. Para compor transformações, é necessário ter conhecimento do algoritmo do transformador. A descrição deste algoritmo pode ser informada no descritor de transformação (no campo Description).

Figura 32 - Exemplo de Composição de uma Transformação na FOMDA Toolkit

Após a execução do transformador Schedulable Transformer, as cláusulas relacionadas a ele são testadas e os transformadores relacionados com cada uma destas cláusulas são executados. Isto ocorre se, e somente se, as características que estas cláusulas avaliam estiverem selecionadas no PDM. Como o valor do parâmetro dos transformadores

Schedulable RTSJ Transformer e Schedulable FemtoAPI Transformer depende do valor

armazenado pela variável compartilhada de Schedulable Transformer, a execução destes transformadores precisa, primeiro, recuperar o valor contido na variável compartilhada de

Schedulable Transformer. Este valor deve ser adicionado no parâmetro de transformação dos

tratado pela FOMDA Toolkit, que organiza as “pendências” de um transformador antes de executar o seu algoritmo.

Benzer Belgeler