GeneXus é uma ferramenta para desenvolvimento rápido de aplicações que automatiza tarefas como a criação da base de dados. Sua metodologia envolve descrever os objetos da realidade para que o GeneXus gere automaticamente a base de dados e programas, permitindo desenvolvimento incremental e rápidos testes com dados reais.
2. Nossa tarefa como profissionais de informática consiste em desenvolver e manter aplicações para
apoiar ao usuário na sua atividade. Para realizar esta tarefa existem diferentes ferramentas e
metodologias.
GeneXus é uma ferramenta para o desenvolvimento de aplicações sobre bases de dados. Seu
objetivo é permitir a implantação de aplicações no menor tempo e com a melhor qualidade possível.
Em linhas gerais, o desenvolvimento de uma aplicação implica tarefas de análise, desenho e
implementação. A maneira do GeneXus alcançar o objetivo anterior é liberar as pessoas das tarefas
automatizáveis (como o desenho da base de dados), permitindo assim se concentrar nas tarefas
realmente difíceis e não automatizáveis (como compreender os problemas do usuário).
GeneXus emprega uma metodologia que tem um enfoque muito diferente das metodologias mais
utilizadas. Aprender a utilizar GeneXus adequadamente vai além de conhecer uma nova linguagem: o
mais importante é aprender sua metodologia.
3. O primeiro problema enfrentado no desenvolvimento de aplicações é a obtenção do conhecimento da
realidade.
Ninguém dentro da empresa conhece os requerimentos e o alcance da aplicação para desenvolver
toda a aplicação. Então, como fazer para obter o conhecimento da realidade de uma forma
suficientemente objetiva e detalhada ao mesmo tempo, que nos permita construir um modelo
corporativo?
Este conhecimento se encontra em cada uma das visões dos usuários. Cada usuário conhece bem
os objetos que trabalha cotidianamente, a informação que ele gerencia, as regras que devem ser
seguidas, os cálculos que devem ser realizados.
O ponto de partida da metodologia GeneXus é: descrever as visões dos usuários para modelar o
sistema; e a partir da definição da realidade do modelo, o GeneXus constrói o suporte
computacional - base de dados e programas - de forma totalmente automática.
4. Utilizando GeneXus, a tarefa básica do analista é a descrição da realidade. Somente o homem pode
desenvolver esta tarefa, já que só ele pode entender o problema do usuário.
O analista GeneXus trabalha em alto nível, em vez de realizar tarefas de baixo nível como: desenhar
arquivos, normalizar, desenhar programas, programar, buscar e eliminar os erros dos programas.
Para começar o desenvolvimento de uma aplicação com GeneXus, primeiramente deve ser criado
um novo projeto ou base de conhecimento.
Uma vez criada uma nova base de conhecimento (em inglês é: knowledge base; abreviado: KB), o
seguinte passo é descrever as visões dos usuários. Para isso, os objetos da realidade (prestando
atenção aos substantivos que os usuários mencionam em suas descrições, como por exemplo:
clientes, produtos, faturas) e passar a defini-los mediante objetos GeneXus.
Com a definição destes objetos, o GeneXus pode extrair o conhecimento, desenhar a base de dados
e os programas da aplicação em forma totalmente automática.
5. Utilizando GeneXus, a tarefa básica do analista é a descrição da realidade. Somente o homem pode
desenvolver esta tarefa, já que só ele pode entender o problema do usuário.
O analista GeneXus trabalha em alto nível, em vez de realizar tarefas de baixo nível como: desenhar
arquivos, normalizar, desenhar programas, programar, buscar e eliminar os erros dos programas.
Para começar o desenvolvimento de uma aplicação com GeneXus, primeiramente deve ser criado
um novo projeto ou base de conhecimento.
Uma vez criada uma nova base de conhecimento (em inglês é: knowledge base; abreviado: KB), o
passo seguinte é descrever as visões dos usuários. Para isso, os objetos da realidade (prestando
atenção aos substantivos que os usuários mencionam em suas descrições, como por exemplo:
clientes, produtos, faturas) e passar a defini-los mediante objetos GeneXus.
Com a definição destes objetos, o GeneXus pode extrair o conhecimento, desenhar a base de dados
e os programas da aplicação em forma totalmente automática.
6. A partir dos objetos definidos na base de conhecimento, GeneXus gera automaticamente
tanto os programas de criação/reorganização da base de dados como os programas da
aplicação.
Depois, se um objeto da realidade muda, são identificadas as novas ou diferentes
características acerca do mesmo, ou encontrando objetos ainda não modelados. O analista
GeneXus deve refletir sobre as mudanças correspondentes nos objetos GeneXus e a
ferramenta se encarrega automaticamente de realizar as modificações necessárias tanto na
base de dados como nos programas associados.
A metodologia GeneXus é uma metodologia incremental, pois, parte da base da construção
de um sistema mediante realizações sucessivas.
Em cada momento, o analista GeneXus define o conhecimento que tem e assim que passa a
ter mais conhecimento (ou simplesmente um conhecimento diferente), reflete na base de
conhecimento, e o GeneXus se ocupa de fazer automaticamente todas as adaptações na
base de dados e nos programas.
Se GeneXus não for capaz de realizar automaticamente as modificações na base de dados e
nos programas, conforme sejam realizadas as mudanças que assim o requerem, o
desenvolvimento incremental seria inviável
7. Uma vez criada uma nova base de conhecimento, o passo seguinte consiste em começar a
descrever os objetos da realidade mediante objetos GeneXus.
Os objetos GeneXus mais importantes são:
Transações
Permite definir os objetos da realidade que o usuário manipula (ex: clientes, produtos,
fornecedores, faturas, etc.). São os primeiros objetos definidos, já que através das transações,
GeneXus infere o desenho da base de dados.
Além de ter por objetivo a definição da realidade e a conseqüente criação da base de dados
normalizada, cada transação tem associada uma janela para ambiente windows e outro para
ambiente Web, para permitir ao usuário inserir, eliminar e modificar de forma interativa a base de
dados. O analista GeneXus decidirá se trabalha em ambiente windows, Web, ou ambos, e
GeneXus gera os programas para isso.
Procedimentos
Permitem recuperar informação da base de dados, e será mostrada na tela, em um arquivo ou
impressa em papel. São as típicas listagens ou relatórios. Além disso, permitem atualizar
informação da base de dados.
Data Providers
Permitem carregar e devolver dados hierárquicos para troca de informação entre objetos da
mesma aplicação ou de outras aplicações.
Web Panels
Permite ao usuário realizar interativamente consultas na base de dados, através de uma janela.
Exemplo: uma web panel permite ao usuário ingressar uma faixa de caracteres, e mostra todos
os clientes cujos nomes se encontram dentro dessafaixa.
São objetos muito flexíveis que podem ser usados para múltiplos usos. Não permitem a
atualização da base de dados, somente consultá-los.
8. Os primeiros objetos definidos são as transa ões, j que a partir delas que o GeneXus extrai o
conhecimento necess rio para desenhar o modelo de dados normalizado (em 3 . forma normal).
Depois vão se definindo os demais objetos que correspondam
9. GeneXus gera automaticamente os programas necess rios para criar a base de dados e os
executa. Desta forma a base de dados criada pelo GeneXus de forma autom tica.
10. Depois, GeneXus gera programas de aplicação para interagir com a base de dados
previamente criada.
11. Uma vez criada a base de dados e gerados os programas, contamos com uma aplicação pronta para
executar.
12. Durante o ciclo de vida da aplicação, vai surgir repetidamente à necessidade de serem feitas
modificações na base de conhecimento, seja porque as visões dos usuários mudaram, ou porque
devem ser feitas correções, ou acrescentar novos conhecimentos.
As modificações realizadas na base de conhecimento serão analisadas pelo GeneXus para avaliar
a necessidade de efetuar mudanças na base de dados (por exemplo: modificação/criação de
tabelas/índices), ou não.
Em caso de detectar mudanças para efetuar na base dados, o GeneXus vai detalhar os mesmos num
relatório de análise de impacto (IAR: Impact Analisis Report), é um relatório que explica todas as
mudanças sobre tabelas, índices, dados, etc. que precisam ser realizados que refletem a nova
realidade.
Mesmo assim, no relatório de análise de impacto, se informam os eventuais problemas que as
mudanças em questões podem ocasionar como ter inconsistências ou redundâncias.
13. Algumas vezes a nova base de dados coincide com a anterior. Outras vezes isto não ocorre, e a base
de dados sofre alguma modifica ão para representar a nova realidade.
O analista deve estudar o relatório de an lise de impacto e resolver se deseja realizar efetivamente
as mudan as na base de dados, ou renunciar a base de dados e deixar como estava, ou fazer outras
altera ões.
14. Se o analista opta por aplicar as mudan as propostas, dizemos que optou por reorganizar a base de
dados. Utilizamos este termo para definir a a ão de aplicar mudan as f sicas sobre a base de dados.
GeneXus gera os programas que implementam as modifica ões sobre as estruturas f sicas da
base de dados, e mediante sua execu ão nos brindar com uma nova versão da base de dados com
as mudan as efetuadas.
15. Visto que se quer reorganizar a base de dados ou não, considerando as novas definições
introduzidas, GeneXus estuda o impacto das alterações sobre os programas atuais.
16. Por último, GeneXus prossegue com a geração/regeração dos programas de aplicação
necessários, obtendo assim uma nova versão da aplicação.
19. Para criar uma base de conhecimento, selecionar na barra do menu do GeneXus, o item File / New
Knowledge Base. Em seguida vai aparecer um diálogo como o que segue:
Deverá ser indicado;
• Nome da Knowledge Base: em nosso caso será BillingSystem.
• Diretório onde será criada.
• O ‘Environment’ por default: veja que são mostradas linguagens de programação. GeneXus os utilizará para
criar os programas associados a base de dados. As opções oferecidas são: C# Environment, Java
Environment e Ruby Environment.
• Language: Idioma em que vai aparecer os botões, mensagens, etc.
No momento de criar a KB se começa a definir o ambiente de implementação (Environment) cujas definições
serão depois completadas no momento de executar a aplicação (nome da base de dados, servidor, forma de
conexão, etc).
23. A construção automática da base de dados e programas permite ao GeneXus aplicar esta
metodologia de desenvolvimento, conhecida como metodologia incremental.
Como explicado anteriormente, este processo é realizado mediante aproximações
sucessivas.
24. Referente a versões (do que se trata, como realizar, etc.) voltaremos no final. No momento é
suficiente saber que ao criar a base de conhecimento, os programas que estaremos executando,
programas reais, serão uma versão da aplicação, de teste. Uma vez que resolvermos que essa
versão está pronta para ser colocada em produção, basta fazer outra ‘versão’ da aplicação, e
pronto!.
25. Toda comunicação é susceptível a erros:
• O usuário esquece certos detalhes
• O analista não toma nota de alguns elementos
• O usuário se equivoca em algumas situações
• O analista interpreta mal algumas explicações do usuário
Como a implementação dos sistemas é habitualmente uma tarefa que consome bastante tempo. E muitos
destes problemas somente são detectados nos testes finais do sistema, o custo em tempo e dinheiro em
solucioná-los é muito grande. Sabendo que a realidade não permanece estática, por isto não é razoável
pensar que as especificações não vão mudar até que o sistema seja implementado. A conseqüência de
manter as especificações, é que se acaba implementando uma solução relativamente insatisfatória.
O impacto destes problemas diminui muito se for possível testar cada especificação, imediatamente, e
saber qual é a repercussão de cada alteração sobre o resto do sistema. Uma primeira aproximação de
resolução deste problema, oferecida por diversos sistemas, é a possibilidade de mostrar ao usuário
formatos de janelas, relatórios, etc. animados por menus. Isto permite ajudar o usuário a ter uma idéia de
como o sistema será construído, porém no final, sempre aparecem surpresas.
Uma situação bastante diferente seria colocar a disposição do usuário, para sua execução imediata, uma
aplicação funcionalmente equivalente à desenhada, até nos mínimos detalhes. Isto é o que faz o GeneXus:
um protótipo GeneXus é uma aplicação pronta, funcionalmente equivalente a aplicação de produção.
Assim a aplicação pode ser totalmente provada antes de colocar em produção, e durante estes testes, o
usuário afinal pode trabalhar com os dados reais, testando de uma forma natural não somente os formatos
de telas, relatórios, etc., mas também suas fórmulas, regras do negócio, estruturas de dados, etc. e
trabalhar com seus dados reais.
Isto somente é possível graças a construção automática que o GeneXus realiza do suporte computacional
(base de dados e programas).