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