Decomposição e reúso de componentes baseados em metadados para interfaces gráficas do usuário em aplicações corporativas web. - MIRANDA, Rodrigo de Almeida Vilar de. (2017)
Metadados podem ser manipulados em aplicações corporativas a fim de reduzir o acoplamento entre a camada da interface gráfica do usuário e a camada do modelo do domínio. Dessa forma, os componentes da interface gráfica são substituídos por meta componentes, que podem ser facilmente reutilizados em domínios diferentes, aumentando a produtividade no desenvolvimento desse tipo de aplicação. Todavia, nas abordagens baseadas em metadados existentes, os meta componentes de interface são complexos, entrelaçam responsabilidades em um mesmo artefato e possuem baixa manutenibilidade. Neste trabalho propõe-se uma abordagem que organiza os meta componentes através de artefatos pequenos e com responsabilidades bem definidas, com a finalidade de aumentar o potencial de reúso e facilitar a sua customização. A abordagem proposta foi desenvolvida conceitualmente por meio de uma linguagem de padrões, contendo sete padrões de projeto e dois padrões arquiteturais que foram catalogados a partir de abordagens existentes, abstraindo as boas práticas e propondo correções para as deficiências. Concretamente a abordagem foi implementada em dois arcabouços de código aberto, Geneguis e Angular M, para o desenvolvimento de interface gráfica em aplicações corporativas. Angular M teve a produtividade comparada com Ruby on Rails em um experimento com 15 desenvolvedores de software que atuaram sobre 12 cenários de customização de interface gráfica. Após uma análise da significância estatística dos resultados, foi observado que: nos seis cenários propostos onde havia reúso de componentes, Angular M foi mais produtivo em todos; e nos seis cenários onde não havia reúso de componentes, Angular M foi mais produtivo em dois, Ruby on Rails foi mais produtivo em um e não houve diferença significante nos outros três cenários. O ganho médio de produtividade com Angular M, em relação a Ruby on Rails, foi 20% nos cenários gerais e 64% ao considerar apenas os cenários com reúso de componentes.