INTRODUCCIÓN TEÓRICA

Anuncio
INTRODUCCIÓN TEÓRICA
1
Herramientas y Metodologías
REALIDAD
BASE
DE
DATOS
PROGRAMAS
Nuestra tarea como profesionales de la informática consiste en desarrollar y mantener
aplicaciones para apoyar al usuario en su actividad. Para realizar esta tarea existen diferentes
herramientas y metodologías.
GeneXus es una herramienta para el desarrollo de aplicaciones sobre bases de datos. Su objetivo
es permitir la implantación de aplicaciones en el menor tiempo y con la mejor calidad posible.
A grandes rasgos, el desarrollo de una aplicación implica tareas de análisis, diseño e
implementación. La vía de GeneXus para alcanzar el objetivo anterior es liberar a las personas
de las tareas automatizables (como el diseño de la base de datos), permitiéndoles así
concentrarse en las tareas realmente difíciles y no automatizables (como comprender los
problemas del usuario).
GeneXus emplea una metodología que tiene un enfoque muy diferente al de las metodologías
más comúnmente utilizadas. Por tanto, aprender a utilizar GeneXus adecuadamente va más allá
de conocer un nuevo lenguaje: lo más importante es aprender su metodología.
2
Modelado de la realidad a
partir de las visiones de
los usuarios
MODELO DE
LA REALIDAD
BASE
DE
DATOS
Satisface
Ingeniería Inversa
PROGRAMAS
VISIONES
DE
USUARIOS
El primer problema al que nos enfrentamos en el desarrollo de aplicaciones es la obtención del
conocimiento de la realidad.
Nadie dentro de la empresa conoce los requerimientos y el alcance de la aplicación a desarrollar
como un todo. Entonces, ¿cómo 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 información que se maneja en ellos, las
reglas que deben seguirse, los cálculos que deben realizarse.
Por lo tanto, el punto de partida de la metodología 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
automática.
3
Comparación
de
Metodologías
Para fijar ideas, comparemos las metodologías tradicionales más utilizadas actualmente, con la
metodología utilizada por GeneXus, conocida como metodología incremental.
Las metodologías tradicionales difieren entre sí en varios aspectos, pero tienen una característica
en común: separan el análisis de los datos del de los procesos.
A continuación veremos un esquema general que podría aplicarse a cualquiera de las
metodologías tradicionales actuales y estudiaremos sus problemas.
4
Metodología Tradicional
5
ANÁLISIS
DE
DATOS
REALIDAD
MODELO
DE
DATOS
BASE
DE
DATOS
GENERACIÓN/
INTERPRETACIÓN
ANÁLISIS
FUNCIONAL
ESPECIFICACIÓN
FUNCIONAL
PROGRAMAS
PROGRAMACIÓN
La primera tarea que se realiza generalmente es el Análisis 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 fácil 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 diseñar
esa base de datos, partiendo del modelo de datos.
Construir un sistema integrado, requiere de un modelo de datos corporativo, y
dependiendo del tamaño de la empresa, ésta puede resultar una tarea de enorme
complejidad.
Cuando esto ocurre, la complejidad suele atacarse dividiendo el sistema en módulos
(“divide y vencerás”), cada uno de los cuales soluciona los problemas operativos de un
área específica de la empresa. De esta forma la tarea de modelado se simplifica
notablemente, pero como contrapartida los módulos operan sin una real integración, lo
que provoca que exista información redundante, con todos los problemas que ello acarrea.
En caso de que luego se intente realizar la integración de esos módulos, 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 deberán efectuarse sobre los programas
asociados tienen un costo tan elevado que suelen tornar inviable la integración.
Con la división del sistema en módulos la empresa tendrá resueltos sus problemas
operativos, pero aparecerán indefectiblemente problemas de carencia de información que
permita orientar la gestión y la toma de decisiones de alto nivel. En la órbita gerencial la
información que se necesita es principalmente de naturaleza corporativa, por lo que la
división del sistema en módulos no satisface las necesidades actuales de obtención de
información.
GeneXus soluciona este problema, brindando herramientas y una metodología que hacen
posible y sencilla la creación y mantenimiento de sistemas corporativos.
6
Una vez obtenido el modelo de datos, el siguiente paso de una metodología tradicional es diseñar la base de datos.
Existe una transformación trivial entre un buen modelo de datos y el diseño de la base de datos necesaria para
soportarlo.
Sin embargo, el modelo de datos no es suficiente para desarrollar los programas de aplicación, ya que el mismo
describe los datos, pero no los comportamientos. Se recurre, entonces, a una tarea llamada Análisis Funcional,
donde se estudia la empresa desde el punto de vista de las funciones existentes, y el resultado de dicha tarea es
una Especificación Funcional.
Sería deseable que la especificación funcional fuera independiente de la especificación de datos, lo que no ocurre
en las metodologías estudiadas. Las modificaciones en el diseño 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 especificación funcional, ya están dadas las condiciones para crear
los programas de la aplicación.
Para ello se cuenta hoy en día con varias alternativas:
• Programación en lenguajes de tercera y cuarta generación (L3G, L4G)
• Generación/Interpretación
Desde un punto de vista conceptual no hay diferencia entre la programación en lenguajes de 3ra. y de 4ta.
generación. En ambos casos el analista debe estudiar el problema, transformarlo en un algoritmo y codificarlo en el
lenguaje de programación elegido.
La principal diferencia radica en que en los lenguajes de 4ta. generación se escribe mucho menos código
(aproximadamente 10 veces menos) y, como consecuencia, la productividad es mucho mayor y el número 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. generación 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 utilización de un “generador”: una herramienta que puede interpretar una especificación
funcional y producir automáticamente 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 codificación
procedural alguna). Por ello la especificación funcional debe ser formal y rigurosa. Existen actualmente en el
mercado varias herramientas de esta clase.
Existe asimismo otra categoría de herramientas conceptualmente idéntica: la de aquellas que simplemente
“interpretan” la especificación. La programación en ambos casos es totalmente automática, por lo que el aumento
de productividad sobre las herramientas de 3ra. y 4ta. generación es muy grande.
El problema visto -las descripciones de los procesos dependen de la base de datos- afecta también a las
aplicaciones generadas mediante estas herramientas. Como consecuencia, los Generadores e Intérpretes (como
los lenguajes de 4ta. generación) 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 utilización de Generadores o
Intérpretes, una vez modificadas las especificaciones funcionales la generación de los programas es automática.
Si el siguiente postulado: “puede obtenerse una base de datos estable” fuera verdadero, los problemas anteriores
serían 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 múltiples
interlocutores, cada uno de los cuales aporta su propia subjetividad. Como consecuencia, durante todo el ciclo de
vida de la aplicación se producen cambios en el modelo.
7
Aun si se considerara la situación ideal, en la cuál se conocen exactamente las necesidades y por tanto es
posible definir la base de datos óptima, el modelo, de todas formas, no podrá permanecer estático, ya que debe
acompañar la evolución de la empresa.
Todo esto sería poco importante si la especificación funcional y la base de datos fueran independientes. Sin
embargo, dado que la especificación 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 mayoría de las
empresas que trabajan de una manera convencional se admite que el 80% de los recursos que teóricamente
están destinados al desarrollo, realmente se utilizan para hacer mantenimiento de las aplicaciones ya
implementadas.
Dado que es muy difícil 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 degradación de la calidad de los sistemas y el incremento de
los costos de mantenimiento.
8
Metodología GeneXus
Los fundadores de ARTech han desarrollado una amplia actividad de consultoría internacional en
diseño de grandes bases de datos, trabajando con verdaderos modelos corporativos con cientos
de tablas.
En su trayectoria, se convencieron de que no debía perderse más tiempo buscando algo que no
existe: las bases de datos estables.
Luego de importantes investigaciones, desarrollaron una teoría, organizaron una metodología e
implementaron una herramienta para posibilitar el desarrollo incremental y permitir la
convivencia con las bases de datos reales –inestables- a un costo mínimo.
9
Desarrollo con GeneXus
REALIDAD
DESCRIPCIÓN
DE OBJETOS
Utilizando GeneXus, la tarea básica del analista es la descripción de la realidad. Sólo el ser
humano puede desarrollar esta tarea ya que sólo él puede entender el problema del usuario.
El analista GeneXus trabaja en alto nivel, en vez de realizar tareas de bajo nivel como: diseñar
archivos, normalizar, diseñar programas, programar, buscar y eliminar los errores de los
programas.
Para comenzar el desarrollo de una aplicación con GeneXus, el primer paso consiste en crear un
nuevo proyecto o base de conocimiento.
Una vez creada una nueva base de conocimiento (en inglés: 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 atención 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 definición de estos objetos, GeneXus puede extraer el conocimiento y diseñar la base de
datos y los programas de la aplicación en forma automática.
10
Desarrollo con GeneXus
REALIDAD
BASE
DE
DATOS
DESCRIPCIÓN
DE OBJETOS
BASE DE
CONOCIMIENTO
PROGRAMAS
A partir de los objetos definidos en la base de conocimiento, GeneXus genera
automáticamente tanto los programas de creación / reorganización de la base de
datos como los programas de la aplicación.
Luego, si un objeto de la realidad cambia, si se identifican nuevas o diferentes
características del mismo, o si se encuentran objetos aún no modelados, el analista
GeneXus debe reflejar dichos cambios en los objetos GeneXus que correspondan, y la
herramienta se encargará automáticamente de realizar las modificaciones necesarias tanto
en la base de datos como en los programas asociados.
La metodología GeneXus es una metodología incremental, pues parte de la base de que
la construcción 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 más conocimiento (o simplemente diferente) lo refleja en la base de
conocimiento y GeneXus se ocupará de hacer automáticamente todas las adaptaciones
en la base de datos y programas.
Si GeneXus no fuera capaz de realizar automáticamente las modificaciones en la base de
datos y programas conforme se realicen cambios que así lo requieran, el desarrollo
incremental sería inviable.
11
Comparación de Metodologías
ANÁLISIS
DE
DATOS
REALIDAD
DESCRIPCIÓN
DE OBJETOS
MODELO
DE
DATOS
BASE DE
CONOCIMIENTO
BASE
DE
DATOS
GENERACIÓN/
INTERPRETACIÓN
ANÁLISIS
FUNCIONAL
ESPECIFICACIÓN
FUNCIONAL
PROGRAMACIÓN
PROGRAMAS
Como se ha visto, existen varios caminos para la implementación de aplicaciones:
1. Programación utilizando lenguajes de 3era. generación.
2. Programación utilizando lenguajes de 4ta. generación
3. Generación / interpretación automática de la especificación 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), sólo se
consigue con el desarrollo incremental.
12
Objetos GeneXus
(más importantes)
Transacciones
(Trns)
Reportes
(Rpts)
Procedimientos
(Procs)
Web Panels
(Wbps)
y hay más, que veremos...
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 más 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 través de las
transacciones, GeneXus infiere el diseño de la base de datos.
Además de tener por objetivo la definición de la realidad y la consecuente creación de la
base de datos normalizada, cada transacción 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 información de la base de datos, y desplegarla ya sea en la pantalla, en
un archivo o impresa en papel. Son los típicos listados o informes. No permiten actualizar la
información de la base de datos1.
Procedimientos
Tienen las mismas características que los reportes, pero a diferencia de éstos, permiten
además la actualización de la información de la base de datos.
Web Panels
Permiten al usuario realizar interactivamente consultas a la base de datos, a través de una
pantalla. Ejemplo: un web panel que permite al usuario ingresar un rango de caracteres y
muestra a continuación todos los clientes cuyos nombres se encuentran dentro del rango.
Son objetos muy flexibles que se utilizan exclusivamente en ambiente web y se prestan
para múltiples usos. No permiten la actualización de la base de datos, sino solo su consulta1.
Son usados a través de browsers en ambiente Internet/Intranet/Extranet.
-----------------------------------------------------------------------------------------------------1 No es inherente a este tipo de objetos la modificación de la base de datos, pero como
veremos más adelante, existen unos componentes llamados “business components” que lo
harán posible, rompiendo con su naturaleza de solo consulta.
13
Existen algunos tipos más 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 características que los diferencian de la mayoría de ellos, como el
hecho de no generar programas propios, sino que su conocimiento es reutilizado dentro de los
otros objetos.
14
Proceso de desarrollo de una
aplicación con GeneXus
Transacciones
(Trns)
Reportes
(Rpts)
Procedimientos
(Procs)
Web Panels
(Wbps)
Base
Basede
deConocimiento
Conocimiento
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 diseñar el modelo de datos normalizado (en
3era. forma normal). Luego se van definiendo los demás objetos que correspondan.
15
Creación de la Base de Datos
Transacciones
(Trns)
Reportes
(Rpts)
Procedimientos
(Procs)
Web Panels
(Wbps)
Base
Basede
deConocimiento
Conocimiento
Base
de
Datos
Programas
Creación
BD
GeneXus genera automáticamente 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
automática.
16
Generación de los
Programas de la aplicación
Transacciones
(Trns)
Reportes
(Rpts)
Procedimientos
(Procs)
Web Panels
(Wbps)
Base
Basede
deConocimiento
Conocimiento
Base
de
Datos
Programas de Aplicación
(Trns, Rpts, Procs, Wkps, Wbps, DVs)
Luego, GeneXus genera programas de aplicación para interactuar con la base de datos
previamente creada.
17
Resultado final en la Etapa de Desarrollo
Transacciones
(Trns)
Reportes
(Rpts)
Procedimientos
(Procs)
Web Panels
(Wbps)
Base
Basede
deConocimiento
Conocimiento
Base
de
Datos
Programas de Aplicación
(Trns, Rpts, Procs, Wkps, Wbps, DVs)
Una vez creada la base de datos y generados los programas, contamos con una aplicación pronta
para ejecutar.
18
Las visiones de los usuarios cambian
Nuevas
Transacciones
Nuevos
Reportes
Nuevos
Procedimientos
Nuevos
Web Panels
Base
Basede
deConocimiento
Conocimiento
Base
de
Datos
Nueva
Nueva
Base
Base
de
de
Datos
Datos
Programas de Aplicación
(Trns, Rpts, Procs, Wkps, Wbps, DVs)
Durante el ciclo de vida de la aplicación, 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 serán analizadas por
GeneXus para evaluar si es necesario efectuar cambios en la base de datos (por
ejemplo: modificación/creación de tablas/índices), o no.
En caso de detectar cambios para efectuar en la base datos, GeneXus detallará los mismos en un
reporte de análisis de impacto (IAR: Impact Analisis Report), que es un reporte que
explicita todos los cambios sobre tablas, índices, datos, etc. que habría que realizar para reflejar
la nueva realidad.
Asimismo, en el reporte de análisis de impacto se informan los eventuales problemas que los
cambios en cuestión podrían ocasionar, como inconsistencias o redundancias.
19
Análisis de Impacto Totalmente Automático
Nuevas
Transacciones
Análisis
de
impacto
Base
de
Datos
Nuevos
Reportes
Nuevos
Procedimientos
Nuevos
Web Panels
Base
Basede
deConocimiento
Conocimiento
Nueva
Nueva
Base
Base
de
de
Datos
Datos
Programas de Aplicación
(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 modificación para representar la nueva realidad.
El analista debe estudiar el reporte de análisis 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
Generación de Programas de
Reorganización de la Base de Datos
Nuevas
Transacciones
Programas
de
Reorganiz.
Base
de
Datos
Nuevos
Reportes
Nuevos
Procedimientos
Nuevos
Web Panels
Base
Basede
deConocimiento
Conocimiento
Nueva
Nueva
Base
Base
de
de
Datos
Datos
Programas de Aplicación
(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 término para referirnos a la acción de aplicar cambios físicos sobre la
base de datos.
GeneXus generará los programas que implementan las modificaciones sobre las
estructuras físicas de la base de datos, y mediante su ejecución nos brindará la nueva
versión de la base de datos con los cambios efectuados.
21
Análisis automático del impacto
de los cambios sobre los programas
Nuevas
Transacciones
Nuevos
Reportes
Nuevos
Procedimientos
Base
Basede
deConocimiento
Conocimiento
Nueva
Base
de
Datos
Nuevos
Web Panels
Análisis
de Impacto
sobre los
programas
Nuevos Programas de
Aplicación
(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 podrá seleccionar sobre cuáles objetos quiere realizar el análisis (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 aplicación, o no.
22
Generación automática de nuevos programas
Nuevas
Transacciones
Nuevos
Reportes
Nuevos
Procedimientos
Base
Basede
deConocimiento
Conocimiento
Nueva
Base
de
Datos
Nuevos
Web Panels
Generación
de
programas
Nuevos Programas de
Aplicación
(Trns, Rpts, Procs, Wkps, Wbps, DVs)
Por último, a pedido del analista, GeneXus proseguirá con la generación/regeneración
de los programas de aplicación que sean necesarios, obteniendo así una nueva
versión de la aplicación.
23
Nueva realidad, con los cambios en la aplicación
Nuevas
Transacciones
Nuevos
Reportes
Nuevos
Procedimientos
Nuevos
Web Panels
Base
Basede
deConocimiento
Conocimiento
Nueva
Base
de
Datos
Nuevos Programas de Aplicación
De modo que nuevamente contaremos con una aplicación pronta para ejecutar, con los cambios
aplicados.
24
Metodología Incremental
Consiste en construir una aplicación mediante aproximaciones
sucesivas.
DEFINICION
INICIAL
La construcción automática de la base de datos y programas, permite a GeneXus
aplicar esta metodología de desarrollo, conocida como metodología incremental.
Como ya hemos explicado, este proceso se realiza mediante aproximaciones
sucesivas.
25
Modelos
Î Dentro de una base de conocimiento coexisten varios modelos
Î En particular, existe un modelo que se crea automáticamente al
crear una nueva base de conocimiento: el modelo de Diseño
BASE DE CONOCIMIENTO
modelo
de
Diseño
El modelo de Diseño corresponde a la representación lógica del sistema, esto es,
permite describir la aplicación sin implementarla.
Esto significa que no existirá una base de datos física asociada a este modelo, así como
tampoco programas de aplicación ejecutables. Estos últimos existirán solo a un nivel
conceptual o lógico.
Son los objetos GeneXus que el analista haya definido dentro de este modelo los que
principalmente describen al sistema. En particular, de las transacciones especificadas1
GeneXus obtiene el diseño lógico de la base de datos, y ellas, en conjunto con el resto de
los objetos definidos, constituyen la descripción lógica de los programas.
Los programas serán el resultado de la codificación de los objetos GeneXus en el
lenguaje de programación elegido por el analista, sobre una base de datos física.
Pero esta implementación (base de datos y programas), que es enteramente realizada
por GeneXus, ¿dónde 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, contendrán una implementación
del sistema.
-------------------------------------------------------------------------------------------------En conjunción con los grupos de subtipos (objetos Subtype Group) y los índices de
usuario.
1
26
Modelos
Î Existen otros modelos que son creados en forma explícita por el
analista
Î ¿Por qué tener varios de estos modelos, en lugar de uno solo?
Î Entre otras razones: para tener cualquier número de implementaciones del
mismo sistema, asociadas a diferentes plataformas o ambientes (por
ejemplo: iSeries, PC, Client/Server, Web, etc.).
BASE DE CONOCIMIENTO
modelo
de
Diseño
otro
modelo
otro
modelo
otro
modelo
A diferencia del modelo de Diseño que es creado automáticamente, estos otros
modelos son creados en forma explícita por el analista. Al hacerlo, éste debe ingresar
los datos de la plataforma o ambiente de implementación correspondiente (lenguaje de
programación, DBMS, etc.) para que GeneXus pueda implementar el sistema para ese
modelo.
Los objetos GeneXus definidos en el modelo de Diseño se copian al nuevo modelo y éstos
son los que GeneXus codifica para dicho modelo de acuerdo a su plataforma.
27
Tipos de Modelo
Î Cada modelo tiene un tipo:
Î Design (Diseño):
ÎUn sólo modelo en la misma base de conocimiento.
ÎNo tiene base de datos ni programas de aplicación
asociados.
Î Prototype/Production (Prototipo/Producción):
ÎPuede haber varios modelos en la misma base de
conocimiento.
ÎCada uno de estos modelos tiene una base de datos
asociada y programas de aplicación que se generan para la
plataforma o ambiente elegido.
Por cada base de conocimiento, habrá un y sólo un modelo de Diseño, cuya característica
fundamental es que representa al sistema conceptualmente.
Los otros dos tipos se parecen mucho entre sí, dado que todo modelo de Prototipo o Producción
tiene asociada una plataforma o ambiente que le permite implementar físicamente el sistema,
siendo ésta la característica fundamental que diferencia a estos modelos del de Diseño. 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
aplicación –de allí su nombre- probando lo modelado, haciendo modificaciones, volviendo a
probar.
-Un modelo de Producción, por el contrario, se utiliza en la etapa de puesta en producción,
cuando el prototipo fue aprobado y la aplicación o los cambios efectuados ya pueden ser llevados
al cliente.
Cuando una aplicación implementada en GeneXus ha sido puesta en producción, necesariamente
deberá haber al menos 3 modelos definidos en la base de conocimiento:
- el de Diseño, pues se crea automáticamente al crear la base de conocimiento,
- uno de Prototipo, utilizado para ir desarrollando y probando la aplicación,
- uno de Producción, pues es necesario tener una imagen fiel de la aplicación que se lleva al
cliente, en la plataforma de producción, como veremos oportunamente.
28
Ciclos de desarrollo
Diseño
Prototipo
Producción
En el desarrollo incremental de una aplicación, pasaremos repetidamente del modelo de
Diseño al modelo de Prototipo con el que estemos probando la aplicación, y de éste
nuevamente al modelo de Diseño. Con menor frecuencia se pasará al modelo de
Producción.
Ciclo de prototipación
El bucle Diseño-Prototipo se recorre repetidamente, construyendo y probando sucesivos
prototipos.
Ciclo de producción
El bucle Diseño-Producción se recorre menos frecuentemente, ya que este ciclo
corresponde a la puesta en producción del sistema y esto se realiza solamente cuando el
prototipo ha sido aprobado o luego de haber instrumentado y probado algún cambio.
29
Ventajas de la Prototipación
•
•
•
•
•
Permite ver resultados en forma temprana
Permite el seguimiento de los requerimientos del usuario
Detección de errores en forma temprana
Logra el compromiso de los usuarios con el desarrollo
Sistemas de mejor calidad
Toda comunicación es susceptible de errores:
•
•
•
•
El
El
El
El
usuario olvida ciertos detalles
analista no toma nota de algunos elementos
usuario se equivoca en algunas apreciaciones
analista malinterpreta algunas explicaciones del usuario
Como la implementación de sistemas es habitualmente una tarea que insume bastante tiempo, y
muchos de estos problemas sólo 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 estática, 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 implementación, muchas
veces esto se hace y se acaba implementando una solución relativamente insatisfactoria.
El impacto de estos problemas disminuiría mucho si se consiguiera probar cada especificación
inmediatamente y saber cuál es la repercusión de cada cambio sobre el resto del sistema. Una primera
aproximación a esto, ofrecida por diversos sistemas, es la posibilidad de mostrar al usuario formatos
de pantallas, informes, etc., animados por menús. Esto permite ayudar al usuario a tener una idea de
qué sistema se le construirá, pero al final siempre se presentan sorpresas.
Una situación bastante diferente sería la de poner a disposición del usuario para su ejecución, una
aplicación funcionalmente equivalente a la deseada hasta en los mínimos detalles. Y esto es lo que
ofrece GeneXus! Un prototipo GeneXus es una aplicación pronta funcionalmente equivalente a la
aplicación de producción.
Así es que la aplicación puede ser totalmente probada antes de ponerse en producción; y durante las
pruebas, el usuario final puede probar de una forma natural no solamente formatos de pantallas,
informes, etc., sino también fórmulas, reglas del negocio, estructuras de datos, etc., y trabajar con
datos reales.
Esto solo es posible gracias a la construcción automática que realiza GeneXus del soporte
computacional (base de datos y programas).
30
Descargar