Resumo da tese de doutoramento (Português)

O desenvolvimento de interfaces com o utilizador (IU), no âmbito de aplicações interactivas intensivamente baseadas em dados, é uma tarefa repetitiva e grande consumidora de tempo. No entanto, poucos projectos de investigação têm como objectivo a sua geração automática. As abordagens existentes para geração automática de interfaces com o utilizador, ou exigem a construção completa de um modelo da IU, o que, em aplicações intensivamente baseadas em dados, corresponde a transportar a repetitividade da construção da IU para o nível da modelação, ou exigem um conjunto complexo de sub-modelos poluídos com informação concreta da IU.

Esta situação coloca de lado uma utilização mais generalizada de tais abordagens. Algumas soluções, encontradas na literatura, tentam simplificar os sub-modelos exigidos através da geração de outros sub-modelos a partir dos primeiros, mas essas soluções revelaram ser pouco flexíveis tornando complicado o tratamento de problemas menos padronizados.

Baseado na identificação e comparação das ferramentas e abordagens do estado da arte, para geração automática de IU, este trabalho de investigação aborda a geração automática de aplicações interactivas completamente funcionais intensamente baseadas em dados, incluindo a sua IU, seguindo uma abordagem guiada por modelos.

A abordagem defendida começa com a construção de modelos do sistema em desenvolvimento, não da IU, independentes da plataforma, nomeadamente modelo de domínio e modelo de casos de uso, e gera um modelo da IU, o qual é usado juntamente com o modelo de domínio para gerar o código final da aplicação.

É também proposto um processo iterativo, de desenvolvimento de software, alinhado com a arquitectura guiada por modelos (MDA), compreendendo a validação de modelos usando um protótipo funcional, no final de cada iteração.

A abordagem apresentada deve ser contextualizada numa perspectiva de desenvolvimento de software evolucionária, começando com um protótipo que permite a validação e execução de modelos executáveis, do sistema, numa fase inicial do processo de desenvolvimento de software, e tornando possível a sua utilização como base para futuros desenvolvimentos, através do refinamento dos modelos anteriores, ou do seu complemento com novos sub-modelos.

É usada a linguagem OCL (Object Constraint Language) e uma linguagem de acções para adicionar rigor e riqueza semântica ao modelo do sistema em desenvolvimento, permitindo a geração de algumas funcionalidades derivadas dos corpos das operações, invariantes e pré-condições definidas no modelo, contribuindo para a melhoria da usabilidade e aceitabilidade da IU.

São apresentados dois casos de estudo que validam a abordagem proposta neste trabalho de investigação.