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.

Abstract<br />

<strong>Software</strong> reuse aims at <strong>in</strong>creas<strong>in</strong>g quality and productivity <strong>in</strong> software development,<br />

avoid<strong>in</strong>g effort duplication and reus<strong>in</strong>g all that is possible from past experiences. Although<br />

it is a simple idea, it is not easy to put reuse <strong>in</strong> practice, especially <strong>in</strong> a systematic and<br />

controlled way. Doma<strong>in</strong> eng<strong>in</strong>eer<strong>in</strong>g and software product l<strong>in</strong>es techniques try to make<br />

this task easier, but there are many other factors that make the reuse adoption difficult.<br />

Among these factors are problems that are <strong>in</strong>herent to software development <strong>in</strong> the way it<br />

is conducted today, based on source code. These problems arise from the grow<strong>in</strong>g demand<br />

for <strong>in</strong>creas<strong>in</strong>gly complex software, negatively affect<strong>in</strong>g the ability to reuse. <strong>Model</strong>-driven<br />

development is an attractive alternative <strong>in</strong> this scenario, leverag<strong>in</strong>g the importance of models<br />

<strong>in</strong> the software life cycle, <strong>in</strong>corporat<strong>in</strong>g them as part of the f<strong>in</strong>al product through model<strong>in</strong>g and<br />

code generation techniques. As a result, part of the software complexity becomes hidden <strong>in</strong>side<br />

the generators, shield<strong>in</strong>g the developers, reduc<strong>in</strong>g errors, <strong>in</strong>creas<strong>in</strong>g the productivity, quality,<br />

<strong>in</strong>teroperability and ma<strong>in</strong>ta<strong>in</strong>ability of the produced assets. This dissertation presents the thesis<br />

that model-driven development can effectively <strong>in</strong>crease and/or improve software reuse, and<br />

that to achieve this goal it must be treated <strong>in</strong> a consistent way <strong>in</strong>side a doma<strong>in</strong> eng<strong>in</strong>eer<strong>in</strong>g<br />

process. Particularly, it must acknowledge that it is not possible to fully automate a doma<strong>in</strong>.<br />

It must identify the multiple subdoma<strong>in</strong>s with different automation degrees and manage their<br />

<strong>in</strong>tegration from the analysis to the implementation. To demonstrate this thesis, a model-driven<br />

software reuse approach is presented, with activities that guide the developer dur<strong>in</strong>g doma<strong>in</strong><br />

analysis, design and implementation. The results of an evaluation <strong>in</strong>volv<strong>in</strong>g three empirical<br />

studies are also presented. The studies were performed <strong>in</strong> both academic and <strong>in</strong>dustrial<br />

environments, and aimed at determ<strong>in</strong><strong>in</strong>g the viability of the approach and the benefits that can<br />

be achieved with the comb<strong>in</strong>ation of model-driven development and software reuse techniques.<br />

The results showed that the approach can br<strong>in</strong>g different benefits to software organizations,<br />

such as software reuse quantity and quality improvements, and complexity reduction <strong>in</strong> product<br />

development and configuration tasks.<br />

Keywords: <strong>Software</strong> <strong>Reuse</strong>, <strong>Model</strong>-<strong>Driven</strong> Development, Doma<strong>in</strong> Eng<strong>in</strong>eer<strong>in</strong>g, <strong>Software</strong><br />

Product L<strong>in</strong>es, Doma<strong>in</strong>-Specific Languages, Generative Programm<strong>in</strong>g.

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

Saved successfully!

Ooh no, something went wrong!