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.
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