quinta-feira, dezembro 13, 2007

4 - O Projeto Merlin - parte 1

Então, para os que estavam esperando...o core do negócio.

4 O Projeto Merlin

Neste capítulo

· O histórico e os objetivos do projeto
· As características e a arquitetura da solução proposta
· O projeto de software da ferramenta

4.1 METAGEN, o início

No ano de 2001, alguns integrantes do Setor de Informática da Universidade de Santa Cruz do Sul (UNISC) estavam empolgados com as possibilidades que surgiam a partir de um projeto interno denominado METAGEN (MRACK e MOREIRA, 2003).

Utilizando uma abordagem bastante simplista, o pequeno protótipo desenvolvido em Visual Basic – que posteriormente fora portado para Delphi/Kylix – era um gerador baseado em modelos capaz de automatizar completamente a construção de IU para sistemas de banco de dados. A partir de um esquema de banco de dados qualquer enriquecido com informações textuais especificamente projetadas para a ferramenta, algoritmos especializados renderizavam em tempo de execução as IU do sistema.

Essa abordagem, embora rudimentar, era extremamente rápida e eficaz, possibilitando a produção de interfaces funcionais tão logo um esquema de banco de dados estivesse disponível. Conforme testes realizados na época, aproximadamente 70% das IU de cadastro de um sistema podiam ser integralmente automatizadas com o uso da solução. Em relação ao tempo de desenvolvimento, os ganhos oscilavam em 40%, uma boa margem para um projeto de segundo plano dentro de um setor lateral em uma Universidade privada (MRACK e MOREIRA).

Entretanto, mesmo com protótipos de sucesso desenvolvidos, a falta de afinidade das atividades do projeto em relação às demandas primárias da equipe e a escassez de subsídios para continuidade das pesquisas acabaram inibindo as forças necessárias para prosseguimento do projeto.

Convictos que as idéias surgidas nesse ínterim eram válidas, parte da equipe decidiu engendrar uma nova caminhada, levando os ensinamentos aprendidos para uma iniciativa pessoal, agora conhecida pelo codinome Merlin (MRACK, MOREIRA e PIMENTA, 2006).

4.1 O projeto MERLIN

O projeto MERLIN, em alusão ao lendário mágico da Idade Média, é um gerador baseado em modelos com ênfase em interfaces CRUD, também conhecidas no jargão dos programadores como telas de cadastro. Essa prerrogativa está em concordância com as bases oriundas do projeto METAGEN, as quais incluem: (i) a geração das telas em tempo de execução; (ii) a configuração norteada pela edição textual assistida dos modelos; (iii) uma base construída em padrões e linguagens de mercado; (iv) o reuso transparente e gerenciado de configurações e (v) a modelagem centrada no Modelo de Domínio da aplicação.

O posicionamento desses ideais é baseado em um histórico profissional ao longo de vários anos de construção de software para banco de dados, o qual evidenciou quatro pontos-chave:

a) que a grande maioria dos programadores não está preparado para utilizar ferramentas complexas ou baseadas em linguagens abstratas, como as propostas pelas MBUIDEs existentes;
b) que as empresas não estão dispostas a pagar os custos para a adoção de uma ferramenta desse tipo em seu ambiente e tão pouco interessadas em mudar seu processo de desenvolvimento em virtude dessa prática;
c) que qualquer tipo de geração de código-fonte, por mais parametrizada que seja, acaba produzindo um legado de difícil manutenção e taxas de roundtrip cada vez menores ao longo da evolução do sistema;
d) que independente do tipo de sistema desenvolvido, o Modelo de Domínio está sempre presente e, devido sua íntima relação com as interfaces CRUD do sistema (ALOIA, 2003) e (PIZANO, SHIROTA e IIZAWA, 1993), ele pode ser considerado o elemento-chave em qualquer processo de desenvolvimento, seja este automatizado ou não.

Este trabalho e, em específico esse capítulo, visa detalhar os princípios do projeto MERLIN e mostrar como ele pode ser utilizada para produzir interfaces de usuário funcionais e robustas, que podem ser utilizadas em sistemas reais sem maiores dificuldades.

As próximas seções descrevem as principais características da solução e mostram a sua arquitetura geral enquadrada dentro de um processo de desenvolvimento genérico.

0 comentários: