[en] COMPUTATIONAL SUPPORT TO FRAMEWORK
[pt] SUPORTE COMPUTACIONAL À EVOLUÇÃO DE FRAMEWORKS
Descrição
[pt] O desenvolvimento de frameworks é caro, não só pela dificuldade intrínseca relacionada à captura do conhecimento do domínio, mas também por causa da falta de métodos e técnicas apropriados para dar suporte à sua evolução e desenvolvimento iterativo. Neste trabalho de tese é proposta a utilização de duas técnicas complementares para dar suporte a evolução de frameworks: regras de refactoring e regras de extensão. A técnica de refactoring foi desenvolvida para restruturar software de forma a tornar o código mais legível e fácil de ser reutilizado. Regras da extensão são propostas para modificar a estrutura de pontos de variação do framework, possibilitando a adição mais fácil de novas funcionalidades no design. Ambas as técnicas preservam o comportamento observável dos programas. Esta propriedade é verificada formalmente usando-se CCS e técnicas de verificação de modelo. A abordagem proposta é testada com o auxílio de uma ferramenta semiautomática, desenvolvida para dar suporte à aplicação das regras definidas.[en] Framework development is expensive not only because of the intrinsic difficulty related to the elicitation of domain knowledge but also because of the lack of methods and techniques to support its evolution and interactive development. The present thesis proposes the use of two complementary techniques to support framework evolution: refactoring and extension rules. The refactoring technique has been developed to enable software re-structuring in a way to produce more readable and reusable code. Extension rules have been proposed to change the structure of the framework variation points by allowing the addition of new design functionalities. Both techniques preserve the observable behavior of programs. This property is formally verified in this work by using CCS approach to model checking. The proposed approach has been tested by means of a tool specially developed to support the application of the defined rules.