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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

7 Implementação de domínio orientada<br />

a modelos<br />

A análise de domínio e projeto arquitetural, realizados em fase anterior, lidam com questões<br />

como qual a melhor maneira de dividir o domínio em sub-sistemas ou como os módulos devem<br />

<strong>in</strong>teragir entre si de forma a maximizar o desempenho na execução de determ<strong>in</strong>ada tarefa<br />

crítica. Porém, questões de mais baixo nível a<strong>in</strong>da permanecem não-resolvidas, tais como: qual<br />

tecnologia de comunicação deve ser utilizada em um domínio distribuído? Como será o acesso<br />

à base de dados? Como a <strong>in</strong>ternacionalização será alcançada? Qual algoritmo de busca deve<br />

ser utilizado? Estas são o foco da etapa de implementação do domínio, que nesta abordagem<br />

também engloba o ref<strong>in</strong>amento do projeto de alto nível em um projeto detalhado.<br />

Entre as questões a serem respondidas, destaca-se o suporte à variabilidade. Como os<br />

componentes do domínio irão dar suporte aos diferentes pontos de variação? Esta questão<br />

começou a ser respondida durante o projeto, e agora é necessário tomar as decisões f<strong>in</strong>ais quanto<br />

ao projeto detalhado. Além disso, sendo esta uma abordagem orientada a modelos, é necessário<br />

também implementar os artefatos específicos do MDD. Assim, a implementação deve também<br />

produzir l<strong>in</strong>guagens específicas de domínio, transformações e geradores de código.<br />

Nesta tese, entende-se por gerador de código qualquer artefato capaz de produzir<br />

automaticamente, com base em uma especificação de entrada, um trecho de código como saída.<br />

Este trecho de código pode ser qualquer tipo de elemento textual, mas normalmente corresponde<br />

a um programa escrito em uma l<strong>in</strong>guagem de programação. Segundo esta def<strong>in</strong>ição, um<br />

processador automático de templates, como o JET, é um gerador de código. Mas um arquivo<br />

contendo um template também é considerado um gerador de código, uma vez que este possui<br />

<strong>in</strong>struções específicas que <strong>in</strong>fluenciam diretamente no código gerado.<br />

Enquanto as fases de análise (ARANGO, 1999; PRIETO-DÍAZ, 1990; KANG et al., 1990;<br />

FRAKES; PRIETO-DÍAZ; FOX, 1998; BAYER; MUTHIG; WIDEN, 1999; KIM; YANG; PARK, 2003;<br />

MEI; ZHANG; GU, 2003; MOON; YEOM, 2005; ALMEIDA et al., 2006, 2005) e projeto<br />

(ALMEIDA et al., 2005; BOSCH, 2000; BASS; CLEMENTS; KAZMAN, 2003; TRACZ, 1995) de<br />

143

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

Saved successfully!

Ooh no, something went wrong!