15.04.2013 Views

A Model-Driven Software Reuse Approach (in portuguese)

A Model-Driven Software Reuse Approach (in portuguese)

A Model-Driven Software Reuse Approach (in portuguese)

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

de AST ou Abstract Syntax Tree), que armazena as palavras do vocabulário da l<strong>in</strong>guagem e<br />

seu agrupamento válido em forma de sentenças. Em l<strong>in</strong>guagens de modelagem, corresponde<br />

ao metamodelo que def<strong>in</strong>e a estrutura dos modelos que podem ser criados (GUIZZARDI; PIRES;<br />

SINDEREN, 2002). Uma vez que este metamodelo é uma especificação de uma conceitualização<br />

do domínio, pode ser considerado uma ontologia (KURTEV et al., 2006).<br />

A s<strong>in</strong>taxe concreta provê um sistema para representar os conceitos do domínio de forma<br />

concreta. Consiste de símbolos, que podem ser caracteres organizados em palavras segundo<br />

uma gramática bem def<strong>in</strong>ida (l<strong>in</strong>guagem textual), ou ícones gráficos com características visuais<br />

que representam diferentes atributos, como cor, posição, tamanho e forma (l<strong>in</strong>guagem visual)<br />

(GUIZZARDI; PIRES; SINDEREN, 2002). Trata-se de uma representação superficial, que pode ser<br />

diferente da representação <strong>in</strong>terna que é obtida com a s<strong>in</strong>taxe abstrata. De fato, uma DSL pode<br />

possuir múltiplas s<strong>in</strong>taxes concretas (KLEPPE, 2007).<br />

A semântica def<strong>in</strong>e o significado dos elementos da s<strong>in</strong>taxe abstrata, e pode variar de acordo<br />

com o objetivo desejado. Por exemplo, se o objetivo da l<strong>in</strong>guagem é facilitar a comunicação<br />

<strong>in</strong>terpessoal, a semântica def<strong>in</strong>e o que cada frase ou modelo significa para um leitor humano.<br />

Neste sentido, pode-se considerar a semântica como sendo um elemento passível de diversas<br />

<strong>in</strong>terpretações, uma vez que qualquer pessoa pode atribuir um significado a determ<strong>in</strong>ada palavra<br />

ou ícone. No entanto, no contexto do MDD, a semântica é def<strong>in</strong>ida em forma de ações a serem<br />

executadas por um <strong>in</strong>terpretador automático. As abordagens para o tratamento da semântica no<br />

MDD podem se enquadrar em ao menos quatro categorias (KLEPPE, 2007):<br />

1. Denotativa: descrições matemáticas que representam o significado do programa ou<br />

modelo;<br />

2. Operacional: também conhecida como execução canônica (CLEENEWERCK; KURTEV,<br />

2007), consiste na <strong>in</strong>terpretação do programa ou modelo como uma sequência de passos<br />

a serem executados. Normalmente resulta em uma máqu<strong>in</strong>a de estados;<br />

3. Tradutiva: consiste na tradução do programa ou modelo em outra l<strong>in</strong>guagem conhecida;<br />

e<br />

4. Pragmática: uma ferramenta, normalmente conhecida como implementação de<br />

referência, executa o programa ou modelo.<br />

A abordagem tradutiva é uma das mais <strong>in</strong>dicadas (KLEPPE, 2007), e também uma das mais<br />

empregadas. Por exemplo, em um gerenciador de <strong>in</strong>terfaces visuais, como aqueles presentes em<br />

IDEs como NetBeans ou Visual Studio, as <strong>in</strong>terfaces são especificadas de forma visual, em uma<br />

61

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!