Professional Documents
Culture Documents
RESUMO: TENTA-SE MOSTRAR , DE UMA MANEIRA SIMPLES E SISTEMTICA, A FILOSOFIA E OS EMBASAMENTOS TERICOS DO G ENE XUS. BOA PARTE DESTES ELEMENTOS J SO CONHECIDOS PELA COMUNIDADE GENEXUS, MAS ESTO COLETADOS PARCIALMENTE EM DIVERSOS DOCUMENTOS . O PROPSITO GENEXUS
AUTOMATIZAR TUDO AQUILO QUE FOR AUTOMATIZVEL ,
DO
TENDO
SEGUIDO A ORIENTAO GERAL DE VIABILIZAR UMA MUDANA DE PARADIGMA: DESCREVER EM VEZ DE PROGRAMAR .
SO
COMPREENDIDAS
E PROCESSADAS
ENCONTRAR UM BOM DESENHO DESTAS DESCRIES E IMPLEMENTAR OS MECANISMOS PARA PROCESS - LAS AUTOMATICAMENTE , TORNANDO DISPONVEL TODO CONHECIMENTO QUE POSSA SER INFERIDO A PARTIR DAS MESMAS , CONSTITUI O EMBASAMENTO CIENTFICO / TECNOLGICO DO
GENEXUS
INTRODUO
O propsito deste documento ajudar a entender as idias bsicas e os conceitos tericos que fizeram possvel o GeneXus, para compreender melhor a sua essncia e os novos desenvolvimentos que iro se produzir no futuro. O primeiro propsito do GeneXus era estabelecer um robusto modelo de dados. Uma vez construdo esse modelo com todo rigor, pde-se pensar numa ampliao, incorporando elementos declarativos como regras, frmulas, telas, data providers, etc., tentando descrever as vises de dados dos usurios e, assim, abranger todo o conhecimento dos sistemas de negcios. Por que se tentou abranger todo o conhecimento dos sistemas de negcios? Porque uma condio necessria para poder projetar, gerar e manter em forma 100% automtica os sistemas computacionais de qualquer empresa. Era evidente que num determinado momento a comunidade informtica optaria por este caminho e que seria bom antecipar-se em percorr-lo tanto quando fosse possvel.
Pgina 1
Mas, como abranger todo o conhecimento dos sistemas de negcios? Como abranger a casustica que tm os sistemas de negcios? A primeira verso do GeneXus (100% declarativa) pretendia resolver o problema de gerao e manuteno de 70% dos programas. O sistema se ocupava deles em forma automtica. Os 30% restantes deviam ser programados e mantidos manualmente. Os prospects entenderam que resolver automaticamente 70% de seu problema era muito bom e at duvidaram que a manuteno automtica fosse possvel: os primeiros em adotar o GeneXus o fizeram exclusivamente pensando no aumento de produtividade no desenvolvimento. Entretanto, alguns meses mais tarde, esses clientes apreciaram o grande aumento de produtividade que conseguiam no desenvolvimento, mas apreciaram ainda muito mais a manuteno automtica. Um ano depois do lanamento, o projeto GeneXus comeou a sofrer uma forte presso de seus clientes: o sucesso da manuteno automtica e as vantagens que isso acarretava fizeram que eles exigissem manuteno automtica para tudo o que, como pr-condio, exigia gerao automtica de tudo. Isso no tinha antecedentes no mercado internacional (realmente, muitos anos depois, o GeneXus continua sendo o nico produto no mundo que resolve estes problemas). Mas ento, qual hoje a essncia do GeneXus? A essncia do GeneXus conseguir um timo tratamento automtico do conhecimento dos sistemas de negcios. Eis a essncia. Atingido esse objetivo, existe um grande conjunto de subprodutos como: Projeto, gerao e manuteno automticos da base de dados e dos programas de aplicao necessrios para a empresa. Gerao, a partir do mesmo conhecimento, para plataformas mltiplas. Integrao do conhecimento de diversas fontes para atender a necessidades muito complexas com custos em tempo e dinheiro bem inferiores aos habituais.
Gerao para as tecnologias futuras, quando essas tecnologias estiverem disponveis, a partir do conhecimento que hoje abrigam os clientes GeneXus nas suas Knowledge Bases: GeneXus trabalha com o conhecimento puro, cuja validez totalmente independente das tecnologias da moda.
Pgina 2
O desenvolvimento todo seguiu certas linhas mestras. Este documento tem o propsito de explicitar estas linhas mestras, de uma maneira simples e conceitual.
Pgina 3
Podemos separar esses custos em duas dimenses: Dinheiro e Tempo. As empresas descobriram, graas disponibilidade de comunicaes rpidas e baratas, que podem atuar sobre a dimenso Dinheiro contratando o desenvolvimento e manuteno de seus sistemas em pases de baixos salrios e assim o fizeram intensamente nos ltimos anos. Na realidade, no foi resolvida a questo dos custos, mas trocou-se a unidade de medida: so basicamente as mesmas horas de trabalho ( essencialmente o mesmo trabalho), mas o preo da hora-homem bem menor. Se medirmos o custo em dinheiro, constataremos um forte abatimento. O que acontece com a dimenso Tempo? O precedente no aplicvel aos tempos. Os sistemas de negcios precisam responder a novas necessidades: as novas modalidades dos negcios, os perodos de auge alternados com as crises da economia, os novos dispositivos, os novos usurios, as novas necessidades / possibilidades de integrao. Os sistemas, por isso, tornam-se cada dia mais e mais complexos e os negcios esto sujeitos a um time to market cada vez mais crtico e que os empresrios no podem mudar. Como conseqncia, a cada dia mais negcios esto se prejudicando pelos tempos inadequados de desenvolvimento das novas solues e de manuteno das atuais. E hoje -mas sobre tudo num futuro prximo- ningum pode fazer bons negcios sem os sistemas adequados, em tempos oportunos e custos razoveis. . Esta situao no pode continuar assim por muito tempo e, primeiro aos poucos, hoje mais rapidamente, vm aparecendo exemplos disso: Em quase todos os pases mais desenvolvidos, muitas empresas esto cada vez mais lanando mo do outsourcing do desenvolvimento e a manuteno de sistemas. Este outsourcing geralmente envolve offshoring para pases de baixos salrios. Porm, ao mesmo tempo, h uma corrente crescente de empresas que seguem o caminho inverso visto que no obtiveram resultados convenientes com o mencionado outsourcing. A cada vez mais existem nos pases mais desenvolvidos empresas que experimentam grande violncia demitindo seus tcnicos e transferindo seu trabalho para tcnicos desconhecidos de pases longnquos. Evitar isso exige que os custos in house, que envolvem altos salrios, sejam similares aos do outsourcing. S ser possvel adotando tecnologias de muito alto nvel. necessrio um dramtico aumento da produtividade, porm, a produtividade das linguagens de programao h muito tempo j atingiu uma estabilizao. Como resolver o problema? Com melhores linguagens de programao? Os fatos demonstram que no! O problema no est nas linguagens de programao, mas na prpria programao. Como obter, ento, o aumento de produtividade necessrio? Fazendo desenvolvimento sustentado em conhecimento e no em programao: a soluo descrever em vez de programar!
Na Artech temos certeza disso e estamos preparados para essa exploso do mercado do desenvolvimento sustentado em conhecimento que se ir se produzir nos prximos anos.
Pgina 4
MODELO DE DADOS
Historicamente a comunidade informtica comeou trabalhando com apenas um modelo fsico com muitas rigidezes. Depois, foi introduzindo outros modelos com o objetivo de ganhar maior flexibilidade e obter certa permanncia das descries. O trabalho mais importante sobre a questo foi o relatrio de 1978 do grupo ANSI SPARC [1] que introduz trs modelos: Modelo Externo no qual se representam as vises externas dos dados. Modelo Lgico ou Conceitual: outro modelo (geralmente um modelo E-R) que se pretendia obter por abstrao da realidade. Modelo Fsico: referia-se fundamentalmente ao esquema da base de dados. A idia era desenvolver paralelamente os trs modelos para que os programas s interagissem com o Modelo Externo e, a partir do Modelo Lgico fazer um "mapping" entre esses programas e a base de dados (Modelo Fsico) e com isso tornar independentes os programas da base de dados. O relatrio foi muito elogiado no momento e, depois, quase esquecido. S um fabricante a incios da dcada de 80 tentou implementar este esquema de trs modelos. Foi o Cincom Systems para seu produto SUPRA e para diferentes linguagens acessando a base de dados SUPRA. Fora isso, o relatrio ANSI SPARC continua sendo conceitualmente vlido at hoje. A maior diferencia a tecnologia disponvel. Nos anos que se passaram, as mudanas tecnolgicas tm sido muito importantes. Analisando a questo luz da tecnologia atual, conclumos que podem existir vrios modelos, mas o modelo realmente importante para os usurios e os desenvolvedores, o Modelo Externo: nele coletamos o conhecimento exterior e o resto, como outros modelos auxiliares que poderiam ajudar, deve e pode se inferir automaticamente a partir do mencionado Modelo Externo. Neste trabalho enfatizamos no Modelo Externo, que contm o conhecimento genuno e no qual se assenta a essncia e a singularidade do GeneXus (o qu). Face a novas possibilidades da tecnologia e necessidades dos clientes, o primeiro a fazer ampliar esse Modelo Externo.
Pgina 5
Parece adequado basear-nos em um Modelo Externo que rena estas vises. Um Modelo Externo no pode conter nenhum elemento fsico ou interno tais como arquivos, tabelas, entidades, relaes entre entidades,ndices ou qualquer outro que possa ser deduzido automaticamente do mesmo (e que podem variar com o tempo). Quais elementos so desejveis e quais elementos so inaceitveis no GeneXus? Estamos tentando criar um modelo com as seguintes caractersticas: Conhecimento adequado para seu tratamento automtico. Modelo com o qual um software de computador possa trabalhar automaticamente. Ou seja, o conhecimento de nosso modelo deve ser compreensvel e opervel automaticamente. Consistncia. Modelo sempre consistente. Ortogonalidade. Os objetos que num determinado momento constituem o modelo devem ser independentes entre si. A adio de um novo objeto, sua modificao ou eliminao no acarretar a necessidade de modificar nenhum outro objeto. Projeto, gerao e manuteno automticos da base de dados e dos programas. Dentre as coisas que um software de computador pode fazer automaticamente com o modelo, so essenciais o projeto, a gerao e a manuteno automticos da base de dados e dos programas. Escalabilidade. Os elementos anteriores expressam as caractersticas qualitativas que deve ter nosso modelo. Mas pretende-se resolver problemas grandes. Para isso, precisamos que os mecanismos de armazenamento, acesso e inferncia do modelo atuem eficientemente com independncia do tamanho do problema.
MARCO DE REFERNCIA
Como representar o conhecimento de uma maneira rigorosa? Devemos estabelecer um conjunto de objetos-tipo predefinidos atravs dos quais seja possvel representar bem a realidade e que sejam automaticamente compreensveis e operveis. Um caminho que seguiu a indstria na maioria dos casos, partir de um modelo de dados E-R ou similar. Mas como obter o modelo de dados correto? Um modelo de dados corporativo precisa de centenas ou ainda milhares de tabelas. Tradicionalmente, os modelos de dados eram desenhados mediante um processo de abstrao (atravs de interlocutores que tivessem o conhecimento suficiente da empresa, identificar seus objetos relevantes e suas relaes e introduzir no modelo as correspondentes entidades e relaes). Este processo de abstrao era fortemente subjetivo: quem, na organizao, tinha um bom conhecimento dos dados? Quem tinha um bom conhecimento dos objetos e relaes relevantes que constituam o input do modelo de dados? A resposta clara e contundente: ningum. Era preciso, ento, solicitar o conhecimento de multiplicidade de pessoas e cada uma delas ia adicionando sua prpria subjetividade. Onde estava o conhecimento objetivo e suficientemente detalhado necessrio para construir nosso modelo? Certamente no existia na organizao esse conhecimento sobre os dados. Entretanto, cada usurio, a qualquer nvel, conhecia muito bem as vises de dados que utilizava, que necessitava, ou que desejava: ningum conhece os dados mas todos trabalham permanentemente com vises desses dados. Optou-se por tomar essas vises de dados como input bsico do modelo mas, como descrev-las objetivamente?
Pgina 6
Era necessrio estabelecer um slido marco de referncia sobre o qual fazer as demais descries. Esse marco de referncia est constitudo pelos Atributos. Elemento semntico fundamental: Atributo Existem atributos, cada atributo tem um nome, um conjunto de caractersticas e um significado. Para se ter um modelo de grande potncia expressiva, alm dos elementos sintticos que toda a comunidade informtica maneja sem dificuldades, devemos representar nele elementos semnticos. Mas difcil trabalhar automaticamente com a semntica. Para tratar automaticamente um elemento semntico, precisamos dar-lhe uma representao sinttica. Escolheu-se um nico elemento semntico para ser representado em nosso modelo: o significado de cada atributo. O segundo elemento bsico ento:significado, que no nosso modelo definimos da seguinte maneira: significado (atr) = nome (atr) Os nomes dos atributos passam a ser essenciais para o modelo. So necessrias normas claras para que sejam atribudos de maneira a garantir sua consistncia atravs do modelo todo. A esses efeitos, adotamos a URA (Universal Relational Assumption) que, essencialmente, significa que um atributo ter o mesmo nome em todos os lugares onde ele vier a aparecer, e que no haver dois atributos diferentes (com significado diferente) compartilhando o mesmo nome. Alm disso, necessrio que os nomes sejam auto-explicativos e muito fceis de entender por terceiros.
O terceiro elemento bsico , ento, a URA (Universal Relational Assumption). Porm, a realidade nos mostrou que a URA no basta, portanto, estabelecemos subtipos de atributos e, a seguir, subtipos de grupos de atributos. O quarto elemento est constitudo, ento, pelos subtipos. RESUMINDO: o atributo, tal qual o caracterizamos aqui (com as consideraes sobre significado, URA e subtipos), o elemento semntico fundamental da teoria do GeneXus: constitui o marco de referncia sobre o qual edificamos os modelos GeneXus.
Pgina 7
DESCRIO DA REALIDADE
Depois de introduzir o marco de referncia, descreveremos a realidade atravs de um conjunto de instncias de objetos-tipo, que especificaremos com base nos seus atributos e mediante os quais iremos coletar as caractersticas da realidade a representar.
TRANSAES
Cada usurio tem uma ou mltiplas vises dos dados que utiliza cotidianamente. Entre estas vises, podemos pensar num primeiro tipo: aquele que rene aquelas que se utilizam para manipular os dados (introduzir, modificar, eliminar e visualiz-los em forma limitada), estas vises de usurios so chamadas de Transaes e constituem o primeiro objeto-tipo do GeneXus. Cada transao tem um conjunto de elementos: Estrutura dos dados da Transao: os dados se apresentam conforme uma estrutura e devemos ter uma maneira de coletar essas estruturas com todo rigor. A seguir, veremos a estrutura de uma transao que todos conhecemos: a de uma Nota Fiscal simples.
[FATURA] Cdigo_de_Fatura * Data_de_Fatura Nome_de_Cliente Endereo de_Cliente (Cdigo_de_Produto* Descrio_de_Produto Quantidade_Vendida_Produto_na_Fatura Preo_Venda_ Produto_na_Fatura Importe_Linha_Fatura)
Pgina 8
Pgina 9
As transaes so declarativas e capturando o conhecimento que existe nelas e sistematizando-o numa Knowledge Base obtm-se boa parte da descrio da realidade procurada.
PROCEDIMENTOS
Pgina 10
As Transaes, como foi visto, permitem de maneira declarativa descrever as vises de dados dos usurios e, como conseqncia, entesourar o conhecimento necessrio para projetar, gerar e manter de maneira totalmente automtica, a Base de Dados e os programas que os usurios necessitem para manipular suas prprias vises de dados. Mas isto no suficiente: existe a necessidade de processos batch ou similares. Estes processos no se podem inferir a partir do conhecimento fornecido pelas vises de dados. Quando foi liberada a primeira verso do GeneXus, as transaes resolviam cerca de 70% do problema, gerando os programas correspondentes. Faltava 30% dos programas. Para se obter 100% de cobertura s necessidades dos clientes, foi necessrio lanar mo de um objeto que permitisse descries procedurais: uma linguagem procedural de alto nvel. Como deve ser essa linguagem? Consideramos as melhores linguagens procedurais disponveis no mercado e analisado suas caractersticas. Encontraram-se construes interessantes como a conhecida For Each End For, que permite trabalhar em forma simples e em bom nvel com conjuntos de registros. Entretanto, todas as linguagens analisadas tm um problema srio: nelas necessrio referir-se a elementos fsicos de baixo nvel como tabelas e, por isso, o desenvolvedor deve saber no momento de escrever o programa, de quais tabelas deve considerar cada atributo. Para o GeneXus esta uma caracterstica inaceitvel porque uma conseqncia dela seria: se um atributo mudar a tabela, a descrio deixar de ser vlida! Em outras palavras: as tabelas no integram o Modelo Externo e, por isso, qualquer especificao que as contiver pode no ser ortogonal, por isso no poderamos garantir a manuteno automtica das aplicaes geradas. A soluo foi desenhar uma linguagem que utilizasse uma sintaxe inspirada nas mais avanadas construes das melhores linguagens mas na qual em hiptese nenhuma fosse utilizado como argumento algum elemento no pertencente ao Modelo Externo. Assim, por exemplo, em vez de nos referir a tabelas, referiremos aos conjuntos de atributos necessrios para executar uma ao dada e o sistema, em tempo de gerao automtica, quem determina quais so as tabelas envolvidas e, se for o caso, os ndices utilizados e como faz-lo e, com isso, gera o programa. No entraremos aqui no detalhe da sintaxe da linguagem. uma linguagem procedural, com instrues para manipular os dados e que tem as instrues lgicas e aritmticas normais de uma linguagem procedural de alto nvel. A caracterstica mais importante desta linguagem que suas descries mantm-se vlidas em face s mudanas estruturais da base de dados. Desta maneira, foi possvel resolver todos os problemas casusticos encontrados, respeitando sempre as linhas mestras de consistncia e ortogonalidade do GeneXus. Quais so os principais pontos altos e baixos deste objeto? Ponto muito alto: suas capacidades procedurais complementam as capacidades declarativas das Transaes (e, conforme veremos mais adiante, de outros objetos GeneXus) e garantem a resoluo de qualquer problema de sistemas de negcios.
Pgina 11
Ponto baixo: a tarefa de escrever descries procedurais permite menor produtividade que a de fazer descries declarativas, como o caso das Transaes. Novas capacidades: Na verso X do GeneXus adiciona-se um novo objeto (Data Provider) que se define em forma totalmente declarativa a partir do resultado que se deseja obter e, como output, dado o contexto adequado, nos d uma mensagem com esse resultado. Este objeto nos permite diminuir poderosamente a necessidade de Procedimentos
Os objetos-tipo mais importantes so Transao, Procedimento e Data Provider. Com eles possvel fazer uma muito razovel descrio da realidade embora, com o tempo, introduziram-se um conjunto importante de novos objetos, alguns dentre eles para conseguir que nossa descrio fosse completa e simples (GXflow que permite descrever os fluxos de trabalho das operaes do negcio e gerar o cdigo necessrio para utilizar o servidor especializado em gerenci-los), outros para permitir dilogos mais amigveis com os usurios medida que as novas arquiteturas disponveis o permitissem (Work Panels, Web Panels, GXportal), outros para facilitar a reutilizao do conhecimento permitindo um aumento da produtividade muito importante (Business Components, Patterns), outros para levar ao terreno dos usurios finais a formulao das consultas s Bases de Dados (GXquery) ou s DataWarehouses (GXplorer). Estes objetos podem combinar-se para resolver as necessidades mais complexas. completo o conjunto de objetos-tipo do GeneXus?: No algo que possa ser demonstrado teoricamente. Mas podemos afirm-lo empiricamente: os mais de 50000 desenvolvedores GeneXus no mundo todo desenvolvem sistemas importantes 100% com o GeneXus. Isso constitui uma amostra bem representativa da comunidade informtica em geral e da prpria realidade e prova que, efetivamente, completo para as necessidades dos sistemas de negcios de hoje. Mas no um conjunto fechado: provavelmente no futuro iro aparecer novas necessidades que nos levem a introduzir novos objetos-tipo, para satisfaz-las.
Pgina 12
Pgina 13
Em resumo: A Knowledge Base e os mecanismos de inferncia associados constituem uma grande mquina de inferncia. Um bom exemplo disto : dada uma viso de dados podemos inferir em forma totalmente automtica o programa necessrio para sua manipulao.
DIAD E PROTOTIPAO
A prototipao um grande recurso e utilizando-o adequadamente evita-se uma exagerada dependncia do teste final ou, ainda, da posta em andamento (o Dia D, onde tudo ocorre e a Lei de Murphy particularmente aplicada). Pelas caractersticas do GeneXus, tudo pode-se provar a qualquer momento e, em particular, pode-se prototipar cada objeto no momento mais oportuno para faz-lo. Esta possibilidade sempre muito importante e conseqncia direta da teoria do GeneXus e, em particular, de sua propagao automtica das mudanas, caracterstica relevante e exclusiva.
Pgina 14
Integrao: o GeneXus tem um conjunto de objetos prprios totalmente integrados por concepo mas, a partir de sua verso X, permite integrar outros elementos, outros mdulos ou produtos desenvolvidos pela Artech ou por terceiros.
TENDNCIAS DO GENEXUS
GeneXus um produto com uma permanente evoluo. As tendncias desta evoluo podem ser representadas sobre quatro dimenses: COMPLETUDE, PRODUTIVIDADE, UNIVERSALIDADE e USABILIDADE. COMPLETUDE: Mede a percentagem de cdigo do sistema do usurio que gerado e mantido automaticamente pelo GeneXus. Desde 1992 a completude alcanada pelo GeneXus sempre de 100%, Este um compromisso fundamental porque permite a propagao automtica das mudanas, o que representa uma diminuio dramtica dos custos de desenvolvimento e manuteno. UNIVERSALIDADE: Mede a cobertura das diferentes plataformas importantes disponveis no mercado. Hoje GeneXus suporta todas as plataformas vivas, entendendo-se por plataformas vivas aquelas que tm uma importante e crescente base instalada (por exemplo: se as plataformas do Cloud Computing vierem a se transformar em sucesso, elas devero ser rapidamente suportadas pelo GeneXus). Desta maneira, GeneXus oferece aos clientes uma grande liberdade de eleio: se uma aplicao for desenvolvida para uma determinada plataforma, com o GeneXus o cliente pode sempre transferi-la para outra plataforma suportada sem custos importantes. PRODUTIVIDADE: Mede o aumento de produtividade do desenvolvimento com o GeneXus sobre o desenvolvimento com programao manual. O objetivo de aumento de produtividade do GeneXus foi, durante muitos anos, de 500%, o que era suficiente. Mas os sistemas de que precisam os clientes so a cada dia mais complexos porque existem novos dispositivos e novas necessidades; por cima de tudo, precisam de sistemas que preencham suas necessidades, por complexas que elas sejam, e que, no entanto, permaneam simples para os usurios que, em geral, no podero ser treinados. Adicionalmente, esses sistemas devem ser desenvolvidos cada vez em tempo menor: o time to market cada vez mais crtico. No ano 2004 modificaram-se esses objetivos passando a 1000% para a verso 9 e a 2000% para a verso X. USABILIDADE: Mede a facilidade de uso. E pretende faz-lo com carter geral: facilitar o uso aos usurios tcnicos, mas tambm aumentar o alcance permitindo que cada vez mais usurios no tcnicos possam utilizar GeneXus com proveito. S o fato de utilizar GeneXus acarreta um grande aumento da usabilidade: um desenvolvedor GeneXus pode construir excelentes aplicaes para uma determinada plataforma sem precisar de um conhecimento profundo dessa plataforma o que significa um nvel mnimo importante de usabilidade. Mas pretendemos ir muito alm: pretendemos que muitos mais usurios, cada vez com menos prrequisitos tcnicos, possam se beneficiar do uso do GeneXus.
Pgina 15
A verso X ir melhorar poderosamente a usabilidade e essa tendncia continuar nas prximas verses.
BIBLIOGRAFIA E REFERNCIAS
[1] ANSI-SPARC: Final report of the ANSI/X3/SPARC DBS-SG relational database task group (portal ACM, citation id=984555.1108830) [2] WARNIER-ORR: Warnier, J.D. Logical Construction of Programs. Van Nostrand Reinhold, N.Y., 1974.; Orr, K.T. Structured Systems Analysis. Englewood Cliffs, NJ, 1977: Yourdon Press; Kenneth T. Orr, Structured Systems Development, Prentice Hall PTR, Upper Saddle River, NJ, 1986. [3] JACKSON: Jackson, M.A. Principles of Program Design. London: Academic Press, 1975. [4] CODD: E. F. Codd, A relational model of data for large shared data banks, Communications of the ACM, v.13 n.6, p.377-387, June 1970 [5] REGRAS: Sem prejuzo das regras particulares que tem o modelo associado de uma determinada empresa, existem regras gerais, de validez permanente e independentes de qualquer aplicao. A ttulo de exemplo, veremos o seguinte: Necessidade da Consistncia: No pretendemos aqui tratar o tema detalhadamente, mas a principal fonte de regras, como em todas as cincias, a consistncia: supomos que a realidade consistente e, como conseqncia, toda representao que dela faamos necessariamente deve s-lo. Partindo deste princpio, podemos inferir muitas regras de validez geral que enriquecero nosso modelo. Um caso particular, simples mas muito importante, o da integridade referencial:
Pgina 16
1. Dado X, atributo simples ou composto, que chave de uma determinada tabela T1, se X aparece tambm em uma tabela T2, dada
uma fila de T2, deve existir uma fila de T1 onde T1.X = T2.X
2. Dado X, atributo simples ou composto, que chave de uma determinada tabela T1, e E, atributo simples ou composto tal que E =
subtipo(X), se E aparece em uma tabela T2, dada uma fila de T2, deve existir uma fila de T1 onde T1.X = T2.Y
3. Dado E, atributo simples ou composto, que aparece em uma Tabela T2 tal que no existe uma tabela T1 onde E chave nem X
(tal que E = subtipo(_X)) chave , E s pode aparecer na Tabela T2.
Pgina 17
CONTEDO
INTRODUO ..........................................................................................................................................................1 NOVO PARADIGMA: DESCREVER EM VEZ DE PROGRAMAR ......................................................................3 MODELO DE DADOS ..............................................................................................................................................5 MARCO DE REFERNCIA .....................................................................................................................................6 DESCRIO DA REALIDADE ...............................................................................................................................8 MODELO EXTERNO E KNOWLEDGE BASE ....................................................................................................13 SUMRIO DE CONCEITOS BSICOS DO GENEXUS ......................................................................................14 TENDNCIAS DO GENEXUS...............................................................................................................................15 BIBLIOGRAFIA E REFERNCIAS .......................................................................................................................16
Pgina 18