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.

216<br />

e avaliação de uma arquitetura para uma l<strong>in</strong>ha de produtos de software. Um diferencial<br />

do Kobra é que ele apresenta critérios para priorização de cenários, tais como o seu valor<br />

econômico, esforço necessário, entre outros. Nesta tese, a priorização é aberta, ficando a<br />

cargo dos stakeholders def<strong>in</strong>irem aqueles mais importantes a serem utilizados como diretrizes<br />

arquiteturais.<br />

No Kobra, são utilizados modelos UML, pr<strong>in</strong>cipalmente modelos de classes e de atividades,<br />

para especificação dos componentes, em diversos níveis de ref<strong>in</strong>amento. Os autores sugerem a<br />

utilização de diagramas organizados de forma hierárquica, onde cada diagrama descreve um<br />

único componente. A hierarquia def<strong>in</strong>e o relacionamento entre eles, mostrando o domínio<br />

em diversos níveis, desde o contexto de sistema até os componentes <strong>in</strong>dividuais. Regras<br />

de relacionamento entre os diagramas def<strong>in</strong>em de forma não ambígua como a relação entre<br />

os componentes deve ser implementada. Esta abordagem reflete o fato de que o Kobra é<br />

fortemente centrado no conceito de componentes de software, e como resultado a arquitetura e<br />

implementação estão descritos primariamente em termos dos seus componentes.<br />

Diferentemente do Kobra, nesta tese o uso de componentes não é necessariamente<br />

obrigatório como mecanismo de encapsulamento de conhecimento e implementação da<br />

variabilidade. Unidades de implementação de mais baixo nível, como classes, podem existir<br />

tanto no nível arquitetural como de implementação. Desta forma, acredita-se que é possível<br />

oferecer suporte mais flexível e detalhado à variabilidade do domínio, para os casos onde<br />

componentes apresentam nível de granularidade muito alto.<br />

Outra diferença entre esta tese e o método Kobra é que neste último o paradigma do MDD<br />

é somente parcialmente suportado, porque o método só lida com a atividade de modelagem,<br />

não cobr<strong>in</strong>do as atividades de desenvolvimento de transformações e geradores automatizados.<br />

Em contraste, o desenvolvimento de tais artefatos é explicitamente def<strong>in</strong>ido na abordagem desta<br />

tese, por meio de pr<strong>in</strong>cípios, diretrizes e atividades específicas.<br />

Blois (2006) desenvolveu uma abordagem de projeto arquitetural baseada em componentes<br />

no contexto de engenharia de domínio, cujo objetivo é atender aos pr<strong>in</strong>cipais requisitos para<br />

possibilitar um processo adequado para a reutilização de software. Segundo a autora, uma<br />

abordagem para engenharia de domínio baseada em componentes deve obedecer aos segu<strong>in</strong>tes<br />

critérios: (i) <strong>Model</strong>agem de variabilidades e opcionalidades em diferentes níveis de abstração;<br />

(ii) Manutenção da ligação e consistência entre os artefatos do domínio de diferentes níveis<br />

de abstração; (iii) Organização dos artefatos para a composição de elementos arquiteturais;<br />

(iv) Uso de pr<strong>in</strong>cípios de DBC na modelagem de domínio; (v) Necessidade de processos de<br />

engenharia de domínio com apoio ao DBC; (vi) Geração de código fonte na l<strong>in</strong>guagem de

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

Saved successfully!

Ooh no, something went wrong!