Está en la página 1de 32

1

INTRODUCCIN TERICA INTRODUCCIN TERICA


2
BASE
DE
DATOS
PROGRAMAS
REALIDAD
Herramientas y Metodologas Herramientas y Metodologas
Nuestra tarea como profesionales de la informatica consiste en desarrollar y
mantener aplicaciones para apoyar al usuario en su actividad. Para realizar esta
tarea existen diferentes herramientas y metodologias.
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.
GeneXus emplea una metodologia que tiene un enfoque muy diferente al de las
metodologias mas comunmente utilizadas. Por tanto, aprender a utilizar
GeneXus adecuadamente va mas alla de conocer un nuevo lenguaje de
especificacin: lo mas importante es el aprendizaje de una nueva metodologia
de desarrollo.
3
BASE
DE
DATOS
PROGRAMAS
VISIONES
DE
USUARIOS
Satisface
MODELO DE
LA REALIDAD
Ingenieria Inversa
Modelado de la realidad Modelado de la realidad
a partir de las visiones a partir de las visiones
de los usuarios de los usuarios
El primer problema al que nos enfrentamos en el desarrollo de aplicaciones es la
obtencin del conocimiento de la realidad.
cCmo 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?
Dado que los usuarios conocen los objetos con los que trabajan cotidianamente,
conocen la informacin que se maneja en ellos, las reglas que deben seguirse, los
clculos que deben realizarse, entonces, por qu no utilizar esas visiones de los
objetos de su realidad como fuente de informacin?
Puede demostrarse que dado un conjunto de visiones de datos de usuarios, existe
una y solo una base de datos mnima que las satisface. En este estado, el problema
se ha transformado en un problema matemtico, y solo es preciso resolverlo para
lograr automatizar la construccin de la base de datos.
De modo que si se utilizan las visiones que los usuarios tienen de los objetos como
fuente de informacin, a partir de la sntesis de esas visiones, se podra obtener,
mediante ingeniera inversa, el modelo de datos que refleje esa realidad. Este
mtodo es conocido como "sntesis de visiones cannicas.
El punto de partida de la metodologa GeneXus es describir las visiones de los
usuarios para modelar el sistema. A partir de este modelo, GeneXus construye el
soporte computacional (base de datos y programas) para soportarlo.
4
Comparacin Comparacin
de de
Metodologas 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 podria aplicarse a cualquiera
de las metodologias tradicionales actuales y estudiaremos sus problemas.
5
Metodologa Tradicional Metodologa Tradicional
6
ANLISIS
DE
DATOS
BASE
DE
DATOS
ANLISIS
FUNCIONAL
PROGRAMACIN
PROGRAMAS
GENERACIN/
INTERPRETACIN
ESPECIFICACIN
FUNCIONAL
MODELO
DE
DATOS
REALIDAD
La primer 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 facil 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
disenar esa base de datos, partiendo del modelo de datos.
Construir un sistema integrado, requiere de un modelo de datos
corporativo, y dependiendo del tamano 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 area especifica 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,
habra que realizar modificaciones sobre los modelos de datos, lo cual, a
pesar de su complejidad, es una tarea realizable. Sin embargo las
modificaciones que deberan efectuarse sobre los programas asociados
tienen un costo tan elevado que tornan inviable la integracin.
7
Con la divisin del sistema en mdulos la empresa tendra resueltos sus problemas operativos,
pero apareceran 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 metodologia que hacen
posible y sencilla la creacin y mantenimiento de sistemas corporativos.
Continuando con el proceso de desarrollo en una metodologia tradicional, una vez obtenido el
modelo de datos, el siguiente paso es disenar la base de datos. Existe una transformacin
trivial entre un buen modelo de datos, y el diseno 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.
Seria deseable que la especificacin funcional fuera independiente de la especificacin de datos,
pero esto no es asi en las metodologias estudiadas. Las modificaciones en el diseno de la base
de datos, implican la necesidad de revisar las especificaciones funcionales, siendo esta la causa
fundamental de los grandes costos de mantenimiento.
Una vez que se cuenta con la base de datos y la especificacin funcional, ya estan dadas las
condiciones para crear los programas de la aplicacin.
Para ello se cuenta hoy en dia con varias alternativas:
-Programacin en lenguajes de tercera y cuarta generacin:
- Lenguajes de 3ra. Generacin (L3G): lenguajes de bajo nivel como COBOL, RPG, C,
Pascal, ADA, FORTRAN
- Lenguajes de 4ta. Generacin (L4G): lenguajes de alto nivel como CA IDEAL,
INFORMIX 4GL, NATURAL 2, PROGRESS
-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 entre ambas alternativas 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 numero de errores cometidos es mucho
menor.
8
Puede argumentarse que con los lenguajes de 4ta. generacin se pierde flexibilidad, lo que
es cierto en trminos tericos pero irrelevante en trminos practicos, dado que actualmente
estas herramientas estan dotadas de primitivas que permiten complementar su cdigo, por
lo que su aplicabilidad ha crecido mucho.
Ahora, el problema visto 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 ayudan bastante poco en la etapa de mantenimiento.
Otra alternativa posible, es la utilizacin de un generador", que es una herramienta que
puede interpretar una especificacin funcional y producir automaticamente los programas.
Aqui 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 en este caso la especificacin funcional debe ser formal y
rigurosa. Algunos ejemplos de herramientas de esta clase son ADELIA, AS/SET, LANSA,
SYNON, TELON, etc.
Existe otra categoria de herramientas conceptualmente idntica: la de aquellas que
simplemente interpretan" la especificacin, como MAGIC y SAPIENS, entre otras. La
programacin en ambos casos es totalmente automatica, por lo que el aumento de
productividad sobre las herramientas de 3ra. y 4ta. generacin es muy grande.
Podria argumentarse en contrario, como a menudo se ha hecho con las herramientas de 4ta.
generacin, que se pierde flexibilidad con estas herramientas, lo que otra vez es cierto en
trminos tericos, pero es irrelevante en trminos practicos, ya que hoy en dia estas
herramientas estan dotadas de Lenguajes de Diagramas de Accin (en la practica lenguajes
de 4ta. generacin), que permiten complementar su cdigo, por lo que su aplicabilidad ha
crecido mucho.
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 y los Intrpretes (como los lenguajes de 4ta. generacin) ayudan bastante
poco en la tarea de mantenimiento.
En definitiva, resumiendo las tres opciones vistas:
Lenguajes de 3ra. Generacin
Baja productividad en el desarrollo
Lenguajes de 4ta. Generacin
Buen aumento de productividad en el desarrollo sobre L3G.
Generadores/Intrpretes
Buen aumento de productividad en el desarrollo sobre L3G y L4G.
9
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. Por supuesto, el costo de mantenimiento difiere mucho entre
las distintas alternativas vistas, ya que por ejemplo, en el caso de la utilizacin de
Generadores o Intrpretes, una vez modificadas las especificaciones funcionales, la
generacin de los programas es automatica.
Si el postulado de que puede obtenerse una base de datos estable" fuera verdadero,
entonces los problemas anteriores serian irrelevantes. Sin embargo, lamentablemente
este postulado es falso y sobran los contraejemplos que lo demuestran.
Conclusin:
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 multiples 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 cual se conocen exactamente las
necesidades y por tanto es posible definir la base de datos ptima, el modelo, de todas
formas, no podra permanecer estatico, ya que debe acompanar la evolucin de la
empresa.
Todo esto seria 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 ultima, implican modificaciones (manuales)
en la primera.
Las principales consecuencias de lo anterior son los altos costos de mantenimiento: en la
mayoria de las empresas que trabajan de una manera convencional se admite que el 80%
de los recursos que tericamente estan destinados al desarrollo, realmente se utilizan
para hacer mantenimiento de las aplicaciones ya implementadas.
Dado que es muy dificil 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.
10
Metodologa Metodologa GeneXus 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.
11
Desarrollo con Desarrollo con GeneXus GeneXus
REALIDAD
DESCRIPCIN
DE OBJETOS
Utilizando GeneXus, la tarea basica del analista es la descripcin de la realidad.
Slo el hombre 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: disenar archivos, normalizar, disenar 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 (cuyo trmino en ingls es:
knowdlege base), 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
disenar la base de datos y los programas de la aplicacin en forma totalmente
automtica.
12
REALIDAD
Desarrollo con Desarrollo con GeneXus GeneXus
DESCRIPCIN
DE OBJETOS
BASE
DE
DATOS
PROGRAMAS
BASE DE
CONOCIMIENTO
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.
Si un objeto de la realidad cambia, si se identifican nuevas o diferentes
caracteristicas acerca del mismo, o si se encuentran objetos aun no
modelados, el analista GeneXus debe reflejar dichos cambios en los
objetos GeneXus que corresponda, y la herramienta se encargara
automaticamente de realizar las modificaciones necesarias tanto en la base
de datos como en los programas asociados.
La metodologia GeneXus es una metodologa incremental, pues parte de
la base 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 mas conocimiento (o simplemente diferente), lo
refleja en la base de conocimiento, y GeneXus se ocupara de hacer
automaticamente todas las adaptaciones en la base de datos y programas.
Si GeneXus no fuera capaz de realizar automaticamente las modificaciones
en la base de datos y programas conforme se realicen cambios que asi lo
requieran, el desarrollo incremental seria inviable.
13
Comparacin de Comparacin de
Metodologas Metodologas
ANLISIS
DE
DATOS
BASE
DE
DATOS
ANLISIS
FUNCIONAL
MODELO
DE
DATOS
REALIDAD
PROGRAMACIN
PROGRAMAS
GENERACIN/
INTERPRETACIN
ESPECIFICACIN
FUNCIONAL
DESCRIPCIN
DE OBJETOS
BASE DE
CONOCIMIENTO
Como se ha visto, existen varios caminos para la implementacin de
aplicaciones:
1. Programacin utilizando lenguaje 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.
14
Reportes
{Rpts)
Procedimientos
{Procs)
Work Panels
{Wkps)
Web Panels
{Wbps)
Data Views
{DVs)
Objetos Objetos GeneXus GeneXus
(los ms importantes) (los ms importantes)
Transacciones
{Trns)
Y hay ms, que veremos...
Una vez creada una nueva base de conocimiento, el siguiente paso consiste
en comenzar a describir los objetos de la realidad mediante objetos
GeneXus.
Los objetos GeneXus mas importantes son:
Transacciones
Permiten definir objetos de la realidad -reales o imaginarios- 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 diseno de la base de datos.
Ademas 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 decidira si trabajar en ambiente
windows, web, o ambos, y GeneXus generara 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 tipicos listados o
informes. No permiten actualizar la informacin de la base de datos.
Procedimientos
Tienen las mismas caracteristicas que los reportes, pero a diferencia de
stos, permiten ademas la actualizacin de la informacin de la base de
datos.
15
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 prestan para multiples usos.
No permiten la actualizacin de la base de datos, sino solo consultarla.
Web Panels
Son similares a los work panels, salvo que son usados a travs de browsers en
ambiente Internet/Intranet/Extranet.
Data Views
Permiten manejar archivos externos como si fueran archivos pertenecientes a
la base de conocimiento.
Existen algunos tipos mas de objetos GeneXus. Los mencionados son los mas
basicos y de mayor importancia.
16
Proceso de desarrollo de una Proceso de desarrollo de una
aplicacin con aplicacin con GeneXus GeneXus
Base de Conocimiento
Base de Conocimiento
Base Base
de de
Datos Datos
Transacciones
(Trns)
Reportes
(Rpts)
Procedimientos
(Procs)
Work Panels
(Wkps)
Web Panels
(Wbps)
Data Views
(DVs)
Los primeros objetos que se definen son las transacciones, ya que es a partir
de ellas que GeneXus extrae el conocimiento necesario para disenar el
modelo de datos normalizado (en 3era. forma normal).
17
Creacin de la Base de Datos Creacin de la Base de Datos
Base Base
de de
Datos Datos
Programas
Creacin
BD
Base de Conocimiento
Base de Conocimiento
Transacciones
(Trns)
Reportes
(Rpts)
Procedimientos
(Procs)
Work Panels
(Wkps)
Web Panels
(Wbps)
Data Views
(DVs)
GeneXus genera automaticamente 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 automatica.
18
Programas de Aplicacin
(Trns, Rpts, Procs, Wkps, Wbps, DVs)
Generacin de los Generacin de los
Programas de la Aplicacin Programas de la Aplicacin
Base de Conocimiento
Base de Conocimiento
Base Base
de de
Datos Datos
Transacciones
(Trns)
Reportes
(Rpts)
Procedimientos
(Procs)
Work Panels
(Wkps)
Web Panels
(Wbps)
Data Views
(DVs)
Luego, GeneXus genera programas de aplicacin para interactuar con la
base de datos previamente creada.
19
Resultado final en la Etapa de Resultado final en la Etapa de
Desarrollo Desarrollo
Base de Conocimiento
Base de Conocimiento
Programas de Aplicacin
(Trns, Rpts, Procs, Wkps, Wbps, DVs)
Base Base
de de
Datos Datos
Transacciones
(Trns)
Reportes
(Rpts)
Procedimientos
(Procs)
Work Panels
(Wkps)
Web Panels
(Wbps)
Data Views
(DVs)
En este estado la aplicacin est pronta; es decir, una vez que se ha creado la
base de datos y se han generado los programas, la aplicacin se puede
ejecutar.
20
Las visiones de los usuarios Las visiones de los usuarios
cambian cambian
Base de Conocimiento
Base de Conocimiento
Nueva Nueva
Base Base
de de
Datos Datos
Nuevas
Transacciones
Nuevos
Reportes
Nuevos
Procedimientos
Nuevos
Work Panels
Nuevos
Web Panels
Base Base
de de
Datos Datos
Nuevos
Data Views
Programas de Aplicacin
(Trns, Rpts, Procs, Wkps, Wbps, DVs)
Durante el ciclo de vida de la aplicacin, surgira 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 agregar nuevo
conocimiento.
Las modificaciones que se realicen en la base de conocimiento, seran analizadas
por GeneXus para evaluar si es necesario efectuar cambios en la base de datos
(modificacin/creacin de tablas/indices), o no.
En caso de tener que realizar cambios, GeneXus detallara los mismos en un
reporte de anlisis de impacto (IAR: Impact Analisis Report), que es un
reporte que explicita todos los cambios sobre tablas, indices, datos, etc. que
habria que realizar para reflejar la nueva realidad.
Asimismo, el anlisis de impacto informa los eventuales problemas que los
cambios en cuestin podrian ocasionar, como inconsistencias o redundancias.
21
Anlisis de Impacto Totalmente Anlisis de Impacto Totalmente
Automtico Automtico
Anlisis
de
impacto
Base de Conocimiento
Base de Conocimiento
Nueva Nueva
Base Base
de de
Datos Datos
Base Base
de de
Datos Datos
Nuevas
Transacciones
Nuevos
Reportes
Nuevos
Procedimientos
Nuevos
Work Panels
Nuevos
Web Panels
Nuevos
Data Views
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 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.
22
Generacin de Programas de Generacin de Programas de
Reorganizacin de la Base de Datos Reorganizacin de la Base de Datos
Nueva Nueva
Base Base
de de
Datos Datos
Programas
de
Reorganiz.
Base Base
de de
Datos Datos
Base de Conocimiento
Base de Conocimiento
Nuevas
Transacciones
Nuevos
Reportes
Nuevos
Procedimientos
Nuevos
Work Panels
Nuevos
Web Panels
Nuevos
Data Views
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 fisicos sobre la base de datos.
GeneXus generara los programas que implementan las modificaciones sobre las
estructuras fisicas de la base de datos -reportadas en el IAR- y mediante su
ejecucin, nos brindara la nueva versin de la base de datos con los cambios
efectuados.
23
Anlisis automtico del impacto de Anlisis automtico del impacto de
los cambios sobre los programas los cambios sobre los programas
Nueva Nueva
Base Base
de de
Datos Datos
Anlisis
de Impacto
sobre los
programas
Base de Conocimiento
Base de Conocimiento
Nuevas
Transacciones
Nuevos
Reportes
Nuevos
Procedimientos
Nuevos
Work Panels
Nuevos
Web Panels
Nuevos
Data Views
Nuevos Programas de Aplicacin
(Trns, Rpts, Procs, Wkps, Wbps, DVs)
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 puede 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.
24
Generacin automtica de nuevos Generacin automtica de nuevos
programas programas
Nueva Nueva
Base Base
de de
Datos Datos
Generacin
de
programas
Base de Conocimiento
Base de Conocimiento
Nuevas
Transacciones
Nuevos
Reportes
Nuevos
Procedimientos
Nuevos
Work Panels
Nuevos
Web Panels
Nuevos
Data Views
Nuevos Programas de Aplicacin
(Trns, Rpts, Procs, Wkps, Wbps, DVs)
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.
25
Nueva realidad, con los cambios Nueva realidad, con los cambios
en la aplicacin en la aplicacin
Nueva Nueva
Base Base
de de
Datos Datos
Base de Conocimiento
Base de Conocimiento
Nuevas
Transacciones
Nuevos
Procedimientos
Nuevos
Work Panels
Nuevos
Web Panels
Nuevos
Data Views
Nuevos
Reportes
Nuevos Programas de Aplicacin
(Trns, Rpts, Procs, Wkps, Wbps, DVs)
Nuevamente la aplicacin estar apta para ejecutarse, con los cambios aplicados.
26
Consiste en construir una aplicacin mediante aproximaciones
sucesivas.
DEFINICION
INICIAL
Metodologa Incremental Metodologa Incremental
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.
27
Modelos Modelos
Dentro de una base de conocimiento coexisten varios modelos
En particular, existe un modelo que se crea automticamente al
crear una nueva base de conocimiento: el modelo de Diseo
BASE DE CONOCIMIENTO
modelo
de
Diseo
El modelo de Diseo corresponde a la representacin lgica del sistema,
esto es, permite describir la aplicacin sin implementarla.
Esto significa que no existir una base de datos fsica asociada a este
modelo, as como tampoco programas de aplicacin ejecutables. Estos
ltimos existirn solo a un nivel conceptual o lgico.
Son los objetos GeneXus que el analista haya definido dentro de este
modelo los que principalmente describen al sistema. En particular, de las
transacciones especificadas GeneXus obtiene el diseo lgico de la base
de datos, y ellas, en conjunto con el resto de los objetos definidos,
constituyen la descripcin lgica de los programas.
Los programas sern el resultado de la codificacin de los objetos
GeneXus en el lenguaje de programacin elegido por el analista, sobre
una base de datos fsica.
Pero esta implementacin (base de datos y programas), que es
enteramente realizada por GeneXus, dnde se realiza?
Aqu es donde entran en juego los otros modelos que pueden definirse
dentro de la base de conocimiento. Cada uno de estos otros modelos,
contendrn una implementacin del sistema.
28
Modelos Modelos
Existen otros modelos que son creados en forma explcita por el
analista
Por qu tener varios de estos modelos, en lugar de uno solo?
Entre otras razones: para tener cualquier nmero de implementaciones del
mismo sistema, asociadas a diferentes plataformas o ambientes (por
ejemplo: iSeries, PC, Client/Server, Web, etc.).
BASE DE CONOCIMIENTO
modelo
de
Diseo
otro
modelo
otro
modelo
otro
modelo
A diferencia del modelo de Diseo que es creado automticamente,
estos otros modelos son creados en forma explcita por el analista. Al
hacerlo, ste debe ingresar los datos de la plataforma o ambiente de
implementacin correspondiente (lenguaje de programacin, DBMS, etc.)
para que GeneXus pueda implementar el sistema para ese modelo.
Los objetos GeneXus definidos en el modelo de Diseo se copian al nuevo
modelo y stos son los que GeneXus codifica para dicho modelo de
acuerdo a su plataforma.
29
Tipos de Modelos Tipos de Modelos
Cada modelo tiene un tipo:
Design (Diseo):
Un slo modelo en la misma base de conocimiento
No tiene base de datos ni programas de aplicacin asociados
Prototype/Production (Prototipo/Produccin):
Pueden haber varios modelos en la misma base de
conocimiento
Cada uno de estos modelos tiene una base de datos asociada
y programas de aplicacin que se generan para la
plataforma o ambiente elegido
Por cada base de conocimiento, habr un y solo un modelo de Diseo, cuya
caracterstica fundamental es que representa al sistema conceptualmente.
Los otros dos tipos se parecen mucho entre s, dado que todo modelo de
Prototipo o Produccin tiene asociada una plataforma o ambiente que le permite
implementar fsicamente el sistema, siendo sta la caracterstica fundamental
que diferencia a estos modelos del de Diseo. La principal diferencia entre ellos
es conceptual (no funcional) y radica en el uso que se hace de los mismos:
- Un modelo de Prototipo se utiliza en la etapa de desarrollo, justamente para
prototipar la aplicacin -de all su nombre- probando lo modelado, haciendo
modificaciones, volviendo a probar.
-Un modelo de Produccin, por el contrario, se utiliza en la etapa de puesta en
produccin, cuando el prototipo fue aprobado y la aplicacin o los cambios
efectuados ya pueden ser llevados al cliente.
Cuando una aplicacin implementada en GeneXus ha sido puesta en
produccin, necesariamente debern haber al menos 3 modelos definidos en la
base de conocimiento:
-el de Diseo, pues se crea automticamente al crear la base de conocimiento
-uno de Prototipo, utilizado para ir desarrollando y probando la aplicacin
-uno de Produccin, pues es necesario tener una imagen fiel de la aplicacin
que se lleva al cliente, en la plataforma de produccin, como veremos
oportunamente.
30
Diseo
Prototipo Produccin
Ciclos de desarrollo Ciclos de desarrollo
En el desarrollo incremental de una aplicacin, pasaremos repetidamente
del modelo de Diseo al de Prototipo con el que estemos probando la
aplicacin, y de ste nuevamente al de Diseo. Con menor frecuencia se
pasar a Produccin.
Ciclo de prototipacin
El bucle Diseo-Prototipo se recorre repetidamente, construyendo y
probando sucesivos prototipos.
Ciclo de produccin
El bucle Diseo-Produccin se recorre menos frecuentemente, ya que
este ciclo corresponde a la puesta en produccin del sistema y esto se
realiza solamente cuando el prototipo ha sido aprobado o luego de haber
instrumentado y probado algn cambio.
31
Ventajas de la Ventajas de la Prototipacin Prototipacin
Permite ver resultados en forma temprana
Permite el seguimiento de los
requerimientos del usuario
Deteccin de errores en forma temprana
Logra el compromiso de los usuarios con el
desarrollo
Sistemas de mejor calidad
Toda comunicacin es susceptible de errores:
El usuario olvida ciertos detalles
El analista no toma nota de algunos elementos
El usuario se equivoca en algunas apreciaciones
El analista malinterpreta algunas explicaciones del usuario
Como la implementacin de sistemas es habitualmente una tarea que insume
bastante tiempo, y muchos de estos problemas slo son detectados en las pruebas
finales del sistema, el costo en tiempo y dinero de solucionarlos se torna muy
grande. Sabido es que la realidad no permanece esttica, por lo que no es razonable
suponer que se pueden mantener congeladas las especificaciones mientras se
implementa el sistema. Sin embargo, debido al tiempo que suele insumir la
implementacin, muchas veces esto se hace y se acaba implementando una solucin
relativamente insatisfactoria.
El impacto de estos problemas disminuira mucho si se consiguiera probar cada
especificacin inmediatamente y saber cul es la repercusin de cada cambio sobre
el resto del sistema. Una primera aproximacin a esto, ofrecida por diversos
sistemas, es la posibilidad de mostrar al usuario formatos de pantallas, informes,
etc., animados por menes. Esto permite ayudar al usuario a tener una idea de qu
sistema se le construir, pero al final siempre se presentan sorpresas.
Una situacin bastante diferente sera la de poner a disposicin del usuario para su
ejecucin, inmediatamente, una aplicacin funcionalmente equivalente a la deseada,
hasta en los mnimos detalles. Esto es lo que hace GeneXus: un prototipo GeneXus
es una aplicacin pronta, funcionalmente equivalente a la aplicacin de produccin.
Esto solo es posible gracias a la construccin automtica que realiza GeneXus del
soporte computacional.
32
La diferencia entre prototipacin y produccin consiste en que la primera se
hace en un ambiente de microcomputador -aunque puede realizarse sobre
cualquier plataforma de las soportadas por GeneXus- mientras que la de
produccin se realiza en el ambiente objeto del usuario. GeneXus puede
generar cdigo para los siguientes lenguajes: .NET, C/SQL, Cobol para iSeries,
Java, RPG para iSeries, Visual Basic (standalone y Client/Server), Visual Fox Pro
(standalone y Client/Server).
El prototipo permite que la aplicacin sea totalmente probada antes de pasar a
produccin. Durante estas pruebas, el usuario final puede trabajar con datos
reales, probando de una forma natural no solamente formatos de pantallas,
informes, etc., sino tambin frmulas, reglas del negocio, estructuras de datos,
etc.

También podría gustarte