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.

260<br />

Independentemente da abordagem adotada, a pr<strong>in</strong>cipal característica de uma DSL é o<br />

fato de ela ter seu poder expressivo focado em um domínio do problema, o que reduz o<br />

esforço de tradução necessário para construir programas, pois os termos da l<strong>in</strong>guagem estão<br />

próximos dos termos reais conhecidos pelo especialista daquele domínio. Portanto, DSLs<br />

são normalmente pequenas, consist<strong>in</strong>do de um conjunto de abstrações e notações restritos a<br />

um domínio, de forma que especialistas daquele domínio possam trabalhar nessa l<strong>in</strong>guagem<br />

facilmente. Por este motivo, são também conhecidas como micro-l<strong>in</strong>guagens ou l<strong>in</strong>guagens<br />

pequenas, pr<strong>in</strong>cipalmente pelos usuários do Sistema Operacional Unix (FOWLER, 2005).<br />

A utilização de DSLs apresenta vantagens e desvantagens. Dentre as vantagens,<br />

destacam-se (DEURSEN; KLINT; VISSER, 2000):<br />

• DSLs permitem que soluções sejam expressas nos termos e no nível de abstração do<br />

domínio do problema. Consequentemente, especialistas do domínio podem compreender,<br />

validar, modificar, ou mesmo desenvolver seus próprios programas;<br />

• Programas DSLs são concisos, auto-documentados, e podem ser reutilizados com<br />

diferentes propósitos;<br />

• DSLs aumentam a produtividade, confiabilidade, manutenibilidade e portabilidade;<br />

• DSLs <strong>in</strong>corporam conhecimento sobre o domínio, e portanto possibilitam sua<br />

conservação e reutilização;<br />

• DSLs possibilitam validação e otimização no nível do domínio; e<br />

• DSLs facilitam a testabilidade das aplicações.<br />

As desvantagens de se utilizar DSL são (DEURSEN; KLINT; VISSER, 2000):<br />

• O custo para se projetar, implementar e manter uma DSL;<br />

• O custo de tre<strong>in</strong>amento para usuários da DSL;<br />

• A pouca disponibilidade de DSLs;<br />

• A dificuldade de se def<strong>in</strong>ir um escopo adequado para uma DSL;<br />

• A dificuldade de se balancear entre especificidade ao domínio e l<strong>in</strong>guagens de<br />

programação genéricas; e

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

Saved successfully!

Ooh no, something went wrong!