A Model-Driven Software Reuse Approach (in portuguese)
A Model-Driven Software Reuse Approach (in portuguese)
A Model-Driven Software Reuse Approach (in portuguese)
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