sexta-feira, novembro 30, 2007

Capitulo 3 - Geracao de IU Baseada em Modelos - parte 1

Missão dada é missão cumprida, 02!

Em outras palavras, como prometi, aqui está o fragmento das seções iniciais do Captítulo 3 da dissertação sobre o Merlin, que fala da geração de IU baseada em modelos.

3.1 Histórico

A geração de IU baseada em modelos tem suas origens em um tipo de software conhecido como User Interface Management System (UIMS), aparecido no início de 1980. Os UIMSs foram a primeira alternativa em relação à construção manual de interfaces de usuário, possibilitando aos programadores escrever aplicações em uma linguagem de mais alto nível, ao invés de trabalhar diretamente com um Toolkit gráfico. Uma vez construídas essas especificações, era tarefa do gerador traduzí-las no programa final ou, então, serem interpretá-las em tempo de execução, gerando assim a respectiva IU (SCHLUNGBAUM, 1997) e (SZEKELY, 1996).

A maioria dos primeiros UIMSs era focada na especificação do diálogo existente entre o usuário e a IU da aplicação. Através de diagramas de transição de estados, gramáticas especiais ou representações baseadas em eventos de IU, essas ferramentas possibilitavam a especificação das respostas do sistema em relação aos eventos de entrada produzidos pelo usuário. Já no tocante à aparência da IU, geralmente esse detalhamento era feito em linguagens próprias, que eram relacionadas ao restante da aplicação através de chamadas de procedimentos em modo call-back.

Como produtos dessas primeiras UIMSs estavam a geração de menus de sistema, a vinculação de eventos, as chamadas de métodos e a produção de caixas de diálogo para mensagens de usuário (SZEKELY).

3.2 As MBIDEs

Entre os anos de 1980 e 1990, aproximadamente, as linguagens de especificação tornaram-se mais sofisticadas, suportando representações mais ricas e detalhadas, permitindo a construção de interfaces de usuário mais complexas e robustas. Nessa época, diversos conceitos desenvolvidos de forma paralela em vários projetos acabaram sedimentando-se, e uma nova gama de ferramentas aparecera.

Enquadrando-se na categoria das ferramentas model-based (SCHULUNGBAUM, 1996), os chamados Model-Based Interface Development Environments (MBIDEs) são a evolução das UIMSs e, conforme alguns críticos argumentam (SCHLUNGBAUM e THOMAS, 1996), elas representam a gama de ferramentas mais promissora em relação à geração automatizada de interfaces de usuário.

Os MBIDEs utilizam um conceito essencial para alcançar seus objetivos: valer-se de modelos declarativos de alto nível como elementos-chave em um processo de desenvolvimento interativo e incremental. De forma geral, a idéia é que tais modelos possam ser capazes de descrever todos os aspectos relevantes de um sistema, cabendo ao gerador a tarefa de transformá-los no aplicativo final (PUERTA e EISENSTEIN, 1999).

Embora norteada por uma premissa simples, o funcionamento e o uso de uma MBIDE são complexos, e, nesse sentido, três elementos ganham relevância: (i) o conjunto de modelos suportados, (ii) o processo de desenvolvimento amparado pela ferramenta e (iii) a arquitetura de geração da IU (GRIFFITHS et al., 1997).

Se entender as características de cada um desses componentes é uma necessidade para qualquer desenvolvedor que veja adotar uma solução desse porte, a exploração detalhada de cada um desses itens é tarefa de suma importância quando se deseja construir um software desse tipo.

Sendo o objetivo dessa dissertação apresentar uma proposta diferenciada na área das ferramentas MBIDEs, as seções 3.3 a 3.5 apresentam maiores detalhes sobre cada um dos três componentes citados.

quarta-feira, novembro 28, 2007

As coisas que criamos são maiores do que nós

Até parece uma das questões da prova de RH (sempre existem essas provas) que fiz dias atrás, perguntando se o que mais me interessava era o mundo conhecer à mim, ou conhecer as coisas que eu fiz. A minha resposta foi a segunda, óbvio.

Hoje, durante o trabalho, eu estava justamente mexendo no Merlin, trabalhando a questão dos renderizadores e binders. Entre um teste e outro, o colega do meu lado perguntou: tu tá fazendo testes com o Merlin?

Eu disse, sim. Estou implementando e modificando algumas coisas no framework. Ele recidiu: E já tem uma versão estável?

Eu repliquei: tão logo eu consiga acabá-lo :) Ele hesitou um pouco e veio à tona: você ajuda a desenvolver nesse projeto?

Eu olhei pra ele com uma cara daquelas e disse: sim, na verdade eu o criei.

É, as coisas são maiores do que nós
Eu nem conheço o cara direito, e ele tampouco ele deve saber o meu nome; mas o Merlin ele já conhecia. Disse que havia lido a respeito e olhado os demos do projeto. Comentou que achara muito legal e que era diferente de tudo que tinha visto em relação a geradores de telas. Realmente, acreditei nele.

Então, falei bastante do projeto e vendi meu peixe. Coisas como "várias telas para um mesmo POJO" ele nem sabia que existia (pelo menos, ele nunca tivera feito um sistema que precisasse disso). E outros tantos enroscos acabamos conversando. Acho que, tão logo um release esteja pronto, terei ganho um usuário para o framework :)

Conclusões
Bem, se penso que as coisas que crio podem vir a ser maiores do que eu, o Merlin é um exemplo.

Fico extremamente contente de saber que as noites em claro, o sono matutino, os posts, as palestras, os (extenuantes) vídeos-demo, os artigos, as primeiras versões em VB e Delphi e a (longa) dissertação começam a dar seus frutos.

Espero, sinceramente, que um release estável chegue o quanto antes e que, enfim, as telas de cadastro não sejam mais dores de cabeças para nós programadores.

Dissertação em blog

Olha onde fomos parar.

Estou tentanto escrever minha dissertação sobre o Merlin, e toda vez que páro na frente do Word com aquelas letras Times New na minha frente, eu fico com bolhas vermelhas na pele. Estático, não consigo prosseguir.

Porém, descem xícaras e xícaras de café enquanto escrevo nos meus blogs. A coisa flui que é uma beleza. Então pensei, vamos juntar o útil ao agradável (que clichê isso). Mas é verdade.

Vou colocar posts aqui no mesmo estilo literário da dissertação, corrigindo-os e colocando referências como se fosse o bom (?) e velho Word e suas famigeradas fontes serifadas...

Vou começar pelo Capítulo 3, que fala da Geração Baseada em Modelos. O próximo post será isso então.

quinta-feira, novembro 22, 2007

Palestras e Eventos (aprovados e negados)

Esse post condensa três notícias.

Começamos pela menos feliz. Só para constar, o artigo que enviei para o 1 Evento de Arquitetura no Brasil não foi aceito. Os motivos que os referees (caras que avaliam os trabalhos) apontaram foram relativos principalmente ao não enquadramento do artigo no evento. Eu acho estranho isso, pois o texto era totalmente focado de arquitetura de software. Porém, quando eu li os trabalhos aceitos eu saquei tudo: pra variar, eles eram "filosóficos", para usar uma palavra menos grave. É aquela clássica e confortável posição de acadêmicos e pessoas fora da área técnica. Eu pensava que seria algo como os eventos patrocinados pela Sun, RedHat e outros players...mas não, era bem coisa de academia mesmo. Tudo bem, azar (o deles).

Depois disso, uma boa: outra palestra do Merlin foi aceita, agora no TcheLinux. Nem deu tempo pra eu avisar que enviei uma proposta para lá, mas o importante é que estaremos presentas no dia 01 de Dezembro ali na UFRGS Campus falando sobre o já rumuroso gerador de telas de cadastro da 3Layer. Pena é que a palestra ficou para as 16:30h, lá no finzinho do evento. Digo isso porque sei que a maioria do pessoal não fica até o final desses encontros. Mas tudo bem, o importante é que temos nosso espaço.

Finalmente, outra tentatiada, agora com o Magoo. Não vou falar aqui, isso porque o Magoo tem seu próprio blog e quero me policiar para tratar nessa tira somente coisas sobre as telas de cadastro e assuntos do gênero. Mas, enfim, estamos aguardando mais esse resultado.

Fico por aqui, e volto para escrita da minha dissertação que, pasmem, está com 84 páginas e com previsão de 150! Ninguém merece isso. Mas tudo bem, como é para o Merlin, eu aguento :)

quinta-feira, novembro 08, 2007

Blog do Merlin criado com sucesso

Nos últimos dias, estou meio parado mesmo. O problema (ou solução) é que estou focado para terminar minha dissertação, sobre o Merlin, óbvio.

Assim, não tenho tempo para colocar meus posts e, embora eu tenha um monte deles pré-concebidos, realmente estou triste porque, as palavras seriam bem melhores se a coisa fosse feita com "peixe fresco".

Porém, esse post é importante, atuando como um aviso: o blog do merlin foi criado.

Aqui, adoro falar de telas de cadastro (mesmo que eu as deteste) e como o Merlin é um ser à parte, então nada melhor que ele ter o espaço dele.

Criei o blog pensando no futuro do projeto, onde, com certeza, o Telas de Cadastro ficaria meio fora de foco.

Então, dada a notícia, volto ao texto e as malditas convenções (patéticas) de nomenclatura da ABNT.