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.

86<br />

pode ser encapsulada dentro de um único componente, necessitando ser realizada durante o<br />

desenvolvimento da aplicação.<br />

É neste ponto que as técnicas do MDD podem ser utilizadas. Ao <strong>in</strong>vés de deixar que<br />

estas tarefas sejam executadas pelo desenvolvedor da aplicação, o conhecimento sobre como<br />

implementar estas restrições é encapsulado em transformações MDD e l<strong>in</strong>guagens específicas<br />

de domínio (LEDECZI et al., 2001). Em um cenário ideal, tudo o que um desenvolvedor<br />

precisa fazer é escolher quais features estarão presentes, especificar alguns parâmetros, e uma<br />

implementação é automaticamente gerada.<br />

Obviamente, este cenário a<strong>in</strong>da está longe da realidade, já que nem todo código pode ser<br />

completamente gerado. Porém, normalmente há partes do domínio onde isto não somente<br />

é possível, mas pode levar a enormes ganhos de produtividade, aumentando o nível de<br />

reutilização. Porém, como identificar que partes do domínio podem ser automatizadas?<br />

O argumento desta tese é que esta atividade deve ser parte da análise de domínio. Enquanto<br />

analisando as features do domínio, devem existir maneiras para identificar o potencial para<br />

automação em alguns subdomínios, numa preparação para o desenvolvimento de l<strong>in</strong>guagens e<br />

transformações, que irá acontecer nas fases segu<strong>in</strong>tes (LUCRÉDIO et al., 2008).<br />

5.1 Objetivos da análise de domínio<br />

A fase de análise de domínio faz parte da engenharia de domínio, e é responsável por<br />

coletar <strong>in</strong>formações do domínio para as fases segu<strong>in</strong>tes de projeto e implementação. Nesta fase,<br />

os segu<strong>in</strong>tes objetivos são almejados:<br />

• Coletar, registrar e documentar todas as <strong>in</strong>formações disponíveis sobre o domínio:<br />

estas <strong>in</strong>formações são coletadas de diversas fontes, <strong>in</strong>clu<strong>in</strong>do o conhecimento de<br />

especialistas e desenvolvedores experientes com o domínio, documentações e padrões<br />

sobre o domínio, e também aplicações pertencentes ao domínio. Neste último caso,<br />

utiliza-se toda <strong>in</strong>formação disponível, desde os próprios executáveis até manuais e<br />

código-fonte, caso possível;<br />

• Def<strong>in</strong>ir o escopo do domínio a ser desenvolvido: um domínio pode alcançar uma vasta<br />

gama de aplicações, cada uma com foco específico em determ<strong>in</strong>ada parte. Além disso, a<br />

própria def<strong>in</strong>ição do que está dentro ou fora de um domínio pode variar de acordo com<br />

a visão dos especialistas, desenvolvedores, ou demais envolvidos, pois cada um destes<br />

stakeholders possui seus próprios <strong>in</strong>teresses dist<strong>in</strong>tos. Dessa forma, é necessário def<strong>in</strong>ir

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

Saved successfully!

Ooh no, something went wrong!