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.

programação empregada por uma tecnologia de DBC; e (vii) <strong>Model</strong>agem e reutilização de<br />

artefatos e modelos através de ferramental apropriado. Segundo essa pesquisa, os pr<strong>in</strong>cipais<br />

métodos de ED e DBC não atendem a todos estes requisitos.<br />

Assim como o Kobra, o trabalho de Blois (2006) é fortemente baseado no conceito de<br />

componentes de software, ou seja, visa produzir artefatos reutilizáveis que, segundo a def<strong>in</strong>ição<br />

de Samet<strong>in</strong>ger (1997) utilizada, são “autocontidos, claramente identificáveis, que descrevem<br />

ou realizam uma função específica e têm <strong>in</strong>terfaces claras, documentação apropriada e um<br />

grau de reutilização def<strong>in</strong>ido”. Como resultado deste foco, a implementação obtida com a<br />

abordagem está também fortemente associada a uma tecnologia de componentes, como EJB<br />

(Enterprise JavaBeans), por exemplo. A autora propõe, além de um processo de ED com foco<br />

em DBC, uma notação similar à UML para representação da variabilidade no domínio, que<br />

vai além da mais comumente utilizada notação de features, podendo também ser utilizada em<br />

outros modelos, como modelos de classes, casos de uso e componentes. Também estabelece<br />

heurísticas de apoio à atividade de mapeamento entre as características do domínio e os demais<br />

artefatos de análise e projeto, além de critérios para agrupamento de componentes, visando a<br />

geração de elementos arquiteturais. O processo é apoiado por ferramentas que auxiliam sua<br />

execução e aplicam técnicas da MDA para geração automática de código.<br />

A abordagem desta tese tem os mesmos objetivos de reutilização que o trabalho de Blois<br />

(2006), porém não se restr<strong>in</strong>ge a uma tecnologia de componentes. Aqui o foco é reconhecer<br />

uma maior diversidade de tecnologias de implementação e subdomínios, buscando oferecer<br />

suporte do MDD para produzir uma implementação que aproveite os diferentes potenciais de<br />

automação de cada subdomínio. Por estar direcionado a uma plataforma de implementação mais<br />

homogênea, o trabalho de Blois (2006) possui a vantagem de def<strong>in</strong>ir de forma mais sistemática<br />

suas atividades, pr<strong>in</strong>cipalmente com relação ao projeto da arquitetura de referência e a geração<br />

de código. Já nesta tese, as atividades são mais vagas, exig<strong>in</strong>do maior trabalho de adaptação<br />

por parte do engenheiro de software. Por exemplo, não há heurísticas para o mapeamento entre<br />

artefatos de análise e projeto e nem para auxiliar na identificação dos elementos arquiteturais.<br />

Além disso, são necessárias diversas atividades exclusivamente dedicadas ao projeto de DSLs,<br />

transformações e geradores, pois aqui a plataforma de implementação pode ser qualquer uma,<br />

e não necessariamente uma plataforma de componentes. Em contrapartida, a abordagem<br />

desta tese possui maior potencial de automação, com uma série de atividades dedicadas<br />

exclusivamente ao gerenciamento dessa diversidade dentro de um domínio.<br />

Na realidade, ambas as abordagens são de certa forma complementares. Uma vez<br />

identificados os subdomínios, pode-se analisar onde o DBC deve ser utilizado, e então aplicar<br />

as técnicas propostas por Blois (2006) para mapear as suas características e projetar esta parte<br />

217

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

Saved successfully!

Ooh no, something went wrong!