Você está na página 1de 13

GeneXus Viso Geral

Modificado em Agosto, 2004 Copyright 1989 2004 ARTech, all rights reserved

SO PAULO BRASIL Rua Samuel Morse 120 Conj. 141 - (5511) 5502 6722 MONTEVIDEO URUGUAY Av. 18 de Julio 1645 P.4 - (5982) 402 2082 CHICAGO USA 400 N. Michigan Ave. Suite 1600 - (1312) 836 9152 CIUDAD de MXICO MXICO Calle Leibnitz N 20, desp. 801 - (5255) 5255 4733

Tabela de Contedos

INTRODUO ..................................................................................................... 2 O PROBLEMA TERICO ....................................................................................... 3 METODOLOGIAS TRADICIONAIS DE DESENVOLVIMENTO E PROBLEMAS ASSOCIADOS ....................... 3 METODOLOGIA INCREMENTAL ..................................................................................... 4 UMA IMPLEMENTAO DO DESENVOLVIMENTO INCREMENTAL: GENEXUS ......... 5 DESENHO ........................................................................................................... 5 PROTTIPO ......................................................................................................... 8 IMPLEMENTAO ................................................................................................... 9 MANUTENO ...................................................................................................... 9 Impacto das mudanas sobre a base de dados:................................................... 9 Impacto das mudanas sobre os programas: .................................................... 10 DOCUMENTAO ................................................................................................. 10 CONSOLIDAO DE VRIAS APLICAES E REUTILIZAO DE CONHECIMENTO. ........................... 10 CARACTERSTICAS NICAS DE GENEXUS ......................................................... 11 QUEM SO OS USURIOS DE GENEXUS?........................................................... 12

1/13

Introduo
GeneXus uma ferramenta inteligente, desenvolvida pela ARTech, cujo objetivo ajudar o analista e os usurios em todo ciclo de vida das aplicaes. O desenho e o prottipo so realizados e provados em um ambiente Windows, Windows NT/2000/XP. Quando o prottipo est totalmente aprovado pelos usurios, a base de dados e os programas de aplicao so gerados ou mantidos de forma totalmente automtica, para o ambiente de produo escolhido. A idia bsica de GeneXus de automatizar tudo aquilo que automatizvel: normalizao dos dados e desenho, gerao e manuteno da base de dados e dos programas de aplicao. Desta maneira evita-se que o analista fique voltado s tarefas rotineiras e tediosas, permitindo-lhe dar toda sua ateno quilo que nunca um programa poder fazer: entender os problemas do usurio. Como subproduto, GeneXus oferece uma documentao rigorosa, auto-suficiente e permanentemente atualizada. Este documento tem como objetivo ilustrar ao leitor sobre GeneXus e os problemas que o mesmo pode resolver. Contedo das sees seguintes: O problema terico neste captulo se faz uma descrio comparativa das metodologias tradicionais de desenvolvimento de sistemas e do desenvolvimento incremental. Uma implementao do desenvolvimento incremental: GeneXus. Caractersticas nicas de GeneXus. Quem so os usurios de GeneXus.

2/13

O problema terico
Metodologias tradicionais de desenvolvimento e problemas associados
A forma tradicional de desenvolver aplicaes parte de uma premissa bsica: possvel construir um modelo de dados estvel da empresa. Baseado nessa premissa, a primeira tarefa que se encara a anlise de dados, onde se estuda a realidade de forma abstrata e se obtm como produto o modelo de dados da empresa. A segunda tarefa desenhar a base de dados. muito simples desenhar a base de dados partindo do modelo de dados j conhecido. Uma vez estudada a realidade desde o ponto de vista dos dados, faz-se o mesmo desde o ponto de vista das funes (anlise funcional). Seria desejvel que o estudo da realidade tivesse como produto uma especificao funcional que s dependesse da mesma. O que se faz nas metodologias mais usadas, por outro lado, obter uma especificao funcional que se refere aos arquivos da base de dados (ou melhor, s entidades do modelo de dados, o que essencialmente equivalente). Uma vez pronta a base de dados e a especificao funcional, passa-se implementao das funes, existindo tradicionalmente para isso vrias opes (linguagens de 3 ou 4 gerao, geradores, interpretadores). Por outro lado, todas as formas de implementao vistam tm um problema comum: partem da premissa enunciada: possveis construir um modelo de dados estvel da empresa, e esta premissa falsa. Realmente no possvel fazer, de uma forma abstrata, um modelo de dados detalhado da empresa, com suficiente nvel de detalhe e objetividade, porque ningum a conhece como um todo. Por isso necessrio recorrer vrias pessoas, e cada uma delas projeta sobre o modelo, sua prpria subjetividade. Uma conseqncia disto que durante todo o ciclo de vida da aplicao se produzem mudanas no modelo. Mais ainda, considerando-se a situao ideal, onde se conhecem exatamente as necessidades, sendo ento possvel definir a base de dados tima, o modelo no poderia permanecer esttico, porque deve acompanhar a evoluo da empresa. Tudo isto seria irrelevante, se a especificao funcional e a base de dados fossem independentes. Porm, dado que a especificao funcional se refere base de dados, as inevitveis modificaes (manuais) nesta implicam modificaes naquela. A maior conseqncia disto est constituda pelos custos muito altos de manuteno: na maioria das empresas que trabalham de uma maneira convencional se admite que 80% dos recursos que teoricamente esto destinados ao desenvolvimento, realmente sejam utilizados para a manuteno das aplicaes j implementadas. Quando se trata de aplicaes grandes a situao pior ainda: esta manuteno comea muito antes da implementao, o que faz com que os custos de desenvolvimento cresam de forma muito com respeito ao tamanho do projeto. Dado que muito difcil, neste contexto, determinar e propagar as conseqncias das mudanas da base de dados sobre os processos, habitual que em vez de fazer as mudanas necessrias, se opte por introduzir novos arquivos redundantes, com a conseqente degradao da qualidade dos sistemas e o incremento dos custos de manuteno.

3/13

Metodologia incremental
Uma maneira alternativa de resolver o problema passa pela substituio da premissa bsica enunciada: assumir que no possvel construir um modelo de dados estvel da empresa e, por outro lado, utilizar uma filosofia incremental. Um esquema incremental parece muito natural: no se encaram grandes problemas, seno que vamos resolvendo os pequenos problemas medida que vo se apresentando. Qual vai ser a repercusso deste tipo de esquema sobre os custos de manuteno? Se fossem utilizadas, com este enfoque, as metodologias anteriormente resenhadas, essa repercusso seria muito grande: o modelo de dados se modificaria constantemente e os custos de manuteno seriam ainda muito maiores que os enunciados. Por outro lado, pode-se ver o seguinte: No se conhece a base de dados, mas, cada usurio, conhece muitas bem as vises dos dados que ele utiliza no cotidiano. Essas vises dos dados podem ser de vrios tipos: telas, listas, etc. Que compem o aspecto exterior da aplicao: aquilo que tangvel para o usurio. Como o conhecimento destas vises pode ajudar a obter o modelo de dados? O assunto pode se transformar em um problema matemtico? Se isso fosse possvel, a matemtica poderia oferecer uma ampla gama de recursos para ajudar a resolver automaticamente e, como conseqncia, se simplificaria muito a tarefa do analista. Uma reflexo interessante a seguinte: a base de dados, as vises dos dados que tm os diferentes usurios deveriam poder derivar-se dela. Ou dito de outra maneira, a base de dados deve satisfazer a todas as vises conhecidas. Pode se demonstrar que, dado um conjunto de vises de dados de usurios, existe sempre uma base de dados mnima que as satisfaz, a qual, alm disso nica. Neste estado, o problema se transforma em um problema matemtico e ento preciso resolv-lo para encontrar essa base de dados. Mas, como se implementa esta teoria? Trata-se de capturar o conhecimento que existe nas vises dos usurios, e sistematizlo em uma base de conhecimento. A caracterstica fundamental desta base de conhecimento, que a diferencia dos tradicionais dicionrios de dados, sua capacidade de inferncia: pretende-se que, em qualquer momento, se possam obter desta base de conhecimento, tanto elementos que foram colocados nela, como qualquer outro que se possa inferir a partir deles. Se este objetivo atingido, a base de dados e os programas de aplicao passam a ser transformaes determinadoras da base de conhecimento e isso permite:

Ger-los automaticamente. Frente a mudanas nas vises dos usurios: Determinar o impacto das mudanas sobre dados e processos Propagar essas mudanas gerando: o o programas necessrios para converter os dados; programas da aplicao afetados pelas mudanas.

4/13

Uma implementao do desenvolvimento incremental: GeneXus


GeneXus implementa esta teoria. Quando uma aplicao desenvolvida com GeneXus a primeira etapa consiste em fazer o desenho da mesma registrando as vises de usurios (a partir das quais o sistema captura e sistematiza o conhecimento). Posteriormente se passa etapa de prototipao, onde GeneXus gera a base de dados (estrutura e dados) e programas para o ambiente de prottipo. Uma vez gerado o Prottipo deve ser testado pelo analista e pelos usurios. Se durante os testes do prottipo se detectam melhorias ou erros, retorna-se fase de desenho, realizam-se as modificaes necessrias e, volta-se ao prottipo. Chamaremos este ciclo de Desenho / Prottipo. Uma vez que o prottipo est aprovado, passa-se etapa de Implementao, onde GeneXus gera, tambm automaticamente, a base de dados e programas para o ambiente de produo. Resumindo, uma aplicao comea com um desenho, depois se prototipa, depois se implementa. Em qualquer um dos passos anteriores possvel voltar ao desenho para realizar modificaes.

Ciclos Desenho-Prottipo e DesenhoDesenho-Produo DesenhoDesenho

Prottipo

Produo

A seguir sero detalhadas cada uma destas tarefas:

Desenho
Esta tarefa realizada conjuntamente pelo analista e pelo usurio e consiste em identificar e descrever as vises de dados dos usurios. O trabalho feito no ambiente do usurio. Este esquema permite trabalhar com um baixo nvel de abstrao, utilizando termos e conceitos que so bem conhecidos pelo usurio final. Uma conseqncia muito importante, que a atitude do usurio se torna francamente participativa. O sistema passa a ser uma obra conjunta, e como o usurio acompanha permanentemente a evoluo, a qualidade muito maior que a habitual. 5/13

Conforme o que foi visto, GeneXus captura o conhecimento por meio de vises de objetos da realidade do usurio. Os tipos de objetos suportados por GeneXus so: Transaes, Relatrios, Procedimentos, Work Panels, Web Panels, Temas, Menus, Data Views e Transaes de Data Warehouse. A tarefa de desenho consiste, fundamentalmente, em identificar e descrever estes objetos. A partir destas descries, e automaticamente, GeneXus sistematiza o conhecimento capturado e vai construindo, de forma incremental, a Base de Conhecimento. Esta Base de Conhecimento um depsito nico de toda informao do desenho, a partir da qual GeneXus cria o modelo de dados fsico (tabelas, atributos, ndices, redundncias, regras de integridade referencial, etc.) e os programas de aplicao. Assim, a tarefa fundamental na anlise e desenho da aplicao encontra-se na descrio dos objetos GeneXus. Vejamos detalhadamente os tipos de objetos GeneXus mais importantes:

Transaes
Uma transao um processo interativo que permite aos usurios criar, modificar ou eliminar informao da base de dados. Exemplos: Tela para criar, modificar ou eliminar os Clientes da Empresa. Tela de faturamento: processo que permite a um usurio criar faturas e inclusive imprimi-las. Uma tela permite ao usurio fazer vrias aes como inserir, atualizar, eliminar, imprimir sem ter que voltar ao menu.

Relatrios
Um relatrio um processo que permite visualizar os dados da base de dados. Os dados podem ser enviados tela ou impressora. Com este objeto pode-se definir desde listas simples (por exemplo, listar os clientes) at listas muito sofisticadas, onde existam vrios cortes de controle, mltiplas leituras base de dados e parametrizaes. Um relatrio, porm, no pode atualizar a base de dados.

Procedimentos

Este objeto possui todas as caractersticas dos relatrios, permitindo, alm disso, atualizar a base de dados. Os Procedimentos so muito usados para dois tipos de processos: Processo batch de atualizao. Por exemplo: eliminar todas as faturas da data anterior a uma data especfica e que j foram pagas. Subrotinas de uso geral. Por exemplo: rotina de extenso onde, dado um valor se devolve um literal com o valor por extenso (1010 => Mil e dez). Processos a executar em um servidor de aplicaes ou servidor de base de dados: processos (geralmente escritos em C/SQL, Java ou .NET) para uma Multi Tier Architecture, para serem executados em um servidor de aplicaes ou de bases de dados.

Work Panels
Um Work Panel uma tela que permite ao usurio realizar consultas interativas base 6/13

de dados. Quanto mais os usurios utilizam o computador para trabalhar, mais se torna necessria a utilizao de dilogos sofisticados, que lhe permitam sentar-se para pensar frente ao mesmo. Os work panels permitem desenhar este tipo de dilogos do usurio. Por exemplo: um work panel que mostra a lista de clientes e que permite ( escolha do usurio) ver quais so suas faturas ou suas dvidas.

Web Panels
So similares ao conjunto de Work Panels, mas so usados em browsers em ambiente Internet/Intranet/Extranet.

Temas

Os temas so criados com o Editor de Temas. O Editor de Temas uma ferramenta grfica que define todos os elementos visuais de uma aplicao, como fontes, tabelas, botes, etc. Logo em seguida, o tema se associa aos objetos GeneXus. Os valores dos Temas podem ser mudados no momento da execuo, o que permite que as aplicaes Web sejam mais dinmicas e medida do usurio.

Menus
Um menu uma tela que contm uma srie de opes fixas que o usurio seleciona para executar.

Data Views
Permitem considerar correspondncias entre tabelas de bases de dados pr-existentes e tabelas GeneXus. e trat-las com a mesma inteligncia, como se fossem objetos GeneXus.

GeneXus trabalha com o conhecimento puro


Partindo dos objetos descritos, o modelo de dados fsico desenhado com base na Teoria de Bases de Dados Relacionais e garante uma base de dados em terceira forma norma (sem redundncia). Esta normalizao efetuada automaticamente por GeneXus. O analista pode, por outro lado, definir redundncias que, a partir disso, passam a ser administradas (controladas ou propagadas, segundo corresponda), automaticamente por GeneXus. O depsito de GeneXus mantm as especificaes de desenho em forma abstrata, ou seja, no depende do ambiente objeto, o que permite que, a partir do mesmo depsito, possam ser geradas aplicaes funcionalmente equivalentes, para serem executadas em diferentes plataformas.

Mltiplas Plataformas / Arquitetura de Mltiplas Camadas


Como conseqncia do que foi dito anteriormente, possvel por exemplo, que um usurio de uma aplicao IBM AS/400 centralizada desenvolvida 100% com GeneXus, possa faz-la funcionar total ou parcialmente em um ambiente JAVA ou .NET sem ter que modificar os objetos originais. Por outro lado, as especificaes funcionais so totalmente independentes da base de dados, pelo que se mantm vlidas mesmo depois de mudanas nesta. Esta propriedade permite que GeneXus possa manter automaticamente todos os programas que gera. 7/13

Hoje comum que uma mesma aplicao tenha algumas partes sendo executadas em uma plataforma e algumas em outras, e que todas possam se comunicar corretamente. O desenvolvimento com GeneXus permite que uma aplicao possa ser dividida de maneira que possa ser executada em diferentes plataformas e para cada uma delas gerada a linguagem mais adequada, obtendo assim arquiteturas de mltiplas camadas (multi-tier) fazendo um melhor uso dos recursos disponveis.

Prottipo
Nas tarefas de desenho esto implcitas as dificuldades de toda comunicao humana:

O usurio se esquece de certos detalhes; O analista no toma nota de alguns elementos; O usurio se engana em algumas apreciaes; O analista interpreta mal algumas explicaes do usurio.

Mas, alm disso, a implementao de sistemas , habitualmente, uma tarefa que leva bastante tempo, pelo que:

Como muitos destes problemas s so detectados nos testes finais do sistema, o custo (tempo e dinheiro) para solucion-los muito grande; A realidade muda, por isso, no razovel pensar que se podem congelar as especificaes enquanto se implementa o sistema; A conseqncia do congelamento das especificaes que se acaba implementando uma soluo relativamente insatisfatria.

O impacto destes problemas diminuiria muito se conseguisse testar cada especificao imediatamente e pudssemos saber qual a repercusso de cada mudana sobre o resto do sistema. Uma primeira aproximao a isto, oferecida por diversos sistemas, a possibilidade de mostrar ao usurio formatos de telas, relatrios, etc. Animados por menus. Isto permite ajudar o usurio a ter uma idia de que sistema ser construdo mas, posteriormente, sempre se aparecem surpresas. Uma situao bastante diferente seria colocar a disposio do usurio para sua execuo, imediata, uma aplicao funcionalmente equivalente a desejada, at nos mnimos detalhes. Isto o que faz GeneXus: um prottipo GeneXus uma aplicao pronta, funcionalmente equivalente aplicao de produo. A diferena entre prototipao e produo consiste em que a primeira feita em um ambiente de microcomputador, enquanto que a produo realizada em ambiente objeto do usurio (IBM iSeries, Cliente / Servidor, JAVA, .NET). O prottipo permite que a aplicao seja totalmente testada antes de passar produo. Durante estes testes, o usurio final pode trabalhar com dados reais, ou seja, que testa de uma forma natural, no somente formatos de telas, relatrios, etc. mas tambm frmulas, regras do negcio, estruturas de dados, etc. A filosofia de GeneXus de desenvolvimento incremental. Quando se trabalha em um ambiente tradicional as mudanas no projeto, feitas durante a implementao e, sobretudo, aquelas que so necessrias logo depois que o sistema est implantado, so muito caras. GeneXus resolve este problema: constri a aplicao com uma metodologia de aproximaes sucessivas que permite, uma vez detectada a necessidade de mudanas, prototip-las e test-las imediatamente por parte do usurio, sem custo adicional.

8/13

Implementao
GeneXus gera automaticamente o cdigo necessrio para:

Criar e manter a base de dados; Gerar e manter os programas para manipular os objetos descritos pelo usurio.

Os ambientes e linguagens atualmente suportados so: Plataformas Plataformas de Execuo JAVA, Microsoft .NET, Pocket PC Sistemas Operacionais Servidores IBM OS/400, Windows NT/2000/XP/CE LINUX, UNIX, Windows NT/2000/2003 Servers,

Internet JAVA, ASP.NET, Visual Basic (ASP), C/SQL, HTML Banco de Dados IBM DB2 UDB, Informix, Microsoft SQL Server, Oracle, PostgreSQL, MySQL Linguagens JAVA, C#, C/SQL, COBOL, RPG, Visual Basic, Visual FoxPro Servidores Web Microsoft IIS, Apache, WebSphere, etc. Mltiplas Arquiteturas Arquiteturas de mltiplas camadas, baseadas na Web, cliente/servidor e centralizadas (iSeries) Ferramentas de Business Intelligence e Workflow Solues de Reporting, Data Warehousing e Workflow para todos os servidores suportados.

Manuteno
Esta talvez a caracterstica mais importante de GeneXus, e a que o diferencia de maneira mais clara de seus concorrentes: a manuteno, tanto da base de dados (estrutura e contedo) como dos programas, totalmente automtica. A seguir se explica o processo de manuteno, diante de mudanas na descrio de algum objeto GeneXus (viso do usurio):

Impacto das mudanas sobre a base de dados:


Anlise de impacto: Uma vez descritas as mudanas das vises de usurios, GeneXus analisa automaticamente qual o impacto dos mesmos sobre a base de dados e produz um relatrio onde explica como deve ser feita a converso dos dados e, se for o caso, que problemas potenciais tem essa converso (inconsistncias por dados velhos perante novas regras, etc.). O analista decide se aceita o impacto e continua ou no.

9/13

Gerao de programas de converso: Uma vez que os problemas so solucionados, ou melhor, se aceita a converso default, que GeneXus realiza de forma padronizada, geram-se automaticamente os programas para fazer a converso (estrutura e contedo) da base de dados antiga para a nova. Execuo dos programas de converso: Logo em seguida se passa ao ambiente de execuo que corresponda (prottipo, produo Internet, produo Cliente / Servidor, etc.) e se executam os programas de converso.

Impacto das mudanas sobre os programas:


Anlise de impacto: Em seguida, GeneXus analisa o impacto das mudanas sobre os programas e produz um diagnstico informando que programas devem ser gerados ou re-gerados e proporciona tambm para o programa novo ou, um diagrama de navegao ou, um pseudo-cdigo, escolha do analista. Gerao de novos programas: Em seguida o sistema gera ou re-gera automaticamente todos os programas.

Documentao
Todo o conhecimento previsto pelo analista, ou inferido por GeneXus, est disponvel em um depsito ativo, que constitui uma completa documentao on-line, permanentemente atualizada.

Consolidao de vrias aplicaes e reutilizao de conhecimento.


Vrias aplicaes podem ser desenhadas e prototipadas simultaneamente, por diferentes equipes, utilizando GeneXus. Estas equipes podem intercambiar especificaes de desenho utilizando o mdulo KNOWLEDGE MANAGER. Isto permite uma flexibilidade ideal: o analista trabalha com inteira liberdade em um ambiente de prottipo, com uma pequena base de conhecimento e, s quando sua aplicao est pronta, desde o ponto de vista do usurio, deve tomar em conta a base de conhecimento coorporativa, que geralmente muito grande. Nesse momento, com poderosas ajudas automticas, se estabelece o impacto que ter a nova aplicao ou a modificao da pr-existente, sobre o modelo corporativo e, se o caso, se faz as mudanas para garantir a consistncia, de uma maneira muito simples. Com este esquema possvel reutilizar, por exemplo, Bases de Conhecimento licenciadas de terceiros.

10/13

Caractersticas nicas de GeneXus


GeneXus tem algumas caractersticas nicas que o distinguem de seus concorrentes. Entre elas podemos destacar:

Interativo: o ponto de partida a descrio natural dos objetos pelo usurio. A descrio de cada objeto totalmente independente da descrio dos outros, de modo que no caso de que seja necessrio modificar a descrio de algum, isto no implicar na necessidade de modificao manual da descrio de qualquer outro. A curva de aprendizagem curta. O desenho, a criao e a manuteno da base de dados so totalmente automticos. A aplicao (base de dados e programas) tem sempre, sejam quais forem as modificaes que tenham sofrido, a melhor qualidade: A base de dados sempre tima, No se modificam programas: quando j no so adequados, geram-se outros novos, timos e no remendados, que os substituem.

Linguagens poderosas e de altssimo nvel para a definio de PROCESSOS, WORK PANELS e WEB OBJECTS, assim como uma definio de MENUS muito simples. Nestas linguagens as descries dos processos so feitas sem referir-se aos arquivos envolvidos, que so inferidos automaticamente em tempo de gerao. Esta caracterstica permite uma total independncia entre os dados e ditas especificaes. Como conseqncia, as especificaes de alto nvel de GeneXus no precisam modificaes da base de dados. Utilizao dos arquivos ou bases de dados pr-existentes como prprios de GeneXus. Manuteno 100% automtica: O conjunto destes elementos permite a GeneXus gerar e manter automaticamente 100% dos programas nas aplicaes normais de tipo comercial, administrativo, financeiro ou industrial Fcil distribuio do conhecimento corporativo para facilitar o desenvolvimento de novas aplicaes. Simples e poderosa soluo para Data Warehousing. Verificao automtica de consistncia e consolidao entre aplicaes desenvolvidas separadamente. Independncia de plataforma e de arquitetura. Simplicidade: GeneXus utiliza os recursos mais avanados da inteligncia artificial para que o analista e os usurios, possam us-lo de uma forma muito simples.

11/13

Quem so os usurios de GENEXUS?


Mais de 4.500 clientes no mundo utilizam GeneXus e os produtos GeneXus para criar e integrar aplicaes de misso crtica que facilmente se adaptam s implacveis mudanas do negcio. A tecnologia GeneXus permite aos nossos clientes usar seu know-how exclusivo nas plataformas tecnolgicas lderes do mercado. Nossos clientes corporativos vo desde empresas mdias a muito grandes, numa grande variedade de indstrias. Hoje representam 70% do nosso faturamento. Nossos clientes do tipo casas de software (ISV o Independente Software Vendors) compreendem pequenas, mdias e grandes empresas de software que constroem suas solues utilizando a tecnologia GeneXus. Este segmento representa atualmente 30% do nosso faturamento, mas est crescendo rapidamente.

GeneXus and ARTech are trademarks or registered trademarks of ARTech Consultores S.R.L. ARTech recognizes that all other trademarks contained herein are property of their respective holders

12/13