[pt] BABEL: CONSTRUINDO APLICAÇÕES POR EVOLUÇÃO - VINICIUS VENDRAMINI MALUCELLI (2009)
[pt] Sistemas de software normalmente são descritos por sua arquitetura. Esta descrição fornece uma visão abstrata, demonstrando como o sistema é composto por módulos e interações entre estes módulos. Usando-se a arquitetura como uma especificação executável do sistema, consegue-se maior compromisso entre os requisitos do sistema e sua implementação. Tal compromisso simplifica o desenvolvimento e manutenção de sistemas complexos. Este trabalho define conceitos úteis para a construção, execução e gerenciamento de aplicações distribuídas, usando especificações arquiteturais. A metodologia apresentada distingue a construção de módulos através de programação, da efetiva construção da aplicação, através de configuração (ou especificação da arquitetura). Desta forma, pode-se adotar soluções específicas (e.g. linguagens e metodologias) para módulos particulares, mantendo-se o encapsulamento necessário para seu uso de forma transparente. Para validar os conceitos e permitir sua aplicação em um ambiente de execução real, foi criada uma Linguagem de Configuração chamada BABEL. No decorrer da dissertação, são apresentados os conceitos envolvidos e BABEL. Com o suporte do ambiente RIO, BABEL oferece simplicidade, transparência e flexibilidade para a construção de aplicações distribuídas complexas, possuindo conceitos básicos que viabilizam a elaboração de mecanismos avançados como contratos, herança e polimorfismo. Adicionalmente, são demonstradas experiências decorrentes da implementação de um Interpretador e um Servidor de Nomes para a linguagem. Finalmente, os conhecimentos obtidos com esta pesquisa são apresentados, sugerindo-se trabalhos futuros para continuidade do projeto BABEL.