Академический Документы
Профессиональный Документы
Культура Документы
Herramientas y Metodologas
REALIDAD
BASE DE DATOS
PROGRAMAS
Nuestra tarea como profesionales de la informtica consiste en desarrollar y mantener aplicaciones para apoyar al usuario en su actividad. Para realizar esta tarea existen diferentes herramientas y metodologas. GeneXus es una herramienta para el desarrollo de aplicaciones sobre bases de datos. Su objetivo es permitir la implantacin de aplicaciones en el menor tiempo y con la mejor calidad posible. A grandes rasgos, el desarrollo de una aplicacin implica tareas de anlisis, diseo e implementacin. La va de GeneXus para alcanzar el objetivo anterior es liberar a las personas de las tareas automatizables (como el diseo de la base de datos), permitindoles as concentrarse en las tareas realmente difciles y no automatizables (como comprender los problemas del usuario). GeneXus emplea una metodologa que tiene un enfoque muy diferente al de las metodologas ms comnmente utilizadas. Por tanto, aprender a utilizar GeneXus adecuadamente va ms all de conocer un nuevo lenguaje: lo ms importante es aprender su metodologa.
BASE DE DATOS
PROGRAMAS
VISIONES DE USUARIOS
El primer problema al que nos enfrentamos en el desarrollo de aplicaciones es la obtencin del conocimiento de la realidad. Nadie dentro de la empresa conoce los requerimientos y el alcance de la aplicacin a desarrollar como un todo. Entonces, cmo logramos obtener el conocimiento de la realidad de una forma lo suficientemente objetiva y detallada al mismo tiempo, que nos permita construir un modelo corporativo? Este conocimiento se encuentra en cada una de las visiones de los usuarios. Cada usuario conoce bien los objetos con los que trabaja cotidianamente, la informacin que se maneja en ellos, las reglas que deben seguirse, los clculos que deben realizarse. Por lo tanto, el punto de partida de la metodologa GeneXus es: describir las visiones de los usuarios para modelar el sistema; y a partir del modelo de la realidad definido, GeneXus construye el soporte computacional -base de datos y programas- en forma totalmente automtica.
Comparacin de Metodologas
Para fijar ideas, comparemos las metodologas tradicionales ms utilizadas actualmente, con la metodologa utilizada por GeneXus, conocida como metodologa incremental. Las metodologas tradicionales difieren entre s en varios aspectos, pero tienen una caracterstica en comn: separan el anlisis de los datos del de los procesos. A continuacin veremos un esquema general que podra aplicarse a cualquiera de las metodologas tradicionales actuales y estudiaremos sus problemas.
Metodologa Tradicional
ANLISIS DE DATOS
REALIDAD
MODELO DE DATOS
PROGRAMAS PROGRAMACIN
La primera tarea que se realiza generalmente es el Anlisis de Datos, donde se estudia la realidad en forma abstracta, identificando los objetos existentes y sus relaciones y se obtiene como resultado un Modelo de Datos con las entidades y relaciones encontradas (Modelo ER). Es fcil ver que existe una correspondencia muy simple entre el modelo de datos y la base de datos necesaria para soportarlo. La siguiente tarea entonces, es disear esa base de datos, partiendo del modelo de datos. Construir un sistema integrado, requiere de un modelo de datos corporativo, y dependiendo del tamao de la empresa, sta puede resultar una tarea de enorme complejidad. Cuando esto ocurre, la complejidad suele atacarse dividiendo el sistema en mdulos (divide and conquer), cada uno de los cuales soluciona los problemas operativos de un rea especfica de la empresa. De esta forma la tarea de modelado se simplifica notablemente, pero como contrapartida los mdulos operan sin una real integracin, lo que provoca que exista informacin redundante, con todos los problemas que ello acarrea. En caso de que luego se intente realizar la integracin de esos mdulos, habr que realizar modificaciones sobre los modelos de datos, lo que a pesar de su complejidad es una tarea realizable. Sin embargo las modificaciones que debern efectuarse sobre los programas asociados tienen un costo tan elevado que suelen tornar inviable la integracin. Con la divisin del sistema en mdulos la empresa tendr resueltos sus problemas operativos, pero aparecern indefectiblemente problemas de carencia de informacin que permita orientar la gestin y la toma de decisiones de alto nivel. En la rbita gerencial la informacin que se necesita es principalmente de naturaleza corporativa, por lo que la divisin del sistema en mdulos no satisface las necesidades actuales de obtencin de informacin. GeneXus soluciona este problema, brindando herramientas y una metodologa que hacen posible y sencilla la creacin y mantenimiento de sistemas corporativos.
Una vez obtenido el modelo de datos, el siguiente paso de una metodologa tradicional es disear la base de datos. Existe una transformacin trivial entre un buen modelo de datos y el diseo de la base de datos necesaria para soportarlo. Sin embargo, el modelo de datos no es suficiente para desarrollar los programas de aplicacin, ya que el mismo describe los datos, pero no los comportamientos. Se recurre, entonces, a una tarea llamada Anlisis Funcional, donde se estudia la empresa desde el punto de vista de las funciones existentes, y el resultado de dicha tarea es una Especificacin Funcional. Sera deseable que la especificacin funcional fuera independiente de la especificacin de datos, lo que no ocurre en las metodologas estudiadas. Las modificaciones en el diseo de la base de datos implican la necesidad de revisar las especificaciones funcionales, siendo esta la causa fundamental de los grandes costos de mantenimiento que tienen estos sistemas. Una vez que se cuenta con la base de datos y la especificacin funcional, ya estn dadas las condiciones para crear los programas de la aplicacin. Para ello se cuenta hoy en da con varias alternativas: Programacin en lenguajes de tercera y cuarta generacin (L3G, L4G) Generacin/Interpretacin Desde un punto de vista conceptual no hay diferencia entre la programacin en lenguajes de 3ra. y de 4ta. generacin. En ambos casos el analista debe estudiar el problema, transformarlo en un algoritmo y codificarlo en el lenguaje de programacin elegido. La principal diferencia radica en que en los lenguajes de 4ta. generacin se escribe mucho menos cdigo (aproximadamente 10 veces menos) y, como consecuencia, la productividad es mucho mayor y el nmero de errores cometidos es mucho menor. El problema de que las descripciones de los procesos dependen de la base de datos afecta a ambos por igual, por lo que se concluye que los lenguajes de 4ta. generacin permiten aumentos de productividad muy grandes sobre los de 3ra. en la tarea de desarrollo, pero no ayudan en la etapa de mantenimiento. Otra alternativa es la utilizacin de un generador: una herramienta que puede interpretar una especificacin funcional y producir automticamente los programas. Aqu existe una diferencia conceptual importante con el caso anterior. En este caso el analista describe el problema de una forma declarativa (no existe algoritmo ni codificacin procedural alguna). Por ello la especificacin funcional debe ser formal y rigurosa. Existen actualmente en el mercado varias herramientas de esta clase. Existe asimismo otra categora de herramientas conceptualmente idntica: la de aquellas que simplemente interpretan la especificacin. La programacin en ambos casos es totalmente automtica, por lo que el aumento de productividad sobre las herramientas de 3ra. y 4ta. generacin es muy grande. El problema visto -las descripciones de los procesos dependen de la base de datos- afecta tambin a las aplicaciones generadas mediante estas herramientas. Como consecuencia, los Generadores e Intrpretes (como los lenguajes de 4ta. generacin) no ayudan lo suficiente en la tarea de mantenimiento. En definitiva, desde el punto de vista del mantenimiento ninguna de las herramientas ayuda mucho, dado que en todas ellas se utilizan descripciones de procesos que pueden perder su validez cuando existen modificaciones de archivos y que, por ello, deben ser revisadas y mantenidas manualmente. El costo de mantenimiento, claro est, difiere enormemente entre las distintas alternativas vistas, ya que en el caso de la utilizacin de Generadores o Intrpretes, una vez modificadas las especificaciones funcionales la generacin de los programas es automtica. Si el siguiente postulado: puede obtenerse una base de datos estable fuera verdadero, los problemas anteriores seran irrelevantes. Sin embargo, sobran contraejemplos que hablan de lo contrario. Conclusiones: No es posible hacer de forma abstracta un modelo de datos detallado de la empresa y con el suficiente nivel de detalle y objetividad porque nadie la conoce como un todo. Por el contrario, es necesario recurrir a mltiples interlocutores, cada uno de los cuales aporta su propia subjetividad. Como consecuencia, durante todo el ciclo de vida de la aplicacin se producen cambios en el modelo.
Aun si se considerara la situacin ideal, en la cul se conocen exactamente las necesidades y por tanto es posible definir la base de datos ptima, el modelo, de todas formas, no podr permanecer esttico, ya que debe acompaar la evolucin de la empresa. Todo esto sera poco importante si la especificacin funcional y la base de datos fueran independientes. Sin embargo, dado que la especificacin funcional se refiere a la base de datos, las inevitables modificaciones en esta ltima, implican modificaciones (manuales) en la primera. Las principales consecuencias de lo anterior son los altos costos de mantenimiento: en la mayora de las empresas que trabajan de una manera convencional se admite que el 80% de los recursos que tericamente estn destinados al desarrollo, realmente se utilizan para hacer mantenimiento de las aplicaciones ya implementadas. Dado que es muy difcil en este contexto determinar y propagar las consecuencias de los cambios de la base de datos sobre los procesos, es habitual que en vez de efectuarse los cambios necesarios, se opte por introducir nuevos archivos redundantes con la consiguiente degradacin de la calidad de los sistemas y el incremento de los costos de mantenimiento.
Metodologa GeneXus
Los fundadores de ARTech han desarrollado una amplia actividad de consultora internacional en diseo de grandes bases de datos, trabajando con verdaderos modelos corporativos con cientos de tablas. En su trayectoria, se convencieron de que no deba perderse ms tiempo buscando algo que no existe: las bases de datos estables. Luego de importantes investigaciones, desarrollaron una teora, organizaron una metodologa e implementaron una herramienta para posibilitar el desarrollo incremental y permitir la convivencia con las bases de datos reales inestables- a un costo mnimo.
REALIDAD
DESCRIPCIN DE OBJETOS
Utilizando GeneXus, la tarea bsica del analista es la descripcin de la realidad. Slo el ser humano puede desarrollar esta tarea ya que slo l puede entender el problema del usuario. El analista GeneXus trabaja en alto nivel, en vez de realizar tareas de bajo nivel como: disear archivos, normalizar, disear programas, programar, buscar y eliminar los errores de los programas. Para comenzar el desarrollo de una aplicacin con GeneXus, el primer paso consiste en crear un nuevo proyecto o base de conocimiento. Una vez creada una nueva base de conocimiento (en ingls: knowledge base; abreviado: KB), el siguiente paso es describir las visiones de los usuarios. Para ello se deben identificar los objetos de la realidad (prestando atencin a los sustantivos que los usuarios mencionan en sus descripciones, como por ejemplo: clientes, productos, facturas) y pasar a definirlos mediante objetos GeneXus. Con la definicin de estos objetos, GeneXus puede extraer el conocimiento y disear la base de datos y los programas de la aplicacin en forma automtica.
10
REALIDAD
DESCRIPCIN DE OBJETOS
BASE DE DATOS
BASE DE CONOCIMIENTO
PROGRAMAS
A partir de los objetos definidos en la base de conocimiento, GeneXus genera automticamente tanto los programas de creacin / reorganizacin de la base de datos como los programas de la aplicacin. Luego, si un objeto de la realidad cambia, si se identifican nuevas o diferentes caractersticas del mismo, o si se encuentran objetos an no modelados, el analista GeneXus debe reflejar dichos cambios en los objetos GeneXus que correspondan, y la herramienta se encargar automticamente de realizar las modificaciones necesarias tanto en la base de datos como en los programas asociados. La metodologa GeneXus es una metodologa incremental, pues parte de la base de que la construccin de un sistema se realiza mediante aproximaciones sucesivas. En cada momento el analista GeneXus define el conocimiento que tiene y luego cuando pasa a tener ms conocimiento (o simplemente diferente) lo refleja en la base de conocimiento y GeneXus se ocupar de hacer automticamente todas las adaptaciones en la base de datos y programas. Si GeneXus no fuera capaz de realizar automticamente las modificaciones en la base de datos y programas conforme se realicen cambios que as lo requieran, el desarrollo incremental sera inviable.
11
Comparacin de Metodologas
ANLISIS DE DATOS
REALIDAD
DESCRIPCIN DE OBJETOS
MODELO DE DATOS
BASE DE CONOCIMIENTO
ESPECIFICACIN FUNCIONAL
PROGRAMACIN
PROGRAMAS
Como se ha visto, existen varios caminos para la implementacin de aplicaciones: 1. Programacin utilizando lenguajes de 3era. generacin. 2. Programacin utilizando lenguajes de 4ta. generacin 3. Generacin / interpretacin automtica de la especificacin funcional. 4. Desarrollo incremental. La productividad en el desarrollo de aplicaciones aumenta de arriba a abajo. Disminuir en gran forma el mantenimiento de las aplicaciones (datos y programas), slo se consigue con el desarrollo incremental.
12
Una vez creada una base de conocimiento, el siguiente paso consiste en comenzar a describir los objetos de la realidad mediante objetos GeneXus. Los objetos GeneXus ms importantes son: Transacciones Permiten definir los objetos de la realidad que el usuario manipula (ej: clientes, productos, proveedores, facturas, etc.). Son los primeros objetos en definirse, ya que a travs de las transacciones, GeneXus infiere el diseo de la base de datos. Adems de tener por objetivo la definicin de la realidad y la consecuente creacin de la base de datos normalizada, cada transaccin tiene asociada una pantalla para ambiente windows y otra para ambiente Web, para permitir al usuario dar altas, bajas y modificaciones en forma interactiva a la base de datos. El analista GeneXus decidir si trabajar en ambiente windows, Web, o ambos, y GeneXus generar los programas para ello. Reportes Permiten recuperar informacin de la base de datos, y desplegarla ya sea en la pantalla, en un archivo o impresa en papel. Son los tpicos listados o informes. No permiten actualizar la informacin de la base de datos1. Procedimientos Tienen las mismas caractersticas que los reportes, pero a diferencia de stos, permiten adems la actualizacin de la informacin de la base de datos. Work Panels Permiten al usuario realizar interactivamente consultas a la base de datos, a travs de una pantalla. Ejemplo: un work panel permite al usuario ingresar un rango de caracteres, y muestra a continuacin todos los clientes cuyos nombres se encuentran dentro del rango. Son objetos muy flexibles que se utilizan exclusivamente en ambiente windows y se prestan para mltiples usos. No permiten la actualizacin de la base de datos, sino solo su consulta1. -----------------------------------------------------------------------------------------------------1 No es inherente a este tipo de objetos la modificacin de la base de datos, pero como veremos ms adelante, existen unos componentes llamados business components que lo harn posible, rompiendo con su naturaleza de solo consulta.
13
Web Panels Son similares a los work panels, salvo que son usados a travs de browsers en ambiente Internet/Intranet/Extranet. Existen algunos tipos ms de objetos GeneXus, algunos de los cuales veremos en este curso, como los Subtype Groups y los Structured Data Types, que si bien son objetos que se definen en la base de conocimiento (KB) mediante el mismo procedimiento que los ya mencionados, tienen algunas caractersticas que los diferencian de la mayora de ellos, como el hecho de no generar programas propios, sino que su conocimiento es reutilizado dentro de los otros objetos.
14
Base de Datos
Los primeros objetos que se definen son las transacciones, ya que es a partir de ellas que GeneXus extrae el conocimiento necesario para disear el modelo de datos normalizado (en 3era. forma normal). Luego se van definiendo los dems objetos que correspondan.
15
Base de Datos
Programas Creacin BD
GeneXus genera automticamente los programas necesarios para crear la base de datos y los ejecuta. De esta manera obtenemos la base de datos creada por GeneXus en forma automtica.
16
Base de Datos
Programas de Aplicacin
(Trns, Rpts, Procs, Wkps, Wbps, DVs)
Luego, GeneXus genera programas de aplicacin para interactuar con la base de datos previamente creada.
17
Base de Datos
Programas de Aplicacin
(Trns, Rpts, Procs, Wkps, Wbps, DVs)
Una vez creada la base de datos y generados los programas, contamos con una aplicacin pronta para ejecutar.
18
Base de Datos
Programas de Aplicacin
(Trns, Rpts, Procs, Wkps, Wbps, DVs)
Durante el ciclo de vida de la aplicacin, surgir repetidamente la necesidad de hacer modificaciones en la base de conocimiento, ya sea porque las visiones de los usuarios cambian, porque se deben hacer correcciones, o simplemente agregar nuevo conocimiento. Las modificaciones que se realicen sobre la base de conocimiento sern analizadas por GeneXus para evaluar si es necesario efectuar cambios en la base de datos (por ejemplo: modificacin/creacin de tablas/ndices), o no. En caso de detectar cambios para efectuar en la base datos, GeneXus detallar los mismos en un reporte de anlisis de impacto (IAR: Impact Analisis Report), que es un reporte que explicita todos los cambios sobre tablas, ndices, datos, etc. que habra que realizar para reflejar la nueva realidad. Asimismo, en el reporte de anlisis de impacto se informan los eventuales problemas que los cambios en cuestin podran ocasionar, como inconsistencias o redundancias.
19
Anlisis de impacto
Base de Datos
Programas de Aplicacin
(Trns, Rpts, Procs, Wkps, Wbps, DVs)
Algunas veces la nueva base de datos coincide con la anterior. Otras veces esto no ocurre, y la base de datos debe sufrir alguna modificacin para representar la nueva realidad. El analista debe estudiar el reporte de anlisis de impacto y resolver si desea realizar efectivamente los cambios en la base de datos, o renunciar a ello dejando la base de datos como estaba.
20
Programas de Reorganiz.
Base de Datos
Programas de Aplicacin
(Trns, Rpts, Procs, Wkps, Wbps, DVs)
Si el analista opta por aplicar los cambios propuestos, decimos que opt por reorganizar la base de datos. Utilizamos este trmino para referirnos a la accin de aplicar cambios fsicos sobre la base de datos. GeneXus generar los programas que implementan las modificaciones sobre las estructuras fsicas de la base de datos, y mediante su ejecucin nos brindar la nueva versin de la base de datos con los cambios efectuados.
21
Ya sea que se requiera reorganizar la base de datos o no, considerando las nuevas definiciones introducidas y a pedido del analista, GeneXus estudiar el impacto de los cambios sobre los programas actuales. El analista podr seleccionar sobre cules objetos quiere realizar el anlisis (si sobre todos, los que hayan sufrido cambios, o algunos en particular) y para cada objeto analizado, GeneXus indicar si es necesario realizar cambios en su programa de aplicacin, o no.
22
Generacin de programas
Por ltimo, a pedido del analista, GeneXus proseguir con la generacin/regeneracin de los programas de aplicacin que sean necesarios, obteniendo as una nueva versin de la aplicacin.
23
De modo que nuevamente contaremos con una aplicacin pronta para ejecutar, con los cambios aplicados.
24
Metodologa Incremental
Consiste en construir una aplicacin mediante aproximaciones sucesivas.
DEFINICION INICIAL
La construccin automtica de la base de datos y programas, permite a GeneXus aplicar esta metodologa de desarrollo, conocida como metodologa incremental. Como ya hemos explicado, este proceso se realiza mediante aproximaciones sucesivas.
25
Modelos